k:
c
c:
a);
}
A)4B)3C)2D)1
4.31执行以下程序段后,变量a,b,c的值分别是______。
intx=10,y=9;
inta,b,c;
a=(--x==y++)?
--x:
++y;
b=x++;
c=y;
A)a=9,b=9,c=9B)a=8,b=8,c=10
C)a=9,b=10,c=9D)a=1,b=11,c=10
4.32若w、x、y、z、m均为int型变量,则执行下面语句后的m值是______。
w=1;x=2;y=3;z=4;
m=(ww:
x;
m=(mm:
y;
m=(mm:
z;
A)1B)2C)3D)4
4.33若w=1,x=2,y=3,z=4,则条件表达式ww:
yy:
z的值是______。
A)4B)3C)2D)1
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)
0
B)
1
C)
0
D)
0
1
1
1
1
1
1
0
0
1
1
1
0
4.2填空题
4.35当a=3,b=2,c=1时,表达式f=a>b>c的值是______。
4.36当a=5,b=4,c=2时,表达式a>b!
=c的值是______。
4.37以下程序运行的结果是______。
main()
{
intx=1,y,z;
x*=3+2;
printf(“%d\t”,x);
x*=y=z=5;
printf(“%d\t”,x);
x=y==z;
printf(“%d\t”,x);
}
4.38在C中,表示逻辑真值用______。
4.39设y为int型变量,请写出描述“y是奇数”的表达式______。
4.40C语言提供的三种逻辑运算符是______。
4.41设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式______。
4.42设x,y,z均为int型变量,请写出描述“x,y和z中有两个为负数”的表达式______。
4.43已知A=7.5,B=2,C=3.6,表达式A>B&&C>A||A
C>B的值是______。
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,则表达式!
(a
c&&1的值是______。
4.47若a=6,b=4,c=3,则表达式a&&b+c||b-c的值是______。
4.48若a=5,b=2,c=1,则表达式a-b4.49设a=3,b=4,c=5,则表达式a||b+c&&b==c的值是______。
4.50条件“24.51当m=2,n=1,a=1,b=2,c=3时,执行完d=(m=a!
=b)&&(n=b>c)后,n的值为__1_,m的值为___2___。
4.52以下程序的运行结果是______。
main()
{
intx,y,z;
x=1;y=2;z=3;
x=y--<=x||x+y!
=z;
printf(“%d,%d”,x,y);
}
4.53以下程序的运行结果是______。
main()
{
inta1,a2,b1,b2;
inti=5,j=7,k=0;
a1=!
k;
a2=i!
=j;
printf(“a1=%d\ta2=%d\n”,a1,a2);
b1=k&&j;
b2=k||j;
printf(“b1=%d\tb2=%d\n”,b1,b2);
}
4.54以下程序的运行结果是______。
main()
{
intx,y,z;
x=1;y=1;z=0;
x=x||y&&z;
printf(“%d,%d”,x,x&&!
y||z);
}
4.55有intx,y,z;且x=3,y=-4,z=5,则表达式(x&&y)==(x||z)的值为______。
4.56有intx,y,z;且x=3,y=-4,z=5,则以下表达式的值为______。
!
(x>y)+(y!
=z)||(x+y)&&(y-z)
4.57有intx,y,z;且x=3,y=-4,z=5,则表达式x++-y+(++z)的值为______。
4.58设a=3,b=4,c=5,则表达式a||b+c&&b==c的值是______。
4.59设a=3,b=4,c=5,x,y;则以下表达式的值是______。
!
(x=a)&&(y=b)&&0
4.60有inta=3,b=4,c=5;则以下表达式的值为______。
!
(a+b)+c-1&&b+c/2
4.61若运行时输入:
16<回车>,则以下程序的运行结果是______。
#include“stdio.h”
voidmain(void)
{
intyear;
printf(“Inputyouryear:
”);
scanf(“%d”,&year);
if(year>=18)
printf(“your$4.5yuan/xiaoshi”);
else
printf(“your$3.0yuan/xiaoshi”);
}
4.62略
4.63略
4.64略
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.66以下程序实现:
输入圆的半径r和运算标志m,按照运算标志进行指定计算。
请在______内填入正确内容。
标志
运算
a
面积
c
周长
b
二者均计算
#definepi3.14159
main()
{
charm;
floatr,c,a;
printf(“inputmarkacorb&&r\n”);
scanf(“%c%f”,&m,&r);
if(___1___)
{a=pi*r*r;printf(“areais%f”,a);}
if(___2___)
{c=2*pi*r;printf(“circleis%f”,c);}
if(___3___)
{a=pi*r*r;c=2*pi*r;printf(“area&&circleare%f%f”,a,c);
}
4.67若运行是输入:
5999<回车>,则以下程序的运行结果(保留小数点后一位)是______。
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__;
if(__2__)u=x;
elseu=y;
if(__3___)v=u;
elsev=z;
printf(“v=%d”,v);
}
4.69以下程序实现:
输入三个整数,按从大到小的顺序进行输出。
请在_____内填入正确的内容。
main()
{
intx,y,z,c;
scanf(“%d%d%d”,&x,&y,&z);
if(__1__)
{c=y;y=z;z=c;}
if(__2__)
{c=x;x=z;z=c};
if(__3__)
{c=x;x=y;y=c;}
printf(“%d,%d,%d”,x,y,z);
}
4.70以下程序对输入的两个整数,按从大到小顺序输出。
请在_____填入正确内容。
main()
{
intx,y,z;
scanf(“%d,%d”,&x,&y);
if(__1__)
{z=x;__2__}
printf(“%d,%d”,x,y);
}
4.71以下程序对输入的一个小写字母,将字母循环后移5人位置输出。
如’a’变成’f’,’w’变成’b’。
请在_____内填入正确内容。
#include“stdio.h”
main()
{
charc;
c=getchar();
if(c>=’a’&&c<=’u’)__1__;
elseif(c>=’v’&&c<=’z’)__2__;
putchar(c);
}
4.72输入一个字符,如果它是一个大写字母,则把它变成小写字母;如果它是一个小写字母,则把它变成大写字母;其它字符不变。
请在_____内填入正确内容。
main()
{
charch;
scanf(“%c”,&ch);
if(_____)ch=ch+32;
elseif(ch>=’a’&&ch<=’z’)_____;
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);
}
4.74以下程序的运行结果是_____。
main()
{
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);
}
4.75以下程序的运行结果是_____。
#include“stdio.h”
voidmain(void)
{
intx,y=1,z;
if(y!
=0)x=5;
printf(“\t%d\n”,x);
if(y==0)x=4;
elsex=5;
printf(“\t%d\n”,x);
x=1;
if(y<0)
if(y>0)x=4;
elsex=5;
printf(“\t%d\n”,x);
}
4.76以下程序的运行结果是_____。
#include“stdio.h”
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);
if(z=(y==0))
x=5;
x=4;
printf(“\t%d\t%d\n”,x,z);
if(x=z=y)x=4;
printf(“\t%d\t%d\n”,x,z);
}
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应满足的条件是_____。
4.78请阅读的程序。
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;