C语言练习题答案.docx
- 文档编号:10219119
- 上传时间:2023-02-09
- 格式:DOCX
- 页数:58
- 大小:29.58KB
C语言练习题答案.docx
《C语言练习题答案.docx》由会员分享,可在线阅读,更多相关《C语言练习题答案.docx(58页珍藏版)》请在冰豆网上搜索。
C语言练习题答案
福建省高等学校计算机等级考试(二级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. 12341234123412341231231231212
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 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 z||1)//考查运算符优先级 A 54. 若有定义: int a=5,b=2,c=1;则表达式a-b 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 { 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 {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[
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 练习题 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)