第四章C程序设计习题.docx
- 文档编号:4994152
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:20
- 大小:22.98KB
第四章C程序设计习题.docx
《第四章C程序设计习题.docx》由会员分享,可在线阅读,更多相关《第四章C程序设计习题.docx(20页珍藏版)》请在冰豆网上搜索。
第四章C程序设计习题
第四章逻辑运算和判断选取控制
4.1选择题
[题4.1]逻辑运算符两侧运算对象的数据类型____.
A)只能是0或1B)只能是0或非0正数
C)只能是整型或字符型数据D)可以是任何类型的数据
[题4.4]能正确表示”当x的取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是____.
A)(x>=1)&&(x<=10)&&(x>=200)&&(x<=210)
B)(x>=1)||(x<=10)||(x>=200)||(x<=210)
C)(x=>1)&&(x<=10)||(x>=200)&&(x<=210)
D)(x>=1)||(x<=10)&&(x>=200)||(x<=210)
[题4.6]判断char型变量ch是否为大写字母的正确表达式是____.
A)’A’<=ch<=’Z’
B)(ch>=’A’)&(ch<=’Z’)
C)(ch>=’A’)&&(ch<=’Z’)
D)(‘A’<=ch)AND(‘Z’>=ch)
[题4.7]设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是____.
A)‘x‘&&‘y‘B)x<=y
C)x||y+z&&y-zD)!
((x z||1) [题4.8]已知x=43,ch=‘A’,y=0;则表达式 (x>=y&&ch<'B’&&! y)的值是____. A)0B)语法错C)1D)”假” [题4.9]若希望当A的值为奇数时,表达式的值为”真”,A的值为偶数时,表达式的值为”假”。 则以下不能满足要求的表达式是____. A)A%2==1B)! (A%2==0)C)! (A%2)D)A%2 [4.10]设有: inta=1,b=2,c=3,d=4,m=2,n=2; 执行(m=a>b)&&(n=c>d)后n的值为____. A)1B)2C)3D)4 [题4.12]以下程序的运行结果是____. #include“stdio.h” main() {inta,b,d=241; a=d/100%9; b=(-1)&&(-1); printf(“%d,%d”,a,b); } A)6,1B)2,1C)6,0D)2,0 [题4.14]执行以下语句后a的值为[1],b的值为[2]。 inta=5,b=6,w=1,x=2,y=3,z=4; (a=w>x)&&(b=y>z); [1]A)5B)0C)2D)l [2]A)6B)0C)1D)4 [题4.15]以下不正确的if语句形式是____. A)if(x>y&&x! =y); B)if(x==y)x+=y; C)if(x! =y)scanf(“%d”,&x)elsescanf(“%d”,&y); D)if(x [题4.17]已知intx=10,y=20,z=30;以下语句执行后x,y,z的值是___. if(x>y) z=x;x=y;y=z; A)x=10,y=20,z=30B)x=20,y=30,z=30 C)x=20,y=30,z=10D)x=20,y=30,z=20 [题4.18]以下if语句语法正确的是___. A)if(x>O) printf(“%f”,x) elseprintf(“%f”,-x) B)if(x>O) {x=x+y;printf(“%f”,x);} elseprintf(“%f”,-x); C)if(x>O) {x=x+y;print{(“%f”,x);}; elseprintf(“%f”,-x); D)if(x>0) {x=x+y;printf(“%f”,x)} elseprintf(“%f”,-x); [题4.19]请阅读以下程序: Main() {inta=5,b=0,c=0; if(a=b+c)printf(“***\n”); elseprintf(“$$$\n”); 以上程序___。 A)有语法错不能通过编译B)可以通过编译但不能通过连接 C)输出***D)输出$$$ [题4.20]以下程序的运行结果是___。 main() {intm=5; if(m++>5)printf(“%d\n”,m); elseprintf{(“%d\n”,m--); } A)4B)5C)6D)7 [题4.21]当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是 if(a if(c e1se if(a if(b e1sex=3; elsex=6; elsex=7; A)1B)2C)3D)6 [题4.23]以下程序的输出结果是____. Main() {inta=100,x=10,y=20,ok1=5,ok2=0; if(x if(y! =10) if(! ok1) a=1; else if(ok2)a=10; a=-1; phintf(“%d\n”,a); } A)1B)0C)-1D)值不确定 [题4.25]为了避免在嵌套的条件语句if-else中产生二义性,C语言规定: else子句总是与___配对。 A)缩排位置相同的ifB)与之最近的if C)其之后最近的ifD)同一行上的if [题4.26]以下不正确的语句为___。 A)if(x>y); B)if(x=y)&&(x! =0)x+=y; C)if(x! =y)scanf(%d”,&x);elsescanf(“%d”,&y); D)if(x [题4.28]若有条件表达式(exp)? a++: b--,则以下表达式中能完全等价于表达式(exp)的是____. A)(exp==0)B)(exp! =0) C)(exp==1)D)(exp! =1) [题4.29]若运行时给变量x输入12,则以下程序的运行结果是____. main() {intx,y; scanf(“%d”,&x); y=x>12? x+10: x-12; printf(“%d\n”,y); A)0B)22C)12D)10 [题4.30]以下程序的运行结果是____. Main() {intk=4,a=3,b=2,c=1; printf(“\n%d\n”,k k: c c: a); } A)4B)3C)2D)1 [题4.32]若w、x、y、z、m均为int型变量,则执行下面语句后的m值是___. w=1;x=2;y=3;z=4; m=(w w: x; m=(m m: y; m=(m m: z; A)1B)2C)3D)4 [题4,34]执行以下程序段后的输出结果是___. intw=3,z=7,x=10; printf(“%d\n”,x>10? x+100: x-10); printf(“%d\n”,w++||z++); printf(“%d\n”,! w>z); printf(“%d\n”,w&&z); A)0B)1C)0D)0 1111 1100 1110 4.2填空题 [题4.37]以下程序的运行结果是5251. #include voidmain(void) {intx=1,y,z; x*=3+2; printf(“%d\t”,x); x*=y=z=5; printf(“%d\t”,x); x=y==z; printf(“%d\n”,x); } [题4.38]在C语言中,表示逻辑”真”值用[]。 非0数字 [题4.39]设y为int型变量,请写出描述”y是奇数”的表达式[]。 (y%2==1) [题4.40]c语言提供的三种逻辑运算符是[1]、[2]、[3]。 &&||! [题4.41]设x,y,z均为int型变量,请写出描述”x或y中有一个小于z”的表达式[]。 x [题4.42]设x,y,z均为int型变量,请写出描述”x,y和z中有两个为负数”的表达式[]. (x<0&&y<0)||(x<0&&z<0)||(y<0&&z<0) [题4.50]条件”2 (x>2&&x<3)||(x<-10) [题4.55]有intx,y,z;且x=3,y=-4,z=5,则表达式(x&&y)==(x||z)的值为【1】。 (1) [题4.61]若运行时输入: 16<回车>,则以下程序的运行结果是___. #include voidmain(void) { intyear; printf(“Inputyouryear: ”); scanf(“%d”,&year); if(year>=18) printf(“you$4.5yuan/xiaoshi”); else printf(“you$3.0yuan/xiaoshi”); } 输出结果: you$3.0yuan/xiaoshi [题4.65]请阅读以下程序: main() {intt,h,m; scanf(“%d”,&t); h=(t/100)%12; if(h==0)h=12; printf(“%d: ”,h); m=t%100; if(m<10)printf(“0”); printf(“%d”,m); if(t<1200||t==2400) printf(“AM”); elseprintf(“PM”); } 若运行时输入: 1605<回车>时,程序的运行结果是4: 05PM. [题4.66]以下程序实现: 输入圆的半径r和运算标志m,按照运算标志进行指定计算。 请在[]内填入正确内容。 标志运算 a面积 b周长 c二者均计算 #definepi3.14159 main() {charm; floatr,c,a; printf(“inputmarkacorb&&r\n”); scanf(“%c%f”,&m,&r); if([1])(m==’a’) {a=pi*r*r;printf(“areais%f”,a);} if([2])(m==’b’) {a=2*pi*r;printf(“circleis%f”,a);} if([3])(m==’c’) {a=pi*r*r;c=2*pi*r;printf(“area&&circleare%f%f”,a,c);} [题4.67]若运行时输入: 5999<回车>,则以下程序的运行结果(保留小数点后一位)是___.(3635.4) main() { intx; floaty; scanf(“%d”,&x); if(x>=0&&x<=2999)y=18+0.12*x; if(x>=3000&&x<=5999)y=36+0.6*x; if(x>=6000&&x<=10000)y=54+0.3*x; printf(“%6.1f”,y); } [题4.68]以下程序实现输出x,y,z三个数中的最大者。 请在[]内填入正确内容。 main() {intx=4,y=6,z=7; int[1];(u,v) if([2])u=x;(x>y) elseu=y; if([3])v=u;(u>z) elsev=z; printf(“v=%d”,v); } [题4.71]以下程序对输入的一个小写字母,将字母循环后移5个位置后输出。 如‘a’变成’f’,’w’变成’b’.请在[]内填入正确内容。 #include“stdio.h” main() {charc; c=gerchar(); if(c>=’a’&&c<=’u’)[1];(c=c+5) elseif(c>=’v’&&c<=’z’)[2];(c=c-21) putchar(c); } [题4.72]输入一个字符,如果它是一个大写字母,则把它变成小写字母;如果它是一个小写字母,则把它变成大写字母;其它字符不变。 请在[]内填入正确内容 main() {charch; scanf(“%c”,&ch); if([1])ch=ch+32;(ch>=’A’&&ch<=’Z’) elseif(ch>=’a’&&ch<=’z’)[2];(ch=ch-32) printf(“%c”,ch); [题4.73]以下程序的运行结果是 main() {inta,b,C; ints,w,t; s=w=t=0; a=-1;b=3;c=3; if(c>0)s=a+b; if(a<=0) {if(b>0) if(c<=0)w=a-b; } elseif(c>0)w=a-b; elset=c; printf(“%d%d%d”,s,w,t); }(200) [题4.74]以下程序的运行结果是___. mian() {inta,b,c,d,x; a=c=0; b=1; d=20; if(a)d=d-10; elseif(! b) if(! c)x=15; elsex=25; printf(“%d\n”,d); } 20 [题4.76]以下程序的运行结果是____. #include voidmain(void) {intx,y=-2,z=0; if((z=y)<0)x=4; elseif(y==0)x=5; elsex=6; printf(“\t%d\t%d\n”,x,z);(4-2) if(z=(y==0)) x=5; x=4; printf(“\t%d\t%d\n”,x,z);(40) if(x=z=y)x=4; printf(“\t%d\t%d\n”,x,z);(4-2) } [题4.77] main() {ints,t,a,b; scanf(“%d,%d”,&a,&b); s=1; t=1; if(a>0)s=s+1; if(a>b)t=s+t; elseif(a==b)t=5; elset=2*s; printf(“s=%d,t=%d”,s,t); } 为了使输出结果t=4,输入量a和b应满足的条件是【】。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第四 程序设计 习题