c语言程序设计试题库 下载本文

《C语言程序设计》试题库

一、选择题(共250个,每题2分)

1、一个c语言程序的执行是从( ) A、本程序的main函数开始,到main函数结束

B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C、本程序的main函数开始,到本程序文件的最后一个函数结束 D、本程序文件的第一个函数开始,到本程序main函数结束 2、一个c语言程序是由( )

A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子函数组成 3、以下选项中是正确的整型常量是( )

A、12. B、 -20 C、 1,000 D、 4 5 6 4、以下选项中正确的实型常量是( )

A、0 B、 3. 1415 C、 0.329*10^2 D、.871 5、以下选项中不合法的实型常量是( )

A、 2.607E-1 B、0.8103*12 C、-77.77 D、456e-2 6、以下选项中不合法的字符串是( )

A、’abc’ B、”12’12” C、 “0” D、” ” 7、下面正确的字符常量是( )

A、”c” B、 ‘\\\\’’ C、 ‘w’ D、 ‘’ 8、以下选项中不合法的用户标识符是( )

A、 abc.c B、file C、Main D、PRINTF

9、C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符( )

A、必须为字母 B、 必须为下划线 C、必须为字母或下划线 D、可以是字母、数字和下划线中任意一种字符 10、以下选项中不合法的用户标识符是 ( )

A、_123 B、 printf C、 A$ D、 Dim 11、c语言中运算对象必须是整型的运算符是( )

A、% B、 / C、 ! D、 **

12、可在C程序中用作用户标识符的一组标识符是( )

A、nt B、 as-b3 C、 Fir D、 2c define -123 _bc DO WORD if name SIG

13、若变量已正确定义并赋值,符合C语言语法的表达式是( )

A、 a=a+7; B、a=7+b+c,a++ C、 int(12.3%4) D、 a=a+7=c+b 14、若a,b,c,d都是int类型变量且初值为0,以下选项中不正确的赋值语句是( )

A、a=b=c=100; B、d++; C、c+b; D、d=(c=22)-(b++); 15、若x、i、j和k都是int变量,则计算下面表达式后,x的值是( )

x=(i=4,j=16,k=32)

A、4 B、16 C、32 D、 52

16、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是( )

A、7 B、8 C、 6 D、 2

17、若有代数表达式a.b,则正确的c语言表达式是( )

A、a^*b^ B、pow(a,2).pow(b,2) C、a*a.b*b D、(a*a)*(b*b) 18、若有代数表达式

22

3ae,则不正确的c语言表达式是( ) bcA、a/b/c*e*3 B、3*a*e /b/c C、3*a*e /b*c D、a*e/c /b *3 19、 若有定义:int a=8,b=5,c;执行语句c=a/b+0.4;后,c的值为( )。

A、1.4 B、1 C、2.0 D、2 20、char型数据在内存中的存储形式是( )

A、补码 B、反码 C、原码 D、ASCII码

21、设变量a是整型,f是实型,i是双精度,则表达式10+‘a’+i*f值的数据类型为( ) A、int B、float C、double D、不确定

22、 若有定义:int a=7;flaot x=2.5,y=4.7;;则表达式x+a%3*(int)(x+y)%2/4的值是( )。

A、2.500000 B、2.750000 C、3.500000 D、0.000000

23、 若变量a是int类型,并执行了语句:a=’A’+1.6;则正确的叙述是( )。

A、a的值是字符C B、a的值是浮点型

C、不允许字符型和浮点型相加 D、a的值是字符’A’的ASCII值加上1 24.、以下选项中合法的字符常量是( )。

A、“B” B、’\\ 010’ C、68 D、D 25、以下选项中不是C语句的是( )

A、{int i;i++;printf(“%d\\n”,i);} B、; C、 a=5,c=10 D、 {;} 26、以下合法的C语言赋值语句是( )

A、a=b=58 B、 k=int(a+b) C、 a=58, b=58 D、 --i; 27、以下程序的输出结果是( )

A、0 B、1 C、3 D、不确定的值 main () {int x=10,y=3;

printf(“%d\\n”,y=x/y); }

28、设c语言中,一个int型数据在内存中占2个字节,则unsigned int 型数据的取值范围为( ) A、0~255 B、0~32767 C、0~65535 D、0~2147483647

29、若变量已正确定义为int类型,要给a、b、c输入数据,以下正确的输入语句是( )

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);

30、若变量已正确定义为float类型,要通过赋值语句scanf(“%f%f%f”,&a,&b,&c)给A赋值10,B赋

予22,C,赋予33,以下不正确的输入形式是( )

A、 10 B、10.0,22.0,33.0 C、10.0 D、10 22

22 22.0 33.0 33

33

31、设有说明:char w;int x;float y;double z;则表达式w*x+z-y值的数据类型为( ) A、float B、 char C、int D、 double

32、若变量已正确定义,要将a和b中的数进行交换,下面选项中不正确的是( )

A、a=a+b,b=a-b,a=a-b; B、t=a,a=b,b=t; C、a=t;t=b;b=a; D、t=b;b=a;a=t; 33、若变量已正确定义,以下程序段的输出结果是( )

