c语言考试题库_第1页
c语言考试题库_第2页
c语言考试题库_第3页
c语言考试题库_第4页
c语言考试题库_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一、单选题(每题 1 分,共 100 题)1 .C 语言源程序文件是后缀为 ( 未填 )的文件。 错误 正确答案:AA. .cB. .exeC. .objD. .bat2 .C 语言中主函数的个数是( 未填 )。 错误 正确答案: DA. 2 个B. 任意个C.10 个D. 1 个3. 定义指针变量时, 需要在指针变量名前加上 ( 未填 ) 错误 正确答案: CA.!B.D.&4. 变量的指针, 其含义是指该变量的 ( 未填 ) 错误 正确答案:BA. 值B. 地址C.名D.标志5. 若定义: int a=511,*b=&a ;果为( 未填 ) 错误 正确答案:A. 无确定B.

2、a 的地址C.512D.5116. 若有以下定义int a10,*p=a则 printf("%dn",*b) ;的输出结D;则p+5表示(未填)错误正确答案: AA. 元素a5的地址B. 元素a5的值C. 元素a6的地址D.元素a6的值7. 下列变量名中合法的是( 未填 ) 错误 正确答案: AA.TomB.3a6bC.6a7bD.5ABC8. C 语言中的标识符只能由字母, 数字和下划线三种字符组成, 且第一个字符( 未填 )。 错误 正确答案: CA. 必须为字母B. 必须为下划线C. 必须为字母或下划线D.可以是字母,数字和下划线中任一字符9. 表达式 18/4*sq

3、rt(4.0)/8 值的数据类型为 ( 未填 ) 。 错误 正 确答案: CA.intB.floatC.doubleD.不确定10. 若希望当A 的值为奇数时, 表达式的值为真,A 的值为偶数时,表达式的值为假, 则以下不能满足要求的表达式是( 未填 )。 错误正确答案: CA.A%2=1B.!(A%2=0)C.!(A%2)D.A%211. 下列数据中,为字符的是( 未填 )。 错误 正确答案: DA. ABB."A"C.HowD.'A'12. 下列不合法的实数是( 未填 ) 错误 正确答案: CA.34.65B.6.3E2C.e3D.54.313. 设有说

4、明: charw;intx;float y;doublez; 则表达式w*x+z-y值的数据类型为( 未填 )。 错误正确答案:DA.floatB.charC.intD.double14. 已知有以下定义char a;int b;float c;double d;则表达式 a*b+c-d 的结果为( 未填 )型。错误 正确答案: AA.doubleB.intC.floatD.char15. 下面程序的输出是( 未填 )。main()int x=10,y=3;printf(“ %d n” ,y=x%y);错误 正确答案: BA.0B.1C.3D.不确定的值16. 已知变量定义i=4,则执行表达式

5、k=i+后,k的值为(未填)。错误 正确答案: CA.2B.3C.4D.517. 在C语言中,不正确的int类型常量是(未填)。错误正确答案: BA.0453B.1.5C.32768D.-3276818. 下列不正确的转义字符是( 未填 )。 错误 正确答案: CA.'B."C.074'D.0'19. 下列浮点数的表达中不正确的是( 未填 ) 错误 正确答案:DA.223B.719E22C.2e3D.12e2.020. 字符 (char) 型数据在微机内存中的存储形式是( 未填 ) 错误 正确答案: DA. 反码B. 补码C.EBCDICMD.ASCII 码2

6、1 .以下实型常量中,符合C语言语法的是(未填)。错误正确答案: AA 5E-3B 1.2E0.5C E15D 3.14.159E22 .7/2 的结果为( 未填 )型。 错误 正确答案: BA.doubleB.intC.floatD.char23. 函数 double sqrt(x) 的功能是( 未填 ) 错误 正确答案: BA. 求 x 的平方B. 求 x 的平方根C. 求 x 的对数D.求x的绝对值24. C 语言中,若未说明函数的类型,则系统默认该函数的类型是未填 ) 错误 正确答案: CA.float 型B.long 型C.int 型D.double 型25. 下列程序的输出结果是(

7、 未填 )main() int a=4;a*=a+=6;printf( “ %d n” ,a); 错误 正确答案: DA.40B.60C.80D.10026.定义a为整型,下列表达式a=3>6的运行后,a的值为(未填)错误 正确答案: AA.0B.1C.3D.表达式错误27. 设已定义 x 为 double 类型变量x=213.82631;printf("%-6.2en",x);则以上语句( 未填 )。错误 正确答案: CA. 输出格式描述符的域宽不够,不能输出B. 输出为21.38e+01C.输出为 2.14e+002D.输出为-2.14e228. 阅读下面的程序#

