




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计复习练习及答案一、选择题(1)有以下程序main() int m=3,n=4,x;x=-m+; x=x+8/+n; printf(%dn,x); 程序运行后的输出结果是:(D)A)3 B)5 C)-1 D)-2 (2)以下叙述中正确的是:(A)A) 构成C程序的基本单位是函数B) 可以在一个函数中定义另一个函数C) main()函数必须放在其它函数之前D) 所有被调用的函数一定要在调用函数之前进行定义(3)有以下程序main() int m3=1,4,7,2,5,8,3,6,9; int i,j,k=2; for(i=0;i3;i+) printf(%d,mki); 执行后输出结果是:(C)A) 4 5 6 B) 2 5 8 C) 3 6 9 D) 7 8 9(4)有以下程序 main() int m=0256,n=256; printf(%o %on,mn,n); 程序运行后的输出结果是:(C)A)0256 0400 B)0256 256 C)256 400 D)400 400 (5)下列关于单目运算符+、-的叙述中正确的是:(D)A) 它们的运算对象可以是任何变量和常量B) 它们的运算对象可以是char型变量和int型变量,但不能是float型变量C) 它们的运算对象可以是int型变量,但不能是double型变量和float型变量D) 它们的运算对象可以是char型变量、int型变量和float型变量(6)以下选项中非法的表达式是:( D )A)0=x100 B)i=j=0C)(char)(65+3) D)x+1=x+1(7)下列条件语句中,功能与其他语句不同的是:(D) A) if(a) printf(%dn,x); else printf(%dn,y); B) if(a=0) printf(%dn,y); else printf(%dn,x);C) if (a!=0) printf(%dn,x); else printf(%dn,y);D) if(a=0) printf(%dn,x); else printf(%dn,y); (8) 下列关于C语言用户标识符的叙述中正确的是:(B)A用户标识符中可以出现下划线和中划线(减号)B用户标识符中不可以出现中划线,但可以出现下划线C用户标识符中可以出现下划线,但不可以放在用户标识符的开头D用户标识符中可以出现在下划线和数字,它们都可以放在用户标识符的开头(9) 在一个C程序中:(B)A) main函数必须出现在所有函数之前 B) main函数可以在任何地方出现C) main函数必须出现在所有函数之后 D) main函数必须出现在固定位置(10) 下列选项中,不能用作标识符的是:(D) A)_1234_ B)_1_2 C)int_2_ D)2_int_(11)以下不能定义为用户标识符的是:( D )A)scanf B)Void C)_3com_ D)int(12) C语言中用于结构化程序设计的三种基本结构是:(A)A) 顺序结构、选择结构、循环结构 B) if、switch、breakC) for、while、do-while D) if、for、continue(13)有以下定义#include char a10,*b=a;不能给数组a输入字符串的语句是:(B)A) gets(a) B) gets(a0) C) gets(&a0); D) gets(b) ;(14) 在说明语句:int *f();中,标识符f代表的是:( D )A) 一个用于指向整型数据的指针变量B) 一个用于指向一维数组的行指针C) 一个用于指向函数的指针变量D) 一个返回值为指针型的函数名(15) 有以下程序main( ) int i,s=0; for(i=1;i10;i+=2) s+=i+1;printf(“%dn”,s);程序执行后的输出结果是:(D)A) 自然数19的累加和 B) 自然数110的累加和C) 自然数19中的奇数之和 D) 自然数110中的偶数之和(16)若有说明语句:int a,b,c,*d=&c;,则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是:( A )A) scanf(%d%d%d,&a,&b,d); B) scanf(%d%d%d,&a,&b,&d);C) scanf(%d%d%d,a,b,d); D) scanf(%d%d%d,a,b,*d);(17)若有定义:int aa 8;。则以下表达式中不能代表数组元aa1的地址的是:( C )A) &aa0+1 B) &aa1 C) &aa0+ D) aa+1(18)若以下选项中的变量已正确定义,则正确的赋值语句是:(C)A) x1=26.8%3 B) 1+2=x2 C) x3=0x12 D) x4=1+2=3;(19) 若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是:(D)A) 函数调用可以作为独立的语句存在B) 函数调用可以作为一个函数的实参 C) 函数调用可以出现在表达式中D) 函数调用可以作为一个函数的形参(20)若有以下说明和语句,int c45,(*p)5;p=c;能正确引用c数组元素的是:(D)A)p+1 B)*(p+3) C)*(p+1)+3 D)*(p0+2)(21)有以下程序 main() char str10=China,Beijing,*p=str; printf(%sn,p+10); 程序运行后的输出结果是:(B) A) China B)Bejing C)ng D)ing (22) 以下程序的输出结果是:( A )main() int a=0,i;for(i=1;i5;i+) switch(i) case 0:case 3:a+=2;case 1:case 2:a+=3;default:a+=5;printf(%dn,a);A)31 B) 13 C) 10 D) 20(23)已有定义:int i,a10,*p;,则合法的赋值语句是:(D)A)p=100; B)p=a5; C)p=a2+2; D)p=a+2;(24)在64位计算机中,一个字长所占的字节数为:(A)A) 64 B) 8 C) 4 D) 1(25) 有以下函数定义:voidfun(intn,doublex) 若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是:( C )A) fun(inty, double m); B) k=fun(10,12.5); C) fun(x,n); D) voidfun(n,x);(26) 有以下程序#include main(int argc ,char *argv ) int i,len=0; for(i=1;iargc;i+=2) len+=strlen(argvi); printf(“5dn”,len);经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行ex abcd efg h3 k44执行后输出结果是:( D )A)14 B)12 C)8 D)6(27)下列选项中正确的语句组是:( D )chars8;s=Beijing; B)char*s;s=Beijing;C)chars8;s=Beijing; D)char*s;s=Beijing;(28) 设有以下语句typedef struct S int g; char h;T ;则下面叙述中正确的是:( B )A)可用S定义结构体变量 B)可以用T定义结构体变量C)S是struct类型的变量 D)T是struct S类型的变量(29)与十六进制数200等值的十进制数为:(B)A) 256 B) 512 C) 1024 D) 2048(30)1MB等于:(D)A) 1000字节 B) 1024字节C) 10001000字节 D) 10241024字节(31)有以下程序 main() inta33,*p,i; p=&a00; for(i=0;i0); D)if(b= =0) m=1;n=2;有定义:int a,*pa=&a;以下scanf语句中能正确为变量a读入数据的是:( A )A)scanf(“%d”,pa); B)scanf(“%d”,a);C)scanf(“%d”,&pa); D)scanf(“%d”,*pa);以下程序段中与语句k=ab?(bc?1:0):0;功能等价的是:( A )A)if(ab)&(bc) k=1; B) if(ab)|(bc) k=1;else k=0; else k=0; C)if(ab) k=1; else if(bc) k=1; else k=0; 若程序中定义了以下函数 double myadd(double a,double b) return (a+b);并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是:( A )A)double myadd(double a,b); B)double myadd(double,double);C)double myadd(double b,double a); D)double myadd(double x,double y);(38) 若有以下说明和定义typedef int *INTEGERINTEGER p,*q;以下叙述正确的是:( B )p是int型变量p是基类型为int的指针变量q是基类型为int的指针变量程序中可用INTEGE有以下定义int a=0; double b=1.25;char c=A;#define d 2则下面语句中错误的是:( D )A)a+; B)b+; C)c+; D)d+;有如下定义:struct skint a;float b;data;int *p;若要使p指向data中的a域,正确的赋值语句是:( C )A) p=&a; B) p=data.a; C) p=&data.a; D) *p=data.a(41) 若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为:( A )A)0 B)1 C)-1 D)一个非0值 (42)下列关于C语言数据文件的叙述中正确的是:( D ) A)文件由ASCII码字符序列组成,C语言只能读写文本文件 B)文件由二进制数据序列组成,C语言只能读写二进制文件 C)文件由记录序列组成,可按数据存放形式分为二进制文件和文本文件D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件(43)有定义:int n=0,*p=&n,*q=&p;则以下选项中,正确的赋值语句是:( D )A) p=1; B) *q=2; C)q=p; D)*p=5;(44)有以下程序段int a10=1,2,3,4,5,6,7,8,9,10,*p=&a3,b;b=p5;b中的值是:( D )A) 5 B) 6 C) 8 D) 9(45)定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1&y+z/2的值是:( D )A) 6 B) 0 C) 2 D) 1(46)有以下程序main()int aa44=1,2,3,4,5,6,7,8,3,9,10,2,4,2,9,6;int i,s=0;for(i=0;ibc);printf(%dn,d);(7) 设有如下宏定义#define MYSWAP(z,x,y) z=x; x=y; y=z;以下程序段通过宏调用实现变量a、b内容交换,请填空。float a=5,b=16,c;MYSWAP( c , a , b ); (8)执行以下程序后,输出#号的个数是 6 #include main()inti,j;for(i=1;i5;i+) for(j=2;j=i;j+)putchar(#);(9) 以下程序运行后的输出结果是 30 25 inta=5;fun(intb)staticinta=10; a+=b+; printf(%d,a); main() intc=20; fun(c); a+=c+; printf(%dn,a); (10) 已有定义如下:structnode intdata; structnode*next; *p; 以下语句调用malloc函数,使指针p指向一个具有structnode类型的动态存储空间。请填空。p=(structnode*)malloc( sizeof(struct node) );(7) 已知字符A的ACSII码值为65,以下语句的输出结果是 B 66 char ch=B; printf(“%c %dn”,ch,ch);(8) 以下程序中给指针p分配三个double型动态内存单元,请填空。# include main ( ) double *p; p=(double ) malloc( 3*sizeof(double) ); p0=1.5;p1=2.5;p2=3.5; printf(“%f%f%fn”,p0,p1,p2);(9) 以下程序运行后的输出结果是 17 main()int x=15;while(x10&x50)x+;if(x/3)x+;break;else continue;printf(%dn,x);(10) 若fp已正确定义为一个文件指针,d1.dat为二进制文件,请填空,以便为“读”而打开此文件:fp=fopen(d1.dat,rb或d1.dat,r+b或d1.dat,rb+ );。(11) 有以下程序main( ) int n=0,m=1,x=2; if(!n) x-=1; if(m) x-=2; if(x) x-=3; printf(%dn,x);执行后输出结果是 -4 (12) 有以下程序void f( int y,int *x)y=y+*x; *x=*x+y;main( ) int x=2,y=4; f(y,&x); printf(%dt%dn,x,y);getch();执行后输出的结果是 8 4 (13) 以下程序的输出结果是 261 。main() int a=177;printf(%on,a);(14) 以下程序运行后的输出结果是 20, 0 。main()int x=10,y=20,t=0;if(x=y)t=x;x=y;y=t;printf(%
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 亲爱的鳄鱼爸爸课件
- 麦当劳调研报告汇报
- 教学基地工作总结
- 员工时间管理企业培训
- 公司组织安全培训意义课件
- 亲亲指甲钳健康课件
- 亮化安全培训记录课件
- 静脉输液后青记的护理课件
- 公司级安全教育培训内容课件
- 公司级安全培训职责
- 人工智能助力企业创新发展
- 资料员之资料员基础知识题库及完整答案(各地真题)
- 创新思维:激发员工的创造力和解决问题的能力培训课件
- 室内设计施工图图例与规范-课件
- 品质品质脏污混料油盖改善报告注塑部课件
- 22G101系列图集常用点全解读
- 外研版初中英语单词总表(7~9)年级
- 2023年溆浦县政务中心综合窗口人员招聘笔试模拟试题及答案解析
- GB/T 18747.1-2002厌氧胶粘剂扭矩强度的测定(螺纹紧固件)
- 分时租赁介绍课件
- 第七章-大学生创业实践案例课件
评论
0/150
提交评论