您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页C语言程序设计复习题

C语言程序设计复习题

来源:意榕旅游网
 .

一、 选择题 1. 正确的C语言标识符是_____。

A.¬_buy_2 B.2_buy C.?_buy D.buy? 2. 以下是C语言提供的合法关键字的是_____。

A.Float B.signed C.integer D.Char 3. 以下不能定义为用户标示符的是_____。

A.scanf B.Void C._3com_ D.int 4. 一个C程序是由_____。 A.一个主程序和若干子程序组成 B.一个或多个函数组成 C.若干过程组成 D.若干子程序组成

5. 以下说法中正确的是_____。

A.C语言程序总是从第一个定义的函数开始执行

B.在C语言程序中,要调用的函数必须在main( )函数中定义 C.C语言程序总是从main( )函数开始执行

D.C语言程序中的main( )函数必须放在程序的开始部分 6. 以下选项中,合法的实型常数是_____。

A.5E2.0 B.E-3 C.2E0 D.1.3E

7. 已知大写字母A的ASCII码值是65, 小写字母a的ASCII码是97,则用八进制表示的字符常量’\\101’是_____。

A.字符A B.字符a C.字符c D.非法的常量

.

.

8. 以下选项中, 合法转义字符的选项是_____。 A.’\\\\’ B.’\\018’ C.’xab’ D.’\\abc’ 9. 若有代数式 ,则不正确的C语言表达式是_____。

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

10. 已知字母A的ASCII码为十进制数65,且S为字符型,则执行语句S=’A’+’6’-’3’;后,S中的值为_____。

A.’D’ B.68 C.不确定的值 D.’C’ 11. 在C语言中,要求运算数必须是整型的运算符是_____。

A./ B.++ C.*= D.% 12. 在C语言中,char型数据在内存中的存储形式是_____。

A.补码 B.反码 C.原码 D.ASCII码 13. 设以下变量均为int类型,则值不等于7的表达式是_____。 A.(m=n=6, m+n, m+1) B.(m=n=6, m+n, n+1) C.(m=6, m+1, n=6, m+n) D.(m=6, m+1, n=m, n+1)

14. 以下程序的执行结果是:_____。 #include main() { int x=2,y=3;

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

.

.

}

A. x=%2,y=%3 B. x=%%d,y=%%d C. x=2,y=3 D. x=%d,y=%d

15. 阅读以下程序,当输入数据的形式为:12,34,正确的输出结果为_____。 #include ”stdio.h” main() { int a,b;

scanf(”%d%d”, &a,&b); printf(”a+b=%d\\n”,a+b); }

A.a+b=46 B.有语法错误 C.a+b=12 D.不确定值

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

A.缩排位置相同的if B.在其之前未配对的if C.在其之前未配对的最近的if D.同一行上的if

17. 已知int a=1,b=2,c=3; 以下语句执行后a,b,c的值是_____。 if(a>b) c=a; a=b; b=c;

A.a=1, b=2, c=3 B.a=2, b=3, c=3

.

.

C.a=2, b=3, c=1 D.a=2, b=3, c=2 18. 以下程序的运行结果是_____。 #include main() { int a=1;

if (a++>1) printf(”%d\\n”, a); else printf(”%d\\n”, a--); }

A.0 B.1 C.2 D.3 19. 若a、b、c、d、w均为int类型变量,则执行下面语句后的w值是_____。 a=1;b=2;c=3;d=4; w=(aA.1 B.2 C.3 D.4 20. 执行下列程序,输入为3的数出结果是_____。 #include ”stdio.h” main() { int k;

scanf(”%d”, &k); switch(k)

.

.

{ case 1: printf(”%d\\n”, k++); case 2: printf(”%d\\n”, k++); case 3: printf(”%d\\n”, k++); case 4: printf(”%d\\n”, k++); break;

default: printf(”Full!\\n”); } }

A.3 B.4 C.3 21. 以下不是C语言的特点的是_____。 A.语言简洁紧凑 B.能够编制出功能复杂的程序 C.C语言可以直接对硬件操作 D.C语言移植性好

