1、第04章 逻辑运算和判断选取控制第四章 逻辑运算和判断选取控制4.1 选择题4.1 逻辑运算符两侧运算对象的数据类型_。A) 只能是0或1B) 只能是0或非0C) 只能是整型或字符型数据D) 可以是任何类型的数据4.2 以下运算符优先顺序的描述中正确的是_。A) 关系运算符算术运算符赋值运算符逻辑运算符B) 逻辑运算符关系运算符算术运算符赋值运算符C) 赋值运算符逻辑运算符关系运算符算术运算符D) 算术运算符关系运算符赋值运算符逻辑运算符4.3 下列运算符中优先级别最高的是_。A) =1)&(x=200 )&(x=1)|(x=200 )|(x=1)&(x=200 )&(x=1)|(x=200
2、)|(x=210)4.5 表示图中坐标轴上阴影部分的正确表达式是_。abcA) (x=b&x=c)B) (x=a)|(b=x=c)C) (x=b)&(x=c)D) (x=a)&(b=x=c)4.6 判断char型变量ch是否为大写字母的正确表达式是_。A) A=ch=A)&ch=A)&(ch=Z) D) (A=ch)4.7 设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是_。A) x&yB) x=yC) x|y+z&y-zD) !(x=y&chb)&(n=cd)后n的值为_。 A) 1 B) 2 C) 3 D) 44.11 判断char型变量c1是否为小写字母的正
3、确表达式为_。 A) a=c1=a)&(c1=c1)|(z=a)&c1x)&(b=yz); 1A) 5B)0C)2D)12A)6B)0C)1D)44.15 以下不正确的if语句形式是_。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) x20,y=30,z=30C) x=20,y=30,z=10 D) x20,y=30,z=204.18 以下if语句语法正确的是_。A) if(x0)printf(“%f”,x);
4、else printf(“%f”,-x);B) if(x0) x=x+y; printf(“%f”,x);C) if(x0)x=x+y; printf(“%f”,x);eles 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) printf(“*n”); else printf(“$n”);以上程序_。A) 有语法错误不能通过编译 B) 可以通过编译但不能通过连接C) 输出 * D) 输出 $4.20 以下程序的运行
5、结果是_。main( ) int m=5; if(m+5) printf(“%dn”,m); else printf(“%dn”,m-);A) 4 B) 5 C) 6 D) 74.21 当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是_。if(ab)if(cd) x=1;else if(ac) if(bd) x=2; else x=3;else x=6;else x=7;A) 1 B) 2 C) 3 D) 64.22 有一个函数关系见下表: xy=x0x+1下面程序中能正确表示上面关系的是_。A) y=x+1if(x=0) if(x=0) y=x;else y=x-1;B) y
6、=x-1;if(x!=0) if(x0) y=x+1;else y=x;C) if(x=0)if(x0) y=x-1;else y=x; else y=x+1;D) y=x;if(x=0) if(x0) y=x-1; else y=x+1;4.23 以下程序的输出结果是_。main( ) int a=100, x=10, y=10, ok1=5, ok2=0; if(xy) if(y!=10) if(!ok1) a=1; else if(ok2) a=10; a=-1;printf(“%dn”,a); A) 1 B) 0 C) 1 D) 值不确定4.24 以下程序的输出结果是_。main( )
7、 int x=2,y=-1, z=2; if(xy) if(yy);B) if(x=y)&(x!=0) x+=y;C) if(x!y) scanf(“%d”,&x); else scanf(“%d”,&y);D) if(xy)x+;y+;4.27 请阅读以下程序:#include “stdio.h”main() float a,b; scanf(“%f”,&a); if(a0.0)b=0.0; else if(a0.5)&(a!=2.0) b=1.0/(a+2.0); else if(a10.0) b=1.0/x; else b=10.0; prinf(“%fn”,y);若运行时输入2.0,则
8、上面程序的输出结果是_。A) 0. B) 0. C) 1. D) 0.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; scanf(“%d”,&x); y=x12?x+10:x-12; printf(%dn”,y); A) 0 B) 22 C) 12 D) 104.30 则以下程序的运行结果是_。main( ) int k=4,a=3,b=2,c=1; printf(
9、“n%dn”,ka?k:cb?c:a);A) 4 B) 3 C) 2 D)14.31 执行以下程序段后,变量a,b,c的值分别是_。int x=10,y=9;int a,b,c;a=(-x=y+)?-x:+y;b=x+;c=y;A) a=9,b=9,c=9 B) a=8,b=8,c=10C) a=9,b=10,c=9 D) a=1,b=11,c=104.32 若w、x、y、z、m均为int型变量,则执行下面语句后的m值是_。w=1; x=2; y=3; z=4;m=(wx)?w:x;m=(my)?m:y;m=(mz)?m:z;A) 1 B) 2 C) 3 D) 44.33 若 w=1, x=2
10、, y=3, z=4,则条件表达式wx?w:y10?x+100:x-10);printf(“%dn”,w+|z+);printf(“%dn”,!wz);printf(“%dn”,w&z);A)0B)1C)0D)01111110011104.2 填空题4.35 当a=3,b=2,c=1时,表达式f=abc的值是_。4.36 当a=5,b=4,c=2时,表达式ab!=c的值是_。4.37 以下程序运行的结果是_。main( ) int x=1,y,z; x*=3+2; printf(“%dt”,x); x*=y=z=5; printf(“%dt”,x); x=y=z; printf(“%dt”,x
11、);4.38 在C中,表示逻辑真值用_。4.39 设y为int型变量,请写出描述“y是奇数”的表达式_。4.40 C语言提供的三种逻辑运算符是_。4.41 设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式_。4.42 设x,y,z均为int型变量,请写出描述“x,y和z中有两个为负数”的表达式_。4.43 已知A7.5,B=2,C=3.6,表达式AB&CA|AB的值是_。4.44 若有a=6,b=4,c=2,则表达式!(a-b)-c-1&b+c/2的值是_。4.45 若a=2,b=4,则表达式!(x=a)|(y=b)&0的值是_。4.46 若a=1,b=4,c=3,则表
12、达式!(ab)|!c&1的值是_。4.47 若a=6,b=4,c=3,则表达式a&bc|b-c的值是_。4.48 若a=5,b=2,c=1,则表达式a-bc|b=c的值是_。4.49 设a=3,b=4,c=5,则表达式a|b+c&b=c的值是_。4.50 条件“2x3或xc)后,n的值为_1_,m的值为_2_。4.52 以下程序的运行结果是_。 main( ) int x,y,z; x=1; y=2; z=3; x=y-y)+(y!=z)|(x+y)&(y-z)4.57有int x,y,z;且x3, y4, z5, 则表达式x+-y+(+z)的值为_。4.58设a=3,b=4,c=5,则表达式
13、a|b+c&b=c的值是_。4.59设a=3,b=4,c=5, x,y;则以下表达式的值是_。!(x=a)&(y=b)&04.60 有int a3, b=4,c5;则以下表达式的值为_。!(a+b)+c-1&b+c/24.61 若运行时输入:16,则以下程序的运行结果是_。#include “stdio.h”void main( void ) int year; printf(“Input your year: ”); scanf(“%d”,&year); if(year=18) printf(“your $ 4.5 yuan/xiaoshi”); else printf(“your $ 3.
14、0 yuan/xiaoshi”); 4.62 略4.63 略4.64 略4.65 请阅读以下程序:main( ) int t,h,m; scanf(“%d”,&t); h=(t/100)%12; if(h=0) h=12; printf(“%d:”,h); m=t%100; if(m10) printf(“0”); printf(“%d”,m); if(t1200|t=2400) printf(“AM”); else printf(“PM”); 若运行时输入:1605时,程序的运行结果是_。4.66 以下程序实现:输入圆的半径r和运算标志m,按照运算标志进行指定计算。请在_内填入正确内容。标志
15、运算a面 积c周 长b二者均计算 #define pi 3.14159 main( ) char m;float r,c,a;printf(“input mark a c or b & rn”);scanf(“%c %f”,&m,&r);if(_1_) a=pi*r*r; printf(“area is %f”,a);if(_2_) c=2*pi*r; printf(“circle is %f”,c);if(_3_) a=pi*r*r; c=2*pi*r; printf(“area & circle are %f %f”,a,c); 4.67 若运行是输入:5999,则以下程序的运行结果(保留
16、小数点后一位)是_。main( ) int x; float y; scanf(“%d”,&x); if(“x=0&x=3000&x=6000&x=a&c=v&c=a&ch0) s=a+b; if(a0) if(c0) w=a-b; else t=c; printf(“%d %d %d”,s,w,t); 4.74 以下程序的运行结果是_。main( ) int a, b, c, d, x; a=c=0; b=1; d=20; if(a) d=d-10; else if(!b) if(!c) x=15 else x=25; printf(“%dn”, d);4.75以下程序的运行结果是_。#in
17、clude “stdio.h”void main( void ) int x, y=1, z; if(y!=0) x=5; printf(“t%dn”,x); if(y=0) x=4; else x=5; printf(“t%dn”,x); x=1; if(y0) x=4; else x=5;printf(“t%dn”,x);4.76以下程序的运行结果是_。#include “stdio.h”void main( void ) int x, y=-2, z=0; if(z=y0) 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”,&a, &b); s=1; t=1; if(a0) s=s+1; if(ab) t=s+t; else if(a=
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1