收藏 分享(赏)

逻辑运算和判断.doc

上传人:yjrm16270 文档编号:9237128 上传时间:2019-07-30 格式:DOC 页数:30 大小:181KB
下载 相关 举报
逻辑运算和判断.doc_第1页
第1页 / 共30页
逻辑运算和判断.doc_第2页
第2页 / 共30页
逻辑运算和判断.doc_第3页
第3页 / 共30页
逻辑运算和判断.doc_第4页
第4页 / 共30页
逻辑运算和判断.doc_第5页
第5页 / 共30页
点击查看更多>>
资源描述

1、1第四章 逻辑运算和判断选取控制41 选择题(题 4.1)逻辑运算符两侧运算对象的数据类型.A)只能是 0 或 1B)只能是 0 或非 0 正数C)只能是整型或字符型数据D)可以是任何类型的数据(题 4.2)以下关于运算符优先顺序的描述中正确的是 .A)关系运算符 =1 )【1】A)5 B)0 C)2 D)1【2】A)6 B)0 C)1 D)4(题 4.15) 以下不正确的 if 语句形式是 .A) if(xyB) if(x= =y) x+=y;C) if(x!=y)scanf(“%d”,D) if(xy)z=x;x=y;y=zA)x=10,y=20,z=30 B)x=20,y=30,z=30

2、C)x=20,y=30,z=10 D)x=20,y=30,z=20(题 4.18)以下 if 语句语法正确的是 .A) if(x0)print(“%f”,x)else printf(“%f”,-x);B) if(x0)x=x+y;printf(“%f”,x);else pritnf(“%f”,-x);C) if(x0)x=x+y;printf(“%f”,x);3else printf(“%f”,-x);D) if(x0)x=x+y;printf(“%f”,x)else printf(“%f”,-x);(题 4.19)请阅读以下程序:main()int a=5,b=0,c=0;if(a=b+c)

3、 printf(“* * * n”);else printf(“$ $ $ n”);以上程序.A)有语法错不能通过编译 B)可以通过编译但不能通过连接C)输出* * * D)输出$ $ $(题 4.20)以下程序的运行结果是.main()int m=5;if(m+5)printf(“%dn”,m);else printf(“%dn”,m-);A)4 B)5 C)6 D)7 (题 4.21)当 a=1,b=3,c=5,d=4 时,执行完下面一段程序后 x 的值是.If(a0 x+1下面程序段中能正确表示上面关系的是.A)y=x+1; B)y=x-1;if(x=0) if(x! =0)if(x=

4、=0) y=x; if(x0) y=x+1;else y=x-1; else y=x;4C)if(xmain()float a,b;scnaf(“%f”,if(a, 则上面程序的输出结果是.A)0.000000 B)0.500000 C)1.000000 D)0.250000(题 4.28)若有条件表达式 (exp) ? a+:b - -,则以下表达式中能完全等价二表达式(exp)的是.A) (exp= =0) B) (exp! =0)C) (exp= =1) D) (exp! =1)(题 4.29)若运行时给变量 x 输入 12,则以下程序的运行结果是 .main() int x,y;sca

5、nf(“%d”,y=x12 ? x+10 :x-12;printf(“%dn”,y);A) 0 B) 22 C) 12 D) 10(题 4.30)以下程序的运行结果是.main() int k=4,a=3,b=2,c=1;printf(“n%dn”,k10? x+1000: x-10);printf(“%dn”,w+|z+);printf(“%dn”,! wz);printf(“%dn”,wA) 0 B) 1 C) 0 D) 061 1 1 11 1 0 01 1 1 04.2 填 空 题(题 4.35)当 a=3,b=2,c=1 时,表达式 f=abc 的值是【 】.(题 4.36)当 ia

6、=5,b=4,c=2 时,表达式 ab! =c 的值是【 】.(题 4.37)以下程序的运行结果是.#include void main(void) int x=1, y , z ;x*=3+2;printf(“%dt”,x);x* =y=z=5;printf(“%dt”,x);x=y= =z;printf(“%dn”,x);(题 4.38)在 C 语言中,表示逻辑 ”真”值用【 】.(题 4.39)设 y 为 int 型变量,请写出描述”y 是奇数” 的表达式【 】.(题 4.40)C 语言提供的三种逻辑运算符是 【1】,【2】,【3】.(题 4.41)设 x,y,z 均为 int 型变量,

