main()
{float len,wei,hei,wid,mon,r;
scanf(\if(len>1||wid>1||hei>1||wei>30) 【1】; else if(wei<10) r=0.8; else if(wei<=20) r=0.75; else if(wei<=30) 【2】; if(r==-1) printf(\else
{【3】;printf(\}
参考答案:【1】r=-1【2】r=0.70【3】m=0.2+r*wei
**4.84 某服装店经营套服,也单件出售。若买的不少于50套每套80元;不足50套的每套90元;只买上衣每件60元;只买裤子每条45元。以下程序的功能是读入所买上衣c和裤子t的件数,计算应付款m。请分析程序填空。
main() {int c,t,m;
printf(\scanf(\if(【1】)
if(c>=50) m=c*80; else m=c*90; else
if(【2】)
if(t>=50) m=t*80+(c-t)*60; else m=t*90+(c-t)*60;
else
if(【3】) m=c*80+(t-c)*45; else m=c*90+(t-c)*45; printf(\}
参考答案:【1】t==c 【2】c>t 【3】c>=50
4.85 以下程序的功能是判断输入的年份是否是闰年。请分析程序填空。
main() {int y,f;
scanf(\if(y@0==0) f=1; else if(【1】) f=1; else 【2】;
if (f) printf(\else printf(\printf(\}
参考答案:【1】year%4== 0&&year0!=0【2】f=0
*4.86 以下程序段针对输入的截止日期(年:yend,月:mend,日:dend)和出生日期(yman,mman,dman),计算出实际年龄。请分析程序填空。 设有:int yend,mend,dend,yman,mman,dman;
age=yend-yman;
if(mend【1】)mman) age--;
else if(mend【2】mman&&dend【3】dman) age--; 参考答案:【1】
4.87 有四个数a,b,c,d,要求从大到小的顺序输出。请分析程序填空。
main()
{int a,b,c,d,t;
scanf(\if(a
printf(\}
参考答案:【1】c4.88 以下程序的运行结果是 。
main()
{int a=2,b=3,c; c=a;
if(a>b) c=1;
else if(a==b) c=0; else c=-1 printf(\}
参考答案:-1
4.89 若a=1,b=2,则表达式a>b?a:b+1的值是 。 参考答案:3
4.90 若a=1,b=2,c=3,d=4,则表达式a>b?a:c>d?c:d的值是 。 参考答案:4
*4.91 设有变量定义:int a=10,c=9;则表达式(--a!=c++)?--a:++c的值是 。 参考答案:11
4.92 若有说明语句:int x=1,y=0;则表达式x>(y+x)?10:12.5>y++?'a':'A'的值是 。 参考答案:'a'
*4.93 若有说明语句:int a=1,b=0;则表达式++a*--a==b?12%5:'x'的值是 。 参考答案:'x'
4.94 若有x=1,y=2,z=3,则表达式(x**4.95 若有说明语句:int x=1,y=0;则表达式x-->(y+x)?5:25>y++?'1':'2'的值是 。 参考答案:5
参考分析:增量运算在条件运算的第一个表达式中时,关系运算符两侧各为一个处理单元。x--中的值是1,然后增为0,故y+x为0+0,因此整个表达式计算结果为真。 4.96 以下程序的运行结果是 。
#include main()
{int a=-10,b=-3; printf(\printf(\printf(\}
参考答案:1,-13,-7
4.97以下程序的运行结果是 。
main()
{int x=1,y=1,z=1; y=y+z; x=x+y;
printf(\
printf(\printf(\}
参考答案:3,2,3,3
4.98 以下程序的运行结果是 。
main() {int x,y,z; x=3; y=z=4;
printf(\printf(\}
参考答案:0,1
4.99 若运行时输入:-2,则以下程序的输出结果是 。
main()