C语言复习题
第一部分:数据的存储与运算
一、单项选择题
1.数据在内存中是以(    )形式存放的。
A.二进制    B. 八进制    C. 十进制    D. 十六进制
2. 下列浮点数的表示中正确的是(  )。
A.223    B. 719E22    C. e23    D. 12e2.0
3. 字符型常量在内存中存放的是(  )。
A.ASCII码  B. BCD码  C. 内部码  D. 十进制码
4. 若变量a,i已正确定义,且i已正确赋值,合法的语句是(  )。
A. a==1  B. ++i;    C. a=a++=5;    D. a=int(i);
5. 下列运算符中,结合方向为自左向右的是(  )。
A.=  B.,  C.+=  D.――
6.若有"int x;",则sizeof(x)和sizeof(int)两种描述(  )。
A.都正确     B.值不一样 
C.前者正确    D.后者正确
7.整型变量x=1,y=3,经下列计算后,x的值不等于6的是(  )。
A.x=(x=1+2,x*2)        B. x=y>2?6:5
B  . x=-9-(--y)-(--y)        D. x=y*4.2/2
8. 单精度变量x=3.0,y=4.0,下列表达式中y的值为9.0的是(  )。
A.y/=x*27/4  B. y+=x+2.0  C. y-=x+8.0  D. y*=x-3.0
9. 若整型变量i=3,j=4,整型变量k=(i++)+(j--)后,k的值为(  )。
A.6      B. 7        C. 8        D. 9
10. 设有整型变量x=1,表达式(x||0)&&(!x)的值为(  )。
A.0      B. 1      C. 10      D. 11
11. 执行”printf(“number:\101,\x42“);输出为(  )。
A. number:\101,\x42    B. nubmer:A,B
C. number:101,x42    D. number:a,b
12. 有整型变量x,单精度变量y=5.5,表达式x=(float)(y*3+((int)y)%4)执行后,x的值为(  )。
A.17    B. 17.500000    C. 17.5    D. 16
13. 表达式:0?2:0,3/2,0==3〉=2?55:6.0,4%3的值为(  )。
A.1.3333333  B. 1  C. 6.0  D. 1.5
14. 以下各项中属于C语言中数据类型的是(  )。
A.复数型  B. 逻辑型    C. 双精度型    D. 集合型
15.在C语言中,不正确的int类型的常数是(  )。
A.32768    B. 0    C. o37    D. oxAF
16. 当c的值为0时,在下列选项中能正确将c的值赋给变量a,b的是(  )。
A.c=b=a;            B. (a=c)||(b=c); 
C. (a=c)&&(b=c);      D. a=c=b;
17.下列程序的输出结果是 (  )。
A.3    B. 3.2    C. 0    D. 3.07
main ( )
{ double d=3.2; int x,y: x=1.2; y=(x+3.8)/5.0;
printf(“%d\n”,d*y); }
18. 下列变量定义中合法的是(  )。
A.short _a=.1e-1;        B. double b=1+5e2.5;
C.  long do=0xfdaL;      D. float 2_and=1-e-3;
19. 设“int x=1,y=1;“,表达式(!x||y--)值是(  )。
A.0    B.    C. 2    D. -1
20. 下列程序执行后的输出结果是(  )。
A. G    B. H      C. I    D. J
main ( )
{ int x=’f’;printf(“%c\n”,’A’+(x-‘a’+1));}
21. 下列程序执行后的输出结果是(  )。
A.-32767 
B. FFFE    C. -1    D. -32768
main ( )
{ char x=0xFFFF; printf(“%d\n”,x--);}
22. 设有如下定义:
int i=8,k,a,b;
unsigned long w=5;
double x=1.42,y=5.2;
则以下符合C语言语法的表达式是:
A.a+=a-=(b=4)*(a=3)    B. x%(-3)
C. a=a*3=2              D. y=float(i)
23. 以下程序的执行结果是(  )。
int a=2,c=5;printf(“a=%%d,b=%%d\n”,a,c);
A.a=%2,b=%5        B. a=2,b=5
C. a=%%d,b=%%d      D. a=%d,b=%d
24. 执行“printf(“\\\’%d\141\40\142%c\”\x31\40\x32\x33”,3+4,’e’);”输出为(  )。
A.\\\’7A Be\”1 23      B. \\’7a be\”1 23
C. \’7A Be\”1 23        D. \’7a be”1 23
25. 以下程序的输出结果是(  )。
main (  )
{ int a=3; printf(“%d\n”, a+(a-=a*a)); }
A. -6    B. 12    C. 0    D. -12
26. 能正确表示逻辑关系:“a≥10或a≤0”的C语言表达式是(  )。
A.a>=10 or a<=0    B. a>=0 and a<=10
C. a>=10 && a<=0    D. a>=10 || a<=0
27. 若以下所有变量已正确定义并赋值,下面符合C语言语法的表达式是(  )。
A.a:=b+1    B. a=b=c+2    C. int 18.5%3    D. a=a+7=c+b
28. C语言中运算对象必须是整型的运算符是(  )。
A.%=      B. /      C. =      D. <=
29. 若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是(  )。
A.1    B. 2    C. 2.0    D. 2.5
30. 若以下程序执行后,c3中的值是(  )。
int c1=1,c2=2,c3;
c3=1.0/c2*C1;
A. 0    B. 0.5    C. 1    D. 2
31. 如下程序运行的输出结果是(  )。
main ( )
{int y=3,x=3,z=1;
printf(“%d%d\n”, (++x,y++),z+2);
}
A. 3 4    B. 4 2    C. 4 3      D. 3 3
32. 以下选项中正确的整型常量是(  )。
A.-37    B. 32,768    C. 3*2/6    D. 6.0
33. 在C程序中,数字O29是一个(  )。
A. 八进制数 B. 十六进制数 C. 十进制数 D. 非法数
34. 设以下各表达式中的符号都已正确定义,则符合C语言语法的表达式是(  )。
A. d=9+e+f=d+90      B. d=9+e,f=d+9
C. 5=d+e+f          D. d=9+e,f+3+=d
35. 若定义“unsigned a=32777,b=34253;”则表达式!(a<b)||a= =b的值为(  )。
A. 1      B. 0      C. 343253      D. 32777
36. 设有定义”int x=11,y=5;”则执行“x%=(--y+3);”后,x和y分别是(  )。
A. 7和4    B. 4和5    C. 4和4    D. 3和4
37. 设有定义“int a=3,b=2;float x=2.5,y=3.5;”,则表达式(a+b)%2+(int)x/(int)y的值为(  )。
A. 1.0    B. 1    C. 2.    D. 2
38. 设变量a,b都是整型的,则表达式 (a=2,b=5,a++,b++,a+b)的值为(  )。
A. 7      B. 8    C. 9    D. 10
39. 设以下表达式中的各变量均为整数,并且其值都大于1,则下列能正确表示代数式1/abc的表达式是(  )。
A. 1/a*b*c    B. 1/(a*b*c)    C. 1/a/b/(float)c    D. 1.0/a/b/c
二、判断正误题
1. C语言程序设计是一种面向过程的结构
化设计语言。(  )
2.C语言程序是由函数构成的。(  )
3.任何C语言编写的文件必须至少包含一个main( )。(  )
4.组成一个C语言程序的函数可以在不同的文件中。(  )
5.C语言程序不允许直接访问物理地址。(  )
6.函数的过程体实际是一个复合语句。(  )
7.用宏定义的符号型常量必须是用大写字母来表示。(  )
8.void型数据类型是指数据不存在。(  )
9.C语言中变量必须先定义,后使用。(  )
10.当有如下定义“unsigned int i;”时,计算机允许使用赋值语句“i= -1;”。(  )
11.如下定义“char c1=’a’, c2=’b’, c3=c1-c2;”后执行printf(“%d”,c3);结果为无任何显示。(  )
12.可以有如下定义:“int a=b=c=0;”。(  )
13.执行“int x=4, y=5; float z=x/y;”后,z的值为0.8。(  )
14.执行“int x, i=4; x=(i++,i++);”后,x的值为6。(  )
15.空语句没有任何意义,所以在C程序中不应该出现空语句。(  )
16.要求出某一变量占用内存空间的字节数可以用函数sizeof(变量)实现。(  )
17.要判断变量x,y,z的大小顺序,在程序中可以使用表达式x>y>z。。(  )
18.在main ( )函数中若加入return语句,则编译出错。(  )
19.设有“int x=11;”,则表达式x++*1/3的值是4。(  )
20.若有“int x; float y=1.6,z=2.4;”,则执行“x=(int)y+z;”后,x的值是3。(  )
三、填空题
1.C语言规定,标识符只能由      、        、      三种字符组成,而且,第一个字符必须是        或        。
2.一个C程序一般由若干函数构成的,程序中有且只有一个   
3.一个C函数是由        和        两部分组成的。
4.一个C程序总是从        开始执行的。
5.C语言的基本数据类型有        、        和实型数据,其中实型数据又分为        和        。
6.在内存中占据16位的无符号整型变量的范围是        到
7.在C语言中,八进制整常量以    开头,十六进制整常量以        开头。
8.十进制int型数-1转化为十六进制int型数为        。
9.在C程序中,&运算符可用作为        运算或      运算,而*运算符可用作为        或        运算。
10.将下列运算符按优先级从高到低顺序排列:>、!、+、&&、(  )、%是            。
11.’x’在内存中占      字节,”x”在内存中占        字节,”\101”在内存中占        字节。
12.若x为整型变量,执行语句x=’b’-‘A’;后,x的值为      。
13.单精度实型变量x,执行表达多语句x=8.7+123.7*6-‘a’%7;后,x的值为        。
14.整型变量i和j,i的初值为
3, 执行表达式语句j=(i++)+(i++)+(i++);后,变量i的值为        ,变量j的值为        。
15.整型变量a,b,c,它们的初值都是0,计算表达式:++a&&b++&&++c后,a,b,c的值分别为      、      、      ,若在同样的初值条件下,计算表达式:++a||b++||++c后,a,b,c的值分别为   
、        、          。
16.已知有a,b两个数,执行“x=b;b=a;a=x;”操作后,执行的效果是
17.将下列数学式改写成C语言的表达式。
(1) ax3+bx2+cx+d写成                  。
(2) 写成          。
18. 有如下程序:
main (  )
{int x=0, y=0, z=0;
x=++y+(++z); printf(“%d,%d,%d*”,x,y,z);
x=(y++)+z++; printf(“%d,%d,%d*”,x,y,z);
x=(--y)+z--; printf(“%d,%d,%d*”,x,y,z);
}
程序结果为      。
19.整型变量a=5,b=7,表达式b/a*100的值是        。
20.以下程序段运行的结果是          。
int a=5,b=3;
printf(“a+b=%4d, “,a+=b+=a+b);c语言搜题软件推荐
printf(“a-b=%4d\n”,a-=b-=a-b);
21. 设有以下变量定义,并已赋确定的值,则表达式w*x+z-y的值的数据类型为          。
char w;    int x;    float y;    double z;
22. 写出与代数式(x+2)ex+2对应的C语言表达式        。
23.若char类型变量ch的值是大写英文字母,将ch的值变为对应的小写字母的C表达式是          。
四、阅读程序写结果题
1.#include “stdio.h”
main ( )
{int a,b,d=241;a=d/100*9;b=(-1)&&(-1);printf(“%d,%d”,a,b);}
2. #include “stdio.h”
main ( )
{int i,j,x,y;i=5;.j=7;x=++i;y=j++;
printf(“%d,%d,%d,%d”,i,j,x,y);
3. #include “stdio.h”
main ( )
{float f=13.8; int n; n=((int) f)%3;printf(“n=%d”,n);}
4. #include “stdio.h”
main ( )
{int n=2; n+=n-=n*n; printf(“n=%d”,n);}
5. #include “stdio.h”
main ( )
{int a,b,x; x=(a=3,b=a--);printf(“x=%d,a=%d,b=%d”,x,a,b);}
6. #include “stdio.h”
main ( )
printf(“%d\n”,(m1=f1>=f2)&&(m2=f3<f4));
}
7. #include “stdio.h”
main ( )
{int x=5,y=2;printf(“1:%d*”,!(y==x/2));printf(“2:%d*”,y!=x%3);
printf(“3:%d*”,x>0&&y<0);printf(“4:%d”,x!=y||x>=y);
}
8. #include “stdio.h”
main ( )
{unsigned int b=65535; printf(“%d”,b);}
9. #include “stdio.h”
main ( )
{int x=10,y=9; int a,b,c;
a=(--x= =y++)?-x:++y;b=x++;c=y;
printf(“a=%d,b=%d,c=%d\n”,a,b,c);
}
10. #include “stdio.h”
main ( )
{int x=0,y=0,z=0;
x=++y+(++z); printf(“%d,%d,%d*”,x,y,z);
x=y+++z++; printf(“%d,%d,%d*”,x,y,z);
x=--y+z--; printf(“%d,%d,%d*”,x,y,z);
}
11. #include “stdio.h”
main ( )
{short i=-1; printf(“%d,%o,%x,%u\n”,i,i,i,i);}
12. #include “stdio.h”
main ( )
{short i=1; printf(“%d,%o,%x,%u\n”,i,i,i,i);}
13. #include “stdio.h”
main ( )
{char c='A'; prin
tf(“%d,%o,%x,%c\n”,c,c,c,c);}
14. #include “stdio.h”
main ( )
{float f=3.1415927; printf(“%f,%5.4f,%3.3f\n”,f,f,f);}
15. #include “stdio.h”
main ( )
{float f=3.5; printf(“%f,%g\n”,f,f)}
16. #include “stdio.h”
main ( )
{char c='A'+10; printf(“%c\n”,c);}
17. #include “stdio.h”
main ( )
{float f=31.41592; printf(“%f,%e\n”,f,f);}
第二部分:选择结构程序设计
一、单项选择题
1.在如下程序段中if语句中的!a等价于(  )。
int a=0; if (!a) printf(“ok”);
A. a!=0    B. a= =0    C. a>0    D. a = =1
2. C语言中,逻辑“真”等价于(  )。
A.大于零的数    B. 大于零的整数   
C. 非零的数    D. 非零的整数
3.C语言中,switch后的括号内表达式的值可以是(  )。
A.只能为整型    B. 可以为整型、字符型、实型、枚举型
C.只能为字符型    D. 只能为实型
4. C语言的switch语句中case后(  )。
A. 只能为常量    B. 只能为常量或常量表达式
C. 可为常量及表达式或有确定值的变量及表达式
D. 可为任何量或表达式
5. C语言的if语句中,用作判断的表达式为(  )。
A.任意表达式        B. 任意表达式   
C. 关系表达式        D. 算术表达式
6. 在如下程序段中,若输入2,则(  )。
int x; scanf(“%d”, &x);
if (x>3)
else printf(“even number %d”, x);
A. 输出even number 2    B. 输出even number 3
C. 输出even number    D. 格式不正确
7.有字符型变量str,判断str为大写字母或小写字母?如下正确的是(  )。
(1) str>=65&&str<=90||str>=97&&str<=122
(2) (str>65&&str<90)||(str>97&&str<122)
(3) 65<=str<=90||97<=str<=122
(4) !((str<65||str>90)&&(str<97||str>122))
(5) !(str<65||str>90||<str<97||str>122)
(6) (str>=65||str<=90)||(str>=97||str<=122)
A. (1)(2)    B. (1)(2)(4)    C. (1)(4)    D. (2)(4)
E. (6)    F. (5)(6)    G. (1)(2)(3)(4)(5)(6)
8. 在上题的逻辑表达式中,放入程序时将报错的是(  )。
A.都不会报错            B. 都报错
C. (3)(5)报错              D. (3)报错 
9. 下列程序执行后的输出结果是(  )。
A.6 6 6.000000  6.000000    B. 6 6 6.700000  6.700000
C. 6 6 6.000000  6.700000    D. 6 6 6.700000  6.000000
main ( )
{double d; float f; long l; int I;
i=f=l=d=20/3;
printf(“%d  %ld  %f  %f  \n”, i,l,f,d);
}
10. 与“y=(x>0?1:x<0?-1:0);”的功能相同的if语句是(  )。
A.if (x>0) y=1;        B. if (x)
else if (x<0) y=-1;    if (x>0) y=1;
else y=0;          else if (x<0) y=-1;
else y=0;
C. y=-1;            D. y=0;
if (x)                if (x>=0)
if (x>0) y=1; 

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。