C语言第三、四章作业题答案讲解_第1页
C语言第三、四章作业题答案讲解_第2页
C语言第三、四章作业题答案讲解_第3页
C语言第三、四章作业题答案讲解_第4页
C语言第三、四章作业题答案讲解_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

专业 班级 学号 姓名 提示:平时作业当考试作,凡抄袭一经发现平时成绩为0、不完成者平时成绩不给分东华理工大学:C语言第三章作业题 C程序设计第三章 闭/开卷 课程类别:考试/考查题号一二三四五六七八九总分分数评卷人第三章 顺序结构程序设计一、选择题1.C语言中调用printf进行输出时需要注意,在格式控制串中,格式说明与输出项的个数必须相同。如果格式说明的个数小于输出项的个数,多余的输出项将 A ;如果格式说明的个数多于输出项的个数,则对于多余的格式将输出不定值(或0)。 A)不予输出 B)输出空格 C)照样输出 D)输出不定值或02.在 scanf函数的格式控制中,格式说明的类型与输入的类型应该一一对应匹配。如果类型不匹配,系统 B 。 A)不予接收 B)并不给出出错信息,但不可能得出正确信息数据 C)能接受正确输入 D)给出出错信息,不予接收输入3.下列说法正确的是 D 。 A)输入项可以是一个实型常量,如scanf(%f,4.8); B)只有格式控制,没有输入项也能进行正确输入,如scanf(a=%d,b=%d); C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(%5.3f,&f); D)当输入数据时,必须指明变量的地址,如scanf(%f,&f);4.根据题目中已给出的数据的输入和输出形式,程序中输入/输出语句的正确是 B 。main()int a;float x;printf(input a,x:);输入语句输出语句输入形式 input a,x:3 2.1输出形式a+x=5.10A)scanf(%d,%f,&a,&x); printf(na+x=%4.2f,a+x);B)scanf(%d %f,&a.&x); printf(na+x=%4.2f,a+x);C)scanf(%d %f,&a,&x); printf(na+x=%6.1f,a+x);D)scanf(%d %3.1f,&a,&x);printf(na+x=%4.2f,a+x);5.以下程序的输出结果是 A 。main()int i=010,j=10,k=0x10;printf(%d,%d,%dn,i,j,k);A)8,10,16 B)8,10,10 C)10,10,10 D)10,10,166.以下程序的输出结果是 A 。main()int i=011,j=11,k=0x11;printf(%d,%d,%dn,i,j,k);A)9,11,17 B)9,11,11 C)11,11,11 D)11,11,167.以下程序的输出结果是 B 。#includemain()printf(%dn,NULL);A)不确定的值(因变量无定义) B)0C)-1 D)18.以下程序的输出结果是 B 。main()char c1=6,c2=0;printf(%c,%c,%d,%dn,c1,c2,c1-c2,c1+c2);A)因输出格式不合法,输出出错信息 B)6,0,6,102C)6,0,7,6 D)6,0,5,79.设有如下定义int x=10,y=3,z;则语句printf(%dn,z=(x%y,x/y);的输出结果是 A 。A)3 B)0 C)4 D)110.设有如下定义int x=10,y=5,z;则语句printf(%dn,z=(x+=y,x/y);的输出结果是 D 。A)1 B)0 C)4 D)311.以下程序的输出结果是 D 。main()int x=10,y=10;printf(%d %dn,x-,-y);A)10 10 B)9 9 C)9 10 D)10 912.写出下面程序的输出结果 A 。main()int x;x=-3+4*5-6;printf(%d,x);x=3+4%5-6;printf(%d,x);x=-3*4%6/5;printf(%d,x);x=(7+6)%5/2;printf(%d,x);A)11 1 0 1 B)11 -3 2 1 C)12 -3 2 1 D)11 1 2 113.写出下面程序的输出结果 A 。main()int x,y,z;x=y=1;z=x+-1;printf(%d,%dt,x,z);z+=-x+ +(+y);printf(%d,%d,x,z);A)2,0 3,0 B)2,1 3,0 C)2,0 2,1 D)2,1 0,114.写出下面程序的输出结果 C 。main()int i,j;i=20;j=(+i)+i;printf(%d,j);i=13;printf(%d %d),i+,i);A)42 14,13 B)41 14,14 C)42 13 13 D)42 13 1415.若有定义:int x,y;char a,b,c;并有以下输入数据(此处,代表换行符)1 2A B C则能给x赋整数1,给y赋整数2,给a赋字符A,给b赋字符B,给c赋字符C的正确程序段是 C 。A)scanf(x=%dy=%d,&x,&y);a=getchar();b=getchar();c=getchar();B)scanf(%dy%d,&x,&y);a=getchar();b=getchar();c=getchar();C)scanf(%d%d%c%c%c%c%c%c,&x,&y,&a,&a,&b,&b,&c,&c);D)scanf(%d%d%c%c%c,&x,&y,&a,&b,&c);16.若已知a=10,b=20,则表达式!ab的值为 C 。A)10 B)20 C)1 D)017.printf函数中用到格式符%4s,其中数字4表示输出的字符串站用4列。如果字符串长度大于4,则按原字符长从左向右全部输出;如果字符串长度小于4,则输出方式为 C 。A)从左起输出该字符串,右补空格 B)按原字符长从左向右全部输出C)右对齐输出该字符,左补空格 D)输出错误信息18.以下C程序,正确的运行结果是 C 。main()long y=-34567;printf(y=%-8ldn,y);printf(y=%-08ldn,y);printf(y=%08ldn,y);printf(y=%+8ldn,y);A)y= -34567 B)y=-34567 y=- 34567 y=-34567 y=- y=- y=-34567 y=+ -34567C)y=-34567 D)y= -34567 y=-34567 y=- y=- y=y=-34567 y=+3456719. 程序的基本编译单位是 B 。(0102第二学期试题)A)函数 B)文件 C)源文件 D)子程序20. 设有如下定义和执行语句,其输出结果为: A 。(03试题) int a=3,b=3; a = - -b + 1; printf(“%d %d”,a,b); A)3 2 B)4 2 C)2 2 D)2 321. 根据定义和数据的输入方式,输入语句的正确形式为: A 。(往届试题)已有定义:float a1, a2;数据的输入方式: 4.523 3.52A)scanf(“%f %f ”, &a1,&a2);B)scanf(“%f ,%f ”, a1, a2);C)scanf(“%4.3f ,%3.2f ”, &a1,&a2);D)scanf(“%4.3f %3.2f ”, a1,a2);22. 以下程序的输出结果是: A 。(往届试题) main( ) int I=012, j=12, k=0x12;printf(“%d,%d,%dn”,I, j, k );A)10, 12, 18 B)12, 12, 12C)10, 12, 12 D)12, 12, 1823. 以下程序的输出结果是:(注:表示空格) D 。(往届试题)main( ) printf(“n*s1=%8s*”, “china”);printf(“n*s2=%-5s*”, “chi”) ; A)*s1=china * B)*s1=china * *s2=chi* *s2=chi *C)*s1= china* D)*s1= china* *s2= chi * *s2=chi *二.填空题1.C语言中的语句可分为5类,即控制语句 空语句 复合语句 函数调用语句 表达式语句。2.由一次函数调用加一个分号构成一个函数调用语句语句。3.putchar函数的作用是向终端输出一个字符。4.printf是C语言提供的标准输出函数,它的作用是在终端设备上(或系统隐含的输出设备上)按照指定的格式进行输出。5.printf函数的“格式控制”包括两部分,他们是格式说明 和普通字符。6.对不同类型的语句有不同的格式字符。例如: d 格式字符是用来输出十进制整数, c 格式字符是用来输出一个字符, s 格式字符是用来输出一个字符串。7.%-ms表示如果串长 小于 m,则在m列范围内,字符串向 左 靠, 右 补空格。8.如果要输出字符“&”,则应该在“格式控制”字符串中用 %c 表示。9.getchar函数的作用是 从终端输入一个字符 。10.符号“&”是 地址 运算符,&a是指 a内存中的地址 。11.scanf函数中的“格式控制”后面应当是 变量地址 ,而不是 变量名 。12.C语言中的空语句就是一个分号空操作 。13.复合语句是由一对 大括号 括起来的若干语句组成。14.分析下面程序:#includemain()int x=2,y,z;104044x*=3+2;printf(%dn,x);x*=y=z=4;printf(%dn,x);x=y=z;printf(%dn,x);x=(y=z);printf(%dn,x);程序的输出结果为 。15.编制程序对实数a与b进行加,减,乘,除计算,要求显示如下结果。jia=70.jian=30.cheng=1000.chu=2.程序:#includevoid main(void) float a=50.0;b=20.0;printf(jia=%fn, a+b );printf(jian=%fn a-b );printf(cheng=%fn, a*b );printf(chu=%fn, a/b );将缺少的部分填在空白处。16.下列程序的输出结果是 65A 。#includemain()char a;a=A;printf(%d%c,a,a);17.分析下面程序mainint x=2,y,z;10402,03,0x*=3+2;printf(%dn,x);x*=y=z=4;printf(%dn,x);x=y=1;z=x+-1;printf(%d,%dn,x,z);z+=-x+ +(+y);printf(%d,%d,x,z);程序的输出结果是 。18.分析下面程序main()3216,154013,13int x,y;x=16,y=(x+)+x;printf(%dn,y);x=15;printf(%d,%dn,+x,x);x=20,y=x- +x;printf(%dn,y);x=13;printf(%d,%d,x+,x);程序的输出结果是 。19.以下程序的输出结果为:_3.,3.142_。(03试题) main( ) float a=3.14, b=3.14159; printf(“%f, %5.3fn”,a,b); 20.以下程序的输出结果为:_a回车_。(0405第二学期试题)include main( ) char c1,c2;c1=a;c2=n;printf(“%c%c”,c1,c2); 东华理工大学:C语言第四章作业题 C程序设计第四章 闭/开卷 课程类别:考试/考查题号一二三四五六七八九总分分数评卷人 第四章 选择结构程序设计一、选择题1下列运算符中优先级最高的是 B 。() A) B) + C) & D)!=2以下关于运算符优先级的描述中,正确的是 A 。() A)!(逻辑非)算术运算关系运算&(逻辑与)|(逻辑或)赋值运算B)&(逻辑与)算术运算关系运算赋值运算C)关系运算算术运算&(逻辑与)|(逻辑或)赋值运算D)赋值运算算术运算关系运算&(逻辑与)|(逻辑或)3逻辑运算符的运算对象的数据类型 D 。()A)只能是0或1 B)只能是.T.或.F.C)只能是整型或字符型 D)任何类型的数据4能正确表示x的取值范围在0,100和-10,-5内的表达式是 B 。()A)(x=-5)&(x=100)B)(x=-10)&(x=0)&(x=-10)&(x=0)&(x=100)D)(x=-5)&(x=100)5以下程序的运行结果是 B 。()main( ) int c,x,y; x=1; y=1; c=0; c=x+|y+; printf(“n%d%d%dn”,x,y,c); A)110 B)211 C)011 D)0016以下程序的运行结果是 A 。()main( ) int c,x,y; x=0; y=0; c=0; c=x+&y+; printf(“n%d%d%dn”,x,y,c); A)100 B)211 C)011 D)0017判断字符型变量ch为大写字母的表达式是 C 。()A)A=ch=A)&(ch=A)&(ch=A)AND(ch=Z)8判断字符型变量ch为小写字母的表达式是 D 。()A)a=ch=a)&(ch=a)|(ch=a)&(ch0) printf(”%f”,x); x=x+1; printf(”%f”,x); else printf(”%f”,-x); else printf(”%f”,-x);C)if(x0); D)if(x0) x=x+1; printf(”%f”,x); x=x+1; printf(”%f”,x) else printf(”%f”,-x); else printf(”%f”,-x);10分析以下程序:main( ) int x=5,a=0,b=0; if(x=a+b) printf(“* *n”); else printf(“# #n”);以上程序 D 。()A)有语法错,不能通过编译 B)通过编译,但不能连接C)输出* * D)输出# #11两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是 A 。()main( ) int x; scanf(“%d”,&x); if(x+5) printf(“%d”,x); else printf(“%dn”,x-); A)7和5 B)6和3 C)7和4 D)6和412写出下面程序的执行结果 D 。()main( )int x,y=1; if(y!=0) x=5; printf(“%dt”,x); if(y= =0) x=3;else x=5;printf(“%dtn”,x);A)1 3 B)1 5 C)5 3 D)5 513写出下面程序的执行结果 A 。()main()int x=1,y=1,z=0;if(z0) x=3;else x=5;printf(%dt,x);if(z=y0) x=3;else if(y= =0 ) x=5;else x=7;printf(%dt,x);printf(%dt,z);A)1 7 0 B)3 7 0 C)5 5 0 D)1 5 114假定所有变量均已正确说明,下列程序段运行后x的值是 B 。()a=b=c=0;x=35;if(!a) x= -1;else if(b);if(c) x=3;else x=4;A)34 B)4 C)35 D)315写出下面程序的运行结果是 。()main()int x,y=1,z;if(y!=0) x=5;printf(x=%dt,x);if(y= =0) x=3;else x=5;printf(x=%dtn,x);x=1;if(z0)x=3;else x=5;printf(x=%dtn,x);if(z=y0)x=5;else x=7;printf(x=%dt,x);printf(%dtn,z);if(x=y=z)x=3;printf(x=%dt,x);printf(z=%dtn,z);A)x=5 x=5 B)x=5 x=5 x=1 x=1 x=7 z=0 x=5 z=0 x=3 z=1 x=3 z=0C)x=5 x=5 D)x=5 x=5 x=5 x=1 x=7 z=0 x=7 z=0 x=3 z=1 x=3 z=016若有以下函数关系x0 y=xx=0 y=x+1下面程序段能正确表示以上关系的是 改正后C 。()A)y=2*x; B)y=2*x;if(x!=0) if(x0)y=x; if(x= =0) y=x+1;else y=x+1; else y=x;C)if(x=0) (D)y=x+1;if(x0) y=x; if(x=0)else y=x+1; if(x0) y=2*x;else y=2*x; else y=x;17若有以下变量定义:float x; int a,b;则正确的switch语句是 D 。() A)switch(x) case 1.0:printf(*n);case 2.0:printf(* *n); B)switch(x) case 1,2:printf(*n);case 3:printf(* *n);C)switch(a+b) case 1:printf(*n);case 2*a:printf(* *n);D)switch(a+b) case 1:printf(*n);case 1+2:printf(* *n);18. 以下关于运算符优先顺序的描述正确的是 C 。(0203第一学期试题)A)关系运算符算术运算符赋值运算符逻辑运算符B)逻辑运算符关系运算符算术运算符赋值运算符C)赋值运算符逻辑运算符关系运算符算术运算符D)算术运算符关系运算符赋值运算符=10或a=10 or a=10 | a=10 & a=10 | | a y & x != y ) ;B)if ( x = = y ) x + = y ;C)if ( x != y ) scanf ( “%d”, &x) else scanf ( “%d”, &y);D)if ( x y ) x+; y+;21. 当 a = 1, b = 3 , c = 5, d = 4 时, 执行完下面程序段后 x 的值为 B 。(0203第一学期试题)if ( a b ) if ( c d ) x = 1 ; else if ( a c ) if ( b b)printf(“%f”,a); B)if(ab)printf(“%f”,a);else printf(“%f”,b);C)if(ab)printf(“%f”,a) D)if(ab)printf(“%f”,b);else printf(“%f”,b); else printf(“%f”,a);23. 能表示整数x符合下面两个条件的语句是A 。(0102第二学期试题)(1)“能被4整除,但不能被100整除”.(2)能被4整除,又能被400整除.A)(x%4=0&x%100!=0)|x%400=0B)(x%4=0|x%100!=0)&x%400=0C)(x%4=0&x%400!=0)|x%100=0D)(x%100=0|x%4!=0)&x%400=024. 设有如下定义:char ch=z,则执行下面语句后变量ch是值为: D 。(03试题)ch=(A=ch&chy|xz) z=x; x=y; y=z;A)x=50, y=80, z=80 B)x=50, y=30, z=30C)x=30, y=50, z=80 D)x=80, y=30, z=5027. C语言中,要求运算对象必须是整型的运算符是: C 。(往届试题)A) B)+ C)% D)!=28. 已知 int x=30,y=50,z=80;以下语句执行后变量x、y、z的值分别为: C 。(往届试题)if (xy|xz) z=x; x=y; y=z; A)x=50, y=80, z=80 B)x=50, y=30, z=30C)x=30, y=50, z=80 D)x=80, y=30, z=5029. 以下程序的输出结果是 A 。(0405第二学期试题)main( ) int x=2,y=-1,z=2; if (xy) if(y0) z=0; else z+=1; printf(“%dn”,z); A)3 B)2 C)1 D)030. 设a、b和c是int型变量,且a=2,b=4,c=6,则下面表达式中值为0的是: D 。(往届试题)A)a+ b B)a=bC)a|b+c&b-c D)!( (ab) &!c | 1 )31. 在C的if语句中,可用作判断的表达式是: D 。(往届试题)A)关系表达式 B)逻辑表达式C)算术表达式 D)任意表达式32. 下面能正确表示变量a在区间0,5或(6,10)内的表达式为: B 。(往届试题)A)0=a | a=5 |6 a | a10 B)0=a&a=5 | 6a&a10C)(0=a|a=5)&(6a|a10)D)0=a&a=5&6a&a 0 )printf(“ %f ”, x )else printf(“%f”, - x );B)if ( x 0 ) x = x + y ; printf (“%f ”, x ) ; else printf ( “%f ”, - x ) ;C)if ( x 0 ) x = x + y ; printf (“%f ”, x ) ; ;else printf ( “%f ”, - x ) ;D)if ( x 0 ) x = x + y ; printf (“%f ”, x ) else printf ( “%f ”, - x ) ;35为了表示关系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)36若欲表示在if后a不等于0的关系,则能够正确表示这一关系的表达式为 D 。 A)a0 B)!a C)a=0 D)a37下面程序的输出结果是 B 。main()int x,y,z; x=y=1; z=x+-1; printf(“%d,%dt”,x,z); z+=-x+(+y|+z); printf(%d,%d”,x,z); A)2,0 3,-1B)2,1 3,0 C)2,0 2,1D)2,1 0,138下面程序的输出结果是 D 。main()int x=40,y=4,z=4; x=y= =z; printf(“%d”,x); x=x= =(y-z); printf(%d”,x); A)4 0B)4 1C)1 1D)1 039.若x=3,y=z=4,则下列表达式的值分别为 A 。 (1)(z=y=x)?1:0 (2)z=y& y=x A)0 1 B)1 1 C)0 0 D)1 040.若x=3,y=z=4,则下列表达式的值分别为 A 。(1)(z=y=x)?1:0(2)y+=z,x*=y A)0 24 B)1 8 C)0 8 D)1 1241在以下一组运算符中,优先级最高的运算符是 C 。A)= B)= C)% D)&42.以下程序的输出结果是 C 。main()int a=-1,b=4,k;k=(+a=0)&!(b-=0);printf(%d %d %d,k,a,b);A)1 0 4 B)0 0 4 C)1 0 3 D)0 0 343.若已定义int a=25,b=14,c=19;以下三项运算符(?:)所构成的语句的执行结果是 D 。a+=25&b-=2&c+?printf(*a=%d,b=%d,c=%dn,a,b,c):printf(#a=%d,b=%d,c=%dn,a,b,c)A)(*a=25,b=14,c=19) B)(*a=26,b=13,c=19)C)(#a=25,b=14,c=19) D)(#a=26,b=13,c=19)二、填空题1在C语言中,对于if语句,else子句与if子句的配对约定是 。(0级).else与它前面最近的一个if配对2阅读下面程序,写出它的功能。(1级)#include main()int label;char c;printf(nPlease enter 1 number:);c=getchar();while(c!=n)if(c= =.) label=1;c=getchar();if(label= =1)printf(nfloat);else printf(nint);由键盘输入一个数,打印出它的类型标识符3以下两条if语句可合并成一条if语句为 。(1级)if(ab) printf(* * * * y=%dn,y);else printf(# # # # x=%dn,x);答案:if(a=b) x=1; printf(“ * * * * y=%dn”,y); else y=2; printf(“ # # # # x=%dn”,x); 4以下程序的功能是计算一元二次方程ax2+bx+c=0的根,补足程序中空缺的语句。(2级)#include main( )float a,b,c,_abs,_derta,_doublea,part1,part2;printf(enter a,b,c:);scanf(%f%f%f,&a,&b,&c);if( (1) )a = = 0 if( (2) ) printf(no answer due to input errorn);b = = 0else printf(the single root is %fn,-c/b);else_derta=b*b-4*a*c; _doublea=2*a; part1=-b/(2*a); _abs=abs(_derta); part2=sqrt(_abs)/_doublea;if( (3) )_derta0printf(complex root nreal part=%f image part=%fn,part1,part2);else printf(real rootsn root1=%f root2=%fn,part1+part2,part1-part2);5设有程序片段如下:switch(class)case A:printf(GREAT!n);case B:printf(GOOD!n);case C:printf(OK! n);case D:printf(NO!n);default:printf(ERROR!n);若class的值为C,则输出结果是 。(1级) OK! NO! ERROR!6以下程序段的运行结果是 。(1级)int x=1,y=0;switch(x)case 1: switch(y) case 0:printf(x=1 y=0n);break; case 1:printf(y=1n);break; case 2:printf(x=2n);x=1 y=0 x=27根据以下if语句写出与其功能相同的switch语句(x的值在0100之间)。(1级)if语句:if(x60) m=1;else if(x70) m=2; else if(x80) m=3; else if(x90) m=4; else if(x100) m=5;switch语句: switch( (1) )x/10 (2) m=1;break; case 0: case 1: case 2: case 3: case 4: c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论