第4章程序程控制_第1頁
第4章程序程控制_第2頁
第4章程序程控制_第3頁
第4章程序程控制_第4頁
第4章程序程控制_第5頁
已閱讀5頁,還剩14頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第4章 程序流程控制 內容提要n本章主要介紹c語言提供的各種程序流程控制結構n包括選擇結構n循環結構n其他轉移控制語句。通過本章學習n重點進行程序設計能力的訓練,能編制完整的較為復雜的程序。結構化程序設計的概念 n結構化程序設計方法就是只采用3種基本的程序控制結構來編制程序,從而使程序具有好的結構。這3種基本結構就是順序結構、選擇結構和循環結構,見圖4-1。順序結構n如圖4-1(a)所示,s1和s2是一條語句或一個語句序列。在順序結構中,s1和s2被依次執行,即只有當s1執行完成之后才執行s2。n前3章中編制的簡單程序,采用的都是順序結構。這些程序在執行時,總是從第一個語句開始,順序執行各個語

2、句,直到所有的語句都執行完,程序運行結束。選擇結構n如圖4-1(b)所示。程序執行到選擇結構時,首先對條件進行判斷,當條件成立或不成立時分別執行s1或s2,二者擇其一。n不管執行哪一個語句序列,執行結束后,控制都轉移到同一出口的地方。采用選擇結構,可以使程序不是僅解決某一個問題,而是可解決某一類問題,編制這樣的通用程序,可以收到事半功倍的效果。循環結構 n如圖4-1(c)所示。程序執行到循環結構時,將會判斷循環的條件是否成立。如果循環條件成立,將反復執行語句序列s1(也稱循環體),直到條件不成立時終止循環,控制轉移到循環體外,繼續執行后續的部分。n采用循環結構,可以大大減少編程的復雜性和工作量

3、,用較短的程序完成大量的處理工作。計算機算法的一個重要特點,就是將一個復雜的問題變成簡單問題的多次重復。 選擇結構n用if-else語句構成二分支選擇結構 n用if-else語句構成多分支選擇結構 n用條件表達式實現的選擇結構 n用switch語句構成多分支選擇結構 n用switch和break聯合構成多分支選擇結構 循環結構 n for循環 nwhile循環 ndo-while循環 n循環的嵌套 轉移控制語句 nbreak語句 ncontinue語句在循環結構中的作用 ngoto語句和標號 本章總結n本章應掌握結構化程序設計的3種基本程序控制結構。n在深入理解各種選擇結構和循環結構執行流程的

4、基礎上,正確使用if語句組織二分支選擇結構;用嵌套if、if-else if-else或switch語句組織多分支選擇結構n用for語句、while語句、do-while語句及其嵌套形式組織循環結構,并解決一些簡單的實際問題。n本章的難點是:選擇結構和循環結構中測試表達式的正確構造和使用;選擇結構和循環結構中空語句和復合語句的使用;switch選擇結構和各種循環結構中轉移控制語句break和continue的使用。 本章習題n一、選擇題n1. 結構化程序設計使用的基本程序控制結構為_。na. 模塊結構、選擇結構和遞歸結構 b. 條件結構、順序結構和過程結構nc. 順序結構、選擇結構和循環結構

5、d. 轉移結構、嵌套結構和遞歸結構n2. 若要求在if后一對圓括號中表示a不等于0的關系,下列能正確表示這一關系的表達式是_。na. a0 b. !a c. a=0 d. an3. 下面的程序_。n main()n int x=3,y=0,z=0;n if (x=y+z) printf(*);n else printf(#);n na. 有語法錯誤,不能通過編譯nb. 輸出*nc. 可以通過編譯,但不能通過連接,因而不能運行nd. 輸出# 本章習題n4. 下面的程序運行時,若從鍵盤輸入3和4,則輸出為_。n main()n int a,b,s;n scanf(%d%d,&a,&

6、b);n s=a;n if (s5) printf(%dn,a);n else printf(%dn,a-);n na. 7 b. 6 c. 5 d. 4本章習題n6. 若所有變量均已正確定義,下列程序段運行后x的值是_。na=b=c=0; x=35;nif (!a) x-;nelse if (b) ;nif (c) x=3;nelse x=4;na. 34 b. 4 c. 35 d. 3n7. 若所有變量均已正確定義,下面的程序段所表示的數學函數關系是_。ny=-1;nif (x!=0)nif (x0) y=1;nelse y=0;n n 1(x0) 1(x0)na. y= 0(x=0) b

7、. y= 1(x=0)n 1(x0) 0(x0)n n 0(x0) 1(x0)nc. y= 1(x=0) d. y= 1(x=0)n 1(x0) 0(x0)本章習題n8. 下列與y=(x0?1:x0) y=1; b. if (x)n else if (x0) y=1;n else y=0; else if (x=0)n if (x0) y=1; if (x0) y=1;n else if (x=0) y=0; else y= 1;n else y= 1;本章習題n9. 若定義:float x; int a,b;,則下列4組switch語句中正確的是_。na. switch (x) b. swi

8、tch (x)n case 1.0: printf(*n); case 1,2: printf(*n);n case 2.0: printf(*n); case 3: printf(*n);n nc. switch (a+b) d. switch (a+b);n case 1: printf(*n); case 1: printf(*n);n case 1+2: printf(*n); case 2: printf(*n);n 本章習題n10. 以下程序的輸出結果是_。nmain()n int a=0,i;nfor (i=1; i5; i+)n switch (i)n case 0:ncase

9、 3: a+=2;ncase 1:ncase 2: a+=5;ndefault: a+=5;n n n printf(%dn,a);nna. 37 b. 13 c. 10 d. 20本章習題n二、填空題n1. 以下兩條if語句可合并成一條if語句為_。n if (ab) printf(*y=%dn,y);n else printf(#x=%dn,x);本章習題n2. 以下程序的功能是:從鍵盤上輸入若干個學生的成績,統計并輸出最高成績和最低成績,當輸入負數時結束輸入。請填空。n main()n float x,amax,amin;n scanf(%f,&x);n amax=x;n amin=x;n while ( )n if ( xamax ) amax=x;n if (_) amin=x;n scanf(%f,&x);n n printf(namax=%fnamin=%fn,amax,amin);n 本章習題n三、編程題n1. 從鍵盤輸入100個整

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論