admin 管理员组文章数量: 887021
2023年12月16日发(作者:c语言中eof)
C语言练习题集(答案解析)
福建省高等学校计算机等级考试(二级
C 语言)选择题试题库
答案 试题
1. 在 C 语言源程序中,以下表达正确的选项是(
A. main
函数一定位于文件的开头
C B. 每行只好写一条语句
C. 程序中的一个语句能够写成多行
D. 每个语句的最后一定有点号
)。
2. 对于 C 语言的源程序的表达中,错误的选项是(
A. C 语言的源程序由函数构成
C B. main 函数能够书写在自定义函数以后
C. 一定包含有输入语句
D. 一行能够书写多个语句
3. 对于 C 语言数据种类的表达,正确的选项是(
A. 列举种类不是基本种类
C B. 数组不是结构种类
C. 变量一定先定义后使用
D. 不同意使用空种类
4. C 程序中 main 函数的地点( )。
A. 一定在最开始
C B. 一定在系统库函数后边
C. 能够在自定义函数后边
D. 一定在最后
)。
)。
C语言练习题集(答案解析)
5. C 语言的函数体由( )括起来。
A.()
B B. {}
C. [ ]
D. /* */
6. 对于 C 语言的表达中,不正确的选项是(
)。
A. C 程序可由一个或多个函数构成
D
B. C 程序一定包含一个 main() 函数
C. C 程序的基本构成单位是函数
D. 说明说明只好位于一条语句的后边
7. 以下表达不正确的选项是(
A. C 程序的履行老是从
D
)。
main
函数开始
main
函数
B. 一个 C 源程序一定包含一个
C. C 语言程序的基本构成单位是函数
D. 在编译 C 程序源程序时,可发现说明中的拼写错误
8. 结构化程序设计的三种基本结构是(
A. 函数结构、分支结构、判断结构
C B. 函数结构、嵌套结构、平行结构
C. 次序结构、分支结构、循环结构
D. 分支结构、循环结构、嵌套结构
9. 对于 C 语言源程序,以下表达错误的选项是(
C
A. 能够有空语句
)。
)。
C语言练习题集(答案解析)
B. 函数之间是同等的,在一个函数内部不可以定义其余函数
C. 程序调试时假如没有提示错误,就能获得正确结果
D. 说明能够出此刻语句的前方
10.
下边对于
选项是(
C 语言用户表记符的描绘,正确的)。
A. 不划分大小写
D B. 用户表记符不可以描绘常量
C. 种类名也是用户表记符
D. 用户表记符能够作为变量名
11. 以下( )是正确的变量名。
D B. if
C.
D. _f5
12. 以下( )是正确的常量。
A. E-5
DB. 1E5.1 C.
'a12' D.
32766L
13. 以下( )是正确的变量名。
D
B. -p11
C. int
C语言练习题集(答案解析)
D. p_11
14. 以下( )是正确的字符常量。 单引号括起来
A. "c"
C B. '''
C. 'W'
D. "32a"
15. 以下( )是不正确的字符串常量。 双引号括起来
A. 'abc'
AB. "12'12"
C. "0"
D. " "
16. 以下( )是错误的整型常量。
A. -0xcdf
B
B. 018
C. 0xe
D. 011
// 八进制数不可以超出
8
17. 以下( )是正确的浮点数。
A. e3
B B. .62
C.
D. 123
A
18.
如有说明语句:
char c='95';
则变量 c 包含(
)个字符。
//e
前方一定有数字,指数一定为整数
C语言练习题集(答案解析)
A. 1
B. 2
C. 3
ddd :
表示 1 到 3 位八进制数所代表的字符
xhh
表示
1 到 2 位十六进制数所代表的字符
D. 语法错误
19.
如有定义: int a=2; 则正确的赋值表达式是(
A. a-=(a*3)
A
B. double(-a)
C. a*3
D. a*4=3
20.
语句 x=(a=3,b=++a);
A. 3,3,4
CB. 4,4,3
C. 4,4,4
D. 3,4,3
21. 语句 a=(3/4)+3%2;
A. 0
B
)。
//(double)(-a)
运转后, x、 a、 b 的值挨次为(
)。
// 逗号运算符及逗号表达式
运转后, a 的值为(
)。
B. 1// 注意除号 / 两边均为整型时,结果为整数(不含小数点)
C. 2
D. 3
22. char 型变量寄存的是( )。// 考察变量种类
A
A. ASCII 代码值
B. 字符自己
C语言练习题集(答案解析)
C. 十进制代码值
D. 十六进制代码值
23.
如有定义: int x,a;则语句 x=(a=3,a+1); 运转后, x、a 的值挨次为(
A. 3,3
C B. 4,4
C. 4,3
D. 3,4
24. 如有定义: int a; 则语句 a=(3 * 4)+ 2 % 3;运转后, a 的值为( )。
A. 12
B B. 14
C. 11
D. 17
// 考察逗号表达式及逗号运算符
)。
25. 如有定义: int
a,b; double
A. x%(-3)
B. a+=-2
C. a=b=2
D. x=a+b
x,则以下不切合
C 语语言法的表达式是(
)。
//% 双侧均应为整型数据
A
26. 如有定义: int
x=2,y=3;float
A. x=x*3=2
B. x=(y==1)
C. i=float(x)
D. i%(-3)
//x*3
i;,则以下切合
C 语语言法的表达式是(
)。
不是一个变量名
B
// 应改为 i=(float)x
//% 双侧均应为整型数据
C语言练习题集(答案解析)
27.
设 double 型变量 a,b,c,e 均有值 ;对代数式 (3ae)/(bc) ,不正确的
C 语言表达式
是( )。
A. a/b/c*e*3
C
B. 3*a*e/b/c
C. 3*a*e/b*c
D. a*e/c/b*3
28.
下边表达正确的选项是(
)。
// 改为 3*a*e/b/c
A. 2/3
与
等价
与 2/3
等价
C. ++5
与 6
等价
// 独自写 ++5
是错误的,能够写成 a=++5
D. 'A' 与 "A" 等价
29.
下边表达中,错误的选项是(
A. 其算术运算对象不包含函数
A B. %( 模运算符 )的运算对象只好为整型量
C. 算术运算符的联合方向是 " 自左至右 "
D. 自加和自减运算符的联合方向是" 自右至左 "
30. 下边表达正确的选项是( )。 //++ -- 只好用于变量,而不可以用于常量或表达式
A. 强迫种类变换运算的优先级高于算术运算
A B. 若 a 和 b 是整型变量 ,(a+b)++ 是合法的
C. 'A'*'B' 是不合法的
D. "A"+"B" 是合法的
B
31.
如有定义: int k,i=2,j=4; 则表达式
k=(++i)*(j--)
的值是(
)。
)。
C语言练习题集(答案解析)
A. 8
B. 12// 注意前缀 后缀的差别
C. 6
D. 9
32. 设整型变量 a 为 5 ,使 b 不为 2 的表达式是( )。
A. b=(++a)/3
CB. b=6-(--a)
C. b=a%2
D. b=a/2
// 结果为 1
33.
如有定义: int a=1,b=2,c=3;
A. 1
则语句 ++a||++b&&++c;
运转后 b 的值为( )。
C. 2
D. 3
// 注意运算的不完整性
34.
如有定义: int i,j; 则表达式 (i=2,j=5,i++,i+j++)
A. 7
B B. 8
C. 9
D. 10
的值是(
)。
35.
如有定义: int a,b; 则表达式 (a=2,b=5,a*2,b++,a+b)
B A. 7
的值是(
)。
B. 8
C语言练习题集(答案解析)
C. 9
D. 10
36.
如有定义: int m=5,n=3;
A. 6
B. 7
C. 8
D. 9
则表达式 (m+1,n+1,(--m)+(n--))
的值是(
)。
B
37.
已知 int a;使用 scanf() 函数输入一个整数给变量
A. scanf("%d",a);
a,正确的函数调用是(
)。
B
B. scanf("%d",&a);
C. scanf("%f",&a);
D. scanf("%lf",&a);
38.
已知 double
a;使用 scanf() 函数输入一个数值给变量
a,正确的函数调用是(
)。
A. scanf("%ld",&a);
B. scanf("%d",&a);
C. scanf("%7.2f",&a);
D. scanf("%lf",&a);
D
// 输入数据时不可以规定精度
39.
已知 char a;使用 scanf() 函数输入一个字符给变量
A. scanf("%d",&a);
B
B. scanf("%lf",&a);
C. scanf("%c",&a);
D. scanf("%u",&a);
a,不正确的函数调用是(
)。
// 字符型变量与整型等价,但不与浮点型等价
C语言练习题集(答案解析)
40. putchar()
函数的功能是向终端输出(
A. 多个字符
B B. 一个字符
C. 一个实型变量值
D. 一个整型变量表达式
41. getchar() 函数的功能是从终端输入()。
A. 一个整型变量值
D B. 一个实型变量值
C. 多个字符
D. 一个字符
42.
如有定义 :int x=1234,y=123,z=12;
运转后的输出结果为( )。
)。 // char *str0;
.;puts( str0);
则语句
printf("%4d+%3d+%2d",
x, y, z);
A. 123412312
D
B.
C. 1234+1234+1234
D. 1234+123+12
43. 已有以下定义和输入语句,
int a; char c1,c2;
scanf("%d%c%c",&a,&c1,&c2);
A
若要求 a、 c1 、 c2 的值分别为 10 、 A 和 B,正确的数据输入是(
A. 10AB // 输入数据时,遇空格、回车、
B.10 A B
TAB 、及非法输入
)。
或按规定的宽度结束
C语言练习题集(答案解析)
C. 10A
B
D. 10 AB
44. 已有以下定义和输入语句:
int a,b;
scanf("%d,%d",&a,&b);
// “格式控制” 字符串中除了格式说明还有其余字符,
入 //
时应在相应地点输入
则输
B
若要求 a、 b
A. 10 20
的值分别为
10 和 20 ,正确的数据输入是(
)。
B. 10,20
C. a=10,b=20
D. 10;20
45.
以下程序的运转结果是(
void main()
{
int a=65;
char c='A';
D printf("%x,%d",a,c);
}
A. 65,a
B. 41,a
C. 65,65
D. 41,65
)。
C语言练习题集(答案解析)
46. 下边表达中,( )不是结构化程序设计中的三种基本结构之一。
A. 数据结构
A B. 选择结构
C. 循环结构
D. 次序结构
47. 下边表达中 ,( )不是结构化程序设计三种基本结构的共同特色。
A. 先判断后履行
A B. 单进口,单出口
C. 程序中没有履行不到的语句
D. 无死循环
48.
结构化程序设计不包含(
A. 最优化
A B. 自顶而下,逐渐细化
C. 模块化设计
D. 结构化编码
49.
以下运算符中优先级最高的是(
A. >
D B. ||
C. &&
)。
)。
D. + // 初等运算符() []
单目 算术 关系 逻辑(不含 !) 赋值
逗号
50.
如有定义 :int x=3,y=4; 则表达式
!x||y 的值为( )。
A
A. 1
C语言练习题集(答案解析)
B. O
C. 3
D. 4
51.
如有定义 :int i=7,j=8; 则表达式
i>=j||i A. 1 A B. 变量 i 的值 C. 0 D. 变量 j 的值 的值为( )。 52. 若希望当 a 的值为奇数时 ,表达式的值为 " 真 ",a 的值为偶数时 ,表达式的值为 "假 " 。 则不可以知足要求的表达式是()。 A. a%2==1 C B. !(a%2==0) C. !(a%2) D. a%2 53. 如有定义: int x=3,y=4,z=5; 则值为 0 的表达式是( )。 A. 'x'&&'y' D B. x<=y C. x||y+z&&y-z D. !((x // 考察运算符优先级 的值是( 54. 如有定义: int a=5,b=2,c=1; 则表达式 a-b A A. 0 )。 B. 1 C语言练习题集(答案解析) C. 2 D. -1 55. 已知 double a=5.2; 则正确的赋值表达式是( )。 A. a+=a-=(a=4)*(a=3) A B. a=a*3=2 C. a%3 D. a=double(-3) 56. 已知 char a='R'; 则正确的赋值表达式是( )。 A. a=(a++)%4 A B. a+2=3 C. a+=256-- D. a='078' 57. 已知 int a='R'; 则正确的表达式是( A. a%10 )。 A B. a=int(3e2) C. 2*a=a++ D. a=a+a=a+3与 C 同属一类错误 58. 设单精度型变量 f 、 g 的值均为 2.0 ,使 f 为 4.0 的表达式是( )。 A. f+=g AB. f-=g+2 C. f*=g-6 D. f/=g*10 C语言练习题集(答案解析) 59. 如有定义: float x=3.5;int z=8; 则表达式 x+z%3/4 的值为( )。 B C. 3 D. 4 60. 如有定义 :int a=1,b=2,c=3,d=4,x=5,y=6; 为( )。 A. 0 则表达式 (x=a>b)&&(y=c>d) 的值 A B. 1 C. 5 D. 6 61. 若 有 定 义 : int a=2,b=3; float x=3.5,y=2.5; 则 表 达 式 (float)(a+b)/2+(int)x%(int)y 的值是( )。 A B. C. D. 62. 如有定义: int b=7; float a=2.5,c=4.7; 则表达式 a+(b/2*(int)(a+c)/2)%4 是( )。 的值 C A. 2.5 //(b/2*(int)(a+c)/2)=10 注意运算次序 C语言练习题集(答案解析) 63. 如有定义: int a=6,b=2;char ( )。 A. 7 C B. 8 C. 9 D. 表达式错误 c1='a',c2='b'; 则表达式 a+b%5+c2-c1 的值是 64. 以下的 if 语句中, x 的值必定被从头赋值的是( A. if(x==y) x+=y; // 注意 if 语句后的空语句 ; )。 B. if(x>y && x!=y ); x+=y; C. if(x!=y) B scanf("%d",&x); else scanf("%d",&y); D. if(x { x++;y++; } 65. C 语言对 if 嵌套语句的规定: else 老是与( )配对。 A. 第一个 if B B. 以前近来的且还没有配对的 if C. 缩进地点同样的 if D. 以前近来的 if C语言练习题集(答案解析) 66. 对于整型变量 x,下述 if 语句( )与赋值语句: x=x%2==0?1:0; 不等价。 B 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; 67. 如有定义 :int x=1,y=2,z=4; 则以下程序段运转后 z 的值为( )。 if(x>y) z=x+y; else z=x-y; B A. 3 B. -1 C. 4 D. 不确立 68. 如有定义 :int a=1,b=2,c=3; 则履行以下程序段后 a,b,c 的值分别为( if (a {c=a;a=b;b=c;} D 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 的值为( )。 )。 C语言练习题集(答案解析) int x=6,y=5; int a; a=(--x==y++)?x:y+1; A. 0 B. 1 C. 6 D. 5 70. 以下程序的运转结果是( )。// 注意分支中有无 break 的差别 void main() { int n='e'; switch(n--) { default: printf("error case 'a': case 'b': printf("good case 'c': printf("pass case 'd': printf("warn } } "); C "); break; "); "); A. error B. good C语言练习题集(答案解析) C. error good D. warn 71. 以下程序的运转结果是( void main() { int n='c'; switch(n++) { default: printf("error case 'a': case 'b': printf("good case 'c': printf("pass case 'd': printf("warn } } )。 "); break; C "); break; "); "); A. pass B. warn C. pass warn D. error 72. 以下程序的运转结果是( D void main( ) { int n=5; )。 C语言练习题集(答案解析) if(n++>=6) printf("%dn",n); else printf("%dn",++n); } A. 4 B. 5 C. 6 D. 7 73. 设有整型变量 x,下述语句( )不会出现死循环。 A. for(;;x+=1); B B. for(;(x=getchar())!='n';); C. while(1) {x++;} D. for(x=10;;x--); 74. 对于整型变量 x,与 while(!x) 等价的是( )。 A. while(x!=0) BB. while(x==0) C. while(x!=1) D. while(~x) 75. 对于整型变量 x 和 y,语句 A for(x=0,y=0;(y!=123)&&(x<4);x++) 中的 “y++ ;”被履行( )。 y++; C语言练习题集(答案解析) A. 4 次 次 C. 123 次 次 76. 在 c 语言中 while 循环和 do--while 循环的主要差别是( )。 A. do--while 循环体内能够使用 break 语句, while 循环体内不可以使 用 break 语句 B. do--while 的循环体起码无条件履行一次, while 的循环体不是 B C. do--while 循环体内能够使用 continue 语句,while 循环体内不可以使用 continue 语句 D. while 的循环体起码无条件履行一次, do--while 的循环体不是 77. 以下程序段运转后,循环体运转的次数为( int i=10,x; for (;i<10;i++) x=x+i; B A. 10 B. 0 C. 1 D. 无穷 78. 以下程序段运转后变量 n 的值为( )。 int i=1,n=1; D for (;i<3;i++) {continue;n=n+i;} )。 A. 4 C语言练习题集(答案解析) B. 3 C. 2 D. 1 79. 以下程序的运转结果是( void main() { int sum = 0, item while(item { item++; sum += item; B if(sum==5) break; } printf("%dn",sum); } A. 10 B. 15 C. 5 D. 6 80. 以下程序的运转结果是( C void main() < 5) = 0; )。 )。 C语言练习题集(答案解析) { int sum = 0, item while(item { item++; sum += item; if(sum>=6) break; } printf("%dn",sum); } A. 10 B. 15 C. 6 D. 7 81. 以下程序的运转结果是( void main() { B int sum = 0, item while(item { item++; = 0; < 5) )。 = 0; < 5) C语言练习题集(答案解析) if(item == 2) continue; sum += item; } printf("%dn",sum); } A. 10 B. 13 C. 15 D. 1 82. 以下数组定义中,正确的选项是( )。 A. int a[5]={0}; A B. int a[]={0 1 2}; // int a[]={0 , 1,2}; 注意元素与元素之间加逗号 C. int a[5]=0; // int a[5]={0}; D. int a[]; // 一定指明数组大小 83. 以下数组定义中,正确的选项是( )。 A. int a[10]; A B. int n=10,a[n]; // 下标一定是常量表达式 C. int N=10;int a[N]; D. int n;scanf("%d",&n); int a[n]; 84. 已知 int a[10]; 则对 a 数组元素引用不正确的选项是( )。 A A. a[10] //10 个元素的数组下标范围从 0 到 9 ,故本题越界 C语言练习题集(答案解析) B. a[3+5] C. a[10-10] // 引用数组元素时,下标能够是整型常量或整型表达式 D. a[5] 85. 如有定义 :int a[3]={0,1,2}; 则 a[1] 的值为( A. 0 B B. 1 C. 2 D. 3 )。 86. 如有定义 :int a[5]={1,2,3,4,5}; 值为( )。 A. 6 则语句 a[1]=a[3]+a[2+2]-a[3-1]; 运转后 a[1] 的 A B. 5 C. 1 D. 2 87. 以下能对一维数组 a 进行正确初始化的语句是( A. int a[5]=(0,0,0,0,0); B. int a[5]=[0]; // 注意使用大括号 )。 D C. int a[5]={1,2,3,4,5,6,7}; // 剩余 2 个 D. int a[]={0}; // 定义一个只有一个元素的一维数组,指为 88. 下边程序段的运转结果是( int i=0,a[]={3,4,5,4,3}; do{ 0 )。 D C语言练习题集(答案解析) a[i]++; }while(a[++i]<5); for(i=0;i<5;i++) printf("%d ",a[i]); 89. 下边程序段的运转结果是( int i=0,a[]={7,5,7,3,8,3}; do{ a[i]+=2; }while(a[++i]>5); C for(i=0;i<6;i++) printf("%d ",a[i]); )。 A. 9795105 B. 9593103 C. 9573 83 D. 7573 83 90. 下边程序段的运转结果是( A int i=0,a[]={1,2,3,4,5}; do{ )。 C语言练习题集(答案解析) a[i]+=10; }while(a[++i]>2); for(i=0;i<5;i++) printf("%d A.11 2345 B.1 2345 C. 11 12 13 14 15 ",a[i]); 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 s=s+a[i][j]; C 则履行该程序段后 ,s 的值是( A. 0 B. 1 C. 2 D. 3 )。 92. 有以下定义 int a[][3]={1 , 2 , 3 , 4 , 5, 6, 7 , 8}; // 考察二维数组的初始化 B 则数组 a 的行数是( A. 2 )。 C语言练习题集(答案解析) B. 3 C. 4 D. 没法确立的 以下数组定义中,正确的选项是93. ( A. int a[2][3]={1,2,3,4,5,6,7}; )。 //剩余 1个 D B. int a[][]={{1,2,3},{4,5,6},{7,8,9}}; C. int a[2][]= D. int a[][4]= {1,2,3,4,5,6}; {6}; // 第二维长度不可以省 94. 如有定义 :int a[3][4]={{1,2},{0},{1,2,3}}; A. 0 B. {1,2} C. 1 D. 3 则 a[1][1] 的值为( )。 A 95. 如有定义 :int a[3][3]; 则表达式 &a[2][1]-a A. 7 B. 8 C. 6 D. 9 //&a[2][1]-a 的值为( )。 代表二者之间的元素个数,近似指向同种种类的指针相减 A 96. 如有定义 :int i=0,x=0;int 值为( )。 a[3][3]={1,2,3,4,5,6,7,8,9}; 则以下程序段运转后 x 的 C for (;i<3;i++) A. 0 x+=a[i][2-i]; C语言练习题集(答案解析) B. 12 C. 15 D. 18 97. 如有定义 int a[2][3]; 则对数组元素的非法引用是( A. a[0][1/2] DB. a[1][1] C. a[4-4][0] D. a[0][3] )。 98. 以下数组定义中,正确的选项是( )。 A. int a[2][]={1,2,3,4,5}; C B. int a[][2]={{0},{}}; C. int a[2][2]={{1,2},{3}}; D. int a[][]={1,2,3,4}; 99. 如有定义 int a[][3]={1,2,3,4,5,6,7,8,9}; 的值为( )。 则表达式 sizeof(a)/sizeof(a[0]) A. 3 D B. 4 C. 5 D. 9 100. 设有以下变量定义: A char str1[]="string",str2[8],*str3,*str4="string"; ( )是正确的。 C语言练习题集(答案解析) A. strcpy(str1,"China"); B. str2="China"; C. strcpy(*str3,"China"); D. strcpy(str4[0],"China"); 101. 有以下定义: char str[6]={ 则语句 : printf("%s",str); D 的输出结果是( )。 A. ab B. abdef C. ab0 D. ab 'a','b','0','d','e','f'}; 102. 设有以下数组定义: char str[8]={ "FuJian"}; 则分派给数组 str 的储存空间是( C A. 6 B. 7 C. 8 D. 9 103. 如有定义 :char a[]="abcdef";char B ( )。 b[]="xyz"; 则以下程序段运转后屏幕输出为 )个字节。 C语言练习题集(答案解析) strcpy(a,b); printf("%c",a[2]); A. c B. z C. 0 D. d 104. 以下程序段运转后屏幕输出为( char a[]="abc0mis"; printf("%d",strlen(a)); )。 B. 8 C. 3 D. 4 105. 如有定义 :int a=2; 则语句 a=strcmp("miss","miss"); A. 1 B 运转后 a 的值为( )。 // 相等返回 0 ,字符串 1> 字符串 2,返回一个正整数,不然返回负整数 B. 0 //strcmp(str1,str2) C. -1 D. 2 106. 以下程序段运转后屏幕输出为( )。 char str[]="abcd"; 注意 代表一个反斜杠字符 B printf("%d",strlen(str)); A. 4 C语言练习题集(答案解析) B. 5 C. 6 D. 7 107. 以下程序段运转后屏幕输出为( )。 char str[80];strcpy(str,"hello");printf("%d",strlen(str)); A. 5 A B. 6 C. 7 D. 80 108. 如有定义: char str1[6]="abcdm",*ps,*str2="abcdef"; A. strcpy(str1,str2); B B. 表达式 strcmp(str1,str2) C. str1=str2; D. 表达式 strlen(str1) 的值为 6 的值大于 0 ( )是正确的。 109. 设有以下函数定义: int fun(char { char *p=str; while ( *p != '0') A return (p-str); } 则以下语句履行后的输出结果是( printf("%dn",fun("Student")); )。// 返回字符串个数 p++; *str) C语言练习题集(答案解析) A. 7 B. 8 C. 9 D. 10 110. 以下程序的运转结果是( int fun(int { int j; for( j=0;j<4;j++) printf("n"); } main() A { int a[4][4]={0,1,2,0,1,0,0,4,2,0,0,5,0,4,5,0}; fun(a); } )。 array[4][4]) printf("%2d",array[2][j]); 111. 以下 fun 函数的种类是( )。 fun(float x) C {double y; int z ; y=x * x ; C语言练习题集(答案解析) z=(int)y return(z); } A. void B. double C. int D. float ; 112. 以下程序运转后屏幕输出为( #include int f(int x,int y) )。 { return(x+y); } main() B { int a=2,b=3,c; c=f(a,b); printf("%d+%d=%dn",a,b,c); } A. 0 B. 2+3=5 C. 2+3=0 C语言练习题集(答案解析) D. 3+2=5 113. 以下程序运转后屏幕输出为( #include int a=2,b=3; int max(int { int c; c=a>b?a:b; return(c); } D main() { int a=4; printf("%d",max(a,b)); } A. 2,3 B. 2 C. 3 D. 4 114. 以下程序运转后屏幕输出为( B #include void f(int i) // 两个函数中的 a 不同样 a,int b) )。 // 考察全局变量与局部变量的差别及范围 )。 C语言练习题集(答案解析) { 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 115. 如有以下函数定义: // 注意静态变量的使用 int fun() { D static int k=0; return ++k; } C语言练习题集(答案解析) 以下程序段运转后屏幕输出为( )。 int i; for(i=1;i<=5;i++) printf("%d",fun()); A. 0 B. 1 C. 5 D. 6 116. 下边程序的输出结果是( #include int global=100; fun() { int global=5; return ++global; D } void main() { printf("%dn",fun()); } A. 100 B. 101 fun(); )。 C语言练习题集(答案解析) C. 5 D. 6 117. 以下对于 C 语言函数的描绘中,正确的选项是( )。 A. 函数的定义能够嵌套,但函数的调用不可以够嵌套 B B. 函数的定义不可以够嵌套,但函数的调用能够嵌套 C. 函数的定义和函数的调用都能够嵌套 D. 函数的定义和函数的调用都不可以够嵌套 118. 如有以下宏定义, #define MOD(x,y) x%y 则履行以下程序段后, z 的值是( )。 int z,a=15,b=100; D z=MOD(b,a); A. 100 B. 15 C. 11 D. 10 119. 以下表达中,正确的选项是( A. “#define B )。 PRICE= 30 ”定义了与 30 等价的符号常量 B. 预编译办理命令行都一定以 “# ”开头 C. 宏名只好包含大写字母和数字字符 PRICE // 能够包含小写字母 D. 在程序的一行上能够书写几个有效的宏定义 A 120. 以下表达中,正确的选项是( )。 C语言练习题集(答案解析) A. 宏睁开不占用运转时间,只占用编译时间 B. 预编译办理命令行一定以分号结束 C. 一个源程序只好有一个预编译办理命令行 D. 使用带参数的宏定义时,应当说明每个参数的数据种类 121. 以下的表达中不正确的选项是( )。 A. 宏睁开不占用运转时间,只占用编译时间 C B. 宏名无种类 C. 宏名一定用大写字母表示 D. 预办理命令行都一定以 # 号开始 如有定义 :#define A. 12 A B. 4 C. 3 D. 不确立 123. 以下程序运转后 ,屏幕输出为( )。 #define MIN(a,b) ((a)<(b)?(a):(b)) main() {int x=2,y=3,z; C z=2*MIN(x,y); printf("%d",z); } A. 2 PI 3,则表达式 PI*2*2 的值为( ) 122. 。 C语言练习题集(答案解析) B. 3 C. 4 D. 6 124. 下边程序的输出结果是( )。 #include #define SQR(x) (x*x) void main() { int a,b=3; A a=SQR(b+2); printf("n%d",a); } A. 11 B. 25 C. 不定值 D. 产生错误 125. 下边程序的输出结果是( )。 #include #define ONE 1 C #define TWO ONE+1 #define THREE TWO+1 void main() C语言练习题集(答案解析) { printf("%dn",THREE-ONE); } A. 产生错误 B. 1 C. 2 D. 3 126. 以下表达中正确的选项是( )。 A. 预办理命令行一定位于 C 源程序的开端地点 B B. 在 C 语言中,预办理命令行都以 "#" 开头 C. 每个 C 程序一定在开头包含预办理命令行: #include D. C 语言的预办理不可以实现宏定义和条件编译的功能 127. 设有以下语句,则( )是对 a 数组元素的不正确引用,此中 *p=a; 0 ≤i< 10 。 int a[10]={0,1,2,3,4,5,6,7,8,9}, A. a[p-a] D B. *(&a[i]) C. p[i] D. *(*(a+i)) 128. 对于基种类同样的两个指针变量之间,不可以进行的运算是( )。 A. < C B. = C. + C语言练习题集(答案解析) D. - 129. 履行以下程序段的输出结果是( int a=10,*p=&a; printf("%d",++*p); B A. 10 B. 11 C. 变量 a 的地点 D. 变量 a 的地点 + 1 130. 以下程序段运转后 *(p+3) 的值为( )。 char a[]="good"; char *p; p=a; A A. 'd' B. '0' C. 寄存 'd' 的地点 D. 'o' 131. 以下程序段运转后 *(++p) 的值为( )。 char a[5]="work"; char *p; C p=a; A. 'w' B. 寄存 'w' 的地点 )。 C语言练习题集(答案解析) C. 'o' D. 寄存 'o' 的地点 132. 如有定义 :int *p,a=4; A. a,p B B. &a,p C. &a,*p D. a,*p p=&a; 则以下均代表地点的是( )。 133. 如有说明语句: double *p,a; 则能经过 scanf 语句正确给输入项读入数据的程序段是( )。 A. *p=&a;scanf("%lf",p); D B. *p=&a;scanf("%lf",*p); C. p=&a;scanf("%lf",*p); D. p=&a;scanf("%lf",p); 134. 在 16 位编译系统上, 如有定义 int a[]={10,20,30},*p=&a; 表达错误的选项是( )。 当履行 p++; 后以下 A. p 向高地点移了一个字节 A B. p 与 a+1 等价 C. 语句 printf("%d",*p); D. p 指向数组元素 a[1] 输出 20 135. 下边语句正确的选项是( )。 B A. int *p; *p=20; B. char *s="abcdef"; printf("%sn",s); C语言练习题集(答案解析) C. char str[]="abcd"; str++; // 数组名不可以改变 //%s 输出字符串,一定以 ’0 ’结束 D. char str[]={'a','b','c'};printf("%s",str); 136. 如有以下程序段,且 是( )。 0 ≤i< 4 , 0 ≤j<3 ,则不可以正确接见 a 数组元素的int i,j,(*p)[3]; int a[][3]={1,2,3,4,5,6,7,8,9,10,11,12}; p = a; D A. *(*(a+i)+j) B. p[i][ j] C. (*(p+i))[j] D. p[i]+j 137. 若函数 fun 的函数头为: int fun(int i, int j) 且函数指针变量 p 定义以下: int(*p)(int B i, int j); 则要使指针 p 指向函数 fun 的赋值语句是( )。 A. p=*fun; B. p=fun; C. p=fun(i,j); D. p=&fun; 138. 设有以下变量定义: D char aa[][3]={'a','b','c','d','e','f'}; char (*p)[3]=aa; C语言练习题集(答案解析) 则以下程序段的运转结果是( )。 p++; printf("%c",**p); A. a B. b C. c D. d 139. 以下程序段运转后 x 的值为( )。 int a[]={1,2,3,4,5,6,7,8}; int i,x,*p; x=1; p=&a[2]; D for(i=0;i<3;i++) x*=*(p+i); A. 不确立 B. 24 C. 120 D. 60 140. 以下程序段运转后 x 的值为( )。 int a[]={1,2,3},b[]={4,2,5}; B int *p,*q; int i,x; C语言练习题集(答案解析) p=a; q=b; for(i=0;i<3;i++) if(*(p+i)==*(q+i)) x=*(p+i)*2; A. 2 B. 4 C. 6 D. 不确立 141. 以下程序段运转后 x 的值为( )。 int a[9]={1,2,3,4,5,6,3,8,9}; int *p,*q; int i,x; p=&a[0]; q=&a[8]; C for(i=0;i<3;i++) if(*(p+i)==*(q-i)) x=*(p+i)*2; A. 2 B. 4 C. 6 D. 不确立 A 142. 下边程序的输出结果是( )。 C语言练习题集(答案解析) #include void main() { int i; char *s="abc"; for(i=0;i<3;i++) printf("%sn",s+i); } A. abc bc c B. c bc abc C. abc c bc D. a ab abc 143. A 下边程序的输出结果是( )。 #include C语言练习题集(答案解析) void main() { char *str="12345",*ps=str+4; printf("%cn",ps[-4]); } A. 1 B. 2 C. 3 D. 错误 144. 以下程序履行时,输入 1 2 3 4 5< 回车 > ,输出为: #include #define N 5 void main() { int a[N]; A int *p=a;
版权声明:本文标题:C语言练习题集(答案解析) 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1702701411h427356.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论