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

2013年計算機等考二級《C語言》復習筆記第三章第4節(jié)

來源:考試吧Exam8.com) 2012-11-14 14:40:14 考試吧:中國教育培訓第一門戶 模擬考場

 

  switch語句

  C語言還提供了另一種用于多分支選擇的switch語句, 其一般形式為:

  switch(表達式){

  case常量表達式1: 語句1;

  case常量表達式2: 語句2;

  …

  case常量表達式n: 語句n;

  default : 語句n+1;

  }

  其語義是:計算表達式的值。 并逐個與其后的常量表達式值相比較,當表達式的值與某個常量表達式的值相等時, 即執(zhí)行其后的語句,然后不再進行判斷,繼續(xù)執(zhí)行后面所有case后的語句。 如表達式的值與所有case后的常量表達式均不相同時,則執(zhí)行default后的語句。

  void main(){

  int a;

  printf("input integer number: ");

  scanf("%d",&a);

  switch (a){

  case 1:printf("Monday\n");

  case 2:printf("Tuesday\n");

  case 3:printf("Wednesday\n");

  case 4:printf("Thursday\n");

  case 5:printf("Friday\n");

  case 6:printf("Saturday\n");

  case 7:printf("Sunday\n");

  default:printf("error\n");

  }

  }

  本程序是要求輸入一個數(shù)字,輸出一個英文單詞。但是當輸入3之后,卻執(zhí)行了case3以及以后的所有語句,輸出了Wednesday 及以后的所有單詞。這當然是不希望的。為什么會出現(xiàn)這種情況呢?這恰恰反應了switch語句的一個特點。在switch語句中,“case 常量表達式”只相當于一個語句標號, 表達式的值和某標號相等則轉向該標號執(zhí)行,但不能在執(zhí)行完該標號的語句后自動跳出整個switch 語句,所以出現(xiàn)了繼續(xù)執(zhí)行所有后面case語句的情況。 這是與前面介紹的if語句完全不同的,應特別注意。為了避免上述情況, C語言還提供了一種break語句,專用于跳出switch語句,break 語句只有關鍵字break,沒有參數(shù)。在后面還將詳細介紹。修改例題的程序,在每一case語句之后增加break 語句, 使每一次執(zhí)行之后均可跳出switch語句,從而避免輸出不應有的結果。

  void main(){

  int a;

  printf("input integer number: ");

  scanf("%d",&a);

  switch (a){

  case 1:printf("Monday\n");break;

  case 2:printf("Tuesday\n"); break;

  case 3:printf("Wednesday\n");break;

  case 4:printf("Thursday\n");break;

  case 5:printf("Friday\n");break;

  case 6:printf("Saturday\n");break;

  case 7:printf("Sunday\n");break;

  default:printf("error\n");

  }

  }

  在使用switch語句時還應注意以下幾點:

  1.在case后的各常量表達式的值不能相同,否則會出現(xiàn)錯誤。

  2.在case后,允許有多個語句,可以不用{}括起來。

  3.各case和default子句的先后順序可以變動,而不會影響程序執(zhí)行結果。

  4.default子句可以省略不用。程序舉例:

  輸入三個整數(shù),輸出最大數(shù)和最小數(shù)。

  void main(){

  int a,b,c,max,min;

  printf("input three numbers: ");

  scanf("%d%d%d",&a,&b,&c);

  if(a>b)

  {max=a;min=b;}

  else

  {max=b;min=a;}

  if(max

  max=c;

  else

  if(min>c)

  min=c;

  printf("max=%d\nmin=%d",max,min);

  1

  本程序中,首先比較輸入的a,b的大小,并把大數(shù)裝入max,小數(shù)裝入min中,然后再與c比較,若max小于c,則把c賦予max;如果c小于min,則把c賦予min。因此max內總是最大數(shù),而min內總是最小數(shù)。最后輸出max和min的值即可。 計算器程序。用戶輸入運算數(shù)和四則運算符, 輸出計算結果。

  void main(){

  float a,b,s;

  char c;

  printf("input expression: a+(-,*,/)b \n");

  scanf("%f%c%f",&a,&c,&b);

  switch(c){

  case '+': printf("%f\n",a+b);break;

  case '-': printf("%f\n",a-b);break;

  case '*': printf("%f\n",a*b);break;

  case '/': printf("%f\n",a/b);break;

  default: printf("input error\n");

  }

  }

  本例可用于四則運算求值。switch語句用于判斷運算符, 然后輸出運算值。當輸入運算符不是+,-,*,/時給出錯誤提示。

  循環(huán)結構程序

  循環(huán)結構是程序中一種很重要的結構。其特點是, 在給定條件成立時,反復執(zhí)行某程序段,直到條件不成立為止。 給定的條件稱為循環(huán)條件,反復執(zhí)行的程序段稱為循環(huán)體。 C語言提供了多種循環(huán)語句,可以組成各種不同形式的循環(huán)結構。

  while語句

  while語句的一般形式為: while(表達式)語句; 其中表達式是循環(huán)條件,語句為循環(huán)體。

  while語句的語義是:計算表達式的值,當值為真(非0)時, 執(zhí)行循環(huán)體語句。其執(zhí)行過程可用圖3-4表示。 統(tǒng)計從鍵盤輸入一行字符的個數(shù)。

  #include

  void main(){

  int n=0;

  printf("input a string:\n");

  while(getchar()!='\n') n++;

  printf("%d",n);

  }

  本例程序中的循環(huán)條件為getchar()!='\n',其意義是, 只要從鍵盤輸入的字符不是回車就繼續(xù)循環(huán)。循環(huán)體n++完成對輸入字符個數(shù)計數(shù)。從而程序實現(xiàn)了對輸入一行字符的字符個數(shù)計數(shù)。

  使用while語句應注意以下幾點:

  1.while語句中的表達式一般是關系表達或邏輯表達式,只要表達式的值為真(非0)即可繼續(xù)循環(huán)。

  void main(){

  int a=0,n;

  printf("\n input n: ");

  scanf("%d",&n);

  while (n--)

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

  }

  本例程序將執(zhí)行n次循環(huán),每執(zhí)行一次,n值減1.循環(huán)體輸出表達式a++*2的值。該表達式等效于(a*2;a++)

  2.循環(huán)體如包括有一個以上的語句,則必須用{}括起來, 組成復合語句。

  3.應注意循環(huán)條件的選擇以避免死循環(huán)。

  void main(){

  int a,n=0;

  while(a=5)

  printf("%d ",n++);

  }

  本例中while語句的循環(huán)條件為賦值表達式a=5, 因此該表達式的值永遠為真,而循環(huán)體中又沒有其它中止循環(huán)的手段, 因此該循環(huán)將無休止地進行下去,形成死循環(huán)。4.允許while語句的循環(huán)體又是while語句,從而形成雙重循環(huán)。

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

  編輯推薦:

  2012年9月計算機等級考試成績查詢短信提醒

  2013年上半年計算機等級考試報名時間預測

  2012年計算機等級考試二級VB重點知識匯總

文章責編:renyinan  
看了本文的網友還看了
沒有相關文章
文章搜索
版權聲明:如果計算機等級考試網所轉載內容不慎侵犯了您的權益,請與我們聯(lián)系800@exam8.com,我們將會及時處理。如轉載本計算機等級考試網內容,請注明出處。