22. 下列字符序列中,不可用作C语言标识符的是_____。A.abc123 B.no.1 C._123_ 23. 请选出可用作C语言用户标识符的一组标识符_____。A.void B.a3_b3 C.For define _123 -abc WORD IF Case 24. 下列符号中,不属于转义字符的是_____。

A.\\\\ B.\\0xAA C.\ .

D.4 D._ok D.2a DO sizeof .\\0

D .

25. 不属于C语言关键字的是_____。

A.int B.break C.while D.character 26. C语言程序的基本单位是_____。

A.程序行 B.语句 C.函数 D.字符 27. 下列说法中,错误的是_____。

A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号

B.每个函数都有一个函数头和一个函数体,主函数也不例外 C.主函数只能调用用户函数或系统函数,用户函数可以相互调用 D.程序是由若干个函数组成的,但是必须有、而且只能有一个主函数 28. 以下选项中,正确的字符常量是_____。

A.”F” B.’\\\\’’ C.’W’ D.’’

29. 下列变量定义中合法的是_____。 A.short _a=1-.le-1; B.double b=1+5e2.5; C.long do=0xfdaL; D.float 2_and=1-e-3;

9xn

30. 与数学式子2x1对应的C语言表达式是_____。

A.9*x^n/(2*x-1) B.9*x**n/(2*x-1) C.9*pow(x,n)*(1/(2*x-1)) D.9*pow(n,x)/(2*x-1) 31. 以下符合C语言语法的赋值表达式是_____。

A.a=9+b+c=d+9 B.a=(9+b, c=d+9) C.a=9+b, b++, c+9 D.a=9+b++=c+9 32. 若有说明语句:char s=’\\72’;则变量s_____。

.

.

A.包含一个字符 B.包含两个字符 C.包含三个字符 D.说明不合法,s的值不确定

33. 若有定义:int m=7; float x=2.5, y=4.7; 则表达式x+m%3*(int)(x+y)%2/4的值是_____。

A.2.500000 B.2.750000 C.3.500000 D.0.000000 34. 有如下程序段,从键盘输入数据的正确形式应是_____。(注:└┘代表空格) float x,y,z;

scanf(“x=%d,y=%d,z=%d”,&a,&y,&z);

A.123 B.x=1,y=2,z=3

C.1,2,3 D.x=1└┘ y=2└┘ z=3 35. 以下关于运算符优先顺序的描述中正确的是_____。 A.关系运算符<算术运算符<赋值运算符<逻辑与运算符 B.逻辑与运算符<关系运算符<算术运算符<赋值运算符 C.赋值运算符<逻辑与运算符<关系运算符<算术运算符 D.算术运算符<关系运算符<赋值运算符<逻辑与运算符 36. 选择出合法的if语句(设int x,a,b,c;)_____。 A.if(a=b) c++; B.if(a=b) c++; D.if(a=>b) c++;

.

.

37. 当a=1,b=2,c=4,d=3时,执行完下面一段程序后x的值是_____。 if (aA.1 B.2 C.3 D.4 38. 执行以下程序段后,变量x,y,z的值分别为_____。 int a=1,b=0, x, y, z; x=(--a==b++)?--a:++b; y=a++; z=b;

A.x=0,y=0,z=0 B.x= -1,y= -1,z= 1 C.x=0,y=1,z=0 D.x= -1,y= 2, z= 1 39. 执行以下语句后,y 的值为_____。 int x,y,z; x=y=z=0;

++x || ++y && ++z;

A.0 B.1 C.2 D.不确定值20

.

.

40. 以下程序的输出结果是_____。 #include main() {

int a=5, b=4, c=6, d;

printf(”%d\\n”, d=a>b? a>c?a:c :b); }

A.5 B.4 C.6 D.不确定 41. C编译程序是_____。 A.C程序的机器语言版本 B.一组机器语言指令 C.将C源程序编译成目标程序 D.由制造厂家提供的一套应用软件

