《C语言程序设计》试卷(答案)
一、填空题(共12小题,每空1分,本题共25分)
1. C程序是由函数构成的,一个C源程序至少包含一个(main函数),函数是C程序的基本单位。
2. C语言源程序文件名的后缀是.C;经过编译后,生成文件的后缀是.obj;经过连接后,生成文件的后缀是.exe。
3. C语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。
4. 1111(2)=F(16)=15(10 )
5. 两个整数相除的结果为整数,5/3的结果为1,-5/3的结果为-1。
6.算术运算符的结合方向为自左至右;“++”与“――”的结合方向为自右至左。 7. 若K为int型变量且赋值11,请写出运算K++后表达式的值11,变量K的值12。 8. 结构化程序的三种基本结构:顺序结构,选择结构,循环结构。
9. “&&” 与“Ⅱ”均为双目运算符;“!”为一目运算符;条件运算符为三目运算符(选填一目、双目、三目)。
10. C语言提供的构造类型数据有数组类型、结构体类型、共用体类型。 11. 函数的返回值通过函数中的return语句获得。
12. 从变量的作用域分,变量可分为全局变量和局部变量;从变量值存在的时间看, 可以分为静态存储方式和动态存储方式。
二、选择题(共12小题,每题2分,本题共24分) 1.以下选项中正确的整型常量是(B)
A)12. B)-20 C)1,000 D)4.56 2.以下程序中不合法的用户标识符是(C) A)_123 B)printf C)A$ D)Dim
3.若变量已经正确定义并赋值,符合C语言语法规定的表达式是(B ) A)a=a+7; B)a=7+b+c,a++ C)int(12.3%4) D)a=a+7=c+b; 4.合法的C语言的赋值语句是(D)
A)a=b=58 B)k=int(a+b); C)a=58,b=58 D)--i;
5.若变量已经正确定义为int型,要给a,b,c输入数据,正确的输入语句是(D) A)read(a,b,c);
B)scanf(“%d%d%d”,a,b,c) C)scanf(“%D%D%D”,&a,%b,%c); D) scanf(“%d%d%d”,&a,&b,&c); 6.下列运算符中优先级最高的是(A) A)! B)% C)-= D)&&
7.为表示关系:X≥Y≥Z,应使用的C语言表达式为(A)
A)(X>=Y)&&(Y>=Z) B)(X>=Y)AND(Y>=Z) C)(X>=Y>=Z) D)(X>=Y)& (Y>=Z) 8.以下叙述中正确的是(D)
A)do-while语句构成的循环不能用其他语句构成的循环来代替 B)do-while语句构成的循环只能用break语句退出
C)用do-while语句构成的循环时,只有在while后的表达式为非零时结束循环 D)用do-while语句构成的循环时,只有在while后的表达式为零时结束循环
9.C语言中,字符(char)型数据在微机内存中的存储形式是(D) A)反码 B)补码 C)EBCDIC码 D)ASCⅡ码 10.设有定义语句:char a=’\\72’;则变量a(A)
A)包含一个字符 B)包含2个字符 C)包含3个字符 D)定义不合法
11. 若有定义:double W[10]; 则W数组元素的下标的上限是(A),下限是(A)。 A) 9, 0 B) 10, 0 C) 10,1 D) 9,1 12.以下叙述中正确的是(C)
A)C语言程序总是从第一个定义的函数开始执行
B)在C语言程序中,要调用的函数必须在main()函数中定义 C)C语言程序总是从main( )函数开始执行
D)C语言程序中的main( )函数必须放在程序的开始部分
三、综合题:(共5小题,1—3题每题5分,4、5题每题8分,本题共31分) 1.找出下列程序中的错误,并改正。 Void main () { int a,b; long c,d; float e,f;
scanf(“=%f%d%ld%f%5.1f”,a,b,c,d,e,f); printf(“a=%d,b=%d,c=%d,e=%d\\n”,a,b,c,e); }
改正:Void main () { int a,b; long c,d; float e,f;
scanf(“=%d%ld%ld%f%f”,a,b,c,d,e,f);
printf(“a=%d,b=%d,c=%ld,e=%5.1f\\n”,a,b,c,e);
2.找出下列程序中的错误,改正后写出程序运行的结果 Void main ()
{ int x,y=z=5,aver; x=7;
AVER=(x+y+z)/3;
printf(“AVER=%d\\n”aver); }
改正:Void main () { int x, y=5,z=5, aver; x=7;
aver=(x+y+z)/3;
printf(“AVER=%d\\n”aver); }
程序运行结果为:AVER=5
3. 写出程序运行结果
Void main () { int i,j,m,n; i=8; j=10; m=++i; n=j++;
printf(“%d,%d,%d,%d”,i,j,m,n); }
程序运行结果为:9,11,9,10
4.分析以下程序的作用 Void main ()
{ putchar(getchar()-32);}
若运行时从键盘输入小写字母a,则输出什么?
答:(1)程序的作用是将从键盘输入的小写字母转换为大写字母输出 (2)将输出大写字母A。
5.(1)条件表达式x>=0?x:-x的功能是什么?
(2)用一个条件表达式描述:从a,b,c中找出最大者赋给max。
答:(1)求x的绝对值,相当于函数fabs的功能。 (2)max=(a>b?a:b)>c?(a>b?a:b):c
四、编程题(共3小题,第1、2题每题6分,第3题8分,本题共20分) 1、输入圆的半径,输出其周长和面积。
2、按照公式S=1+2+3+------+100,求出S的值。
3、用如下4*4矩阵初始化数组a【4】【4】,求出其转置矩阵并且输出。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
第一部分 判断题
1.对于int n=3;执行n+=n-=n*n;后n的值是9。( ) 提示 正确答案为×
2.在C语言中,定义int a=b=c=5;是错的,而int a,b,c; a=b=c=5;是正确的.( ) 提示 正确答案为√
3. 若有定义int a=3,b=4,c=5; 则a+b>c&&b==c的值为1。( ) 提示 正确答案为× 4. int x=3,y=2; 则表达式(y++==--x)?y++:x++的值为3。( ) 提示 正确答案为√
5. 在C语言中,不同类型的数据不可以在一起进行算术运算。( ) 提示 正确答案为×
6. 由于计算机的计算精度很高,所以在C语言中程序计算1.0/3*3的结果肯定等于1。( ) 提示 正确答案为×
7. 当一个C语言表达式中同时含有字符型、整型、单精度和双精度类型数据参加运算时,按照\由低到高\的原则,所有的数据都必须先转换为双精度类型数据后方能参加运算。( ) 提示 正确答案为×
8. C语言与其他高级语言一样,对于所有的同级运算符均遵循左结合原则。( ) 提示 正确答案为×
9. 如果被定义函数的返回值类型是整型或字符型,使用前可以不必进行说明。( ) 提示 正确答案为√
10. 若x为整型变量、j为实型变量,当执行语句:x=(int)j;后,j也变为整型变量。( ) 提示 正确答案为×
11. 赋值运算符优先于条件运算符.( ) 提示 正确答案为× 12. “!”的优先级可以比“/”高。( ) 提示 正确答案为√
13. 两个char 型数据相加,其结果为char型。( ) 提示 正确答案为×
14. 若有定义int a; float b=2.1; 则a=int(b+3)是合法的赋值表达式。( ) 提示 正确答案为× 15. 若有int a=4,b=0;则表达式a&&!b的值为0。( ) 提示 正确答案为√ 16. C语言程序中,任何英语单词均可以作标识符。( ) 提示 正确答案为× 17. 在C语言的源程序中,注释使用越多,编译之后的可执行程序的执行效率越低。( ) 提示 正确答案为×
18. 当主程序执行完毕时,亦即程序执行完毕。 ( ) 提示 正确答案为√ 19. C程序有且仅有一个main()函数。 ( ) 提示 正确答案为√ 20. C语言中不区分大小写英文字母。 ( ) 提示 正确答案为×
21. 用C语言编写的程序是一种需要经过编译和连接才能运行的程序。( ) 提示 正确答案为√
22. 格式字符%md中的m不能为负。( ) 提示 正确答案为×
23. 实际上,可以用顺序、分支、循环三种结构构造任何算法。( ) 提示 正确答案为√ 24. 在C语言中,任何一个表达式的最后加上一个分号就构成一个合法的语句。( ) 提示 正确答案为√
25. 下面程序执行结果是32768。( ) main( ) {int a,b;
printf(\提示 正确答案为×
26. continue 语句可以用于switch结构中。( ) 提示 正确答案为× 27. break语句只能用于循环语句中。( ) 提示 正确答案为×
28. do......while循环语句至少要执行一次循环体。 提示 正确答案为√
29. 语句for(; ; ) {循环体} 和 while(1) {循环体}是等价的。( ) 提示 正确答案为√
30. 在C语言中,for语句既可以用于计数类型循环又可以用于条件类型循环。( ) 提示 正确答案为√
31. 在if...else语句中,else总是和它上面最近且未曾配对的if配对。( ) 提示 正确答案为√
32. 在if(<表达式>) <语句序列1> else<语句序列2>中的语句序列1和语句序列2可以为复合语句。( ) 提示 正确答案为√
33. C语言在判断一个量是否为真时,以非0值代表“真”,以0值代表“假”。( ) 提示 正确答案为√
34. C语言预编译命令#include
35. 宏定义不是C语句,不必在行末加分号。( ) 提示 正确答案为√
36. C语言的编译系统对宏命令的处理是在对源程序中其他成份正式编译之前进行的。( ) 提示 正确答案为√
37. 若有宏定义:#define M(x,y,z) x*y+z,则宏引用M(2+3,4+5,6+7)通过宏展开后的表达式应为(2+3)*(4+5)+6+7。 提示 正确答案为×
38. 在函数定义中,形参变量有时也可以是全局变量。( ) 提示 正确答案为× 39. 在C程序中,函数调用可以作为函数的形参。 提示 正确答案为× 40. 在C程序中,函数调用可以作为函数的实参。 提示 正确答案为√
41. 在C程序中,函数的形式参数是指针类型时,调用时对应的实参也必须是指针类型。 提示 正确答案为×
42. 对任一变量一旦被指定为某一确定类型后,该变量在程序运行时所占存储空间的多少和所能参加的运算类型便已确定了。( ) 提示 正确答案为√ 43. C语言程序必须包含库函数。( ) 提示 正确答案为×
44. 如果被定义函数的返回值是整型,可以不必进行说明。( ) 提示 正确答案为√
45. 一个计算机系统中的寄存器数目有限,不能定义任意多个寄存器变量。( ) 提示 正确答案为√
46. return语句可以带有表达式也可以不带。( ) 提示 正确答案为√
47. 若某自定义函数中无return语句,则该函数一定没有返回值。 提示 正确答案为× 48. 在C语言中,变量的初始化都是在编译阶段完成的。 提示 正确答案为×
49. 在同一源文件中,全局变量与局部变量同名,在局部变量作用范围内,全局变量的值等于局部变量的值。 提示 正确答案为×
50. C语言中,任意两个函数间不能嵌套定义,但可以互相调用。( ) 提示 正确答案为× 51. 在函数的定义中,若函数没有参数,则可以省略函数名后的括号。 提示 正确答案为× 52. 函数返回值的数据类型取决于return语句中表达式的数据类型。 提示 正确答案为× 53. 函数返回值的数据类型取决于主调函数传递过来的实参的数据类型。 提示 正确答案为×
54. 函数返回值的数据类型取决于函数定义时为函数指定的数据类型。 提示 正确答案为√ 55. 在C程序中,函数的形式参数是指针类型时,调用时对应的实参也必须是地址量。 提示 正确答案为√
56. C程序中,函数调用时用数组名作为函数的实参,则传递给形参的是整个数组。 提示 正确答案为× 57. C程序中,函数调用时用数组名作为函数的实参,则传递给形参的是数组的首元素值。 提示 正确答案为× 58. C程序中,函数调用时用数组名作为函数的实参,则传递给形参的是数组的首地址值。 提示 正确答案为√
59. 求n!既可以用递归的方式,也可以用递推的方式。 ( ) 提示 正确答案为√ 60. 在C语言中,所有函数之间都可以相互调用。 提示 正确答案为×
61. 一个C程序无论有多少个源程序文件组成,在其中一个源程序文件中定义的全局变量的作用域默认为整个C程序。 提示 正确答案为×
62. 一个C程序无论有多少个源程序文件组成,在其中一个源程序文件中定义的全局变量的作用域默认为其所在的源程序文件。
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C语言程序设计在线全文阅读。
相关推荐: