C语言程序设计-第1-7章选择、填空习题及答案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

习题一一、选择题1.C程序的基本单位是(A)。A.函数B.文件C.语句D.字符2.C程序中的变量(B)。A.不用说明B.先说明后引用C.先引用后说明D.引用和说明顺序无关3.变量的说明在(B)。A.执行语句之后B.执行语句之前C.执行语句当中D.位置无关4.C语言是一种(C)。A.机器语言B.符号语言C.高级语言D.面向对象的语言二、填空题1.一个C程序总是从主函数开始执行。2.结构化程序由顺序、选择、循环三种基本结构构成。3.一个C程序只有一个名为main的主函数。4.C程序中的每个语句以分号结束。5.C程序中,函数由函数首部和函数体组成。6.每个基本结构有一个入口和一个出口,没有死循环和死语句。7.算法是计算机解决问题所依据的步骤。习题二一、选择题1.下列数据中属于字符串常量的是(B)。A.ABCB.ABCC.'abc'D.'A'2.在计算机内存中,'\n'占用的字节数是(C)。A.4B.3C.1D.23.字符串ABC在内存中占用的字节数是(D)。A.6B.8C.3D.44.在C语言中,合法的长整型常数是(B)。A.568701400B.0LC.0.03546287D.2.654e115.char型常量在内存中存放的是(A)。A.ASCII代码值B.BCD代码值C.十进制代码值D.内码值6.下列各项中正确的标识符是(D)。A.?bbB.a=8C.b.βD.b_47.下列不正确的转义字符是(D)。A.\\B.\0C.\D.0x48.设整型变量a、b的值均为5,则表达式(m=n=a++)/(n=b-2)的值为(B)。A.0B.1C.2D.39.设a的值为5,执行下列语句后,b的值不为2的是(C)。A.b=a/2B.b=6-(--a)C.b=a%2D.b=(float)a/210.执行语句x=(a=3,b=a--)后,x、a、b的值依次是(C)。A.3,3,2B.3,2,2C.3,2,3D.2,3,211.设有语句inta=3;,则执行了语句a+=a-=a*a;后,变量a的值是(D)。A.3B.0C.9D.-1212.在下列运算符中,优先级最高的是(B)。A.&&B.%C.=D.=13.设整型变量a的值为3,则计算表达式a---a后,表达式的值为(B)。A.1B.0C.2D.表达式出错14.设整型变量a、b、c的值均为2,表达式a---b+++c++的结果是(C)。A.6B.9C.2D.表达式出错15.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是(D)。A.1B.2.5C.2D.2.016.下列表达式中符合C语言语法的赋值表达式是(C)。A.a=4+b++c=a+8B.a=4+b++=a+8C.a=(4+b,b++,a+8)D.a=4+b,c=a+817.若有以下定义:chara;intb;floatc;doubled;,则表达式a*b+d-c的值的类型为(D)。A.intB.floatC.charD.double二、填空题1.在内存中存储A要占2个字节,存储'A'要占1个字节。2.符号常量的定义方法是#define常量名常量。3.无符号基本整型的数据类型符为unsignedint双精度实型数据类型符为double,字符型数据类型符为char。4.十进制数673的二进制、八进制和十六进值数分别为1010100001、2412和2A1。5.在C语言中,书写八进制数时必须加前缀0;书写十六进制数时必须加前缀0x。6.在微机上,int型、short型、long型、float型和double型数据一般在内存中分别占2字节、2字节、4字节、4字节和8字节。7.设有下列运算符:、+、++、&&、=,其中优先级最高的是++,优先级最低的是&&。8.设x、y为int型变量,且x=1,y=2,则表达式1.0+x/y的值为1.0。9.设整型变量x、y、z均为5,则:①执行x-=y-z后,x的值为5。②执行x%=y+z后,x的值为5。10.数学式ab×c的C语言表达式为a/b*c)。三、简答题1.字符常量与字符串常量有什么区别?2.对于TurboC系统来说,char型变量与int型变量在内存中存储数据的区别是什么?3.整型变量可细分为哪六类?4.什么是一个实型数据的规范化指数形式?5.设x=3.5,a=5,y=6.7,求算术表达式x+a%3*(int)(x+y)%2/4的值。6.设a=2,b=3,x=4.5,y=1.6,求表达式(float)(a+b)/2+(int)x%inty的值。7.设整型变量a=12,写出下列表达式运算后a的值。①a*=2+5②a/=a+a③a+=a-=a*=a8.写出下列程序的运行结果。main(){charc1='A',c2='B',c3='C',c4='\101',c5='\h42';printf(A%cb%c\t%c\tbc\n,c1,c2,c3);printf(\t\b%c%c,c4,c5);}结果:AAbBCabcAB9.写出下面程序的运行结果。main(){inti,j,m,n;i=5;j=6;m=++i;n=--j;printf(%d,%d,%d,%d,i,j,m,n);}结果:6,5,6,5习题三一、选择题1.printf()函数输出实数时,使用的格式字符是(C)。A.%dB.%cC.%fD.%o2.下面变量说明中(C)是正确的。A.char:a,b,c;B.chara;b;c;C.chara,b,c;D.chara,b,c3.putchar()函数可以向终端输出一个(D)。A.整型变量表达式值B.实型变量值C.字符串D.字符或字符型变量值4.阅读以下程序,当输入数据的形式为:25,13,10〈CR〉,正确的输出结果为(D)。main(){intx,y,z;scanf(%d%d%d,&x,&y,&z);printf(x+y+z=%d\n,x+y+z);}A.x+y+z=48B.x+y+z=35C.x+z=35D.不确定值5.以下说法正确的是(D)。A.输入项可以是一个实型常量B.只有格式控制,没有输入项,也能进行正确输入,如scanf(a=%d,b=%d);C.当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(%4.2f,&f);D.当输入数据时,必须指明变量的地址,如scanf(%f,&f);6.以下能正确地定义整型变量a、b和c并为其赋初值5的语句是(C)。A.inta=b=c=5;B.inta,b,c=5;C.inta=5,b=5,c=5;D.a=b=c=5;7.已知ch是字符型变量,下面正确的赋值语句是(B)。A.ch='a+b';B.ch='\xff';C.ch='\08';D.ch=\;8.设x、y均为float型变量,则以下不合法的赋值语句是(B)。A.++x;B.y=(x%2)/10;C.x*=y+8;D.x=y=0;9.以下格式符中,不能用来输入实型数的是(B)A.fB.e(E)C.g(G)D.x10.若floatnum=123.456,以%+10.4d的格式输出,结果正确的是(B)A.123.456000B.123.4560C.123.4560D.+123.4560二、填空题1.以下程序的输出结果是x=1y=2*sum*=310squaredis:100。main(){intx=1,y=2;printf(x=%dy=%d*sum*=%d\n,x,y,x+y);printf(10squaredis:%d\n,10*10);}2.以下程序的输出结果是a=325x=3.14。main(){inta=325;doublex=3.1415926;printf(a=%2dx=%7.2f\n,a,x);}3.假设变量a和b均为整型,以下语句可以不借助任何变量把a、b中的值进行交换。请填空:a+=b;b=a-b;a-=b;4.若x为int型变量,则执行以下语句后x的值是-14。x=7;x+=x-=x+x;5.C语句可以分为五类,含7种控制语句、声明语句、表达式语句、空语句和复合语句。6.赋值语句是由赋值表达式加上一个分号构成。7.a=12,n=5,表达式a%=(n%=2)值是0。8.有一个输入函数scanf(%d,k);则不能使float类型变量k得到正确数值的原因是k前无&和%d与k的类型不一致。9.putchar()函数可以向终端输出一个字符。10.已有定义inti,j;floatx;为将-10赋给i,12赋给j,410.34赋给x,则对应以下scanf()函数调用语句的数据输入形式是-12C410.34。scanf(%o%x%e,&i,&j,&x);11.pirntf()函数中用到格式符%5s,其中数字5表示输出的字符串占5列,如果字符串长度大于5,则按实际宽度输出。12.使用getchar()和putchar()函数必须在源程序中加#includestdio.h。习题四一、选择题1.执行下面的程序段后,b的值为(B)。intx=35;charz='A';intb;b=((x&&15)&&(z'a'));A.0B.1C.2D.32.设a=5,b=6,c=7,d=8,m=2,n=2,执行(m=ab)&&(n-cd)后n的值为(B)。A.1B.2C.3D.43.若k是int型变量,且有下面的程序段,输出结果是(A)。K=-3;if(k=0)printf(####);elseprintf(&&&&);A.####B.&&&&C.####&&&&D.有语法错误,无输出结果4.设A、B和C都是int型变量,且A=3,B=4,C=5,则下面表达式中值为0的达式是(D)。A.A&&BB.A=BC.A‖B+C&&BD.!((AB)&&!C‖1)5.阅读程序:#includestdio.hmain(){floatx,y;scanf(%f,&x);if(x0.0)y=0.0;elseif((x5.0)&&(x!=2.0))y=1.0/(x+2.0);elseif(x10.0)y=1.0/x;elsey=10.0;printf(%f\n,y);}若运行时从键盘上输入2.0,则上面程序的输出结果是(C)A.0.000000B.0.250000C.0.500000D.1.0000006.阅读程序:#includestdio.hmain(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;}printf(a=%d,b=%d\n,a,b);}上面程序输出结果是(A)。A.a=2,b=lB.a=l,b=lC.a=l,b=0D.a=2,b=27.下面程序的输出是(C)。main(){inta=–1,b=4,k;k=(a++=0)&&(!(b--=0));printf(%d%d%d%\n,k,a,b);}A.003B.012C.103D.1128.为表示关系x≥y≥z,应使用C语言表达式(A)。A.(x=y)&&(y=z)B.(x=y)AND(y=z)C.(x=y=z)D.(x=y)&(y=z)9.若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为(D)。A.a0B.!aC.a=0D.a10.若有以下定义:floatx;inta,b;则正确的switch语句是(D)。A.switch(x){case1.0:printf(*\n);case2.0:printf(**\n);}B.switch(x){case1,2:printf(*\n);case3:printf(**\n);}C.switch(a+B){case1:printf(\n);case1+2:printf(**\n);}D.switch(a+b);{case1:printf(*\n);case2:printf(**\n);}11.下列语句中,错误的是(C)。A.while(a=b)a++;B

1 / 18
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功