42. 以下选项中,合法的用户标识符是_____。

A.long B._2abc C.3dmax D.A.dat 43. 以下选项中可作为C语言合法整数的是_____。

A.10110B B.0386 C.0Xffa D.x2a2 44. 表达式13/3*sqrt(16.0)/8的数据类型是_____。

A.int B.float C.double D.不确定

45. 假设所有变量均为整型,则表达式(x=2, y=5, y++, x+y)的值是_____。 A.7 B.8 C.6 D.2 46. 已知s是字符型变量,下面不正确的赋值语句是_____。

.

.

A.s=’\\012’; B.s= ’u+v’; C.s=’1’+’2’; D.s=1+2; 47. putchar函数可以向终端输出一个_____。

A.整型变量表达式值。 B.字符串

C.实型变量值。 D.字符或字符型变量值。 48. 有如下程序段: int x1,x2; char y1,y2;

scanf(”%d%c%d%c”,&x1,&y1,&x2,&y2);

若要求x1、x2、y1、y2的值分别为10、20、A、B,正确的数据输入是_____。(注:└┘代表空格)

A.10A└┘20B B.10└┘A20B C.10 └┘A└┘20└┘ B D.10A20└┘B

49. 已有定义int a=-2;和输出语句:printf(”%8lx”,a);以下正确的叙述是_____。

A.整型变量的输出格式符只有%d一种

B.%x是格式符的一种,它可以适用于任何一种类型的数据 C.%x是格式符

D.%8lx不是错误的格式符,其中数字8规定了输出字段的宽度

50. 能正确表示“当x的取值在[-58,-40]和[40,58]范围内为真,否则为假”的表达式是_____。

A.(x>= -58) && (x<= -40) && (x>=40) && (x<=58)

.

.

B.(x>= -58) || (x<= -40) || (x>=40) || (x<=58) C.(x>= -58) && (x<= -40) || (x>=40) && (x<=58) D.(x>= -58) | |(x<= -40) && (x>=40) || (x<=58)

51. 已知 x=45, y=’a’, z=0; 则表达式(x>=z && y<’z’|| !y)的值是_____。 A.0 B.语法错 C.1 52. 指出下列程序段所表示的逻辑关系是_____。

