您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > C语言第二章到第八章课后习题及答案
第二章习题1、以下选项中可作为C语言合法常量的是A)-80.B)-080C)-8e1.0D)-80.0e2、以下不能定义为用户标识符的是A)MainB)_0C)_intD)sizeof3、以下选项中,不能作为合法常量的是A)1.234e04B)1.234e0.4C)1.234e4D)1.234e04、以下不能正确计算代数式值的C语言表达式是A)1/3*sin(1/2)*sin(1/2)B)sin(0.5)*sin(0.5)/3C)pow(sin(0.5),2)/3D)1/3.0*pow(sin(1.0/2),2)5、以下能正确定义且赋初值的语句是A)intn1=n2=10;B)charc=32;C)floatf=f+1.1;D)doublex=12.3E2.5;6、设有定义:intk=1,m=2;floatf=7;,则以下选项中错误的表达式是A)k=k=kB)-k++C)k%int(f)D)k=f=m7、设有定义:inta=2,b=3,c=4;,则以下选项中值为0的表达式是A)(!a==1)&&(!b==0)B)(ab)&&!c||1C)a&&bD)a||(b+b)&&(c-a)8、有以下程序段intk=0,a=1,b=2,c=3;k=ab?b:a;k=kc?c:k;执行该程序段后,k的值是A)3B)2C)1D)09、若以下选项中的变量已正确定义,则正确的赋值语句是A)x1=26.8%3B)1+2=x2C)x3=0x12D)x4=1+2=3;10、以下4个选项中,不能看作一条语句的是A){;}B)a=0,b=0,c=0;C)if(a0);D)if(b==0)m=1;n=2;11、若变量x,y以正确定义并赋值,以下符合c语法的表达式是A.++x,y=x--B.x+1=yc.x=x+10=x+yD.double(x)/1012、以下叙述中错误的是A)C程序中的#include和#define行均不是C语句B)除逗号运算符外,赋值运算符的优先级最低C)C程序中,j++;是赋值语句D)C程序中,+、-、*、/、%号是算术运算符,可用于整型和实型数的运算二、填空题1.intk=11,则k++后表达式的值_____和变量k的值______。2.doublex=3.2,++x后表达式的值_____和x的值_______。3.表达式3.5+1/2的计算结果是_____。4.把a1、a2定义成双精度实型变量,并赋初值1的定义语句是____。5.表达式s=10应当是读做“_________”。三、上机改错题1.请指出以下C程序的错误所在:#includestdio.hmain();/*mainfunction*/floatr,s;/*/*risradius*/,/*sisareaofcircular*/*/r=5.0;s=3.14159*r*r;printf(“%f\n”,s)2.请指出以下C程序的错误所在:main/*mainfunction*/{floata,b,c,v;/*a,b,caresides,vsivolumeofcube*/a=2.0;b=3.0;c=4.0v=a*b*c;printf(“%f\n”,v)}答案一.选择题1.A2.D3.B4.A5.B6.D7.A8.B9.C10.D11.A12.D二.填空题1.11,122.4.2,4.23.3.54.doublea1=1,a2=1;5.把10赋值给变量s三.略第三章习题一、选择题(1)有以下程序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)123456789(2)已知i、j、k为int型变量,若从键盘输入:1,2,3回车,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是a)scanf(“%2d%2d%2d”,&i,&j,&k);b)scanf(“%d%d%d”,&i,&j,&k);c)scanf(“%d,%d,%d”,&i,&j,&k);d)scanf(“i=%d,j=%d,k=%d”,&i,&j,&k);(3)设有定义:longx=-123456l;,则以下能够正确输出变量x值的语句是a)printf(“x=%d\n”,x);b)printf(“x=%1d\n”,x);c)printf(“x=%8dl\n”,x);d)printf(“x=%ld\n”,x);(4)以下程序段的输出结果是inta=1234;printf(%2d\n,a);a)12b)34c)1234d)提示出错、无结果(5)x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是a)inputx、y、z;b)scanf(“%d%d%d”,&x,&y,&z);c)scanf(“%d%d%d”,x,y,z);d)read(“%d%d%d”,&x,&y,&z);(6)若变量已正确说明为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)1022回车22.033.0回车33回车(7)有如下程序main0{inty=3,x=3,z=1;printf(“%d%d\n”,(++x,y++),z+2);}运行该程序的输出结果是a)34b)42c)43d)3(8)有以下程序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)123456789(9)有以下程序#includestdio.hmain(){charc1=1,c2=2;c1=getchar();c2=getchar();putchar(c1);putchar(c2);}当运行时输入:a回车后,以下叙述正确的是A)变量c1被赋予字符a,c2被赋予回车符B)程序将等待用户输入第2个字符C)变量c1被赋予字符a,c2中仍是原有字符2D)变量c1被赋予字符a,c2中将无确定值(10).有以下程序main(){chara1=’M’,a2=’m’;printf(%c\n,(a1,a2));}以下叙述中正确的是A)程序输出大写字母MB)程序输出小写字母mC)格式说明符不足,编译出错D)程序运行时产生出错信息二、填空题1.若有以下定义,请写出以下程序段中输出语句执行后的输出结果。inti=-100,j=2300;printf(“(1)%d,%d”,i,j);printf(“(2)i=%d,j=%d\n”,i,j);printf(“(3)i=%d\nj=%d\n”,i,j);2.变量i,j,k已定义为int型并均有初值0,用以下语句进行输入时;scanf(“%d”,&i);scanf(“%d”,&j);scanf(“%d”,&k);从键盘输入12.3cr(cr代表回车)则变量i,j,k的值分别是(1),(2),(3)。3.以下程序段要求通过scanf语句给变量赋值,然后输出变量的值。写出运行时给k输入50,给m输入13.61,给n输入3.14159时的三种可能的输入形式为(1),(2),(3)。intk;floatm;doublen;scanf(“%d%f%lf”,&k,&m,&n);printf(“k=%d,m=%f,n=%f\n”,k,m,n);4、有以下程序#includestdio.hmain(){charch1,ch2;intn1,n2;ch1=getchar();ch2=getchar();n1=ch1-‘0’;n2=n1*10+(ch2-‘0’);printf(%d\n,n2);}程序运行时输入:12回车,执行后输出结果是__。5、已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:B33回车.输出结果是#includestdio.hmain(){chara,b;a=getchar();scanf(%d,&b);a=a-'A'+’0’;b=b*2;printf(%c%c\n,a,b);}三.编程题1.若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=‘a’,c2=‘b’。想得到以下输出格式和结果,请写出程序(包括定义变量类型和设计输出,凵表示空格)。a=凵3凵凵b=凵4凵凵c=凵5x=1.200000,y=2.400000,z=-3.600000x+y=凵3.600凵凵y+z=-1.20凵凵z+x=-2.40c1=ˊaˊ凵or凵97(ascii)c2=ˊbˊ凵or凵98(ascii)2.用scanf下面的函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=ˊaˊ,c2=ˊaˊ,问在键盘上如何输入?main(){inta,b;floatx,y;charc1c2;scanf(a=%d_b=%d,&a,&b);scanf(_x=%f_y=%e,&x,&y);scanf(_c1=%c_c2=%c,&c1,&c2);}答案一、选择题1、A2、C3、B4、C5、B6、B7、D8、A9、A10、B二、填空题1、(1)-100,2300(2)i=-100,j=2300(3)i=-100J=23002、(1)12(2)0(3)03、(1)5013.613.14159(2)50CR13.61,3.14159(3)50CR13.61CR3.14159CR4.125.1B三、编程题1、参考源程序如下:main(){inta=3,b=4,c=5;longintu=51274,n=128765;floatx=1.2,y=2.4,z=3.6;charc1='a',c2='b';printf(a=%2db=%2dc=%2d\n,a,b,c);printf(x=%f,y=%f,z=%f\n,x,y,z);printf(x+y=%5.2fy+z=%5.2fz+x=%5.2f\n,x+y,y+z,z+x);printf(u=%6ldn=%9ld\n,u,n);printf(%s%s%d%s\n,c1='a',or,c1,(ASCII));printf(%s%s%d%s\n,c2='a',or,c2,(ASCII));}2、输入方法如下:a=3凵b=7凵x=8.5凵y=71.82凵c1=A凵c2=a3、参考源程序:main(){floatr,h,C1,Sa,Sb,Va,Vb;scanf(%f,%f,&r,&h);C1=2*3.14*r;Sa=3.14*r*r;Sb=4*Sa;Va=4*3.14*r*r*r/3;Vb=Sa*h;printf(C1=%.2f\n,C1);printf(Sa=%.2f\nSb=%.2f\nVa=%.2f\nVb=%.2f\n,Sa,Sb,Va,Vb);}第四章一、选择题1、以下叙述中正确的是()a)c语言程序总是从第一个定义的函数开始执行b)在c语言程序中,要调用的函数必须在main()函数中定义c)c语言程序总是从main()函数开始执行d)c语言程序中的main()函数必须放在程序的开始部分2、已定义了以下函数:test(floatx){printf(“%d\n”,x*x);}该函数的类型是()a)与参数x的类型相同b)void类型c)int类型d)无法确定3、有以下程序:#includestdio.h
本文标题:C语言第二章到第八章课后习题及答案
链接地址:https://www.777doc.com/doc-2908382 .html