A、输出格式说明与输出项不匹配,输出无定值 B、5.170000 C、5.168000 D、5.169000 x=5.16894;

printf(“%f\\n”,(int)(x*1000+0.5)/(float)1000); 34、若有以下程序段,c3的值是( )

A、0 B、1/2 C、0.5 D、1 int c1=1,c2=2,c3; c3=c1/c2;

35、若有以下程序段,其输出结果是( )

A、 0,0,-10 B、0,0,5 C、-10,3,-10 D、3,3,-10 int a=0,b=0,c=0; c=(a-=a-5),(a=b,b+3); printf(“%d,%d,%d\\n”,a,b,c);

36、若已知变量的类型说明如下:int k,a,b; unsinged long w=5; double x=1.42;则以下不符合c语言

的表达式是( )

A、x%(-3) B、w+=-2 C、k=(a=2,b=3,a+b) D、a+=a-=(b=4)*(a=3) 37、以下程序的输出结果是( )

A、a=%2, b=%f B、a=2,b=5 C、a=%%d,b=%%d D、a=%d,b=%d main()

{ int a=2,b=3;

printf(“a=%%d,b=%%d\\n”,a,b); }

38、 若int 类型占两个字节,则以下程序段的输出是( )

A、 –1,-1 B、 –1,32767 C、 –1,32768 D、 –1,65535 int a=-1;

printf(“%d,%u\\n”,a,a);

39、下列运算符中优先级最高的运算符是( )

A、! B、% C、-= D、&&

40、下列运算符中优先级最低运算符是( )

A、|| B、!= C、〈= D、+

41、为表示关系 x≥y≥z, 应使用的C语言表达式是( )

A、 (x>=y)&&(y>=z) B、(x>=y)AND(y>=z) C、 (x>=y>=z) D、(x>=y)&(y>=z)

42、若有以下定义,则能使值为3的表达式是( ) int k=7,x=12;

A、x%=k-k%5) B、x%=(k%=5) C、 x%=(k-k%5) D、(x%=k)-(k%=5)

43、 设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)

运算后,n的值为( )。

A、0 B、1 C、2 D、3 44、 假定w、x、y、z、m均为int型变量,有如下程序段: w=1; x=2; y=3; z=4; m=(w

m=(m

m=(m

则该程序运行后,m的值是( )。

A、4 B、3 C、1 D、2 45、以下程序的输出是( )

A、0 B、1 C、2 D、3 main()

{ int a=2,b=-1,c=2; if(b

printf(“%d\\n”,c); }

46、设a,b 和c 都是int 型变量,且 a=3,b=4,c=5;则以下的表达式中,值为0的表达式是(A、 a&&b B、 a<=b C、 a||b+c&&b-c D、 !((a

A、0 B、1 C、2 D、3 main()

{ int a=2,b=-1,c=2; if(a

48、以下程序的输出是( )

A、1 B、2 C、3 D、4 main()

{ int w=4,x=3,y=2,z=1;

printf(“%d\\n”,(w

49、已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是( ) if(x>y) z=x;x=y;y=z;

A、x=10,y=20,z=30 B、x=20,y=30,z=30 C、x=20,y=30,z=10 D、x=20,y=30,z=20 50、以下程序的运行结果是( )

main( ){int m=5;

if(m++>5)printf(“%d\\n”,m); else printf(“%d\\n”,m--); }

A、4 B、5 C、6 D、7

51、若执行以下程序时从键盘上输入3和4,则输出结果是( )

A、14 B、16 C、18 D、20 main() { int a,b,s;

scanf(“%d%d”,&a,&b); s=a;

if(a

printf(“%d\\n”,s); }

52、运行以下程序,输出( )

A、**** B、&&&&

C、####&&&& D、有语法错误不能通过编译 main() { int k=-3;

if(k<=0)printf(“****\\n”); else printf(“&&&&\\n”); }

53、以下程序的输出结果是 ( )

main() { int x=2,y=-1,z=2; if(x

printf(“%d\\n”,z); }

A、3 B、2 C、1 D、0

54、为了避免在嵌套的条件语句if-else中产生二义性,c语言规定:else子句总是与(A、上下位置在同一列的if B、else前面最近的if C、else之后最近的if D、同一行上的if 55、以下不正确的语句为( )

A、if(x>y); B、if(x==y)&&(x!=0) x+=y ; C、if(x

if(a

A、1 B、2 C、3 D、6

57、以下程序段,int k=10;while(k=0)k=k+1;则下面描述中正确的是( )。

A、while循环执行10次 B、循环是无限循环 C、循环体语句一次也不执行 D、循环体语句执行一次 58. 以下程序中,while循环的循环次数是( )。 A、1 B、10 C、6 D、死循环,不能确定次数 59、以下程序中,while循环的循环次数是( )。 )配对。

main() { int i=0; while(i<10) { if(i<1) break; i++;} }

main() { int i=0; while(i<10)

{ if(i<1) contimue;