您好,欢迎访问三七文档
二级C语言习题第一章程序设计基本概念1.能将高级语言编写的源程序转换成目标程序的是_____。A.编辑程序B.编译程序C.驱动程序D.连接程序2.下列4条程序中,正确的一条是_____。A.计算机语言中,只有机器语言属于低级语言。B.高级语言源程序可以被计算机直接执行。C.C语言属于高级语言。D.机器语言是与所用机器无关的。3.算法具有5个特性,以下选项中不属于算法特性的是_____。A.有零个或多个输入B.可行性C.有穷性D.通用性4.while、do-while语句是用于_____基本结构。A.顺序B.选择C.循环D.转移5.用C语言编写的代码_____。A.可立即执行B.是一个源程序C.经过编译即可执行D.经过编译解释才能执行6.C语言中的赋值、输入输出语句可以构成_____基本结构。A.分支B.顺序C.循环D.选择7.在循环结构中,_____可以使得同一组语句一次也不执行。A.当型循环B.直到型循环C.都不能实现D.do-while语句第二章C程序设计的初步知识一、选择题1.请选出可以作为C语言用户标识符的一组标识符_____。A.voiddefineWORDB.a3_b3_123IFC.for-abccaseD.2aD0sizeof2.以下对C语言的描述中正确的是_____。A.C语言源程序中可以有重名的函数。B.C语言源程序中要求每行只能书写一条语句。C.注释可以出现在C语言源程序中的任何位置。D.最小的C语言源程序中没有任何内容。3.以下选项中,哪一个是C语言中合法的常量_____。A.±234.34B.1/8C.'0'D."a"'b'4.TUBROC中int变量所表示的数据范围是_____。A.-32768~32767B.0~65535C.-32768~32768D.0~655365.若有以下程序段:“intc1=1,c2=2,c3;c3=1.0/c2*c1;”,则执行后,c3中的值是_____。A.0B.0.5C.1D.26.下列程序的输出结果是_____。main(){doubled=3.2;intx,y;x=1.2;y=(x+3.8)/5.0;Printf("%d\n",d*y);}A.3B.3.2C.0D.3.077.设已定义整型变量k和g,则下面的程序输出为_____。k=017;g=111;printf("%d\n",++k);printf("%d\n",g++);A.156fB.1670C.1571D.166f8.定义a为整型变量,且设其初始值为10,则表达式a+=a-=a*=a的值为_____。A.10B.0C.100D.-109.若a为整型变量,则以下语句_____。a=-2L;printf("%d\n",a);A.赋值不合法B.输出值为-2C.输出为不确定值D.输出值为210.设有定义:“floata=2,b=4,h=3;”,以下C语言表达式中与代数式½(a+b)h计算结果不相符的是_____。A.(a+b)*h/2B.(1/2)*(a+b)*hC.(a+b)*h*1/2D.h/2*(a+b)11.数字字符0的ASCII值为48,若有以下程序:main(){chara='1',b='2';printf("%c,",b++);printf("%d\n",b-2);}程序运行后的输出结果是_____。A.3,2B.3,1C.2,1D.2,212.设有“intx=11;”,则表达式(x++*1/3)的值是_____。A.3B.4C.11D.1213.设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为_____。A.4B.16C.32D.52二、填空题1.C语言提供的基本数据类型包括:__1__、__2__、__3__、__4__和__5__。2.C语言的标识符只能由3种字符组成,它们是:__6__、__7__和__8__。3.若x、y、z均是整型变量,则执行表达式x=(y=4)+(z=2)后,x的值为__9__,y的值为__10__。4.假设所有的变量都为整型,则表达式(a=2,b=a++,b++,a+b)的值为__11__。5.设x为int型变量,请写出描述“x是奇数”的表达式__12__。6.已知整型数据a=3,b=-4,c=5,则表达式a++-b+(++c)的值为__13__。7.在C语言中(以16位PC机为例),一个float型数据在内存中所占的字节数为4,一个double型数据在内存中所占的字节数为__14__。8.若有定义:“inta=10,b=9,c=8;”,接着顺序执行下列语句,变量b中的值为__15__。c=(a-=(b-5));c=(a%11)+(b=3);9.十进制数-5的补码表示为__16__。第三章一.选择题1.若变量a,i已正确定义,且i已正确赋值,合法的语句是A.a==1B.++iC.a=a++=5D.a=int(i)2.以下合法的C语言赋值语句是A.a=b=58B.k=int(a+b)C.a=58,b=58D.--i;33.有以下程序:main(){intm=0256,n=256;pringtf(%o%o\n,m,n);}程序运行后的输出结果是A.02560400B.0256256C.256400D.4004004.下列程序运行的结果是main(){inta=2,c=5;pringtf(a=%d,b=%d\n,a,c);}A.a=%2.b=%5B.a=2,b=5C.a=d,b=dD.a=%d,b=%d5.以下程序的输出结果是main(){intk=17;printf(%d,%o,%x\n,k,k,k);}A.17,021,0x11B.17,17,17C.17,0x11,021D.17,21,116.以下叙述中正确的是A.输入项可以是实型常量,比如:“scanf(%f,3.5);”B.只有格式控制,没有输入项,能正确输入数据到内存,例如:“scanf(a=%d,b=%d);”C.当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如:“scanf(%4.2f,&f);”D.当输入数据时,必须指明变量地址,例如:“scanf(%f,&f);”7.有以下程序:main(){intm,n,p;scanf(m=%dn=%dp=%d,&m,&n,&p);printf(%d%d%d\n,m,n,p);}若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是A.m=123n=456p=789B.m=123n=456p=789C.m=123,n=456,p=789D.1234567898.以下说法中正确的是A.#define和pringtf都是C语句B.#define是C语句,而printf不是C.printf是C语句,但#define不是D.#define和printf都不是C语句9.下列关于复合语句及空语句中正确的是A.复合语句中的最后一个语句的最后一个分号可以省略B.复合语句不可嵌套C.空语句在执行时没有动作,因此没有用途D.空语句可以做“延时”使用10.若变量已正确说明float类型,要通过语句“scanf(%f%f%f,&a,&b,&c);”给a赋值10.0,b赋值22.0,c赋值33.0,不正确的输入形式是A.10回车B.10.0,22.0,33.0回车22回车33回车C.10.0回车D.10.22回车22.033.0回车33回车11.下列语句中符合C语言语法的赋值语句是A.a=7+b+c=a+7B.a=7+b++=a+7C.a=7+b,b++,a+7D.a=7+b,c=a+712.有以下程序:main(){intx=102,y=012;printf($2d,$2d\n,x,y);}执行后输出结果是A.10,01B.02,12C.102,10D.02,1013.有以下语句:“intb;charc[10];”,则正确的输入语句是A.scanf(%d%s,&b,&c);B.scanf(%d%s,&b,c);C.scanf(%d%s,b.c);D.scanf(%d%s,b,&c);二.填空题1.以下程序运行后的输出结果是()main(){inta,b,c;a=25;b=025;c=0x25;printf(%d,%d,%d\n,a,b,c);}2.有以下程序:main(){chara,b,c,d;scanf(%c,%c,%d,%d,&a,&b,&c,&d);printf(%c,%c,%c,%c\n,a,b,c,d);}若运行时从键盘上输入:6.5.65.66回车,则输出结果是()3.以下程序执行结果是()main(){float1=13.8;intb=5;b=((int)a)%3;printf(b=%d\n,b);}4.若想通过以下输入语句使a=5.0,b=5,c=3,则输入数据的形式应该是()intb,c;floata;scanf(%f,%d,c=%d,&a,&b,&c);5.以下程序执行结果是()main(){inta,b,c;c=(a=3,b=a--);printf(c=%d,a=%d,b=%d\n,c,a,b);}6.以下程序的输出结果是()main(){inta=1,b=2;a=a+b;b=a-b;a=a-b;printf(%d,%d\n,a,b);}7.对如下程序进行编译和运行,其结果是()main(){inta;a=1234;printf(-%-06d-\n,a);}第四章一.选择题1.能正确表示a和b同时为正或同时为负的逻辑表达式是A.(a=0||b=0)&&(a0||b0)B.(a=0&&b=0)&&(a0&&b0)C.(a+b0)&&(a+b=0)D.a*b02.设有如下定义:“inta=1,b=2,c=3,d=4,m=2,n=2;”,则执行表达式:(m=ab)&&(n=cd)后,n的值为A.1B.2C.3D.03.有以下程序:main(){inta=3,b=4,c=5,d=2;if(ab)printf(%d,d+++1);elseprintf(%d\n,d);}程序运行后的输出结果是A.2B.3C.43D.444.语句“printf(%d,(a=2)&&(b=-2));”的输出结果是A.无输出B.结果不确定C.-1D.15.有以下程序:main(){inti=1,j=2,k=3;if(i++==1&&(++j==3||k++==3))printf(%d%d%d\n,i,j,k);}程序运行后的输出结果是A.123B.234C.223D.2336.在C语言的if语句中,用作判断的表达式为A.关系表达式B.逻辑表达式C.算数表达式D.任意表达式7.有以下程序:intf1(intx,inty){returnxy?x:y;}intf2(intx,inty){returnxy?y:x;}main(){inta=4,b=3,c=5,d=2,e,f,g;e=f2(f1(a,b),f1(c,d));f=f1(f2(a,b),f2(c,d));g=a+b+c+d-e-f;printf(%d,%d,%d\n,e,f,g);}程序运行后的输出结果是A.4,3,7B.3,4,7C.5,2,7D.2,5,78.以下不正确的if语句形式是A.if(xy&&!=y);B.if(x==y)x+=y;C.if(x!=y)scanf(%d,&x)elsescanf(%d,&y);D.if(xy){x++;y++;}9.有如下程序:main(){intx=1,a=0,b=0;switch(x){case0;b++;case1;a++;case2;a++;b++;}printf(a=%d,b=%d\n,a,b);}改程序的输出结果是A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=210.一直“intx=10,y-20,z=30;”,以下语句执行后的值是if(xy)z=x;x=y;y=z;A.x
本文标题:C语言习题
链接地址:https://www.777doc.com/doc-4524894 .html