C语言复习题

2019-08-26 17:55

C语言复习题

一、选择题:

1.以下不是C语言的特点的是( B )

A.C语言简洁、紧凑 B.能够编制出功能复杂的程序 C. C语言可以直接对硬件进行操作 D.C语言移植性好 2. 以下不正确的C语言标识符是( D )。

A.ABC B.abc C.a_bc D.ab.c 3.一个c程序的执行是从( A ).

A.main( )函数开始,直到main( )函数结束 B.第一个函数开始,直到最后一个函数结束 C.第一个语句开始,直到最后一个语句结束

D.main( )函数开始,直到最后一个函数结束 4.以下不正确的语句(设有int p,q)是( D )。

A.P*=3; B.p/=q; C.p十=3; D.p&&=q 5.下列四组选项中,均不是C语言关键字的选项是( A ).

A.define B.getc C.include D.while

if char sanf go type printf case pow

6.下面四个选项中,均是合法整形常量的选项是( A ).

A.160 B.-0xcdf C.-01 D.-0x48a -0xffff 01a 986,012 2e5 011 0xe 0668 0x 7. 下面四个选项中,均是不合法浮点数的选项是( B ).

A.160. B.123 C.-.18 D.-e3

0.12 2e4.2 123e4 0.234

e3 .e5 0.0 1e3 8. 若有代数式3ae/bc,则不正确的C语言表达式是( C )

A.a/b/c*e*3 B.3*a*e/b/c C.3*a*e/b*c D.a*e/c/b*3

9. 若以下变量均是整形,且num=sum=7;则计算表达式sUM=num++,sUM++,++num后sum的值为(A ).

A.7 B.8 C.9 D.10 10.若有定义:int a=7; float x=205 ,y=4.7; 则表达式x+a%3*(int)(x+y)%2/4的值是( A )。 A.2.500000 B.2.750000 C.3.500000 D.0.000000 11. sizeof(float)是( B )。

A.一个双精度型表达式 B. 一个整型表达式 C.一种函数调用 D. 一个不合法的表达式 12. 设int n=3;则n十十的结果是( B )。 A.2 B.3 C.4 D.5

13. 设有说明: char w; int x; float y; double z; 则表达式w*x+z-y值的数据类型为( D )。

1

A.float B.char C.int D.double. 14. 若x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是( D ).

A. scanf(“%d?x,”,&x,&y,&z); B. scanf(“-*%d”,&x,&y,&z); C. scanf(“%x%*d%o”,&x,&Y);

D. scanf(“%x%o%6.2f”, &x,&y,&z); 15. 以下说法正确的是( D ).

A. 输入项可以为一个实型常量,如scanf(“%f”,3.5);

B. 只有格式控制,没有输入项,也能进行正确输入,如scanf(“a=%d,b=%d”); C. 当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(“%4.2f”,&f);

D. 当输入数据时,必须指明变量的地址,如scanf(“%f”,&f); 16. 以下程序的执行结果是( A )。

#include main() {

int sum,pad; sum=pad=5; pad=sum++; pad++; ++pad;

printf(\}

A.7 B.6 C.5 D.4 17. 巳知字母A的ASCII码是65,以下程序的执行结果是( D )。

#include main() {

char c1='A',C2='Y';

