ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:30.27KB ,
资源ID:4582653      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4582653.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言复习题.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言复习题.docx

1、C语言复习题C语言复习题一、选择题:1.以下不是C语言的特点的是( B )A.C语言简洁、紧凑 B能够编制出功能复杂的程序C. C语言可以直接对硬件进行操作 DC语言移植性好2. 以下不正确的C语言标识符是( D )。AABC Babc Ca_bc Dab.c3一个c程序的执行是从( A ).Amain( )函数开始,直到main( )函数结束B第一个函数开始,直到最后一个函数结束C.第一个语句开始,直到最后一个语句结束Dmain( )函数开始,直到最后一个函数结束4以下不正确的语句(设有int p,q)是( D )。AP*3; B.pq; C.p十3; Dpq5下列四组选项中,均不是C语言关

2、键字的选项是( A ).Adefine B.getc C.include D.while if char sanf gotype printf case pow6下面四个选项中,均是合法整形常量的选项是( A ). A.160 B.-0xcdf C.-01 D.-0x48a -0xffff 01a 986,012 2e5 011 0xe 0668 0x7. 下面四个选项中,均是不合法浮点数的选项是( B ). A.160. B.123 C.-.18 D.-e30.12 2e4.2 123e4 0.234 e3 .e5 0.0 1e38. 若有代数式3ae/bc,则不正确的C语言表达式是( C

3、) A.a/b/c*e*3 B.3*a*e/b/c C.3*a*e/b*c D.a*e/c/b*39. 若以下变量均是整形,且num=sum=7;则计算表达式sUM=num+,sUM+,+num后sum的值为(A ).A.7 B.8 C.9 D.1010.若有定义: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.00000011. sizeof(float)是( B )。A.一个双精度型表达式 B. 一个整型表达式 C.一种函数调用 D. 一个

4、不合法的表达式12. 设int n3;则n十十的结果是( B )。 A.2 B.3 C.4 D.513. 设有说明: char w; int x; float y; double z; 则表达式w*x+z-y值的数据类型为( D )。 A.float B.char C.int D.double.14. 若x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是( D ).A. scanf(“%d%d1x,%1e”,&x,&y,&z);B. scanf(“%2d*%d%1f”,&x,&y,&z);C. scanf(“%x%*d%o”,&x,&Y);D. scanf(“

5、%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 )。#includemain()int sum,pad;sum=pad=5;pad=sum+;pad+;+pad;printf(%dn,pad);A.7 B

6、.6 C.5 D.417. 巳知字母A的ASCII码是65,以下程序的执行结果是( D )。#includemain() char c1=A,C2=Y; printf(%d,%dn,c1,c2);A.A,Y B.65,65 C.65,90 D.65,8918. 为了避免嵌套的if-else语句的二义性,c语言规定else总是与( C )组成配对关系。A.缩排位置相同的ifB.在其之前末配对的ifC.在其之前未配对的最近的ifD.同一行上的if19. 逻辑运算符两侧运算对象的数据类型( D ). A.能是0或1 B.只能是0或非0正数 C.只能是整型或字符型数据 D.可以是任何类型的数据20.

7、设x、y和z是int型变量,且x3,y4,z5,则下面表达式中值为0的是( D ).A.x&yB.xyC. xy+z&y-zD.!(xy)!z 1)21. 若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是( C ).A.A21 B.!(A20) C.!(A2) D.A222. 以下不正确的if语句形式是( C ).A.if(xy&x!=y);B.if(xy)x十y;C.if(x ! y)scanf(“d”,&x) e1se scanf(”d,&y);D.if(xy)x十十;y十十;23. 以下if语句语法正确的是( B ).A.if(

8、x0) printf(“f“,x) else printf(“f”,-x);B.if(x0)xx+y;printf(“%f“,x);else printf(“%f”,-x)C.if(x0)xx+y;printf(“%f“,x);else printf(“%f”,-x)D.if(x0)xx+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.语法有错不能通过编译

9、B.可以通过编译但不能通过连接 C.输出* D.输出$25. 以下程序运行结果是( C).main()int a=100,x=10,y=20,ok1=5,ok2=0; if (xy) if (y!=10) If(!ok1) a=1; else if(ok2) a=10; a=-1;printf(“%dn”,a);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=10C.a=9,b=10,c=9 D.

10、a=1,b=11,c=1027. 若w,x,y,z,m均为int型变量,则执行下面语句后的m值是( A ).w=1; x=2; y=3; z=4;m=(wx)? w:x;m=(my)? m:y;m=(mz)? m:z;A.1 B.2 C.3 D.428. 语句while(!e);中的条件!e等价于( A )。 A.e0 B.e!1 C.e!0 D.e29. 下面有关for循环的正确描述是( D )A.for循环只能用于循环次数已经确定的情况B.for循环是先执行循环体语句,后判定表达式C.在for循环中,不能用break语句跳出循环体D.for循环体语句中,可以包含多条语句,但要用花括号括起来

