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

字號(hào):

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