自考“高級(jí)語言程序設(shè)計(jì)”習(xí)題答案詳解(10)

字號(hào):

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.