11、30. C语言中while和do-while循环的主要区别是( A ).A.do-while的循环体至少无条件执行一次B.while的循环控制条件比的循环控制条件严格C.do-while允许从外部转到循环体内D.do-while的循环体不能是复合语句31.以下程序段( C ).x=-1; dox=x*x; while(! x);A.是死循环 B.循环执行二次C. 循环执行二次 D.有语法错误32. 下面程序的运行结果是( B ).#include main()int y=10;doy-;while(-y);printf(“%dn”,y-);A.-1 B.1 C.8 D.033. 以下正确的描述

12、是( B ).A.continue语句的作用是结束整个循环的执行B.只能在循环体内和switch语句体内使用break语句C.在循环体内使用break语句或continue语句的作用相同D.从多层循环嵌套中退出时,只能使用goto语句34. c语言中( D )。A.不能使用do-while语句构成的循环B.do-while语句构成的循环必须用break语句才能退出C.dowhiLe语句构成的循环,当while语句中的表达式值为非零时结束循环D.dowhile语句构成的循环,当while语句中的表达式值为零时结束循环35. 在C语言中,引用数组元素时,其数组下标的数据类型允许是(C ) A. 整

13、型常量 B.整型表达式C.整型常量或整型表达式D.任何类型的表达式36. 在C语言中,一位数组的定义方式为:类型说明符 数组名( D )。A. 常量表达 B. 整型表达式C. 整型常量或整型表达式 D. 整型常量37. 以下不能对二维整形数组a进行正确初始化的语句是( C )。A.int a23=0;B. int a3=1,2,0;C. int a23=1,2,3,4,5,6;D. int a3=1,2,3,4,5,6;38. 若有说明:int a4=0,0;则下面正确的叙述是(D )。A. 数组a中每个元素均可得到初值0 B. 二维数组a的第一维大小为1C. 因为二维数组a中第二维大小的值除

14、以初值个数的商为1,故数组a的行数为1D.只有元素a00和a01可得到初值0,其余元素均得不到初值039. 若有说明:int a3=1,2,3,4,5,6,7;则a数组第一维的大小是(B )。A.2 B.3 C.4 D.无确定值40. 下面程序的运行结果是(B )。char c5=a,b,0,cc,0;printf(“%s”,c);A.abB.ab C.ab cD.ab41. 有两个字符数组a、b,则以下正确的输入语句是( B )。gets(a,b);scanf(“%s%s”,a,b);scanf(“%s%s”,&a,&b);gets(“a”),gets(“b”);A. sj+=si B. s

15、+j=siC. sj=si; j+ D.sj=si42. 若使用一维数组名作函数实参,则以下正确的说法是( A ).A.必须在主调函数中说明此数组的大小B.实参数组类型与形参数组类型可以不匹配C.在被调函数中,不需要考虑形参数组的大小D.实参数组名与形参数组名必须一致43. 以下正确的说法是( A ).A.如果在一个函数中的复合语句中定义了一个变量,则该变量只在该复合语句中有效B.在该函数中有效C.在本程序范围内均有效D.非法变量44. 凡是函数中未指定存储类别的局部变量,其隐含的存储类别为( A ).A.自动(auto) B.静态(static)C.外部(extern) D.寄存器(regi

16、ster)45. 以下程序的运行结果是( B )。#define MIN(x,y) (x)(y)?(x):(y)main()int i=10,j+15,k;k+10*MIN(i,j);printf(“%dn”,k);A.10 B.15 C.100 D.15046. C语言的编译系统对宏命令的处理是( D)。A.在程序运行时进行的B.在程序连接时进行的C.和C程序中的其它语句同时进行编译的D.在对源程序中的其它语句同时进行编译的47. 请读程序#include#defineMUL(x,y)(x)*ymain()int a=3,b=4,c;c=MUL(a+,b+);printf(%dn,c); 上

17、面程序的输出结果是(A )。A.12 B.15 C.20 D.1648. 以下程序的输出结果为( B )。#definePT 5.5#defineS(x) PT*x*xmain()inta=1,b=2;printf(%4.1n,S(a+b);A.12.0 B.9.5 C.12.5 D.33.549. 在“文件包含”预处理语句的使用形式中,当#include后面的文件名用括起时,寻找被包含文件的方式是( C)。A.仅仅搜索当前目录B.仅仅搜索源程序所在目录C.直接按系统设定的标准方式搜索目录D.先在源程序所在目录搜索,再按系统设定的标准方式搜索50. 以下正确的描述是(C )。A.C语言的预处理

18、功能是指定完成宏替换和包含文件的调用B.预处理指令只能位于C源程序文件的首部C.凡是C源程序中行首以“#”标识的控制行都是预处理指令D.C语言的编译预处理就是对源程序进行初步的语法检查51. 设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是( B )。 A.c=*p1+p2; B.p2=c C.p1=p2 D.c=*p1*(*p2);52. 设有下面的程序段: chat s=”china”; char *p; p=s; 则下列叙述正确的是( D )。A.s和p完全相同B.数组s中的内容和指针变量p中的内容相等C.s数组长度和p所指向的字符串长度相等D.*p

