k:
c
c:
a);
}
A)4B)3C)2D)1
【题5.31】执行以下程序段后,变量a,b,c的值分别是。
B
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
【题5.32】若w、x、y、z、m均为int型变量,则执行下面语句后的m值是。
A
w=1;x=2;y=3;z=4;
m=(ww:
x;
m=(mm:
y;
m=(mm:
z;
A)1B)2C)3D)4
【题5.33】若w=1、x=2、y=3、z=4,则条件表达式ww:
yy:
z的值是。
D
A)4B)3C)2D)1
【题5.34】执行以下程序段后的输出结果是。
C
intw=3,z=7,x=10;
printf(“%dn”,x>10?
x+100:
x-10);
printf(“%dn”,w++||z++);
printf(“%dn”,!
w>z);
printf(“%dn”,w&&z);
A)0
B)1
C)0
D)0
1
1
1
1
0
1
0
1
1
1
1
0
5.2填空题
6
【题5.35
】当a=3,b=2,c=1
时,表达式
f=a>b>c的值是【
】。
0
【题5.36
】当a=5,b=4,c=2
时,表达式
a>b!
=c的值是【
】。
1
【题5.37
】以下程序的运行结果是
。
5251
#include
voidmain(void)
{
intx=1,y,z;
x*=3+2;
printf(“%dt”,x);
x*=y=z=5;
printf(“%dt”,x);
x=y==z;
printf(“%dn”,x);
}
【题5.38】在C语言中,表示逻辑“真”值用【】。
1
【题5.39】设y为int型变量,请写出描述“y是奇数”的表达式【】。
y%2==1或y%2!
=0
【题5.40】C语言提供的三种逻辑运算符是【1】、【2】、【3】。
&&||!
【题5.41】设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式【】。
【题5.42】设x,y,z均为int型变量,请写出描述“x,y和z中有两个为负数”的表
达式【】。
【题5.50】条件“2
【题5.51】当m=2,n=1,a=1,b=2,c=3时,执行完d=(m=a!
=b)&&(n=b>c)后;n的值是【0】,
m的值是【1】。
【题5.52】以下程序的运行结果是。
1,1
main()
{
intx,y,z;
x=1;y=2;z=3;
7
x=y--<=x||x+y!
=z;
printf(“%d,%d”,x,y);
}
【题5.53】以下程序的运行结果是。
a1=1a2=1
b1=0b2=1
main()
{
inta1,a2,b1,b2;
inti=5,j=7,k=0;
a1=!
k;
a2=i!
=j;
printf(“a1=%dn”,a1,a2);
b1=k&&j;
b2=k||j;
printf(“b1=%dn”,b1,b2);
}
【题5.54】以下程序的运行结果是
。
1,0
main()
{
intx,y,z;
x=1;y=1;z=0;
x=x||y&&z;;
printf(“%d,%d”,x,x&&!
y||z);
}
【题5.61】若运行时输入:
16<回车>,则以下程序的运行结果是。
#include
voidmain(void)
{
intyear;
printf(“Inputyouyear:
”);
scanf(“%d”,&year);
if(year>=18)
printf(“you$4.5yuan/xiaoshi”);
else
printf(“you$3.0yuan/xiaoshi”);
}
8
【题5.62】若运行时输入:
2<回车>,则以下程序的运行结果是。
#include
voidmain(void)
{
charClass;
printf(“Enter1for1stclasspostor2for2ndpost”);
scanf(“%c”,&Class);
if(Class==‘1’)
printf(“1stclasspostageis19p”);
else
printf(“2ndclasspostageis14p”);
}
【题5.63】若运行时输入:
4.4<回车>,则以下程序的运行结果是。
#include
voidmain(void)
{
floatCostPrice,SellingPrice;
printf(“EnterCostPrice$:
”);
scanf(“%f”,&CostPrice);
if(CostPrice>=5)
{
SellingPrice=CostPrice+CostPrice*0.25;
printf(“SellingPrice(0.25)$%6.2f”,SellingPrice);
}
else
{
SellingPrice=CostPrice+CostPrice*0.30;
printf(“SellingPrice(0.30)$%6.2f”,SellingPrice);
}
}
【题5.64】以下程序的运行结果是。
main()
{
if(2*2==5<2*2==4)
print(“T”);
else
9
printf(“F”);
}
【题5.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<回车>时,程序的运行结果是。
【题5.66】以下程序实现:
输入圆的半径r和运算标志m,按照运算标志进行指定计算。
请在【】内填入正确内容。
标志运算
a面积
c周长
b二者均计算
#definepi3.14159
main()
{
charm;
floatr,c,a;
printf(“inputmarkn”);
scanf(“%c%f”,&m,&r);
if(【1】)m==’a’
{a=pi*r*r;printf(“areais%f”,a);}
if(【2】)m==’c’
{c=2*pi*r;printf(“circleis%f”,c);}
10
if(【3】)m==’b’
{a=pi*r*r;c=2*pi*r;printf(“area&&circleare%f%f”,a,c);}
}
【题5.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);
}
【题5.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);
}
【题5.69】以下程序实现:
输入三个整数,按从大到小的顺序进行输出。
请在【】内填入正确内容。
main()
{
intx,y,z,c;
scanf(“%d%d%d”,&x,&y,&z);
if(【1】)y{c=y;y=z;z=c;}
if(【2】)x{c=x;x=z;z=c;}
11
if(【3】)x{c=x;x=y;y=c;}
printf(“%d,%d,%d”,x,y,z);
}
【题5.70】以下程序对输入的两个整数,按从大到小的顺序输出。
请在【】内填入正确内容。
main()
{
intx,y,z;
scanf(“%d,%d”,&x,&y);
if(【1】)x{z=x;【2】}x=y,y=z;
printf(“%d,%d”,x,y);
}
【题5.71】以下程序对输入的一个小写字母,将字母循环后移5个位置后输出。
如‘a’
变成‘f’,‘w’变成‘b’。
请在【】内填入正确内容。
#include“stdio.h”
main()
{
charc;
c=getchar();
if(c>=‘a’&&c<=‘u’)【1】;c=c+5;
elseif(c>=‘v’&&c<=‘z’)【2】;c=c-21;
putchar(c);
}
【题5.71】输入一个字符,如果它是一个大写字母,则把它变成小写字母;如果它是一个小写字母,则把它变成大写字母;其它字符不变。
请在【】内填入正确内容。
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);
}
12
【题5.73】以下程序的运行结果是
。
200
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);
}
【题5.74】以下程序的运行结果是
。
20
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(“%dn”,d);
}
【题5.75】以下程序的运行结果是
。
5
5
1
#include
voidmain(void)
{
intx,y=1,z;
13
if(y!
=0)x=5;
printf(“n”,x);
if(y==0)x=4;
elsex=5;
printf(“n”,x);
x=1;
if(y<0)
if(y>0)x=4;
elsex=5;
printf(“n”,x);
}
【题5.76】以下程序的运行结果是。
#include
voidmain(void)
{
intx,y=-2,z;
if((z=y)<0)x=4;
elseif(y==0)x=5;
elsex=6;
if(z=(y==0))
x=5;
x=4;
printf(“n”,x,z);
if(x=z=y)x=4;
printf(“n”,x,z);
}
运行结果:
40
4-2
【题5.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;
14
elseif(a==b)t=5;
elset=2*s;
printf(“s=%d,t=%d”,s,t);
}
为了使输出结果t=4,输入量a和b应满足的条件是【】。
a0
【题5.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;
elset=2*s;
printf(“s=%d,t=%d”,s,t);
}
为了使输出结果s=1,t=5,输入量a和b应满足的条件是【】。
a<0&&(a==b)
【题5.79】下面程序根据以下函数关系,对输入的每个x值,计算出y值。
请在【】内填
入正确内容。
xy