《最新c语言第五章 选择结构程序设计(习题册答案).docx》由会员分享,可在线阅读,更多相关《最新c语言第五章 选择结构程序设计(习题册答案).docx(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、最新c语言第五章 选择结构程序设计(习题册答案) 第五章选择结构程序设计 基础练习(A) 一、填空题 1、关系表达式的运算结果是逻辑值。C语言没有逻辑型数据,以1代表“真”,以0代表“假”。 2、逻辑运算符!是单目运算符,其结合性是由右结合性。 3、C语言提供的三种逻辑运算符是&、| 、!。其中优先级最高的为!,优先级最低的为| | 。 4、逻辑运算符两侧的运算对象不但可以是0和1,或者是0和非0的整数,也可以是任何类型的数据。系统最终以0 和非0 来判定它们属于“真”或“假”。 5、设y为int型变量,请写出描述“y是偶数”的表达式(y%2=0)。 6、设x,y,z均为int型变量,请写出描
2、述“x或y中有一个小于z”的表达式x=A)&(chbc的值是0。 10、当a=5,b=4,c=2时,表达式ab!=c的值是1。 11、已知A=7.5,B=2,C=3.6,表达式AB&CA|AB的值是0。 12、若a=6,b=4,c=2,则表达式!(a-b)+c-1&b+c/2的值是1。 13、有int x,y,z;且x=3,y=-4,z=5,则表达式(x&y)=(x|z)的值为1。 14、有int x,y,z;且x=3,y=-4,z=5,则以下表达式的值为1。 !(xy)+(y!=z)|(x+y)&(y-z) 15、有int a=3,b=4,c=5,x,y;,则以下表达式的值为0。 !(x=a
3、)&(y=b)&0 16、if (!k) a=3;语句中的!k可以改写为k= =0,使其功能不变。 二、选择题 1、逻辑运算符两侧运算对象的数据类型(D)。 A)只能是0或1 B)只能是0或非0正数 C)只能是整型或字符型数据 D)可以是任何类型的数据 2、以下关于运算符优先顺序的描述中正确的是(C)。 A)关系运算符=48&c=65&c=97&c=48&c=65&c=97&c=1)&(x=200)&(x=1)|(x=200)|(x=1)&(x=200)&(x=1)|(x=200)|(x=y&chb)&(n=cd)后n的值为(B)。 A)1 B)2 C)3 D)4 9、以下不正确的if语句形式
4、是(C)。 A) if(xy&x!=y); B) if(x=y) x+=y; C) if(x!=y) scanf(“%d”,&x) else scanf(“%d”,&y); D) if(xy) z=x; x=y; y=z; A)x=10,y=20,z=30 B)x=20,y=30,z=30 C)x=20,y=30,z=10 D)x=20,y=30,z=20 11、以下if语句语法正确的是(B)。 A) if(x0) printf(“%f”,x) else printf(“%f”,-x); B) B)if(x0) x=x+y; printf(“%f”,x); else printf(“%f”,-
5、x); C) C)if(x0) x=x+y; printf(“%f”,x); else printf(“%f”,-x); D) D)if(x0) x=x+y; printf(“%f”,x) else printf(“%f”,-x); 12、请阅读以下程序: main() int a=5,b=5,c=0; if(a=b+c) printf(“*n”); else printf(“$n”); 以下程序(C)。 A)有语法错不能通过编译B)可以通过编译但不能通过连接 C)输出* D)输出$ 三、写出下列程序的运行结果 1、若运行时输入:2,则以下程序的运行结果是2nd class postage i
6、s 14p。 #include void main(void) char Class; printf(“Enter 1 for 1st class post or 2 for 2nd post”); scanf(“%c”,&Class); if(Class=1) prin tf(“1st class postage is 19p”); else printf(“2nd class postage is 14p”); 2、若运行时输入:4.4,则以下程序的运行结果是Selling Price(0.30)$5.72。 #include void main(void) float CostPrice
7、,SellingPrice; printf(“Enter Cost Price $:”); scan f(“%f”,&CostPrice); if(CostPrice=5) SellingPrice=CostPrice+CostPrice*0.25; printf(“Selling Price(0.25)$%6.2f”,SellingPrice); else SellingPrice=CostPrice+CostPrice*0.30; printf(“Selling Price(0.30)$%6.2f”,SellingPrice); 3、以下程序的运行结果是F。 main() if(2*2=5
8、5) printf(“%dn”,m); else printf(“%dn”,m-); A)4 B)5 C)6 D)7 二、根据程序的功能,将以下程序补充完整 1、以下程序对输入的四个整数,按从小到大的顺序输出。请在内填入正确内容。 main() int t,a,b,c,d; printf(“input a,b,c,d:”) scanf(“%d,%d,%d,%d”,&a,&b,&c,&d); if(ab) t=a;a=b;b=t; if (ac) t=a;a=c;c=t; if (ad) t=a;a=d;d=t; if ( bc) t=b;b=c;c=t; if (bd) t=b;b=d;d=t
9、; if (cd) t=c;c=d;d=t; printf(“%d,%d,%d,%d”,a,b,c,d); 三、编程: 1、试编程判断输入的正整数是否既是5又是7的整倍数。若是,则输出yes;否则输出no。 2、编制程序要求输入整数x、y和z,若x2+y2+z2大于1000,则输出x2+y2+z2千位以上的数字,否则输出三数之和。 3、编写程序,输入三角型的三条边长,求其面积。注意:对于不合理的边长输入要输出数据错误的提示信息。 1、参考答案 main() int x; if (x%5=0 & x%7=0) printf(“yes”); else printf(“no”); 2、参考答案 ma
10、in() int x,y,z,a,b; scanf(“%d %d %d”,&x,&y,&z); a=x*x+y*y*z*z; if (a1000) b=a/1000;printf(“%d”,b); else printf(“%d”,x+y+z); 3、参考答案 #include main() float a,b,c,s,area; scanf(“%f,%f,%f”,&a,&b,&c); if (a+bc & b+ca & a+cb) s=1.0/2*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c); printf(“area=%7.2fn”,area); else
11、printf(“bu neng zhucheng s an jiao xing n”); 第2讲 基础练习(A) 一、填空题 1、在if语句中又包含一个或多个if语句称为if语句的嵌套。 2、为了避免在嵌套的条件语句if-else中产生二义性,C语言规定:else子句总是与其之前最近的未配对的if配对。如果if 与else数目不一样,为实现设计者的企图,可以加花括号关系。 3、条件运算符是C语言中唯一的一个三目运算符,其结合性为从右至左。 4、假设条件表达式的格式为:表达式1?表达式2:表达式 若表达式2和表达式3的类型不同,此时条件表达式的值的类型为二者中较高的类型 5、在switch语句中
12、,switch后面括弧内的“表达式”,可以为任何类型。 6、若a=1,b=2,则表达式ab?a:b+1的值是3。 7、若w1、x2、y3、z4,则条件表达式wb) c=1; else if(a=b) c=0; else c=-1; printf(“%dn”,c); 2、main() 2 0 0 int a,b,c; int s,w,t; s=w=t=0; a=-1; b=3; c=3; if(c0) s=a+b; if(a0) if(c0) w=a-b; else t=c; printf(“%d %d %d”,s,w,t); 3、switch(grade) case A: printf(“85
13、100n”); case B: printf(“7084n”); case C: printf(“6069n”); case D: printf(“0) x=4; else x=5; printf(“t%dn”,x); 2、#include 4 -2 4 0 4 -2 void main(void) int x,y=-2,z; if(z=y)0) x=4; else if(y=0) x=5; else x=6; printf(”t%dt%dn”,x,z); if(z=(y=0) x=5; x=4; printf(“t%dt%dn”,x,z); if(x=z=y) x=4; printf(“t%
14、dt%dn”,x,z); 3、#include a=2,b=1 main() int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case 0: a+; break; case 1: b+; break; case 2: a+; b+; break; printf(“a=%d,b=%d”,a,b); 二、根据程序的功能,将以下程序补充完整 以下程序计算某年某月有几天。其中判别闰年的条件是:能被4整除但不能被100整除的年是闰年,能被400整除的年也是闰年。请在内填入正确内容。 main() int yy,mm,len; printf(“year,m
15、onth=”); scanf(“%d %d”,&yy,&mm); switch(mm) case 1: case 3: case 5: case 7: case 8: case 10: case 12: len=31; break; case 4: case 6: case 9: case 11: len=30; break; case 2: if(yy%4=0&yy%100!=0|yy%400=0) len=29; else len=28; break; default: printf(“input error”); break; printf(“the length of %d %d is %dn”,yy,mm,len); Unit 3 Words: 1.爱交际的;友好的;外向的_ 2.较好的(地);更好的(地)_ 3.喧闹地;大声地;响亮地_ 4.轻柔的,安静的_ 5.工作努力的;辛勤的_ 6.比赛;竞赛;竞争_ 7.极好的;了不起的_ 8.哪一个;哪一些_ 9.清楚地;明白地_ 10.获胜;赢;赢得_ 11.不过;可是;然而;虽然;尽管_