19、与s0相等53. 下面程序的运行结果是( C )。 #include #include main() char *p1,*p2,str50=”abc”;p1=”abc”; p2=”abc”;strcpy(str+1,strcat(p1,p2);printf(“%sn”,str);A. abcabcabc B.bcabcabc C. aabcabc D.cabcabc54. 若有定义:int a23;则对数组a的第i行第j列(假设i,j已正确说明并赋值)元数值的正确引用为( A)。 A.*(*(i+j)+j) B.(a+i)j C.*(a+i+j) D.*(a+i)+j55. 若有定义:int

20、(*p)4;则标识符p( C )。A.是一个指向整型变量的指针 B.是 一个指针数组名C.是一个指针,它指向一个含有四个整型元素的一维数组D.定义不合法56. 若有以下定义和赋值语句,则对b数组的第i行第j列(假设i,j已正确说明并赋值)元素地址的非法引用为( C )。int b23=0,(*p)3;p=b;A.*(*(p+i)+j) B.*(pi+j)C.(p+i)+j D.(*(p+i)j57. 当说明一个结构体变量时系统分配给它的内存是( A ).A.各成员所需内存量的总和B.结构中第一个成员所需内存量C.成员中占内存量最大者所需的容量D.结构中最后一个成员所需内存量58. C语言结构体

21、类型变量在程序执行期间( A ).A.所有成员一直驻留在内存中B.只有一个成员驻留在内存中C.部分成员驻留在内存中D.没有成员驻留在内存中59. 以下对C语言中共用体类型数据的叙述正确的是( C )。 A.可以对共用体变量名直接赋值 B.一个共用体变量中可以同时存放其所有成员 C.一个共用体变量中不可能同时存放其所有成员 D.共用体类型定义中不能出现结构体类型的成员60. C语言共用体型变量在程序运行期间 (B ) 。 A.所有成员一直驻留在内存中 B.只有一个成员驻留在内存中 C.部分成员驻留在内存中 D.没有成员驻留在内存中61. 请读程序片段:int x=20;printf(“%dn”,

22、 x);上面程序片段的输出结果是( C ).A.02B.20C.-21D.-1162. 在位运算中,操作数每左移一位,其结果相当于( A ).A.操作数乘以2B.操作数除以2C.操作数除以4D.操作数乘以463. 系统的标准输入文件是指( A)。A. 键盘 B .显示器 C .软盘 D. 硬盘64. 当顺利执行了文件关闭操作时,fclose函数的返回值是( C )。 A .-1 B. TURE C. 0 D.165. 已知函数的调用形式:fread(buffer,size,count,fp);其中buffer代表的是 ( C )。 A .一个整形变量,代表要读入的数据项总数 B .一个文件指针

23、,指向要读的文件 C .一个指针,指向要读入数据的存放地址 D.一个存储区,存放要读的数据项二、填空题:1. C程序的基本单位是 。2. 表达式10%3的结果是 。3. 假设所有变量均为整型,则表达式(a=2,b=5,a+,b+,a+b)的值为 。4. 在C语言中(以16位PC机为例),一个float型数据在内存中所占用的字节数为 ;5C语言所提供的基本数据类型包括: 。6表达式pow(2.8,sqrt(double(x) 值的数据类型为 。7以下程序的执行结果是 。#includemain()float f=3.5;printf(%f,%g,f,f)8. 以下程序的执行结果是 。#inclu

24、demain()float f=31.41592;printf(%f,%e,f,f)9. 以下程序的执行结果是 。#includemain()int a,b,c;a=2;b=3;c=1;if(ac)printf(%dn,a);else printf(%dn,b);printf(endn);10. 在C语言中,表示逻辑“真”值用 .11. 有int x,y,z; 且x=3,y=-4,z=5,则表达式(x&y)= =(xz)的值为 。12. 下面程序从键盘输入的字符中统计数字字符的个数,用换行符结束循环。请填空。int n=0,c;c=getchar();while( ) if(c=0&c=0);

25、15. 若for循环用以下形式表示: for(表达式1;表达式2;表达式3) 循环体语句 则执行语句for(i=0;i3;i+) printf(“*”);时,表达式3执行 次。16. 以下程序的输出结果是_。 main( )int s10=1,2,3,4,5,6,7,8,9,10,*p=s;printf(%dn,*(p+4);17. 若二维数组a有m列,则计算任一元素aij在数组中位置的公式为: 。(假设a00位于数组的第一个位置上。)18. 在C语言中,二维数组元素的内存中的存放顺序是 。19. 在C 语言中,一个函数一般由两个部分组成,它们是 。20. 以下程序的运行结果是 。 #incl

26、ude f(int a) int i=0; while (ai0);print(“%dn”,t)26. 下面程序段的运行结果是 。 char *p=”PDP1-0”; int I,d; for(I=0;I7;I+)d=isdigit(*(p+ii);if(d!=0) printf(“%c *(p+I);27. 当运行以下程序时,从键盘输入 bookbook (表示回车, 表示空格),则下面程序段运行的结果是 。char a180,a280,*s1=a1,*s2=a2;gets(s1);gets(s2);if(!strcmp(s1,s2) printf(“*”):else printf(“#”);printf(“%d”,strlen(strcat(s1,s2);28. 若已定义:struct numint a; int b; f

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1