if(ax10ab且cdA.

10ab且cd

x10ab且cdB.

10ab x10ab且cdC.

10ab且cd x10ab且cdD.

10cd 53. 以下程序的运行结果是_____。

#include main()

.

.“假” D .

{

int a=2,b= -1,c=2; if (aA.0 B.1 C.2 . 有以下程序,程序运行后的输出结果是_____。

#include main() {

int a=15, b=21, m=0; switch (a%3)

{ case 0: m++; break; case 1: m++; switch (b%2) { default: m++; case 0: m++; break; } }

.

.3 D .

printf(”%d\\n”,m); }

A.1 B.2 C.3 D.4 55. 以下程序的输出结果是_____。

main() { int n=4; while (n--) printf(〞%d〞,--n); }

A.20 B.31 C.321 56. 执行以下程序后输出的结果是_____。

main() { int y=10; do{y--;} while(--y); printf(\"%d\\n\}

A.-1 B.1 C.8 57. 若输入B,以下程序的运行结果为_____。

main()

{char grade;scanf(\"%c\switch(grade)

.

D.210 D.0 .

{case'A':printf(\">=85.\"); case'B':

case'C':printf(\">=60.\"); case'D':printf(\"<60.\"); default:printf(\"error.\"); } }

A.>=85. B.>=60. C.>=60.<60.error. D.error. 58. 在C语言中,为了结束while语句构成的循环,while后一对圆括号中表达式的值应该为_____。

A.0 B.1 C.true D.非0 59. C语言的if语句嵌套时,if与else的配对关系是_____。

A. 每个else总是与它上面的最近的if配对 B. 每个else总是与最外的if配对 C. 每个else与if的配对是任意的 D. 每个else总是与它上面的if配对 60. 下列程序段的输出结果为_____。

main() {int x=3; do

{ printf(\"%3d\while(!(--x));

.

.

}

A.1 B.3 0 C.1 -2 D.死循环 61、以下选项中属于C语言的数据类型是( ) A.复数型 B.逻辑型 C.集合型 D.双精度型 62、一个C程序的执行是从( )

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

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

63、设有语句int a=3;则执行语句a+=a-=a*a;后,变量a的值是( ) A.3 B.0 C.-12 D.9

、若有 char c[5]={'c','d','\\0','e','\\0'};则执行语句printf(\"%s\结果是( )。 A.cd\\0e B.'c''d' C.cd D.cd e

65、已知:int a[2][3]={1,2,3,4,5,6}, (*p)[3]=a;则下列表达式不是4的是 ( )。 A.*(*p+3) B.*p+3 C.*(*(p+0)+3) D.a[0][3] 66、以下有宏替换不正确的叙述( ). A.宏替换不占用运行时间 B.宏名无类型

C.宏替换只是字符串替换 D.宏名必须用大写字母表示 67、执行char str[10]=”Ch\\nina”; strlen(str)的值是( ) A.5 B.6 C.7 D.9

68、下面程序的输出结果是:( ) #define POWER(x) (x*x)

.

.

main()

{int i=4; printf(\"%d\A. -9 B. -7 C. 5 D. -6

69、在定义int a[3][4][2];后,第10个元素是( ) A.a[2][1][2] B.a[1][0][1] C.a[2][0][1] D.a[2][2][1] 70、下列程序的输出结果是( )。

main( ) { int a=7,b=5; printf(\"%d\\n\}

A 5 B 1 C 0 D不确定值

71、.假设变量a,b均为整型,表达式(a=5,b=2,a>b?a++:b++,a+b)的值是( )。

A 7 B 8 C 9 D 2

72、设有如下程序段,下面描述中正确的是 ( )。

int k=10; while(k=0) k=k-1;

A 循环执行一次 B循环是无限循环 C循环体语句一次也不执行 D循环体语句执行一次

73、以下程序的输出结果为( )。

int i; void prt( )

{ for(i=5;i<8;i++) printf(\"%c\ printf(\"\\");

.

.

} main( )

{ for(i=5;i<=8;i++) prt( ); }

A *** B *** *** *** *** C *** *** D * * * 74、在C语言程序中,以下说法正确的是( )。

A函数的定义可以嵌套,但函数的调用不可以嵌套 B函数的定义不可以嵌套,但函数的调用可以嵌套 C函数的定义和函数的调用都不可以嵌套 D函数的定义和函数的调用都可以嵌套

75、以下函数调用语句中含有( )个实参。

func((e1,e2),(e3,e4,e5));

A 2 B 3 C 5 D 语法错误

二、填空题

1. C语言源程序的基本单位是________。

2. 若a为整型变量,a=12,则表达式:a+=4的值________。 3. 通常一个字节包含________个二进制位。 4. 一个C程序有且仅有一个________函数。

5. 在C语言中,字符输入函数和字符输出函数分别是:________和________。 6. 在C语言中,最基本的数据类型只有四种,它们分别是:int、________、________和double。

7. 已知字符A的ACSII码值为65,以下语句的输出结果是________。

.

.

char ch=’B’; printf(\"%c %d\\n\

8. ’a’在内存中占________个字节,”a”在内存中占________个字节。 9. 若有int a[3][2] = {{1},{3,2},{4,5}};,则a[1][1]的值是________。

10.在循环语句中,break语句的作用是________ ,continue语句的作用是________。 11. 一个C语言程序的语句至少应包含一个__________。

12.C语言源程序文件的扩展名是_______,经过编译、连接后,生成文件的扩展名是_______。

13.结构化程序由顺序结构、________和_________三种基本结构组成。 14.C语言的执行是从________开始执行的。 15.表达式10/3的结果是_________。

16.在C语言中,有三种逻辑运算符,它们分别是:&&、________、_________。 17.if语句中的表达式可以是关系表达式、________、________。 18.C语言中基本的数据类型有:整型、________ 、________ 。 19.整数-35在机内的补码表示为_____________。

20.有如下语句:char A[ ]={”I am a student”}; 该字符串的长度是________,A[3]= ________。

21. C语言源程序的基本单位是______________。 22. 表达式9%5的结果是______________。

23. C语言中普通整型变量的类型说明符为__________,在内存中占__________字节。

24. 符号”a”和’a’的区别是_______________。

.

.

25. C语言提供的预处理命令主要包括如下三种:宏定义、____________、____________。

26. 语句printf(“%%d%d”, 123); 将输出: ______________。 27. C语言中,int型数据在内存中的存储形式是_______________。 28. 在C语言中,格式输入库函数为_______________,格式输出库函数为_______________。

29. 判断一个字符是否是字母或数字的逻辑判断语句是: _______________。 30.有以下程序,执行后输出结果是_______________。 main( ) {

int t=1,i=5;

for(;i>=0;i--) t*=i; printf(\"%d\\n\}

31、字符串\"A\"在内存中占用的字节数为_____________。

32、C语言中的标识符只能由字母、下划线和_____________组成。

33、若有定义语句“ int a=25,b=14,c=19;\以下语句的执行结果是_____________ if(a++<=25&&b--<=2&&c++) printf(\"***a=%d,b=%d,c=%d\\n\ else printf(\"###a=%d,b=%d,c=%d\\n\

34、有如下定义a[]=\"B\\172\\\\\\'a%%\";则执行语句printf(\"%d\的结果为_____________。

35、若有定义:int a[12]={1,2,3,4,5,6,7,8,9,10,11,12},*p[4],i;

.

.

for(i=0;i<4;i++) p[i]=&a[i*3];则*(*(p+1)+2)的值为,*p[2]的值为 ____________。若数组的首地址为2000,则p[1]指向的地址为_____________。

36、设a=2,b=3,x=3.5,y=2.5,则表达式(float)(a+b)/2+(int)x%(int)y 的结果是_____________。

37、设x、y都是int型变量,初值都为1,则执行表达式:--x&&y++后,y的值为_____________。

38、语句for(i=1;i==10;i++)continue;循环的次数是_____________ 。 三、写出下列程序的运行结果 1. int main( )

{ int i=29,j=6,k=2,s; s=i+i/j%k-9; printf(“s=%d\\n”,s); } 2. int main( )

{ int x=31,y=2,s=0; do { s-=x*y; x+=2;

y-=3;} while( x%3==0);

.

.

printf(“x=%d\y=%d\s=%d\\n”,x,y,s); } 3. int main( )

{ int a[6]={10,20,30,40,50,60},i; invert(a,0,5);

for(i=0;i<6;i++) printf(“%d,”,a[i]); printf(“\\n”); }

invert(int s[ ],int i,int j) { int t; if(i{ invert(s,i+1j-1); t=s[i];s[i]=s[j];s[j]=t; } } 4.

#include int main()

{ char str[ ]=“The C program”,c;

.

.

int i;

for(i=2;(c=str[i])!=‘\\0’;i++) { switch(c)

{ case ‘g’: ++i; break; case ‘o’: continue;

default: printf(“%c”,c); continue; } printf(“*”); }

printf(“\\n”); } 四、编程题

1. 从键盘输入一个大写字母,要求改用小写字母输出。 2. 求1×3×5×7×9×11。 3. 求1到100的和。

4. 将字符串a复制到字符串b中。 5. 输入两个整数,求两整数之和。 6. 求1×2×3×4×5。

7. 输入两个实数,按代数值由小到大的顺序输出这两个数。 8. 求2个数中较大者。

9. 定义一个字符数组,对它初始化,然后输出该字符串。

.

.

10. 输出a数组中的10个元素的值。

11. 输入a和b两个整数,按先大后小的顺序输出a和b。

12. 输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。

.

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务