順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的程序設(shè)計例題

字號:

1 在三種選擇結(jié)構(gòu)中,能用2個條件,控制從3個操作中選擇一個操作執(zhí)行的選擇結(jié)構(gòu)是____選擇結(jié)構(gòu)
    【分析】能用1個條件,控制某個操作做或不做的選擇結(jié)構(gòu)是單分支結(jié)構(gòu);能用1個條件,控制從2個操作中選擇一個操作執(zhí)行的選擇結(jié)構(gòu)是雙分支結(jié)構(gòu);能用n(n>l)個條件,控制從n+ l個操作中選擇一個操作執(zhí)行的選擇結(jié)構(gòu)是多分支結(jié)構(gòu)。
    【答案】多分支
    2 在三種循環(huán)結(jié)構(gòu)中,先執(zhí)行循環(huán)操作內(nèi)容(即循環(huán)體),后判斷控制循環(huán)條件的循環(huán)結(jié)構(gòu)是______循環(huán)結(jié)構(gòu)。
    【分析】當(dāng)型循環(huán)結(jié)構(gòu)是先判斷控制循環(huán)的條件,條件成立,執(zhí)行循環(huán)體;條件不成立,則退出循環(huán)體。次數(shù)型循環(huán)結(jié)構(gòu)也是先判斷是否達(dá)到循環(huán)次數(shù),沒有達(dá)到循環(huán)次數(shù),執(zhí)行循環(huán)體;達(dá)到循環(huán)次數(shù)的,退出循環(huán)。只有直到型循環(huán)結(jié)構(gòu)才是先執(zhí)行循環(huán)體,然后再判斷控制循環(huán)的條件,如果條件成立,進(jìn)行循環(huán);條件不成立,退出循環(huán)。
    【答案】直到型
    3 使用“getchar( )”函數(shù)時,程序的開頭必須寫一條包含命令為____________。
    【分析】凡是使用系統(tǒng)函數(shù)的程序,都要在程序的開頭寫一條包含命令,包含命令中的“頭函數(shù).h”是一個文件,其中有關(guān)于該系統(tǒng)函數(shù)的定義。系統(tǒng)函數(shù)“getchar( )”是在名為“stdio.h(標(biāo)準(zhǔn)輸入輸出函數(shù))”的頭函數(shù)文件中定義的。
    【答案】#include"stdio.h"或#include<stdio.h>
    4 執(zhí)行輸入語句“scanf("x=%c,y=%d",&x,&y);”,要使字符型變量X的值為'A'、整型變量y的值為12,則從鍵盤上正確的輸入是( )
     ①'A'/ ②A/ ③x=A/ ④x=A,y=12/
     12/ 12/ y=12/
     說明:備選答案中的"/"表示回車換行鍵
    【分析】輸入語句的格式控制符串中的“x=”、“,”、“y=”都是非格式控制符,在輸入時必須原樣位置輸人,所以只有備選答案④才符合這個要求。
    【答案】④
    5 設(shè)有下列程序段,則執(zhí)行該程序段后的輸出是( )
      int i=012;
      float f=1.234E-2;
      printf("i=%-5df=%5.3f",i,f);
     ...
     ①i=__012f=1.234 ②i=10___f=0.012
     ③10___O.012 ④___100.012
     注:答案中的_代表一個空格。
    【分析】輸出語句的格式控制符串中的“i=”、“f=”都是非格式控制符,在輸出時必須原樣,原位置輸出,所以只有備選答案①和②才符合這個要求;格式控制符“%-5d”的格式控制是數(shù)據(jù)左對齊、寬度為5的整型數(shù)據(jù),備選答案①中的數(shù)據(jù)是右對齊的;此外,該答案中的實數(shù)“1.234E-2”應(yīng)該代表“0.01234”,而不是“1.234”。只有備選答案②符合題意。
    【答案】②
    6 在Turbo C的主屏幕中,將當(dāng)前編輯的源程序以原名存盤,可以選用___________菜單項,也可以直熱鍵________。
    【分析】如果選用“File/Save”菜單項,或者使用熱鍵(f12),當(dāng)前編輯的源程序?qū)⒁栽瓉淼奈募姹P;如果選用“File/Write to”,當(dāng)前編輯的源程序?qū)⒁孕碌奈募姹P。
    【答案】File/Save
     F2
    7 下列各種選擇結(jié)構(gòu)的問題中,最適合用if-else語句來解決的是( )
    ①控制單個操作做或不做的問題
    ②控制兩個操作中選取一個操作執(zhí)行的問題
    ③控制三個操作中選取一個操作執(zhí)行的問題
    ④控制10個操作中選取一個操作執(zhí)行的問題
    【分析】if-else語句是專門解決“雙分支結(jié)構(gòu)”的,而“雙分支結(jié)構(gòu)”的問題就是用單個條件控制從兩個操作中選取一個操作來執(zhí)行的問題。
    【答案】②
    8 下列程序是輸入一個小寫字母,轉(zhuǎn)換成對應(yīng)大寫字母的后一個字母輸出。例如:'a'將轉(zhuǎn)換成’B’、…、‘y’將轉(zhuǎn)換成’Z’,其中的’Z’將轉(zhuǎn)換成’A’。請?zhí)顚懗绦蛑兴鄙俚恼Z句。
     main()
     {char ch ;
     scanf(”%c”,&ch〕;
     ch=ch- 32+1;
     ___________________;
     printf("%c\n",ch);
     }
    【分析】分析程序庫中的“ch=ch- 32+ 1;”語句,可知是將字符型變量 ch中的小寫字母轉(zhuǎn)換成對應(yīng)的大寫字母(- 32)的后一個字母(+ l)。如果ch中的字母是' a'、' b'、··,'y',轉(zhuǎn)換結(jié)果都不會出錯,但是,如果 ch中的字母是'Z',則-32后是大寫字母'Z',再+l后將不是大寫字母了。為了使其轉(zhuǎn)換成'A',需要用一個單分支結(jié)構(gòu)來實現(xiàn):如果ch的值等于'Z'+ l,則硬性將 ch的值改成'A'。完成這個任務(wù)的語句是一條單分支語句,正是所缺少的語句。
    【答案】 if (ch=='Z'+l) h='A';