3.3 程序分析題
1.閱讀程序,寫出運(yùn)行結(jié)果。
main()
{ int a=10, b=4,C=3;
if(a<b)a=b;
if(a<C) a=C;
printf(“%d,%d,%d\n”, a,b,c);
}
「解」程序中,第一個(gè)if語句if(a 2.閱讀下列程序,寫出程序的輸出結(jié)果。
main()
{ int x=100, a=10, b=20, Ok1=5,Ok2=0;
if(a<b)if(b!=15)if(!Ok1) x=1;
else if(ok2) x=10;
else x=-l;
printf(“%d\n”,x);
}
「解」程序預(yù)置變量x的值為100,a的值為10,b的值為20,ok1為5,Ok2為0.
程序中給出的if語句可以寫成更結(jié)構(gòu)化的形式如下:
if(a<b) {
if(b?。?5){
if(!Ok1) x=1;
else{
if(Ok2) x=10;
else x=-l;
}
}
}
由于條件a<b成立,并且條件b!=15也成立,而ok1不等于0,執(zhí)行else后的語句。又因ok2等于0,執(zhí)行else后的語句賦-1給x.所以程序輸出一l.
3.閱讀下列程序,寫出程序的輸出結(jié)果。
main()
{ int y=9;
for(; y>0; y——)
if(y%3==0){ printf(“%d”,——y);continue;}
}
「解」循環(huán)前,變量y的值為9,其中的循環(huán)語句在y大于0情況下循環(huán),每次循環(huán)后y的值減1.循環(huán)體是當(dāng)y能被3整除時(shí)輸出表達(dá)式——y,輸出的是減1后的y值。這樣,第一次循環(huán)因y為9,能被3整除,輸出8,y也變成8.又經(jīng)兩次循環(huán),y的值變?yōu)?,又讓y減1變成5,并輸出5;又經(jīng)兩次循環(huán),y的值變成3,讓y減至變成2,輸出2;再經(jīng)兩次循環(huán)后,y的值變成0,結(jié)束循環(huán)。所以程序輸出852.
1.閱讀程序,寫出運(yùn)行結(jié)果。
main()
{ int a=10, b=4,C=3;
if(a<b)a=b;
if(a<C) a=C;
printf(“%d,%d,%d\n”, a,b,c);
}
「解」程序中,第一個(gè)if語句if(a 2.閱讀下列程序,寫出程序的輸出結(jié)果。
main()
{ int x=100, a=10, b=20, Ok1=5,Ok2=0;
if(a<b)if(b!=15)if(!Ok1) x=1;
else if(ok2) x=10;
else x=-l;
printf(“%d\n”,x);
}
「解」程序預(yù)置變量x的值為100,a的值為10,b的值為20,ok1為5,Ok2為0.
程序中給出的if語句可以寫成更結(jié)構(gòu)化的形式如下:
if(a<b) {
if(b?。?5){
if(!Ok1) x=1;
else{
if(Ok2) x=10;
else x=-l;
}
}
}
由于條件a<b成立,并且條件b!=15也成立,而ok1不等于0,執(zhí)行else后的語句。又因ok2等于0,執(zhí)行else后的語句賦-1給x.所以程序輸出一l.
3.閱讀下列程序,寫出程序的輸出結(jié)果。
main()
{ int y=9;
for(; y>0; y——)
if(y%3==0){ printf(“%d”,——y);continue;}
}
「解」循環(huán)前,變量y的值為9,其中的循環(huán)語句在y大于0情況下循環(huán),每次循環(huán)后y的值減1.循環(huán)體是當(dāng)y能被3整除時(shí)輸出表達(dá)式——y,輸出的是減1后的y值。這樣,第一次循環(huán)因y為9,能被3整除,輸出8,y也變成8.又經(jīng)兩次循環(huán),y的值變?yōu)?,又讓y減1變成5,并輸出5;又經(jīng)兩次循環(huán),y的值變成3,讓y減至變成2,輸出2;再經(jīng)兩次循環(huán)后,y的值變成0,結(jié)束循環(huán)。所以程序輸出852.