自考“高級語言程序設計”習題答案詳解(10)

  • 發(fā)布時間:2024-09-15 16:21:23
  • 來源:本站整理
  • 閱讀:
導讀:
  3.3 程序分析題
  1.閱讀程序,寫出運行結果。
  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);
  }
  「解」程序中,第一個if語句if(a<B)A=B,當A<B時,讓B值置A,該語句確保A的值不比B小。同樣第二個IF語句IF(A<

}

「解」程序中,第一個if語句if(a B)A=B,當A B時,讓B值置A,該語句確保A的值不比B小。同樣第二個IF語句IF(A<C)A=C,當A<C時,讓C值置A,使A的值不比C小。實際;情況是A本來就比B和C都大,所以A的值沒有變,程序輸出A、B和 C的原來值:10,4,3.

2.閱讀下列程序,寫出程序的輸出結果。

main()

{ int x=100, a=10, b=20, Ok1=5,Ok2=0;

if(a<b)if(b?。?5)if(!Ok1) x=1;

else if(ok2) x=10;

else x=-l;

printf(“%d\n”,x);

}

「解」程序預置變量x的值為100,a的值為10,b的值為20,ok1為5,Ok2為0.

程序中給出的if語句可以寫成更結構化的形式如下:

if(a<b) {

if(b!=15){

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.閱讀下列程序,寫出程序的輸出結果。

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)體是當y能被3整除時輸出表達式——y,輸出的是減1后的y值。這樣,第一次循環(huán)因y為9,能被3整除,輸出8,y也變成8.又經兩次循環(huán),y的值變?yōu)?,又讓y減1變成5,并輸出5;又經兩次循環(huán),y的值變成3,讓y減至變成2,輸出2;再經兩次循環(huán)后,y的值變成0,結束循環(huán)。所以程序輸出852.

相關閱讀