3.3 程序分析题
1.阅读程序,写出运行结果。
main()
{ int a=10, b=4,C=3;
if(a
if(a
printf(“%d,%d,%dn”, a,b,c);
}
“解”程序中,第一个if语句if(a
2.阅读下列程序,写出程序的输出结果。
main()
{ int x=100, a=10, b=20, Ok1=5,Ok2=0;
if(a
else if(ok2) x=10;
else x=-l;
printf(“%dn”,x);
}
“解”程序预置变量x的值为100,a的值为10,b的值为20,ok1为5,Ok2为0.
程序中给出的if语句可以写成更结构化的形式如下:
if(a
if(b!=15){
if(!Ok1) x=1;
else{
if(Ok2) x=10;
else x=-l;
}
}
}
由于条件a
3.阅读下列程序,写出程序的输出结果。
main()
{ int y=9;
for(; y0; y——)
if(y%3==0){ printf(“%d”,——y);continue;}
}
“解”循环前,变量y的值为9,其中的循环语句在y大于0情况下循环,每次循环后y的值减1.循环体是当y能被3整除时输出表达式——y,输出的是减1后的y值。这样,第一次循环因y为9,能被3整除,输出8,y也变成8.又经两次循环,y的值变为6,又让y减1变成5,并输出5;又经两次循环,y的值变成3,让y减至变成2,输出2;再经两次循环后,y的值变成0,结束循环。所以程序输出852.