7、请写出描述”x 或 y 中有一个小于 z”的表达式【 】.(题 4.42)设 x,y,z 均为 int 型变量,请写出描述”x,y 和 z 中有两个为负数 ”的表达式【 】.(题 4.43)已知 A=7.5,B=2,C=3.6,表达式 AB且 x=3,y=-4,z=5,则以下表达式 x+ - y+(+z)的值为【 】(题 4.58) 有 int a=3,b=4,c=5;则表达式 a | | b+c则以下表达式的值为【 】! (x=a)c=5;则以下表达式的值为【 】! (a+b)+c 1printf(“input you year:”);8scanf(“%d”,if(year=18)print

8、f(“you $ 4.5 yuan/xiaoshi”);elseprintf(“your $ 3.0 yuan/xiaoshi”);(题 4.62) 若运行时输入:2,则以下程序的运行结果是#includevoid main(void)char Class;printf(“Enter 1 for lst class post or 2 for 2nd post”);scanf(“%c”,if(Class= =1)printf(“lst class postage is 19p”);elseprintf(“2nd class postage is 14p”);(题 4.63)若运行时输入 4.4

9、,则以下程序的运行结果是.#includevoid main(void)float CostPrice,SellingPrice;printf(“Enter Cost Price $:”);scanf(“%f”,if(CostPrice=5)SellingPrice=CostPrice+CostPrice*0.25;Printf(“Selling Price(0.25) $ %6.2f”,SellingPrice);elseSellingPrice=CostPrice + CostPrice*0.30;Printf(“Selling Price (0.30) $ %6.2f”,SellingP

10、rice);(题 4.64) 以下程序的运行结果是.main() if(2*2= =5 时,程序的运行结果是。(题 4.66)以下程序实现:输入圆的半径 r 各运算标志 m,按照运算标志进行指定计算。请在【 】内填入正确内容。标 志 运 算a 面 积c 周 长b 二者均计算#define pi 3.14159main() char ;float r,c,a;printf(“input mark a c or bscanf(“%c%f”,if (【1】) a=pi*r*r ; printf(“area is %f”,a);if(【2】) c=2*pi*r;printf(“circle is %f

11、”,c);if(【3】) a=pi*r*r;c=2*pi*r;printf(“area(题 4.67)若运行时输入:5999, 则以下程序的运行结果(保留小数点后一位是) .main() int x;float y;scanf(“%d”,if (x=0if(y! =0) x=5;printf(“t%dn”,x);if(y= =0) x=4;else x=5;printf(“t%dn”,x);12x=1;if(y0) x=4;else x=5;printf(“t%dn”,x);(题 4.76) 以下程序的运行结果是.#includevoid main(void) int x,y=-2,z=0;i

12、f(z=y)0) s=s+1;if(ab) t=s+t;else if(a= =b) t=5;else t=2*s;printf(“s=%d,t=%d”,s,t);为了使输出结果 t=4,输入量 a 和 b 应满足的条件是【 】.(题 4.78) 请阅读下面的程序:main() int s,t,a,b;scanf(“%d,%d”,s=1;t=1;if(a0) s=s+1;if(ab) t=s+t ;else if(a= =b) t=5;else t=2*s;13printf(“s=%d,t=%d”,s,t);为了使输出结果 s=1,t=5,输入量 a 和 b 应满足的条件是【 】.(题 4.7

13、9)下面程序根据以下函数关系,对输入的每个 x 值,计算出 y 值.请在【 】内填入正确内容.x Y2a x#include”math.h”main() int x,a;float y;scanf(“%d %d”,if(【1】) y=0;else if(【2】) y=sqrt(a*a-x*x);else y=x;printf(“%f”,y);(题 4.81)以下程序的功能是计算一元二次方程 ax2+bx+c=0 的根,请在【 】内填入正14确内容。#include “math.h”main()float a,b,c,disc,twoa,terml,term2;printf(“enter a,b

14、,c”);scanf(“%f %f %f”,if(【1】)if(【2】) printf(“no answer due to input errorn”);else printf(“the single root is%fn”,-c/b);else disc=b*b-4*a*c;twoa=2*a;term1=-b/twoa;t=abs(disc);term2=sqrt(t)/twoa;if(【3】)printf(“complex rootn real part=%f imag part=%fn”,term1,term2);elseprintf(“real rootsn root1 =%f roo

15、t2=%fn”,term1+term2,term1-term2);(题 4.82)以下程序根据输入的三角形的三边判断是否能组成三角形,若可以输出它的面积和三角形的类型.请在【 】内填入正确内容.#include “math.h”main() float a,b,c;float s,area;scanf(“%f %f %f”,if(【1】) s=(a+b+c)/2;area=sqrt(s*(s-)*(s-b)*(s-c);printf(“%f”,area);if(【2】)printf(“等边三角形”)else if(【3】);printf(“等腰三角形”);else if(a*a+b*b= =c

16、*c) | | (a*a+c*c= = b*b) | | (b*b+c*c= = a*a)printf(“直角三角形”);else printf(“一般三角形”)else printf(“不能组成三角形”);(题 4.83)某邮局对邮寄包裹有如下规定: 若包裹的长度高任一尺寸超过 1 米或重量超过1530 千克,不予邮寄;对可以邮寄的包裹每件收手续费 0.2 元,再加上根据下表按重量 wei 计算的邮寄:重量(千克) 收费标准(元)Wei1 | | wid1 | | hei1 | | wei30) 【1】;else if(weib) c=1;else if(a= =b) c=0;else c=

17、 - 1;printf(“%dn”,c);(题 4.89)若 a=1,b=2,则表达式 a b ? a : b + 1 的值是【 】.(题 4.90)若 a=1,b=2,c=3,d=4,则表达式 a b ? a : c d ? c : d 的值是【 】.(题 4.91)设有变量定义:int a=10,c=9;则表达式( - - a! =c+)?- - a:+c 的值是【 】 。(题 4.92)若有说明语句:int x=1,y=0;则表达式 x(y+x)? 10:12.5y+?a:A的值【 】.(题 4.93)若有说明语句:int a=1,b=0;则表达式+=a* - -a= =b? 12%5:

18、x的值是【 】.(题 4.94)若有 x=1,y=2,z=3,则表达式(x(y+x)?5:25y+?a;2的值是【 】(题 4.96)以下程序的运行结果是.# include main()int a= -10,b= -3;printf(“%d,”,- a%d);printf(“%d,”,(a b,a+b);printf(“%dn”,a b? a b; a+b);(题 4.97)以下程序的运行结果是.main()int x=1,y=1,z=1;y=y+z;x=x+y;printf(“%d,”,x=y=x)? 1:0);printf(“%dn”,z=y(题 4.99)若运行时输入: - 2,则以下

19、程序的输出结果是.main()int a,b;scanf(“%d”,b=(a=0)? a : - a;printf(“b=%d”,b);(题 4.100)若运行时输入:100时,下面程序的运行结果是.main() int a;scanf(“%d”,printf(“%s”,(a%2!=0)? ”no” ; “yes”);(题 4.101)如果运行时输入字符为Q,则以下程序的运行结果是.18main() char ch;scanf(“%c”,ch=(ch=Ascanf(“%d”,t=(y%4= =0if(t) printf(“%d is ”,y);else printf(“%d is not”,y

20、);printf(“a leap year”);(题 4.103)以下程序是计算 x,y,z 三个数中值最小的.请在【 】内填入正确内容.main() int x=4,y=5,z=8;int u,v;u=x(y+x)?10:12.5y+ ?A:Z(题 4.107)设有 0,1;则以下表达式的值为 【 】 x+*x - - !=y?8 4 : y(题 4.108) 若运行时输入:3.5/ 时,下面程序的运行结果是.main() float x,y;char o;double r;scanf(“%f %f %c”,witch(o)19 case + : r=x+y ; bread;case - :

21、 r=x-y ; bread; case * : r=x*y ; bread;case / : r=x/y ; bread;printf(“%f”,r);(题 4.109)根据以下嵌套的 if 语句所给条件,填写 switch 语句 ,使它完成相同的功能.(假设 mark 的取值在 1100 之间.)if 语句:if(mark0) case 1:switch(bmain() 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;pr

22、intf(“a=%d,b=%d”,a,b); 上面程序的运行结果是.(题 4.115)假设奖金税率如下(a 代表奖金,r 代表税率)a=3000) c=6;else c=【1】;switch(c) case 0:; r=0 ; break ;case 1 :r=0.05; break ;case 2:case 3 : 【2】 ; break ; case 4 :case 5: r=0.1 ; break ;case 6: r=0 .15; break ;t=a*r ;b=a t ;22printf(“r=%f,t=%f,b=%f”,r,t,b);(题 4.116)某处自动加油站有a,b,c三种

23、汽油,单价分别为 1.50,1.35,1.18(元/ 千克), 也提供了”自己加” 或” 协助加” 两个服务等级,这样用户可以得到 5%或者说 10%的优惠.本程序针对用户输入加油量 a,汽油品种 b 和服务类型 c(f - - 自动,m - - 自己,e - - 协助 ),输出应付款 m.请在【 】内填入正确内容.main() float a,r1,r2,m;char b,c;scanf(“%f %f %c”,switch(b) case a :r1=1.5;break;case b: 【1】;break;case c: r1=1.18; break;switch(c) case f: r2

24、=0; break;case m: r2=0.05; break;case 【2】: r2=0.1; break;m=【3】;printf(“%f”,m);(题 4.117)main()int yy,mm ,len;printf(“year,month=”);scanf(“%d %d”,switch(mm)case 1 : case 3 : case 5 : case 7 :case 8 : case 10 : case 12 : 【1】; break ;case 4 : case 6 : case 9 : case 11 : len=30 ; break;case 2 ;if(yy%4 =

25、=0 else 【3】 ;break ;default: printf(“input error”);break ;printf(“the length of %d %d is %dn”,yy,mm,len); 23(题 4.118)以下程序用以计算 y 年 m1 月 d1 日与同年的 m2 月 d2 之间的天数(m2=m1),并打印计算结果.若 m2=m1 且 d1=d2 则算了天.在闰年时,2 月有 29 天.闰年的年号由以下方式确定: 该年号能被 4 整除但不能被 100 整除,或者该年号能被400 整除则是闰年.例如: 输入 1997,2.27,3,10时,输出为 12.表明从 199

26、7年 2 月 27 日到 3 月 10 日共有 12 天.请在【】内填入正确内容.main() int y,m1,d1,m2,d2;int I,d;scanf(“%d,%d,%d,%d,%d”,y=(y%4= =0【1】 y%100! =0【2】 y%400= =0)? 1:0;d=0 d1;for(i=m1;i0)else x=1;else x=0; (题 4.127)编程实现以下功能: 读入两个运算符(data1 和 data2)及一个运算符(op), 计算表达式 data1op data2 的值,其中 op 可为+ ,- , *, /(用 switch 语句实现 ).(题 4.128)编

27、一程序,对于给定的一个百分制成绩,输出相应的五分制成绩 .设:90 分以上为A,8089 分为 B,7079 分为C,6069 分为D,60 分以下为E(用 switch 语- 1 (x025句实现).第四章 逻辑运算和判断选取控制4.1 选择题(题 4.1) D (题 4.2) C (题 4.3) B (题 4.4) C (题 4.5) C(题 4.6)C (题 4.7) D (题 4.8) C (题 4.9) C (题 4.10) B(题 4.11)D (题 4.12) B (题 4.13) 【1】 C 【2】 A (题 4.14) 【1】 B 【2】 A (题 4.15) C (题 4.

28、16) 【1】 A 【2】 C (题 4.17) B (题 4.18) B(题 4.19) D (题 4.20) C (题 4.21) B (题 4.22) C (题 4.23) C(题 4.24) B (题 4.25) B (题 4.26) B (题 4.27) B (题 4.28) B(题 4.29) A (题 4.30) D (题 4.31) B (题 4.32) A (题 4.33) D(题 4.34) C4.2 填空题(题 4.35) 0(题 4.36) 1(题 4.37) 5 25 1 (题 4.38) 非 0 的数字(题 4.39) (y%2) = =1(题 4.40) 【1】

29、printf(“%d”,y);else printf(“%d”,a+b);(题 4.120) main() int x;scanf(“%d”,if(x%5 = =0elseprintf(“no”);(题 4.121) main() int x;float y;scanf(“%d”,28if(x0if(s=90) m=4;if(s=80) m=3;if(s=70) m=2;if(s=60) m=1;if(s109) m=0;(题 4.124) main() float x;int y;print(“n input x:”);scanf(“%f”,switch(x109) m=0;else if(

30、s0) break;case 0 : x=1; break; break;case 0 : x=0; break;(题 4.127) #include #include void main(void) float data1,data2,data3;char op;printf(“n type in your expression :” );scanf(“%f %c %f”,switch(op) case + : data3=data1+data2;break ;case - : data3=data1-data2;break ;case * : data3=data1*data2;break

31、 ;case / : if(data2 = =0) printf(“ndivision by zero ”);exit (1); data3=data1/data2 ;break ; printf(“this is %6.2f %c %6.2f=%6.2fn”,data1,op,data2,data3);30(题 4.128) main()int score , temp , log ; char grade ;log=1;while(log) printf(“enter score : ”);if(score100) | | (score0)printf(“n error,try again ! n”);else log=0;if(score = =100) temp=9;else temp=(score score%10)/10;switch(temp) case 0 : case 1 : case 2 :case 3 : case 4 : case 5 : grade=E; break;case 6 : grade=D; break;case 7 : grade=C; break;case 8 : grade=B; break;case 9 : grade=A;printf(“score=%d,grade=%cn”,score,grade);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报