printf(\

A.A,Y B.65,65 C.65,90 D.65,89

18. 为了避免嵌套的if-else语句的二义性,c语言规定else总是与( C )组成配对关系。

A.缩排位置相同的if B.在其之前末配对的if

C.在其之前未配对的最近的if D.同一行上的if

19. 逻辑运算符两侧运算对象的数据类型( D ).

A.能是0或1

B.只能是0或非0正数 C.只能是整型或字符型数据 D.可以是任何类型的数据

20. 设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是( D ).

A.’x’&&’y’ B.x<=y

2

C. x||y+z&&y-z

D.!((x<y)&&!z ||1)

21. 若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是( C ).

A.A%2==1 B.!(A%2==0) C.!(A%2) D.A%2 22. 以下不正确的if语句形式是( C ).

A.if(x>y&&x!=y); B.if(x==y)x十=y;

C.if(x ! =y)scanf(“%d”,&x) e1se scanf(”%d,&y); D.if(x<y){x十十;y十十;} 23. 以下if语句语法正确的是( B ).

A.if(x>0)

printf(“%f“,x) else printf(“%f”,-x); B.if(x>0)

{x=x+y;printf(“%f“,x);} else printf(“%f”,-x) C.if(x>0)

{x=x+y;printf(“%f“,x);} else printf(“%f”,-x) D.if(x>0)

{x=x+y;printf(“%f“,x);} else printf(“%f”,-x) else printf(“%f”,-x); 24. 阅读以下程序

main()

{int a=5,b=0,c=0;

if(a=b+c) printf(“***\\n”); else printf(“$$$\\n”); }

以上程序 ( D ).

A.语法有错不能通过编译 B.C.输出*** D.25. 以下程序运行结果是( C).

main()

{int a=100,x=10,y=20,ok1=5,ok2=0; if (x

if (y!=10) If(!ok1) a=1; else

if(ok2) a=10; a=-1;

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

3

可以通过编译但不能通过连接 输出$$$ }

A.1 B.0 c.-1 D.不确定 26. 执行以下程序段后,变量a,b,c得值分别是( B ).

int x=10,y=9; int a,b,c;

a=(--x==y++)? –x: ++y; b=x++; c=y;

A.a=9,b=9,c=9 B.a=8,b=8,c=10 C.a=9,b=10,c=9 D.a=1,b=11,c=10

27. 若w,x,y,z,m均为int型变量,则执行下面语句后的m值是( A ).

w=1; x=2; y=3; z=4; m=(w

A.1 B.2 C.3 D.4 28. 语句while(!e);中的条件!e等价于( A )。

A.e==0 B.e!=1 C.e!=0 D.~e 29. 下面有关for循环的正确描述是( D )

A.for循环只能用于循环次数已经确定的情况 B.for循环是先执行循环体语句,后判定表达式 C.在for循环中,不能用break语句跳出循环体

D.for循环体语句中,可以包含多条语句,但要用花括号括起来

30. C语言中while和do-while循环的主要区别是( A ).

A.do-while的循环体至少无条件执行一次

B.while的循环控制条件比的循环控制条件严格 C.do-while允许从外部转到循环体内 D.do-while的循环体不能是复合语句 31.以下程序段( C ).

x=-1; do{x=x*x;} while(! x);

A.是死循环 B.循环执行二次 C. 循环执行二次 D.有语法错误 32. 下面程序的运行结果是( B ).

#include main() {int y=10;

do{y--;}while(--y); printf(“%d\\n”,y--);}

A.-1 B.1 C.8 D.0 33. 以下正确的描述是( B ).

A.continue语句的作用是结束整个循环的执行

B.只能在循环体内和switch语句体内使用break语句

C.在循环体内使用break语句或continue语句的作用相同 D.从多层循环嵌套中退出时,只能使用goto语句

4

34. c语言中( D )。

A.不能使用do-while语句构成的循环

B.do-while语句构成的循环必须用break语句才能退出

C.do—whiLe语句构成的循环,当while语句中的表达式值为非零时结束循环 D.do—while语句构成的循环,当while语句中的表达式值为零时结束循环 35. 在C语言中,引用数组元素时,其数组下标的数据类型允许是(C )

A. 整型常量 B.整型表达式C.整型常量或整型表达式D.任何类型的表达式 36. 在C语言中,一位数组的定义方式为:类型说明符 数组名( D )。

A. [常量表达] B. 整型表达式C. [整型常量]或[整型表达式] D. [整型常量] 37. 以下不能对二维整形数组a进行正确初始化的语句是( C )。

A.int a[2][3]={0};

B. int a[][3]={{1,2},{0}};

C. int a[2][3]={{1,2},{3,4},{5,6}}; D. int a[][3]={1,2,3,4,5,6};

38. 若有说明:int a[][4]={0,0};则下面正确的叙述是(D )。

A. 数组a中每个元素均可得到初值0 B. 二维数组a的第一维大小为1

C. 因为二维数组a中第二维大小的值除以初值个数的商为1,故数组a的行数为1 D.只有元素a0][0]和a[0][1]可得到初值0,其余元素均得不到初值0 39. 若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是(B )。

A.2 B.3 C.4 D.无确定值 40. 下面程序的运行结果是(B )。

char c[5]={‘a’,’b’,’\\0’,’c’c,’\\0’}; printf(“%s”,c);} A.‘a’’b’ B.ab C.ab c D.ab

41. 有两个字符数组a、b,则以下正确的输入语句是( B )。

gets(a,b);

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

A. s[j+=]=s[i] B. s[++j]=s[i] C. s[j]=s[i]; j++ D.s[j]=s[i]

42. 若使用一维数组名作函数实参,则以下正确的说法是( A ).

A.必须在主调函数中说明此数组的大小 B.实参数组类型与形参数组类型可以不匹配 C.在被调函数中,不需要考虑形参数组的大小 D.实参数组名与形参数组名必须一致 43. 以下正确的说法是( A ).

A.如果在一个函数中的复合语句中定义了一个变量,则该变量只在该复合语句中有效 B.在该函数中有效

5


C语言复习题.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:施工组织设计

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: