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

2013年計(jì)算機(jī)等考二級(jí)《C語言》復(fù)習(xí)筆記第三章第4節(jié)

 

  do-while語句

  do-while語句的一般形式為:

  do

  語句;

  while(表達(dá)式);

  其中語句是循環(huán)體,表達(dá)式是循環(huán)條件。

  do-while語句的語義是:

  先執(zhí)行循環(huán)體語句一次, 再判別表達(dá)式的值,若為真(非0)則繼續(xù)循環(huán),否則終止循環(huán)。

  do-while語句和while語句的區(qū)別在于do-while是先執(zhí)行后判斷,因此do-while至少要執(zhí)行一次循環(huán)體。而while是先判斷后執(zhí)行,如果條件不滿足,則一次循環(huán)體語句也不執(zhí)行。

  while語句和do-while語句一般都可以相互改寫。

  void main(){

  int a=0,n;

  printf("\n input n: ");

  scanf("%d",&n);

  do printf("%d ",a++*2);

  while (--n);

  }

  在本例中,循環(huán)條件改為--n,否則將多執(zhí)行一次循環(huán)。這是由于先執(zhí)行后判斷而造成的。

  對(duì)于do-while語句還應(yīng)注意以下幾點(diǎn):

  1.在if語句,while語句中, 表達(dá)式后面都不能加分號(hào), 而在 do-while語句的表達(dá)式后面則必須加分號(hào)。

  2.do-while語句也可以組成多重循環(huán),而且也可以和while語句相互嵌套。

  3.在do和while之間的循環(huán)體由多個(gè)語句組成時(shí),也必須用{}括起來組成一個(gè)復(fù)合語句。

  4.do-while和while語句相互替換時(shí),要注意修改循環(huán)控制條件。

  for語句

  for語句是C語言所提供的功能更強(qiáng),使用更廣泛的一種循環(huán)語句。其一般形式為:

  for(表達(dá)式1;表達(dá)式2;表達(dá)3)

  語句;

  表達(dá)式1 通常用來給循環(huán)變量賦初值,一般是賦值表達(dá)式。也允許在for語句外給循環(huán)變量賦初值,此時(shí)可以省略該表達(dá)式。

  表達(dá)式2 通常是循環(huán)條件,一般為關(guān)系表達(dá)式或邏輯表達(dá)式。

  表達(dá)式3 通?捎脕硇薷难h(huán)變量的值,一般是賦值語句。

  這三個(gè)表達(dá)式都可以是逗號(hào)表達(dá)式, 即每個(gè)表達(dá)式都可由多個(gè)表達(dá)式組成。三個(gè)表達(dá)式都是任選項(xiàng),都可以省略。

  一般形式中的“語句”即為循環(huán)體語句。for語句的語義是:

  1.首先計(jì)算表達(dá)式1的值。

  2.再計(jì)算表達(dá)式2的值,若值為真(非0)則執(zhí)行循環(huán)體一次, 否則跳出循環(huán)。

  3.然后再計(jì)算表達(dá)式3的值,轉(zhuǎn)回第2步重復(fù)執(zhí)行。在整個(gè)for循環(huán)過程中,表達(dá)式1只計(jì)算一次,表達(dá)式2和表達(dá)式,3則可能計(jì)算多次。循環(huán)體可能多次執(zhí)行,也可能一次都不執(zhí)行。

  void main(){

  int n,s=0;

  for(n=1;n<=100;n++)

  s=s+n;

  printf("s=%d\n",s);

  }

  用for語句計(jì)算s=1+2+3+…+99+100

  int n,s=0;

  for(n=1;n<=100;n++)

  s=s+n;

  printf("s=%d\n",s);

  本例for語句中的表達(dá)式3為n++,實(shí)際上也是一種賦值語句,相當(dāng)于n=n+1,以改變循環(huán)變量的值。

  void main(){

  int a=0,n;

  printf("\n input n: ");

  scanf("%d",&n);

  for(;n>0;a++,n--)

  printf("%d ",a*2);

  }

  用for語句修改例題。從0開始,輸出n個(gè)連續(xù)的偶數(shù)。

  int a=0,n;

  printf("\n input n: ");

  scanf("%d",&n);

  for(;n>0;a++,n--)

  printf("%d ",a*2);

  本例的for語句中,表達(dá)式1已省去,循環(huán)變量的初值在for語句之前由scanf語句取得,表達(dá)式3是一個(gè)逗號(hào)表達(dá)式,由a++,n-- 兩個(gè)表達(dá)式組成。每循環(huán)一次a自增1,n自減1。a的變化使輸出的偶數(shù)遞增,n的變化控制循次數(shù)。

  在使用for語句中要注意以下幾點(diǎn):

  1.for語句中的各表達(dá)式都可省略,但分號(hào)間隔符不能少。如:for(;表達(dá)式;表達(dá)式)省去了表達(dá)式1.for(表達(dá)式;;表達(dá)式)省去了表達(dá)式2。

  for(表達(dá)式;表達(dá)式;)省去了表達(dá)式3.for(;;)省去了全部表達(dá)式。

  2.在循環(huán)變量已賦初值時(shí),可省去表達(dá)式1,如例3.27即屬于這種情形。如省去表達(dá)式2或表達(dá)式3則將造成無限循環(huán), 這時(shí)應(yīng)在循環(huán)體內(nèi)設(shè)法結(jié)束循環(huán)。例題即屬于此情況。

  void main(){

  int a=0,n;

  printf("\n input n: ");

  scanf("%d",&n);

  for(;n>0;)

  { a++;n--;

  printf("%d ",a*2);

  }

  }

  本例中省略了表達(dá)式1和表達(dá)式3,由循環(huán)體內(nèi)的n--語句進(jìn)行循環(huán)變量n的遞減,以控制循環(huán)次數(shù)。

  void main(){

  int a=0,n;

  printf("\n input n: ");

  scanf("%d",&n);

  for(;;){

  a++;n--;

  printf("%d ",a*2);

  if(n==0)break;

  }

  }

  本例中for語句的表達(dá)式全部省去。由循環(huán)體中的語句實(shí)現(xiàn)循環(huán)變量的遞減和循環(huán)條件的判斷。當(dāng)n值為0時(shí),由break語句中止循環(huán),轉(zhuǎn)去執(zhí)行for以后的程序。在此情況下,for語句已等效于while( 1)語句。如在循環(huán)體中沒有相應(yīng)的控制手段,則造成死循環(huán)。

上一頁  1 2 3 4 5 6  下一頁

  編輯推薦:

  2012年9月計(jì)算機(jī)等級(jí)考試成績(jī)查詢短信提醒

  2013年上半年計(jì)算機(jī)等級(jí)考試報(bào)名時(shí)間預(yù)測(cè)

  2012年計(jì)算機(jī)等級(jí)考試二級(jí)VB重點(diǎn)知識(shí)匯總

文章責(zé)編:renyinan  
看了本文的網(wǎng)友還看了
沒有相關(guān)文章
文章搜索
版權(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)注明出處。