首頁(yè) 考試吧論壇 Exam8視線 考試商城 網(wǎng)絡(luò)課程 模擬考試 考友錄 實(shí)用文檔 求職招聘 論文下載
2011中考 | 2011高考 | 2012考研 | 考研培訓(xùn) | 在職研 | 自學(xué)考試 | 成人高考 | 法律碩士 | MBA考試
MPA考試 | 中科院
四六級(jí) | 職稱英語(yǔ) | 商務(wù)英語(yǔ) | 公共英語(yǔ) | 托福 | 雅思 | 專四專八 | 口譯筆譯 | 博思 | GRE GMAT
新概念英語(yǔ) | 成人英語(yǔ)三級(jí) | 申碩英語(yǔ) | 攻碩英語(yǔ) | 職稱日語(yǔ) | 日語(yǔ)學(xué)習(xí) | 法語(yǔ) | 德語(yǔ) | 韓語(yǔ)
計(jì)算機(jī)等級(jí)考試 | 軟件水平考試 | 職稱計(jì)算機(jī) | 微軟認(rèn)證 | 思科認(rèn)證 | Oracle認(rèn)證 | Linux認(rèn)證
華為認(rèn)證 | Java認(rèn)證
公務(wù)員 | 報(bào)關(guān)員 | 銀行從業(yè)資格 | 證券從業(yè)資格 | 期貨從業(yè)資格 | 司法考試 | 法律顧問 | 導(dǎo)游資格
報(bào)檢員 | 教師資格 | 社會(huì)工作者 | 外銷員 | 國(guó)際商務(wù)師 | 跟單員 | 單證員 | 物流師 | 價(jià)格鑒證師
人力資源 | 管理咨詢師考試 | 秘書資格 | 心理咨詢師考試 | 出版專業(yè)資格 | 廣告師職業(yè)水平
駕駛員 | 網(wǎng)絡(luò)編輯
衛(wèi)生資格 | 執(zhí)業(yè)醫(yī)師 | 執(zhí)業(yè)藥師 | 執(zhí)業(yè)護(hù)士
會(huì)計(jì)從業(yè)資格考試會(huì)計(jì)證) | 經(jīng)濟(jì)師 | 會(huì)計(jì)職稱 | 注冊(cè)會(huì)計(jì)師 | 審計(jì)師 | 注冊(cè)稅務(wù)師
注冊(cè)資產(chǎn)評(píng)估師 | 高級(jí)會(huì)計(jì)師 | ACCA | 統(tǒng)計(jì)師 | 精算師 | 理財(cái)規(guī)劃師 | 國(guó)際內(nèi)審師
一級(jí)建造師 | 二級(jí)建造師 | 造價(jià)工程師 | 造價(jià)員 | 咨詢工程師 | 監(jiān)理工程師 | 安全工程師
質(zhì)量工程師 | 物業(yè)管理師 | 招標(biāo)師 | 結(jié)構(gòu)工程師 | 建筑師 | 房地產(chǎn)估價(jià)師 | 土地估價(jià)師 | 巖土師
設(shè)備監(jiān)理師 | 房地產(chǎn)經(jīng)紀(jì)人 | 投資項(xiàng)目管理師 | 土地登記代理人 | 環(huán)境影響評(píng)價(jià)師 | 環(huán)保工程師
城市規(guī)劃師 | 公路監(jiān)理師 | 公路造價(jià)師 | 安全評(píng)價(jià)師 | 電氣工程師 | 注冊(cè)測(cè)繪師 | 注冊(cè)計(jì)量師
繽紛校園 | 實(shí)用文檔 | 英語(yǔ)學(xué)習(xí) | 作文大全 | 求職招聘 | 論文下載 | 訪談 | 游戲

