资源描述
省高等学校计算机等级考试(二级C语言)选择题试题库
答案
试题
C
1. 在C语言源程序中,以下叙述正确的是( )。
A. main函数必须位于文件的开头
B. 每行只能写一条语句
C. 程序中的一个语句可以写成多行
D. 每个语句的最后必须有点号
C
2. 关于C语言的源程序的叙述中,错误的是( )。
A. C语言的源程序由函数构成
B. main函数可以书写在自定义函数之后
C. 必须包含有输入语句
D. 一行可以书写多个语句
C
3. 关于C语言数据类型的叙述,正确的是( )。
A. 枚举类型不是基本类型
B. 数组不是构造类型
C. 变量必须先定义后使用
D. 不允许使用空类型
C
4. C程序中main函数的位置( )。
A. 必须在最开始
B. 必须在系统库函数后面
C. 可以在自定义函数后面
D. 必须在最后
B
5. C语言的函数体由( )括起来。
A. ( )
B. { }
C. [ ]
D. /* */
D
6. 关于C语言的叙述中,不正确的是( )。
A. C程序可由一个或多个函数组成
B. C程序必须包含一个main()函数
C. C程序的基本组成单位是函数
D. 注释说明只能位于一条语句的后面
D
7. 以下叙述不正确的是( )。
A. C程序的执行总是从main函数开始
B. 一个C源程序必须包含一个main函数
C. C语言程序的基本组成单位是函数
D. 在编译C程序源程序时,可发现注释中的拼写错误
C
8. 结构化程序设计的三种基本结构是( )。
A. 函数结构、分支结构、判断结构
B. 函数结构、嵌套结构、平行结构
C. 顺序结构、分支结构、循环结构
D. 分支结构、循环结构、嵌套结构
C
9. 对于C语言源程序,以下叙述错误的是( )。
A. 可以有空语句
B. 函数之间是平等的,在一个函数部不能定义其它函数
C. 程序调试时如果没有提示错误,就能得到正确结果
D. 注释可以出现在语句的前面
D
10. 下面关于C语言用户标识符的描述,正确的是( )。
A. 不区分大小写
B. 用户标识符不能描述常量
C. 类型名也是用户标识符
D. 用户标识符可以作为变量名
D
11. 以下( )是正确的变量名。
A. 5f
B. if
C. f.5
D. _f5
D
12. 以下( )是正确的常量。
A. E-5
B. 1E5.1
C. 'a12'
D. 32766L
D
13. 以下( )是正确的变量名。
A. a.bee
B. -p11
C. int
D. p_11
C
14. 以下( )是正确的字符常量。单引号括起来
A. "c"
B. '\\''
C. 'W'
D. "\32a"
A
15. 以下( )是不正确的字符串常量。双引号括起来
A. 'abc'
B. "12'12"
C. "0"
D. " "
B
16. 以下( )是错误的整型常量。
A. -0xcdf
B. 018 //八进制数不能超过8
C. 0xe
D. 011
B
17. 以下( )是正确的浮点数。
A. e3 //e前面必须有数字,指数必须为整数
B. .62
C. 2e4.5
D. 123
A
18. 若有说明语句:char c='\95'; 则变量c包含( )个字符。
A. 1 \ddd :表示1到3位八进制数所代表的字符
B. 2 \xhh表示 1到2位十六进制数所代表的字符
C. 3
D. 语法错误
A
19. 若有定义:int a=2; 则正确的赋值表达式是( )。
A. a-=(a*3)
B. double(-a)//(double)(-a)
C. a*3
D. a*4=3
C
20. 语句x=(a=3,b=++a);运行后,x、a、b的值依次为( )。
A. 3,3,4 //逗号运算符与逗号表达式
B. 4,4,3
C. 4,4,4
D. 3,4,3
B
21. 语句a=(3/4)+3%2;运行后,a的值为( )。
A. 0
B. 1//注意除号/ 两边均为整型时,结果为整数(不含小数点)
C. 2
D. 3
A
22. char型变量存放的是( )。//考查变量类型
A. ASCII代码值
B. 字符本身
C. 十进制代码值
D. 十六进制代码值
C
23. 若有定义:int x,a;则语句x=(a=3,a+1);运行后,x、a的值依次为( )。
A. 3,3//考查逗号表达式与逗号运算符
B. 4,4
C. 4,3
D. 3,4
B
24. 若有定义:int a; 则语句a=(3 * 4)+ 2 % 3;运行后,a的值为( )。
A. 12
B. 14
C. 11
D. 17
A
25. 若有定义:int a,b; double x,则以下不符合C语言语法的表达式是( )。
A. x%(-3) //%两侧均应为整型数据
B. a+=-2
C. a=b=2
D. x=a+b
B
26. 若有定义:int x=2,y=3;float i;,则以下符合C语言语法的表达式是( )。
A. x=x*3=2//x*3不是一个变量名
B. x=(y==1)
C. i=float(x)//应改为i=(float)x
D. i%(-3) //%两侧均应为整型数据
C
27. 设double型变量a,b,c,e均有值;对代数式(3ae)/(bc),不正确的C语言表达式是( )。
A. a/b/c*e*3
B. 3*a*e/b/c
C. 3*a*e/b*c//改为3*a*e/b/c
D. a*e/c/b*3
B
28. 下面叙述正确的是( )。
A. 2/3 与 2.0/3.0 等价
B. (int)2.0/3 与 2/3 等价
C. ++5 与 6 等价//单独写++5是错误的,可以写成a=++5
D. 'A'与"A"等价
A
29. 下面叙述中,错误的是( )。
A. 其算术运算对象不包含函数
B. %(模运算符)的运算对象只能为整型量
C. 算术运算符的结合方向是"自左至右"
D. 自加和自减运算符的结合方向是"自右至左"
A
30. 下面叙述正确的是( )。//++ --只能用于变量,而不能用于常量或表达式
A. 强制类型转换运算的优先级高于算术运算
B. 若a和b是整型变量,(a+b)++是合法的
C. 'A'*'B' 是不合法的
D. "A"+"B"是合法的
B
31. 若有定义:int k,i=2,j=4; 则表达式 k=(++i)*(j--) 的值是( )。
A. 8
B. 12//注意前缀 后缀的区别
C. 6
D. 9
C
32. 设整型变量a为5,使b不为2的表达式是( )。
A. b=(++a)/3
B. b=6-(--a)
C. b=a%2//结果为1
D. b=a/2
C
33. 若有定义:int a=1,b=2,c=3; 则语句 ++a||++b&&++c;运行后b的值为( )。
A. 1
B. 0
C. 2 //注意运算的不完全性
D. 3
B
34. 若有定义:int i,j;则表达式(i=2,j=5,i++,i+j++)的值是( )。
A. 7
B. 8
C. 9
D. 10
B
35. 若有定义:int a,b;则表达式(a=2,b=5,a*2,b++,a+b)的值是( )。
A. 7
B. 8
C. 9
D. 10
B
36. 若有定义:int m=5,n=3;则表达式(m+1,n+1,(--m)+(n--))的值是( )。
A. 6
B. 7
C. 8
D. 9
B
37. 已知 int a;使用scanf()函数输入一个整数给变量a,正确的函数调用是( )。
A. scanf("%d",a);
B. scanf("%d",&a);
C. scanf("%f",&a);
D. scanf("%lf",&a);
D
38. 已知 double a;使用scanf()函数输入一个数值给变量a,正确的函数调用是( )。
A. scanf("%ld",&a);
B. scanf("%d",&a);
C. scanf("%7.2f",&a);//输入数据时不能规定精度
D. scanf("%lf",&a);
B
39. 已知 char a;使用scanf()函数输入一个字符给变量a,不正确的函数调用是( )。
A. scanf("%d",&a);
B. scanf("%lf",&a);//字符型变量与整型等价,但不与浮点型等价
C. scanf("%c",&a);
D. scanf("%u",&a);
B
40. putchar()函数的功能是向终端输出( )。// char *str0;….;puts( str0);
A. 多个字符
B. 一个字符
C. 一个实型变量值
D. 一个整型变量表达式
D
41. getchar()函数的功能是从终端输入( )。
A. 一个整型变量值
B. 一个实型变量值
C. 多个字符
D. 一个字符
D
42. 若有定义:int x=1234,y=123,z=12;则语句printf("%4d+%3d+%2d", x, y, z);运行后的输出结果为( )。
A. 123412312
B. 2
C. 1234+1234+1234
D. 1234+123+12
A
43. 已有如下定义和输入语句,
int a; char c1,c2;
scanf("%d%c%c",&a,&c1,&c2);
若要求a、c1、c2的值分别为10、A和B,正确的数据输入是( )。
A. 10AB//输入数据时,遇空格、回车、TAB、与非法输入 或按规定的宽度结束
B. 10 A B
C. 10A B
D. 10 AB
B
44. 已有如下定义和输入语句:
int a,b;
scanf("%d,%d",&a,&b); //“格式控制”字符串中除了格式说明还有其他字符,则输入//时应在相应位置输入
若要求a、b的值分别为10和20,正确的数据输入是( )。
A. 10 20
B. 10,20
C. a=10,b=20
D. 10;20
D
45. 以下程序的运行结果是( )。
void main()
{
int a=65;
char c='A';
printf("%x,%d",a,c);
}
A. 65,a
B. 41,a
C. 65,65
D. 41,65
A
46. 下面叙述中,( )不是结构化程序设计中的三种基本结构之一。
A. 数据结构
B. 选择结构
C. 循环结构
D. 顺序结构
A
47. 下面叙述中,( )不是结构化程序设计三种基本结构的共同特点。
A. 先判断后执行
B. 单入口,单出口
C. 程序中没有执行不到的语句
D. 无死循环
A
48. 结构化程序设计不包括( )。
A. 最优化
B. 自顶而下,逐步细化
C. 模块化设计
D. 结构化编码
D
49. 以下运算符中优先级最高的是( )。
A. >
B. ||
C. &&
D. + //初等运算符()[] 单目 算术 关系 逻辑(不含!) 赋值 逗号
A
50. 若有定义:int x=3,y=4;则表达式 !x||y 的值为( )。
A. 1
B. O
C. 3
D. 4
A
51. 若有定义:int i=7,j=8;则表达式 i>=j||i<j 的值为( )。
A. 1
B. 变量i的值
C. 0
D. 变量j的值
C
52. 若希望当a的值为奇数时,表达式的值为"真",a的值为偶数时,表达式的值为"假"。则不能满足要求的表达式是( )。
A. a%2==1
B. !(a%2==0)
C. !(a%2)
D. a%2
D
53. 若有定义:int x=3,y=4,z=5;则值为0的表达式是( )。
A. 'x'&&'y'
B. x<=y
C. x||y+z&&y-z
D. !((x<y)&&!z||1) //考查运算符优先级
A
54. 若有定义:int a=5,b=2,c=1;则表达式a-b<c||b==c的值是( )。
A. 0
B. 1
C. 2
D. -1
A
55. 已知double a=5.2; 则正确的赋值表达式是( )。
A. a+=a-=(a=4)*(a=3)
B. a=a*3=2
C. a%3
D. a=double(-3)
A
56. 已知char a='R'; 则正确的赋值表达式是( )。
A. a=(a++)%4
B. a+2=3
C. a+=256--
D. a='\078'
A
57. 已知int a='R'; 则正确的表达式是( )。
A. a%10
B. a=int(3e2)
C. 2*a=a++
D. a=a+a=a+3与C 同属一类错误
A
58. 设单精度型变量f、g的值均为2.0,使f为4.0的表达式是( )。
A. f+=g
B. f-=g+2
C. f*=g-6
D. f/=g*10
B
59. 若有定义:float x=3.5;int z=8;则表达式 x+z%3/4 的值为( )。
A. 3.75
B. 3.5
C. 3
D. 4
A
60. 若有定义:int a=1,b=2,c=3,d=4,x=5,y=6;则表达式 (x=a>b)&&(y=c>d) 的值为( )。
A. 0
B. 1
C. 5
D. 6
A
61. 若有定义:int a=2,b=3; float x=3.5,y=2.5;则表达式(float)(a+b)/2+(int)x%(int)y的值是( )。//(float)(a+b)/2=2.5
A. 3.5
B. 3.0
C. 2.5
D. 2.0
C
62. 若有定义:int b=7; float a=2.5,c=4.7;则表达式a+(b/2*(int)(a+c)/2)%4的值是( )。
A. 2.5 //(b/2*(int)(a+c)/2)=10 注意运算顺序
B. 3.5
C. 4.5
D. 5.5
C
63. 若有定义:int a=6,b=2;char c1='a',c2='b';则表达式a+b%5+c2-c1的值是( )。
A. 7
B. 8
C. 9
D. 表达式错误
B
64. 以下的if语句中,x的值一定被重新赋值的是( )。
A. if(x==y) x+=y;
B. if(x>y && x!=y );//注意if语句后的空语句;
x+=y;
C. if(x!=y)
scanf("%d",&x);
else
scanf("%d",&y);
D. if(x<y)
{ x++;y++; }
B
65. C语言对if嵌套语句的规定:else总是与( )配对。
A. 第一个if
B. 之前最近的且尚未配对的if
C. 缩进位置相同的if
D. 之前最近的if
B
66. 对于整型变量x,下述if语句( )与赋值语句:
x=x%2==0?1:0;
不等价。
A. if (x%2!=0) x=0; else x=1;
B. if (x%2) x=1; else x=0;
C. if (x%2==0) x=1; else x=0;
D. if (x%2==1) x=0; else x=1;
B
67. 若有定义:int x=1,y=2,z=4;则以下程序段运行后z的值为( )。
if(x>y) z=x+y;
else z=x-y;
A. 3
B. -1
C. 4
D. 不确定
D
68. 若有定义:int a=1,b=2,c=3;则执行以下程序段后a,b,c的值分别为( )。
if (a<b)
{c=a;a=b;b=c;}
A. a=1,b=2,c=3
B. a=2,b=3,c=1
C. a=2,b=3,c=3
D. a=2,b=1,c=1
D
69. 以下程序段运行后变量a的值为( )。
int x=6,y=5;
int a;
a=(--x==y++)?x:y+1;
A. 0
B. 1
C. 6
D. 5
C
70. 以下程序的运行结果是( )。//注意分支中有无break的区别
void main()
{
int n='e';
switch(n--)
{
default: printf("error ");
case 'a':
case 'b': printf("good "); break;
case 'c': printf("pass ");
case 'd': printf("warn ");
}
}
A. error
B. good
C. error good
D. warn
C
71. 以下程序的运行结果是( )。
void main()
{
int n='c';
switch(n++)
{
default: printf("error "); break;
case 'a':
case 'b': printf("good "); break;
case 'c': printf("pass ");
case 'd': printf("warn ");
}
}
A. pass
B. warn
C. pass warn
D. error
D
72. 以下程序的运行结果是( )。
void main( )
{ int n=5;
if(n++>=6)
printf("%d\n",n);
else
printf("%d\n",++n);
}
A. 4
B. 5
C. 6
D. 7
B
73. 设有整型变量x,下述语句( )不会出现死循环。
A. for(;;x+=1);
B. for(;(x=getchar())!='\n';);
C. while(1) {x++;}
D. for(x=10;;x--);
B
74. 对于整型变量x,与while(!x)等价的是( )。
A. while(x!=0)
B. while(x==0)
C. while(x!=1)
D. while(~x)
A
75. 对于整型变量x和y,语句
for(x=0,y=0;(y!=123)&&(x<4);x++) y++;
中的“y++;”被执行( )。
A. 4次
B. 0次
C. 123次
D. 3次
B
76. 在c语言中while循环和do--while循环的主要区别是( )。
A. do--while循环体可以使用break语句,while循环体不能使用break语句
B. do--while的循环体至少无条件执行一次,while的循环体不是
C. do--while循环体可以使用continue语句,while循环体不能使用continue语句
D. while的循环体至少无条件执行一次,do--while的循环体不是
B
77. 以下程序段运行后,循环体运行的次数为( )。
int i=10,x;
for (;i<10;i++) x=x+i;
A. 10
B. 0
C. 1
D. 无限
D
78. 以下程序段运行后变量n的值为( )。
int i=1,n=1;
for (;i<3;i++)
{continue;n=n+i;}
A. 4
B. 3
C. 2
D. 1
B
79. 以下程序的运行结果是( )。
void main()
{
int sum = 0, item = 0;
while(item < 5)
{
item++;
sum += item;
if(sum==5)
break;
}
printf("%d\n",sum);
}
A. 10
B. 15
C. 5
D. 6
C
80. 以下程序的运行结果是( )。
void main()
{
int sum = 0, item = 0;
while(item < 5)
{
item++;
sum += item;
if(sum>=6)
break;
}
printf("%d\n",sum);
}
A. 10
B. 15
C. 6
D. 7
B
81. 以下程序的运行结果是( )。
void main()
{
int sum = 0, item = 0;
while(item < 5)
{
item++;
if(item == 2)
continue;
sum += item;
}
printf("%d\n",sum);
}
A. 10
B. 13
C. 15
D. 1
A
82. 下列数组定义中,正确的是( )。
A. int a[5]={0};
B. int a[]={0 1 2}; // int a[]={0 , 1,2}; 注意元素与元素之间加逗号
C. int a[5]=0; // int a[5]={0};
D. int a[]; //必须指明数组大小
A
83. 下列数组定义中,正确的是( )。
A. int a[10];
B. int n=10,a[n]; //下标必须是常量表达式
C. int N=10;int a[N];
D. int n;scanf("%d",&n); int a[n];
A
84. 已知 int a[10]; 则对a数组元素引用不正确的是( )。
A. a[10]//10个元素的数组下标围从0到9 ,故此题越界
B. a[3+5]
C. a[10-10]//引用数组元素时,下标可以是整型常量或整型表达式
D. a[5]
B
85. 若有定义:int a[3]={0,1,2};则a[1]的值为( )。
A. 0
B. 1
C. 2
D. 3
A
86. 若有定义:int a[5]={1,2,3,4,5};则语句a[1]=a[3]+a[2+2]-a[3-1];运行后a[1]的值为( )。
A. 6
B. 5
C. 1
D. 2
D
87. 以下能对一维数组a进行正确初始化的语句是( )。
A. int a[5]=(0,0,0,0,0);
B. int a[5]=[0]; //注意使用大括号
C. int a[5]={1,2,3,4,5,6,7};//多余2个
D. int a[]={0};//定义一个只有一个元素的一维数组,指为0
D
88. 下面程序段的运行结果是( )。
int i=0,a[]={3,4,5,4,3};
do{
a[i]++;
}while(a[++i]<5);
for(i=0;i<5;i++)
printf("%d ",a[i]);
A. 4 5 6 5 4
B. 3 4 5 4 3
C. 4 5 5 5 4
D. 4 5 5 4 3
C
89. 下面程序段的运行结果是( )。
int i=0,a[]={7,5,7,3,8,3};
do{
a[i]+=2;
}while(a[++i]>5);
for(i=0;i<6;i++)
printf("%d ",a[i]);
A. 9 7 9 5 10 5
B. 9 5 9 3 10 3
C. 9 5 7 3 8 3
D. 7 5 7 3 8 3
A
90. 下面程序段的运行结果是( )。
int i=0,a[]={1,2,3,4,5};
do{
a[i]+=10;
}while(a[++i]>2);
for(i=0;i<5;i++)
printf("%d ",a[i]);
A. 11 2 3 4 5
B. 1 2 3 4 5
C. 11 12 13 14 15
D. 11 12 3 4 5
C
91. 设有如下程序段:
int a[3][3]={1,0,2,1,0,2,1,0,1},i,j,s=0;
for(i=0;i<3;i++)
for(j=0;j<i;j++)
s=s+a[i][j];
则执行该程序段后,s的值是( )。
A. 0
B. 1
C. 2
D. 3
B
92. 有如下定义
int a[][3]={1,2,3,4,5,6,7,8}; //考查二维数组的初始化
则数组a的行数是( )。
A. 2
B. 3
C. 4
D. 无法确定的
D
93. 以下数组定义中,正确的是( )。
A. int a[2][3]={1,2,3,4,5,6,7};//多余1个
B. int a[][]={{1,2,3},{4,5,6},{7,8,9}};//第二维长度不能省
C. int a[2][]= {1,2,3,4,5,6};
D. int a[][4]= {6};
A
94. 若有定义:int a[3][4]={{1,2},{0},{1,2,3}};则a[1][1]的值为( )。
A. 0
B. {1,2}
C. 1
D. 3
A
95. 若有定义:int a[3][3];则表达式&a[2][1]-a的值为( )。
A. 7//&a[2][1]-a 代表两者之间的元素个数,类似指向同种类型的指针相减
B. 8
C. 6
D. 9
C
96. 若有定义:int i=0,x=0;int a[3][3]={1,2,3,4,5,6,7,8,9};则以下程序段运行后x的值为( )。
for (;i<3;i++) x+=a[i][2-i];
A. 0
B. 12
C. 15
D. 18
D
97. 若有定义int a[2][3];则对数组元素的非法引用是( )。
A. a[0][1/2]
B. a[1][1]
C. a[4-4][0]
D. a[0][3]
C
98. 以下数组定义中,正确的是( )。
A. int a[2][]={1,2,3,4,5};
B. int a[][2]={{0},{}};
C. int a[2][2]={{1,2},{3}};
D. int a[][]={1,2,3,4};
D
99. 若有定义int a[][3]={1,2,3,4,5,6,7,8,9};则表达式sizeof(a)/sizeof(a[0])
的值为( )。
A. 3
B. 4
C. 5
D. 9
A
100. 设有以下变量定义:
char str1[]="string",str2[8],*str3,*str4="string";
( )是正确的。
A. strcpy(str1,"China");
B. str2="China";
C. strcpy(*str3,"China");
D. strcpy(str4[0],"China");
D
101. 有如下定义:
char str[6]={ 'a','b','\0','d','e','f'};
则语句:
printf("%s",str);
的输出结果是( )。
A. ab\
B. abdef
C. ab\0
D. ab
C
102. 设有如下数组定义:
char str[8]={ "FuJian"};
则分配给数组str的存储空间是( )个字节。
A. 6
B. 7
C. 8
D. 9
B
103. 若有定义:char a[]="abcdef";char b[]="xyz";则以下程序段运行后屏幕输出为( )。
strcpy(a,b);
printf("%c",a[2]);
A. c
B. z
C. \0
D. d
C
104. 以下程序段运行后屏幕输出为( )。
char a[]="abc\0mis";
printf("%d",strlen(a));
A. 5
B. 8
C. 3
D. 4
B
105. 若有定义:int a=2;则语句a=strcmp("miss","miss");运行后a的值为( )。
A. 1//相等返回0 ,字符串1>字符串2,返回一个正整数,否则返回负整数
B. 0//strcmp(str1,str2)
C. -1
D. 2
B
106. 以下程序段运行后屏幕输出为( )。
char str[]="ab\\cd";注意\\代表一个反斜杠字符
printf("%d",strlen(str));
A. 4
B. 5
C. 6
D. 7
A
107. 以下程序段运行后屏幕输出为( )。
char str[80];strcpy(str,"hello");printf("%d",strlen(str));
A. 5
B. 6
C. 7
D. 80
B
108. 若有定义:char str1[6]="abcdm",*ps,*str2="abcdef";( )是正确的。
A. strcpy(str1,str2);
B. 表达式strcmp(str1,str2)的值大于0
C. str1=str2;
D. 表达式strlen(str1)的值为6
A
109. 设有如下函数定义:
int fun(char *str)
{ char *p=str;
while ( *p != '\0') p++;
return (p-str);
}
则以下语句执行后的输出结果是( )。//返回字符串个数
printf("%d\n",fun("Student"));
A. 7
B. 8
C. 9
D. 10
A
110. 以下程序的运行结果是( )。
int fun(int array[4][4])
{ int j;
for(j=0;j<4;j++) printf("%2d",array[2][j]);
printf("\n");
}
main()
{ int a[4][4]={0,1,2,0,1,0,0,4,2,0,0,5,0,4,5,0};
fun(a);
}
A. 2 0 0 5
B. 1 0 0 4
C. 0 1 2 0
D. 0 4 5 0
C
111. 如下fun函数的类型是( )。
fun(float x)
{double y; int z ;
y=x * x ;
z=(int)y ;
return(z);
}
A. void
B. double
C. int
D. float
B
112. 以下程序运行后屏幕输出为( )。
#include<stdio.h>
int f(int x,int y)
{
return(x+y);
}
main()
{
int a=2,b=3,c;
c=f(a,b);
printf("%d+%d=%d\n",a,b,c);
}
A. 0
B. 2+3=5
C. 2+3=0
D. 3+2=5
D
113. 以下程序运行后屏幕输出为( )。//考查全局变量与局部变量的区别与围
#include<stdio.h>
int a=2,b=3;
int max(int a,int b)
{
int c;
c=a>b?a:b;
return(c);
}
main()
{
int a=4;
printf("%d",max(a,b));
}
A. 2,3
B. 2
C. 3
D. 4
B
114. 以下程序运行后屏幕输出为( )。
#include<stdio.h>
void f(int i)//两个函数中的a不一样
{
int a=2;
a=i++;
printf("%d,",a);
}
main()
{
int a=1,c=3;
f(c);
a=c++;
printf("%d",a);
}
A. 4,3
B. 3,3
C. 4,5
D. 3,5
D
115. 若有如下函数定义://注意静态变量的使用
int fun()
{
static int k=0;
return ++k;
}
以下程序段运行后屏幕输出为( )。
int i;
for(i=1;i<=5;i++) fun();
pr
展开阅读全文