已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计练习一说明:本练习题主要是让学生通过练习进一步巩固C语言程序设计的基本概念和知识。本练习题与考试题库无关,如有类同纯属巧合。一、单项选择题1.下面转义字符中,表示字符串结束的是(C)A. r B. n C. 0D. f2.在Turbo C2.0中,若定义unsigned int a;则变量a在内存中分配的字节数是(B)A.1个B.2个 C.4个D.8个3.设有int x=2,y,z;执行z=y=x-;后,变量z的值是(C)A.0B.1C.2D.34.以十六进制形式输出整数的格式说明符是(C)A.%uB.%ld C.%xD.%o5.下面合法的if语句是(A)A.if(a=b) c+;B.if(a=b) c+; C.ifi(ab) c+; D.if(a=b) c+;6.结束while(表达式)循环的条件是(A)A.当表达式的值为0时B.当表达式的值不为0时C.当表达式的值为1时D.当表达式的值为非1时7.下面列出的位运算符中,表示按位与操作的是(B)A.B.&C.D.|8.设有说明:int x=0x03,y=3;表达式x&y的值是(A)A.0B.1C.2D.39. 设有int a=3, b=-4, c=5;表达式(ab)? a+b: (a-b,b+4,a-=b+4)的值是(C)A. 1 B. 0 C. 3D. 710. 若有下列程序段,欲使a=2、b=3,对应正确的数据输入方法是(B)(其中表示换行) int a, b; scanf(a=%d b=%d,&a, &b);A. 2B. a=2 b=3 C. a=2, b=3 D. 2,3 311. 下列if语句中,有语法错误的是(C)A. if(xy);B. if(x=y) x+y;C. if(x!=y) scanf(%d, &x) else scanf(%d,&y)D. if(xy) x+; y+;12. 下面程序段执行后的输出结果是(A)int i=-1;if(i B. & C. 15. 设有说明:int u=1, v=14;表达式u+v2的值是(B)A. 0B. 3 C. 5D. 716.设有 int a =3, b=-4, c=0;表达式(ab)?a:b)&c0的值是(B)A.-4 B.0 C.1D.317.若有下列程序段,欲使a=2、b=3,对应正确的数据输入方法是(C)(其中表示换行)int a, b;scanf(a=%d, b=%d,&a,&b);A.2 B.a=2 b=3 C.a=2, b=3 D.2,3 318.关于if语句下面叙述正确的是(D)A.只有当if语句中表达式的值等于1时,才执行if的内嵌语句B.只有当if语句中表达式的值为假时,才执行if的内嵌语句C.只有当if语句中表达式的值等于0时,才执行if的内嵌语句D.只要if语句中表达式的值非0时,就执行if的内嵌语句19.若int x=0; 则while(x=0); 的循环次数是(D)A.0 B.1 C.2D.无限次20.下面各个运算符的优先级从左到右依次降低的是(D)A.& | B. & |C. & |D. & 21.设有说明:int u=1, v=2;表达式:u+vb?a:c0) y=1;else y=0;ABCD27执行下面程序段后,输出字符A的个数是(B)for(i=0;i=5;i+=2) printf(A);A0个 B3个 C5个D6个28设有说明:int x=0x15,y=0x0f;则x&y的结果是(A)A0x5 B0x15 C0xf0D0xf529如果在程序中要使用系统提供的函数strlen,则需要书写的编译预处理命令是(C)A#includeB#includeC#includeD #incLude30整数在机器内存中的表示是(B)A1000000000000010B1111111111111110C11111111111111101D111111111111111131下列运算符中优先级最低的是(D)A B! C%D= =32设有int a=3,b=,c=5;表达式+ +ac+b+ +的值是(B)A6 B5 C4D333以十进制无符号形式输出整数的格式说明符是(A)A%u B%x C%oD%d34执行while(表达式)循环的条件是(C)A当表达式的值为0时B仅当表达式的值为1时C当表达式的值非0时D当表达式的值不为1时35下列位运算符中,表示按位异或操作的是(C)A B CD&36下列各个位运算符的优先级从左到右依次升高的是(C)A& B & C& D& 37设有说明:int u=1,v=3;则表达式u= v的值是(D)A0B1C3D838下列转义字符中,表示回车的是(B)A0 Bn Cr Df39若定义double d;则d在内存中分配的字节数是(D)A1个 B2个 C4个 D8个40下列表达式中运算结果为3的表达式是(B)A(-7)%4 B7/4+2 C7/4*4-4 D8/3+8/341设有int a=3,b=-4,c=5;表达式a+-c+b+的值是(A)A-6 B-5 C-4 D-342在printf语句中,格式说明符u表示(C)A以十进制带符号形式输出整数B以十六进制带符号形式输出整数C以十进制无符号形式输出整数D以十六进制无符号形式输出整数43关于switch中的表达式,正确的说法是(D)A它必须是算术表达式B它必须是关系表达式C它必须是逻辑表达式D它可以是任意类型的表达式44对do语句while(表达式);结构的循环,下列说法正确的是(B)A当表达式的值为非零时不执行循环体B循环体至少被执行一次C当表达式的值为零时循环体一次也不执行D循环体仅被执行一次45只能在循环语句中用于结束本轮循环的语句是(B)Abreak; Bcontinue; Cgoto Dif46.下列是合法C语言常量的是( C )A. e B. 7E4.0 C. E4 D. -9.13E-3047.设有int a=3,b=-4,c=5;表达式(ab)?a:b&c B. & | C. | D. | 50.设有说明:int u=1,v=3,w=5;表达式:v &u|w的值是( B )A. 3 B. 5 C. 6 D. 851.在Turbo C 2.0中,若定义char ch;则变量ch在内存中分配的字节数是( A )A.1个 B.2个 C.4个D.8个652.下面程序段的输出结果是( B )main()int a=2,b=5;printf(a=d,b=d,a,b);A.a=2,b=5 B.a=2,b=5 C.a=2,b=5 D.a=d,b=d53.设有条件表达式(exp)? a+:b-,则下列表达式中能够与该表达式完全等价的表达式是( A )A.(exp!=0)? a+b-B.(exp=0)? a+b-C.(exp=1)? a+b-D.(exp!=1)? a+:b-54.对于for(表达式l;表达式2;表达式3)语句;控制循环结束的表达式是( B )A.表达式1 B.表达式2 C.表达式3 D.表达式l和表达式355.设有int x=2,y,z;执行z=y=x;后变量y的值是( C )A.0 B.1 C.2 D.356.在下列选项中,没有构成死循环的程序段是( C )A.int i=100;B.for(;);while(1) i=i100+1;if(i100) break;C.int k=1000;D.int s=36;do+k;while(k10000); while(s);一一s;57.设有说明:int u=l,v=3,w=5;表达式:u1|u120); a=a+1;printf(%d,a);A. 100B. 101 C. 120D. 12161. 下面程序执行后,i的值是(C)main( ) int a 5=1,2,3,4,5,i=2 printf(%d,ai+);A. 1B. 2 C. 3 D. 462. 下面程序的输出结果是(C)main( ) int i, x33=9,8,7,6,5,4,3,2,1;for(i=0;i4;i+=2) printf(%d, xi1); A. 5 1B. 52 C. 8 2D. 9363.下面程序段的输出结果是(B)main( ) int s, p;s=p=5;p=-s;p+;+p;printf(%dn,p);A.5 B.6 C.7D.864.若执行下面程序时,从键盘输入数据3和4,则程序的输出结果是(A)main( ) int a,b,s;scanf(%d, &a,&b);s=a;if(ab) s=bs=s*s;printf(%d,s);A.9 B.12 C.16D.2565.下面程序段的输出结果是(C)for (i=1; i3;i+)for (j=1;j3;j+) printf(%d , i+j); printf(n);A.2 3 3 4 B.2 3 4 C.2 3 D.2 3 43 466下列程序段的输出结果是(B)void main(void) iny y=1,x=5; if(x=0)y=0; printf(dn,y);A1 B0 C1D567执行如下程序段后,x的值是(D)int x=1,y=1; if(y0)x=y; else x+=y;A1 B0 C1D268下列程序段输出的结果是(A) for(i=1;i3;i+ +) for(j=1;j3;j+ +) printf(%d,i+j);A2 3 3 4B2 3 4C2 3D2 3 4 3 469若有int a=3,b=4,c=5,d=6,x=4;执行下列程序段后x的值是(A)if(ab)if(c= =d)x=c;elsex=d+A4 B5 C6 D770.下列程序的输出结果是( D )main( ) int x=5,y;if(x0)y=-1;if(x=0)y=0;y=1;printf(%d,y);A. -5 B. -1 C. 0 D. 171.下列程序段的输出结果是( D )i=1;while(i3)j=1;while(j5)printf(d,x);else printf(dn,x);A.7和5 B.6和3 C.7和4 D.6和474.设有下面程序:# includestdio.hvoid main(void)unsigned x=1,y=3,z=5;printf(dn,zxy);该程序的运行结果是( C )A.0 B.3 C.4 D.575.若有定义int a35;则数组a在内存中占用的字节数是(D)A.8B.15 C.16D.3076.下面程序的输出结果是(C)mian ( ) int a5=2,4,6,8,10,i;i=2;printf(%d,ai+);A.2 B.4 C.6D.877.下面程序的输出结果是(A)main( ) int a34=1,3,5,7,9,11,13,15,17,19,21,23; int i,j,k=0; for(i=0;i3;i+)k=k+ai0; printf(%dn,k);A.27 B.33 C.39D.4578若有定义char a = computer;则存储字符m的数组元素是(B)Aa1 Ba2 Ca3Da479若有定义int a 4=1,2,3,4;则aa3-a1*a1的值是(A)A1 B2 C3D480若有定义int s4=1,2,3,4;则aa2*a0+1的值是(B)A1 B2 C3D481若有定义int a35;则数组a在内存中分配的字节数是(D)A8 B15 C24 D3082已知strl和str2是字符串数组,下列哪一个函数能正确的完成字符串的输入?(A)Agets(strl) Bgets(strl,str2) Cgetchar(strl) Dgetchar(strl,str2)83.已知str1和str2是字符数组名,下面函数中能正确地完成字符串输出的是( B )A. puts (str1,str2) B. puts (str2) C. putchar (strl) D. putchar (str1,str2)84.设有下列程序:( A )void main(void)int x4=1,3,5,7,i;i=0:printf(d,xi+);其输出结果是A.1 B.3 C.5 D.785.定义如下变量和数组int k;int x33=9,8,7,6,5,4,3,2,l;则执行下面语句for(k=0;k3;k+)if(k2)printf(5d,xkk);后输出结果是( B )A.3 B.5 C.7D.986.下面能正确进行字符串赋值操作的是( C )A.char s5=ABCDE;B.char s5=A,B,C,D,E;C.char *s;s=ABCDE;D.char *s;scanf(s,s);87.在C语言中,当函数返回值的类型缺省时,表示该函数返回值的类型是(D)A.charB.float C.longD.int88.若有说明:int *p,m=5,n;以下正确的程序段是(D)A.p=&n;B.p=&n;scanf(%d,n); scanf(%d,*p);C.scanf(%d,&n);D.p=&n; p=n; *p=m;89.变量的指针,其含义是指该变量的(B)A.值B.地址 C.名 D.一个标志90. 在C程序中,若用基本数据类型所定义的变量调用函数,正确的说法是(B)A. 由系统自动指定对应实参和形参是否共用存储单元B. 对应实参和形参各占一个独立的存储单元C. 对应实参和形参共用一个存储单元D. 可以由用户指定对应实参和形参是否共用存储单元91. 下面叙述中不正确的是(D)A. 不同函数中可以使用相同名字的变量B. 形式参数是局部变量C. 在一个函数内部定义的变量只能在本函数范围内有效D. 在一个函数内部的复合语句中定义的变量在本函数范围内有效92. 设有语句int a410,*p=*a;则下面表达式中属于地址表达式的是(B)A. a12B. a1 C. *(p+1*10+2)D. *(a1+2)93.以下正确的函数定义形式是(A)A. double fun(int x, int y)B. double fun(int x; int y)C. double fun(int x, int y);D. double fun(int x, y);94.关于变量以下不正确的说法是(B)A.在不同函数中可以使用相同名字的变量B.形式参数是全局变量C.在函数内定义的变量只在本函数范围内有效D.在函数内的复合语句中定义的变量是局部变量95.设有语句int a410,*p=*a;则下列表达式中不是地址表达式的是(C)A.&a12 B.a3 C.*(p+1*10+2) D.p+1*10+296如果一个C程序仅由一个源文件组成,则在一个源文件中定义的全局变量的作用域为(D)A源文件的全部范围B本程序的全部范围C本函数的全部范围D从定义该变量的位置开始至本文件末尾97下列定义中,不是指针数组定义的是(C)Aint*p5; Bfloat*q4; Cint(*r)6;Dchar*w7;98若有语句int*point,a=4;和point=&a;下面代表地址的一组选项是(D)Aa,point,*&aB&*a,&a,*pointC*&point,*point,&aD&a,&*point,point99下列程序的运行结果是(B)#difine N 9fun (char s ) char*p=s+4,*q=s; int i; for(i=0;i4;i+ +,p+ +,q + +) si=*p; si+4=*q main( ) char ssN= ABCDEFGH; fun(ss) printf(%sn,ss); AEFGHABCD BEFGHEFGH CABCDEFGH DABCDABCD100.设有下列程序:ff( )int c=9;static int a=1,b=4;if(b=4)a+=c;b+;else a+=c;b;printf(a=d,b=dn,a,b);main( )ff( );ff( );则该程序执行后,显示的结果为( D )A.a=10,b=5B.a=10,b=4a=19,b=5 a=l9,b=5C.a=10,b=4D.a=10,b=5a=19,b=4 a=19,b=4101若有int a =1,2,3,4,5,6,7,8,9,10,且0i10,则对数组元素地址正确表示的是(D)A&a+1 B&a+ + C&aD&ai102下列关于函数的描述中正确的是(C)AC程序中有调用关系的所有模块必须放在同一个源文件中B函数必须有返回值,否则不能使用函数CC程序必须由一个或一个以上函数构成DC函数既可以嵌套定义又可以嵌套调用103设有下列程序,则(B)int d=10;main()int a=3;printf(“%d,%dn”,a,d);Aa是全局变量,d是全局变量 Ba是局部变量,d是全局变量Ca是全局变量,d是局部变量 Da是局部变量,d是局部变量104若有说明:int*p1,*p2,m=5,n;以下进行赋值的语句中合理的是(C)Ap1=m; B&p2=n; Cpl=&m;p2=p1; D*p1=&m;105下列为指针数组定义的是(D)Afloat(*)6; Bfloat p6; Cfloat(*)(); Dfloat *p6;106.下列关于函数的说明中不正确的是( A )A. 函数名后面可以不要一对圆括号B. 函数参数类型必须作说明C. 函数形参个数可以是一个、多个或没有D. 空函数被调用时不做任何工作107下列关于C语言程序说法正确的是(D)AC语言程序总是从有定义的函数起顺序执行B在C语言程序中,被调用函数必须在main函数中定义CC语言程序中的main函数必须放在程序的开始部分DC语言程序总是从main函数起开始执行108.若有定义:int a5;则a数组中首元素的地址可以表示为( C )A. &a B. a+1 C. a D. &a1109.设有char s=ta017bc;则指针变量s指向的字符串在内存中所占的字节数是( B )A. 5 B. 6 C. 7 D. 9110.若有定义# define P(x)=x x x+1和说明语句:int a=2;则表达式P(2)的值是( C )A. 6 B. 8 C. 9 D. 10111.下列关于函数的说法中,不正确的是( D )A.函数名后面一定要一对圆括号B.空函数被调用时不做任何工作C.函数形参个数可以是一个、多个或没有D.函数参数类型可不作说明112.下面程序段的运行结果是( C )chars *s=abcde;s+=2 printf(d,s);A.cde B.字符c C.字符c的地址 D.无确定的输出结果113下列为指针数组定义的是(D)Afloat(*)6; Bfloat p6; Cfloat(*)(); Dfloat *p6;114凡是函数中未指定存储类别的局部变量,其隐含的存储类别为(A)A自动(auto) B静态(static) C外部(extern)D寄存器(register)115. 下面定义不正确的是()A. struct starB. struct star int id int id;char *name; char *name; star1=1001, Moon; ; star1=1001, Moon;C. structD. struct star int id; int id;char *name; char *name; star1=123, Sun; star1;116.下面关于结构体类型变量定义不正确的是()A. struct scoreB. struct int math;int math;int Chinese;int Chinese; Li, Wang; Li, Wang;C. struct scoreD. struct score int math;int math;int Chinese;int Chinese; ;Li, Wang;struct score Li, Wang;117设有结构体的定义如下:() struct cjd long bh;int*q;char xm9;; 则sizeof(struct cjd)的值是A14 B15 C16D17118下列关于结构体类型定义正确的是()Astruct ABCBstruct ABC int aint a; char bchar b; char*p char * p; Cstruct ABCDstruct ABC int a; int a, char b;char b, char * p;char *p, ;119.结构体是C提供的一种专门处理彼此相互有联系,数据类型()A.不一致的多个数据的数据结构B.不一致的单个数据的数据结构C.一致的多个数据的数据结构 D.一致的单个数据的数据结构120.设有说明:FILE *fp;char *filename=paper;对于fp=fopen(filename,rb+);语句,下面说法正确的是()A.打开名为filename的文件读写B.打开名为paper的文件读写C.打开名为filename的文件只读D.打开名为paper的文件只读121. 如果将文件指针f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2020-2025年国家电网招聘之法学类全真模拟考试试卷B卷含答案
- 2025年石家庄市中考试卷及答案
- 2025年电力稽查考试题库及答案
- 企业管理-私车公用合同
- 2025年买卖住宅合同版本
- 2025企业设备借款质押合同范本
- 县级体育馆飞盘运动发展趋势面试题
- 物业维修员服务规范与沟通技巧测试题
- 金融产品经理数据分析考试题及Excel
- 汽车救援服务流程知识考核题库含判断选择
- 6S管理培训资料
- 导弹基本知识
- 采血后预防淤青的按压方式
- 中外航海文化知到课后答案智慧树章节测试答案2025年春中国人民解放军海军大连舰艇学院
- 高职院校创新创业基础-项目一开启大学新征程
- 国企中层领导竞聘笔试题
- 体育特长生入团申请书模板
- 提高护理文书书写规范率品管圈
- 国家开放大学《中国法律史》形考任务1-3答案
- 2024年度汽车制造厂与经销商合作协议3篇
- 《青花》课件教学课件
评论
0/150
提交评论