8、include<stdio.h>void main()int i,j;i=010;j=9;printf("%d,%d",i-j,i+j);则程序的运行结果是( 未填 )错误 正确答案: DA. 1,19B. -1,19C. 1,17D. -1,1729. 已知 int i,a; 执行语句” i=(a=2*3,a*5),a+6; ”后,变量a的值是( 未填 )。 错误 正确答案: AA. 6B. 12C. 30D. 3630. 若有定义: int a, b; , 通过语句 scanf(" d; d",&a , &b);能把整数

9、3 赋给变量a, 5 赋给变量 b 的输入数据是( 未填 )。 错误 正确答案: CA 3 5B 3C 3 ; 5D 3531. 设有 int a=4; float b=9.5; 则执行printf("a=%d,b=%4.2fn",a,b); 后, 屏幕上显示 ( 未填 ) 错误 正确答案: CA. a=%d,b=%fnB. a=%d,b=%fC. a=4,b=9.50D. a=4,b=9.532. 表达式 18/4*sqrt (4.0)/8 值的数据类型为( 未填 )。 错误 正确答案: CA.intB.floatC.doubleD.不确定33. 下列程序执行后的输出结果

10、是( 未填 )。main() char x=0xFFFF; printf("%d n",x-); 错误 正确答案: CA.-32767B.FFFEC.-1D.-3276834. 已知double a;使用scanf()函数输入一个数值给变量 a,正确的函数调用是( 未填 )。 错误 正确答案: DA. scanf("%ld",&a ) ;B. scanf("%d",&a ) ;C. scanf("%7.2f",&a) ;D. scanf("%lf",&a ) ;3

11、5. C 语言中数组下标的下限是( 未填 )。 错误 正确答案: BA.1B.0C. 视具体情况而定D.无固定下限36. 有如下条件表达式,若a=2、 b=4、 c=5 、 d=7 则表达式的值为( 未填 )。 a>b? a:c>d?c:d 错误 正确答案: DA.2B.4C.5D.737. 下列 if 语句中,不正确的是( 未填 )。 错误 正确答案: CA.if(x>y);B.if(x=y) x+=y;C.if(x!=y) scanf("%d",&x) else x=1;D.if(x<y) x+;y+;38. 要用C语言表示数学关系式an

12、bnc,正确的表达式是(未填),错误 正确答案: DA a>=b>=cB( a>=b) & (b>=c)C (a>=b) | (b>=c)D( a>=b) && (b>=c)39. 两次运行下面程序,如果从键盘分别输入 3 和 2,则输出结果是( 未填 )#include<stdio.h>void main()int x;scanf("%d",&x);if(x+>2) printf("%d",x);else printf("%dn",x-

13、); 错误 正确答案: AA.4 和 3B.4 和 2C.4 和 1D.3 和 240.设x, y和z都是int型变量,且x=3, y=4, z=5,则下面表达式中,值为 0 的表达式是( 未填 ) 错误 正确答案: DA. x&&yB. x<=yC. x|+y&&y-zD. !(x<y&&!z|1)41. 下面( 未填 )不是 c 语言的关键字。 错误 正确答案: CA.ifB.gotoC.printD.else42. 以下 4 个选项中,不能看做一条语句的是( 未填 ) 错误 正确答案: DA ;B a=5,b=2.5,c=3.6

14、;C. if( a<5) ;D. if ( b!=5 ) x=2;y=6;43. 已知 int x=10,y=20,z=30; 以下语句执行后 x,y,z 的值是( 未填 )。 if(x>y) z=x; x=y; y=z; 错误 正确答案: BA. x=10, y=20, z=30B. x=20, y=30, z=30C. x=20, y=30, z=10D. x=20, y=30, z=2044. 以下程序的输出结果是( 未填 )。#include ” stdio.h ”main()int a=5, b=4, c=6, d;printf( ” %d n” , d=a>b?