二級(jí)C輔導(dǎo)教程及考點(diǎn)分析:第三章 程序設(shè)計(jì)初步

    轉(zhuǎn)移語(yǔ)句

    程序中的語(yǔ)句通?偸前错樞蚍较颍 或按語(yǔ)句功能所定義的方向執(zhí)行的。如果需要改變程序的正常流向, 可以使用本小節(jié)介紹的轉(zhuǎn)移語(yǔ)句。在C語(yǔ)言中提供了4種轉(zhuǎn)移語(yǔ)句:
    goto,break, Continue和return。
    其中的return語(yǔ)句只能出現(xiàn)在被調(diào)函數(shù)中, 用于返回主調(diào)函數(shù),我們將在函數(shù)一章中具體介紹。 本小節(jié)介紹前三種轉(zhuǎn)移語(yǔ)句。

    1.goto語(yǔ)句

    goto語(yǔ)句也稱為無(wú)條件轉(zhuǎn)移語(yǔ)句,其一般格式如下: goto 語(yǔ)句標(biāo)號(hào); 其中語(yǔ)句標(biāo)號(hào)是按標(biāo)識(shí)符規(guī)定書寫的符號(hào), 放在某一語(yǔ)句行的
    前面,標(biāo)號(hào)后加冒號(hào)(:)。語(yǔ)句標(biāo)號(hào)起標(biāo)識(shí)語(yǔ)句的作用,與goto 語(yǔ)句配合使用。
    如: label: i++; 
    loop: while(x<7); 
    C語(yǔ)言不限制程序中使用標(biāo)號(hào)的次數(shù),但各標(biāo)號(hào)不得重名。goto語(yǔ)句的語(yǔ)義是改變程序流向, 轉(zhuǎn)去執(zhí)行語(yǔ)句標(biāo)號(hào)所標(biāo)識(shí)的語(yǔ)句。
    goto語(yǔ)句通常與條件語(yǔ)句配合使用?捎脕(lái)實(shí)現(xiàn)條件轉(zhuǎn)移, 構(gòu)成循環(huán),跳出循環(huán)體等功能。
    但是,在結(jié)構(gòu)化程序設(shè)計(jì)中一般不主張使用goto語(yǔ)句, 以免造成程序流程的混亂,使理解和調(diào)試程序都產(chǎn)生困難。
    統(tǒng)計(jì)從鍵盤輸入一行字符的個(gè)數(shù)。
    #inClude"stdio.h"
    void main(){
    int n=0;
    printf("input a string\n");
    loop: if(getChar()!=’\n’)
    { n++;
    goto loop;
    }
    printf("%d",n);
    }
    本例用if語(yǔ)句和goto語(yǔ)句構(gòu)成循環(huán)結(jié)構(gòu)。當(dāng)輸入字符不為’\n’時(shí)即執(zhí)行n++進(jìn)行計(jì)數(shù),然后轉(zhuǎn)移至if語(yǔ)句循環(huán)執(zhí)行。直至輸入字符為’\n’才停止循環(huán)。

    break語(yǔ)句

    break語(yǔ)句只能用在switCh 語(yǔ)句或循環(huán)語(yǔ)句中, 其作用是跳出switCh語(yǔ)句或跳出本層循環(huán),轉(zhuǎn)去執(zhí)行后面的程序。由于break語(yǔ)句的轉(zhuǎn)移方向是明確的,所以不需要語(yǔ)句標(biāo)號(hào)與之配合。break語(yǔ)句的一般形式為: break; 上面例題中分別在switCh語(yǔ)句和for語(yǔ)句中使用了break 語(yǔ)句作為跳轉(zhuǎn)。使用break語(yǔ)句可以使循環(huán)語(yǔ)句有多個(gè)出口,在一些場(chǎng)合下使編程更加靈活、方便。

    Continue語(yǔ)句 

    Continue語(yǔ)句只能用在循環(huán)體中,其一般格式是:
    Continue;
    其語(yǔ)義是:結(jié)束本次循環(huán),即不再執(zhí)行循環(huán)體中Continue 語(yǔ)句之后的語(yǔ)句,轉(zhuǎn)入下一次循環(huán)條件的判斷與執(zhí)行。應(yīng)注意的是, 本語(yǔ)句只結(jié)束本層本次的循環(huán),并不跳出循環(huán)。
    void main(){
    int n;
    for(n=7;n<=100;n++)
    {
    if (n%7!=0)
    Continue;
    printf("%d ",n);
    }
    }
    輸出100以內(nèi)能被7整除的數(shù)。 
    int n;
    for(n=7;n<=100;n++)
    {
    if (n%7!=0)
    Continue;
    printf("%d ",n);
    }
    本例中,對(duì)7~100的每一個(gè)數(shù)進(jìn)行測(cè)試,如該數(shù)不能被7整除,即模運(yùn)算不為0,則由Continus語(yǔ)句轉(zhuǎn)去下一次循環(huán)。只有模運(yùn)算為0時(shí),才能執(zhí)行后面的printf語(yǔ)句,輸出能被7整除的數(shù)。
    #inClude"stdio.h"
    void main(){
    Char a,b;
    printf("input a string:\n");
    b=getChar();
    while((a=getChar())!=’\n’){
    if(a==b){
    printf("same CharaCter\n");
    break;
    }b=a;
    }
    }
    檢查輸入的一行中有無(wú)相鄰兩字符相同。
    Char a,b;
    printf("input a string:\n");
    b=getChar();
    while((a=getChar())!=’\n’){
    if(a==b){
    printf("same CharaCter\n");
    break;
    }b=a;
    }
    本例程序中,把第一個(gè)讀入的字符送入b。然后進(jìn)入循環(huán),把下一字符讀入a,比較a,b是否相等,若相等則輸出提示串并中止循環(huán),若不相等則把a(bǔ)中的字符賦予b,輸入下一次循環(huán)。 
    輸出100以內(nèi)的素?cái)?shù)。素?cái)?shù)是只能被1 和本身整除的數(shù)?捎酶F舉法來(lái)判斷一個(gè)數(shù)是否是素?cái)?shù)。
    void main(){
    int n,i;
    for(n=2;n<=100;n++){
    for(i=2;i<n;i++)
    if(n%i==0) break;
    if(i>=n) printf("\t%d",n);
    }
    } int n,i;
    for(n=2;n<=100;n++){
    for(i=2;i<n;i++)
    if(n%i==0) break;
    if(i>=n) printf("\t%d",n);
    }
    本例程序中,第一層循環(huán)表示對(duì)1~100這100個(gè)數(shù)逐個(gè)判斷是否是素?cái)?shù),共循環(huán)100次,在第二層循環(huán)中則對(duì)數(shù)n用2~n-1逐個(gè)去除,若某次除盡則跳出該層循環(huán),說(shuō)明不是素?cái)?shù)。 如果在所有的數(shù)都是未除盡的情況下結(jié)束循環(huán),則為素?cái)?shù),此時(shí)有i>=n, 故可經(jīng)此判斷后輸出素?cái)?shù)。然后轉(zhuǎn)入下一次大循環(huán)。實(shí)際上,2以上的所有偶數(shù)均不是素?cái)?shù),因此可以使循環(huán)變量的步長(zhǎng)值改為2,即每次增加2,此外只需對(duì)數(shù)n用2~n去除就可判斷該數(shù)是否素?cái)?shù)。這樣將大大減少循環(huán)次數(shù),減少程序運(yùn)行時(shí)間。
    #inClude"math.h"
    void main(){
    int n,i,k;
    for(n=2;n<=100;n+=2){
    k=sqrt(n);
    for(i=2;i<k;i++)
    if(n%i==0) break;
    if(i>=k) printf("\t%2d",n);
    }
    }

上一頁(yè)  1 2 3 4 5 6 7 8 9 下一頁(yè)
文章搜索
版權(quán)聲明:如果計(jì)算機(jī)等級(jí)考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請(qǐng)與我們聯(lián)系800@exam8.com,我們將會(huì)及時(shí)處理。如轉(zhuǎn)載本計(jì)算機(jī)等級(jí)考試網(wǎng)內(nèi)容,請(qǐng)注明出處。