C语言第四章习题.docx
《C语言第四章习题.docx》由会员分享,可在线阅读,更多相关《C语言第四章习题.docx(12页珍藏版)》请在冰豆网上搜索。
![C语言第四章习题.docx](https://file1.bdocx.com/fileroot1/2022-11/20/8af250a0-4b5c-4415-afdf-0cb579ddc265/8af250a0-4b5c-4415-afdf-0cb579ddc2651.gif)
C语言第四章习题
练习4-1
一、选择题
1.已知:
charc='A';inti=1,j;,执行语句j=!
c&&i++;,则i和j的值是()。
A.1,1B.1,0C.2,1D.2,0
2.已知:
intx=1,y=2,z;,则执行z=x>y?
++x:
++y;,则z的值为()。
A.1B.2C.3D.4
3.已知:
inta=4,b=5,c;,则执行表达式c=a=a>b后变量a的值为()。
A.0B.1C.4D.5
4.已知:
charch='A';,则表达式ch=(ch>='A'&&ch<='Z')?
(ch+32):
ch;的值是()。
A.'A'B.'a'C.'Z'D.'z'
5.若w=1,x=2,y=3,z=4;,则条件表达式w>x?
w:
yy:
z的结果为()。
A.4B.3C.2D.1
6.已知:
intw=3,x=10,z=7;,则执行下面语句后的结果为()。
printf("%d",x>10?
x+100:
x-10);
printf("%d",w++||z++);
printf("%d",!
w>z);
printf("%d",w&&z);
A.0111B.1111C.0101D.0100
7.已知:
a=b=c=1且a、b、c均为int型变量,执行以下语句:
++a||++b&&++c;
则变量a值为(①),b值为(②)。
①A.不正确B.0C.2D.1
②A.1B.2C.不正确D.0
8.执行下面语句后x的值为()。
inta=14,b=15,x;
charc='A';
x=((a&b)&&(c<'a'));
A.TRUEB.FALSEC.0D.1
9.要判断char型变量m是否是数字,可以使用下列表达式()。
A.0<=m&&m<=9B.'0'<=m&&m<='9'
C."0"<=m&&m<="9"D.前面三个答案均是错误的
10.能正确表示“当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)
11.设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是()。
A.'x'&&'y'B.x<=yC.x||y+z&&y-zD.!
((xz||1)
12.已知x=43,ch='A',y=0;,则表达式x>=y&&ch<'B'&&!
y的值是()。
A.0B.语法错C.1D.“假”
13.判断char型变量c1是否为小写字母的正确表达式为()。
A.'a'<=c1<='z'B.(c1>=a)&&(c1<=z)
C.('a'>=c1)||('z'<=c1)D.(c1>='a')&&(c1<='z')
二、读程序、写结果
14.下面程序的运行结果:
①()、②()、③()、④()、⑤()。
#include
main()
{inti=16,j,x=6,y,z;
j=i+++1;printf("%d\n",j);/*输出①*/
x*=i=j;printf("%d\n",x);/*输出②*/
x=1;y=2;z=3;
x+=y+=z;
printf("%d\n",z+=x>y?
x++:
y++);/*输出③*/
x=0x02ff;y=0xff00;
printf("%d\n",(x&y)>>4|0x005f);/*输出④*/
x=y=z=-1;
++x||++y&&++z;
printf("%d%d%d\n",x,y,z);/*⑤*/
}
练习4-2
一、选择题
1.下面程序的输出是()。
#include
main()
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:
switch(y)
{case0:
a++;break;
case1:
b++;break;
}
case2:
a++;b++;break;
}
printf("a=%d,b=%d\n",a,b);
}
A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2
2.若有说明:
intx,y;,不能实现以下函数关系的程序段是()。
A.if(x<0)y=-1;B.y=-1;C.y=0;D.if(x>=0)
elseif(x==0)y=0;if(x!
=0)if(x>=0)if(x>0)y=1;
elsey=1;if(x>0)y=1;{if(x>0)y=1;}elsey=0;
elsey=0;elsey=-1;elsey=-1;
3.已知:
intx,a,b;,下列选项中错误的if语句是()。
A.if(a=b)x++;B.if(a=
4.若inti=10;,执行下列程序后,变量i的正确结果是()。
switch(i)
{case9:
i+=1;
case10:
i+=1;
case11:
i+=1;
default:
i+=1;
}
A.10B.11C.12D.13
5.设有说明语句:
inta=1,b=0;,则执行以下语句后输出为()。
switch(a)
{case1:
switch(b)
{case0:
printf("**0**");break;
case1:
printf("**1**");break;
}
case2:
printf("**2**");break;
}
A.**0**B.**0****2**C.**0****1****2**D.有语法错误
6.阅读下列程序,其运行结果是()。
#include
main()
{charc='A';
if('0'<=c<='\x39')printf("YES");
elseprintf("NO");
}
A.YESB.NOC.YESNOD.语句错误
7.下列程序的运行结果为()。
#include
main()
{inta=2,b=-1,c=2;
if(a
if(b<0)c=0;
elsec+=1;
printf("%d\n",c);
}
A.0B.1C.2D.3
8.阅读程序,其运行结果是()。
#include
main()
{inta=-1,b=1,k;
if((++a<0)&&(b--<=0))printf("%d%d\n",a,b);
elseprintf("%d%d\n",b,a);
}
A.-11B.01C.10D.00
9.选择运行结果。
#include
main()
{charch;
ch=getch();
switch(ch)
{case65:
printf("%c",'A');
case66:
printf("%c",'B');
default:
printf("%s\n","other");
}
}
如程序可以正常运行,当从键盘输入字母A时,输出结果为()。
A.AB.ABotherC.AotherD.编译错误,无法运行
10.当a=1,b=3,c=5,d=4时,执行完成下面一段程序后x的值是()。
if(a
if(celseif(aif(belsex=3;
elsex=6;
elsex=7;
A.1B.2C.3D.6
二、填空题
11.以下程序的输出结果是()。
main()
{inta=100,x=10,y=20,ok1=5,ok2=0;
if(xif(y!
=10)
if(!
ok1)a=1;
elseif(ok2)a=10;
a=-1;
printf("%d\n",a);
}
12.阅读以下程序:
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,程序的运行结果是()。
13.若运行时输入:
35/,则以下程序的运行结果是()。
main()
{floatx,y;charo;doubler;
scanf("%f%f%c",&x,&y,&o);
switch(o)
{case'+':
r=x+y;break;
case'-':
r=x-y;break;
case'*':
r=x*y;break;
case'/':
r=x/y;break;
}
printf("%f",r);
}
练习4-3
一、选择题
1.以下不是死循环的语句为()。
A.for(;;x+=i)B.while
(1){x++;}
C.for(i=10;;i--)sum+=i;D.for(;(c=getchar())!
='\n';)printf("%c",c);
2.执行语句for(i=0;i++<3;);后,变量i的值为()。
A.2B.3C.4D.5
3.下面的for语句()。
for(x=0,y=0;(y!
=123)&&(x<4);x++);
A.是无限循环B.循环次数不定C.循环执行4次D.循环执行3次
4.与语句while(!
x)等价的语句是()。
A.while(x==0)B.while(x!
=0)C.while(x!
=1)D.while(~x)
5.定义inti=1;,执行语句while(i++<5);后,i的值为()。
A.3B.4C.5D.6
6