15、a>c?a:c :b); 错误 正确答案: CA.5B.4C.6D.不确定45. 下列说法正确的是( 未填 )。 错误 正确答案: DA break 语句仅能使用在 switch 结构中B.执行continue语句可以结束包含它的整个循环结构C.执行循环体中的break语句可以结束语本次循环D.执行break语句可以结束包含它的循环结构46. 下面有关 for 循环的正确描述是( 未填 )。 错误 正确答案: DA.for 循环只能用于循环次数已经确定的情况B.for 循环是先执行循环体语句,后判断表达式C. 在 for 循环中,不能用break 语句跳出循环体D.for 循环的循环体语

16、句中, 可以包含多条语句, 但必须用花括号括起来47. 下列保留字中用于构成循环结构的是( 未填 )。 错误 正确答案: BA ifB whileC switchD default48. 以下正确的描述是( 未填 )。错误 正确答案: BA. continue 语句的作用是结束整个循环的执行B. 只能在循环体内和 switch 语句体内使用 break 语句C. 在循环体内使用 break 语句或 continue 语句的作用相同D. 从多层循环嵌套中退出时 , 只能使用 goto 语句49. 有以下程序main() int i, j;for(j=10;j<11;j+) for(i=9;

17、i=j-1;i+)printf("%d",j);输出结果是( 未填 )。 错误 正确答案: BA.11B.10C.9D.10 1150. 若有如下语句int x=3;do printf("%d 'n",x-=2);while(!(-x);则上面程序段( 未填 ) 错误 正确答案: BA. 输出的是1B.输出的是1和-2C. 输出的是3 和 0D. 是死循环51. 以下程序的运行结果为( 未填 )#include "stdio.h"main() int m,n;for(m=0,n=10;m<n;m+=3,n-);print

18、f("%d,%d n",m,n); 错误 正确答案:A. 6,7B. 7,6C. 9,7D. 7,952. 在下述程序中,判断i>j 共执行的次数是( 未填 )main() int i=0, j=10, k=2, s=0;for (;) i+=k;if(i>j) printf("%d",s) ;break;s+=i; 错误 正确答案: DA.4B.7C.5D.653. 若 for 循环用以下形式表示: for( 表达式 1; 表达式 2; 表达式3) 循环体语句,则执行语句 for(i=0;i<3;i+) printf("*&

19、quot;);时,表达式 1 执行 次,表达式 3 执行 次( 未填 ) 错 误 正确答案: AA.1 3B.1 1C.3 1D.3 354. 程序运行的结果是( 未填 )main()int n=0;while(n+<=1)printf("%dt",n); 错误 正确答案: AA.1 2B.0 1C.1D.1 155. 下面程序的输出结果是( 未填 )。main() int x=3,y=6,a=0;while (x+!=(y-=1)a+=1;if (y<x) break;printf("x=%d,y=%d,a=%dn",x,y,a); 错误

20、正确答案: DA.x=4,y=4,a=1B.x=5,y=5,a=1C.x=5,y=4,a=3D.x=5,y=4,a=156. 在下列选项中,没有构成死循环的是( 未填 ) 错误 正确答案: DA. int i=100;while (1) i=i%100+1;if(i>100 ) break;B. for ( ; ) ;C. int k=10000;dok+;while(k>10000) ;D. int s=36 ; while ( s) -s;57. 下面程序的功能是将从键盘输入的一对数, 由小到大排序输出,当输入一对相等数时结束循环,请选择填空。( 未填)#include <

21、;stdio.h>main() int a,b,t;scanf("%d%d",&a,&b);while()if(a>b)t=a;a=b;b=t;printf("%d,%d n",a,b);scanf("%d%d",&a,&b); 错误 正确答案: BA. !a=bB. a!=bC. a=bD. a=b58. 有如下程序main() int x=23;do printf("%d",x-);while(!x);该程序的执行结果是( 未填 ) 错误 正确答案: BA.321B.

22、23C. 不输出任何内容D. 陷入死循环59. 有以下语句,则下面( 未填 )是正确的描述static char x =“ 12345” ;static char y = 1 , 2 , 3 , 4 , 5 ; 错误 正确答案: BA. x 数组和 y 数组的长度相同。B. x 数组长度大于y 数组长度。C. x 数组长度小于y 数组长度D. x 数组等价于 y 数组。60. 有语句 char str110,str210="china" 则能将字符串china 赋给数组 str1 的正确语句是( 未填 )。 错误 正确答案: BA. str1="china&quo

23、t;B. strcpy(str1,str2);C. str1=str2;D. strcpy(str2,str1);61. 以下正确的语句是( 未填 )。错误 正确答案: DA. int a14=1,2,3,4,5;B. float x3 =1, 2 , 3 ;C. long b23=1,1,2,1,2,3;D. double y 3=0;62. 下述对C语言字符数组的描述中错误的是(未填)。错误正确答案: CA. 字符数组可以存放字符串B. 字符数组中的字符串可以整体输入、输出C. 可以在赋值语句中通过赋值运算符 "=" 对字符数组整体赋值D. 不可以用关系运算符对字符数组

24、中的字符串进行比较63. 以下程序的输出结果是( 未填 )。main()int a44=1,3,5,2,4,6,3,5,7;printf("%d%d%d%dn",a00,a11,a22,a33); 错误 正确答案: BA. 0650B. 1470C. 5430D. 输出值不定64. 列不能正确进行字符串赋值操作的语句是( 未填 ) 错误 正确答案: CA. char str10;gets(str);B. char*str;str=“a” ;C. char*str;str= a ;D. charstr10;strcpy(str, “ hello ” );65. 以下说法中正确

25、的是( 未填 )A. C语言程序总是从第一个的函数开始执行B.在C语言程序中,要调用的函数必须在 main()函数中定义C. C语言程序总是从main()函数开始执行D. C语言程序中的main()函数必须放在程序的开始部分66. 如果一个函数位于C程序文件的上部,在该函数体内说明语句后的复合语句中定义了一个变量,则该变量( 未填 )。 错误 正确答案: CA. 为全局变量,在本程序文件范围内有效B. 为局部变量,只在该函数内有效C. 为局部变量,只在该复合语句中有效D. 定义无效,为非法变量67. 若函数的定义为:fun (char ch) 那么该函数的返回值是( 未填 )错误 正确答案:

26、DA void 型B char 型C float 型D int 型68. 程序的输出是( 未填 )int w=3;void main()int w=10;printf("%dn",fun(5)*w);fun(int k) if(k=0) return w; return(fun(k-1)*k); 错误 正确答案: BA. 360B. 3600C. 1080D. 120069.在C语言中,形参必须是(未填)错误 正确答案: BA. 常量B. 变量C. 数值D. 表达式70. 若在一个C源程序文件中定义了一个允许其他源文件引用的实型外部变量a, 则在另一文件中可使用的引用说明是

27、( 未填 )。 错误 正确答案: DA. extern static float a;B. float a;C. extern auto float a;D. extern float a;71. 有一下程序viod fun (int a,int b,int c) a=456; b=567; c=678;void main() int x=10, y=20,z=30;fun (x,y,z);printf("%d,%d,%dn",x,y,z); 输出结果是( B )错误 正确答案: BA.30,20,10B.10,20,30C.456,567,678D.678,567,456

28、72. 下面程序的运行结果是( 未填 )。char c5 = a , b , 0 , c , 0 ;printf(“ %s” ,c);错误 正确答案: DA. a b B. 0C. ab cD. 以上三个答案均有错误73. 假设有以下函数定义float f1(float x) return x+1.3;则输出语句 printf(“%f n” ,f1(2); 的输出结果为 ( 未填 ) 。 错误 正确答案: AA.3.300000B.3.3C.2.000000D.1.374. 已知int t=0 ;while (t=1).则以下叙述正确的是( 未填 ) 错误 正确答案: BA. 循环控制表达式的

29、值为0B. 循环控制表达式的值为1C. 循环控制表达式不合法D. 以上说法都不对75.C 语言规定,简单变量做实参时,它和对应的形参之间的数据传递方式是( 未填 )。错误 正确答案: BA. 地址传递B. 单向值传递C. 由用户指定传递方式D.实参传给形参,再由形参传给实参76. 设有: int a10,i=5;, 以下对数组元素引用不正确的是( 未填 )。 错误 正确答案: DA. a9B. a0C. aiD. ai+577. 若有数组定义: char array ="China" 则数组 array 所占的空间为( 未填 )。 错误 正确答案: CA. 4 个字节B.

30、5 个字节C. 6 个字节D. 7 个字节78. 若 i 为 int 型 , 且有程序如下,则输出结果是( 未填 )i=111;if(i%3=0)printf("#");printf();错误 正确答案: CA) #B. *C. #*D. 无输出结果79. 对表达式 for( 表达式 1; ; 表达式 3)可理解为( 未填 ) 错误正确答案: BA. for( 表达式1;0; 表达式3)B. for( 表达式1;1; 表达式3)C. for( 表达式1; 表达式1; 表达式3)D. for( 表达式1;表达式3; 表达式3)80. 若 int m=5;则 if(m+>

31、5) printf("%dn",m);else printf("%dn",m-);输出结果是( 未填 )。 错误 正确答案: BA.7B.6C.5D.481. 以下程序的输出结果( 未填 )int main()int num=0;while(num <=2)num+;printf("%d",num); 错误 正确答案: BA.012B.123C.234D.34582. 以下描述中正确的是( 未填 ) 错误 正确答案: CA. 由于 do-while 循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句B.do-wh

32、ile 循环由do开始,用while结束,在while (表达式)后面不能写分号C. 在 do-while 循环体中,是先执行一次循环,再进行判断D.do-while 循环中,根据情况可以省略while83. 要说明一个有10个 int 元素的数组, 应当选择语句 ( 未填 )。错误正确答案:AA. int a 10;B. int a2,5;C. int a ;D. int *a10;84. 若 int k=3;则语句 if(k) printf("#");elseprintf("&&&&");执行后的输出结果是( 未填 )

33、错误 正确答案: AA.#B.&&&&C.#&&&&D.有语法错误,不能执行85. 以下程序段的输出结果为( 未填 )。for(i=4;i>1;i-)for(j=1;j<i;j+)putchar('#'); 错误 正确答案: BA.无8 #C #D #86. 有以下语句:i=1;for(;i<=100;i+) sum+=i;与以上语句序列不等价的有( 未填 )。 错误 正确答案: CA. for(i=1; ;i+) sum+=i;if(i=100)break;B. for(i=1;i<=10

34、0;)sum+=i;i+;C. i=1;for(;i<=100;)sum+=i;D. i=1;for(; ;)sum+=i;if(i=100)break;i+;87. 以下程序运行后的输出结果是( 未填 )。fun(int a, int b)if(a>b) return a;else return b;则函数调用表达式fun(fun(3,5),2) 的结果为: 错误 正确答案: BA.3B.5C.2D.10误 正确答案: CA. 通过 return 返回一个用户所希望的函数值B. 返回一个系统默认值C. 没有返回值D.返回一个不确定的值89. 以下是死循环的程序段是( 未填 ) 错

35、误 正确答案: CA. for(i=1; ; )if(+i%2=0) continue;f(+i%3=0) break; B. i=32767; doif(i<0) break;while(+i);C. for(i=1; ; ) if(+i<10) continue;D. i=1;while(i-);90. 以下程序的输出结果( 未填 )int main()int i,s=0;for(i=1;i<10;i+=2)s+=i+1;printf("%dn",s) 错误 正确答案: DA. 自然数 19 的累加和B. 自然数110的累加和C. 自然数19 中奇数之

36、和D. 自然数110中偶数之和91. 若 int num=0;则循环语句 while(num<=2)num+;printf("%dn",num);的执行结果为( 未填)错误正确答案: CA. 1B. 1< 换行 >2C. 1< 换行 >2<换行 >3D. 1< 换行 >2<换行 >3<换行 >492. 若有定义: int b=7;float a=2.5,c=4.7; 则表达式a+(b/2*(int)(a+c)/2)%4 的值是( 未填 )。 错误 正确答案: CA.2.5B.3.5C.4.5D.5.593. 下列程序段的执行结果( 未填 ) int a=8,b=1;if(a>=5) pr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论