東南大學四系C作業━━━━流程控制語句答案_第1頁
東南大學四系C作業━━━━流程控制語句答案_第2頁
東南大學四系C作業━━━━流程控制語句答案_第3頁
東南大學四系C作業━━━━流程控制語句答案_第4頁
東南大學四系C作業━━━━流程控制語句答案_第5頁
已閱讀5頁,還剩4頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、流程控制語句【學習要點】1掌握算法描述的三種基本結構。2掌握if-else條件語句及其應用,掌握if語句的嵌套結構。3掌握switch開關語句及其應用,掌握break在switch語句中的作用。4掌握while循環語句及其應用。5掌握do-while循環語句及其應用。6掌握for循環語句及其應用。7掌握循環語句的嵌套結構。8掌握break語句、continue語句在循環結構中的作用。 9掌握return語句、goto語句、exit()函數、abort()函數的作用及其應用。-【例題分析】1 若int x=3,執行以下循環語句后,輸出的結果是_。do cout << (x-=2) &

2、lt;< t ;while ( !(-x) ) ;A1B1 -2C1 -1D死循環【答案】B【解析】先執行一次do后面的循環體語句,遇到while,判斷下次循環是否進行,即求解while后面表達式的值,若表達式的值為true,則再次回到do ;若表達式的值為 false ,則跳出整個do-while語句。2若int x=10,執行以下switch語句后,x的值是_。switch ( x ) case 9: x+=1;case 10: x+=1;case 11: x+=1;defaule: x+=1; A10B11C12D13【答案】D【解析】從上往下在case分支的常量表達式值中,尋找與

3、之值相等的分支作為執行入口,并從該分支的語句序列開始執行下去,其后的每個case分支(包括default分支)中的語句序列都有可能執行到,直到遇到break語句才跳出switch語句,或遇到switch語句的結束括號“ ”為止。3以下三條語句,正確的論斷是_。(1)if ( a ) s1 ; else s2 ;(2)if ( a=0 ) s2 ; else s1 ;(3)if ( a!=0 ) s1 ; else s2 ;A三者相互等價B只有(2)和(3)等價C只有(1)和(3)等價D三者相互不等價【答案】A【解析】先求解 if 后面表達式的值,若表達式的值為true,則執行 if 后面的語句

4、;若表達式的值為false,則執行 else 后面的語句。4退出一個循環語句(不能終止當前函數的執行)的有效措施是_。A用break語句B用continue 語句C用return語句D調用函數exit(1)【答案】A【解析】break 是結束循環;continue 是結束本次循環;return 是從當前執行的函數返回其主調函數;exit(1) 是終止整個程序的執行。5下面程序的運行結果是_。#include<iostream.h>void main() int i=0, x=0, y=0 ;do i+ ;if ( i%3 != 0 ) x+=i ; i+ ; y += i+ ; w

5、hile( i<5 ) ;cout << "x= " << x << "ty= " << y << endl ;【答案】輸出:x=5 y=76下面程序的運行結果是_。#include<iostream.h>void main() int x, y=10 ;while ( x = y-1 ) y -= 2 ;if ( y%3 = 0 ) x+ ; continue ; else if ( y<4 ) break ;x+ ; cout << "x=&qu

6、ot; << x << "ty=" << y << endl ;【答案】輸出:x=3 y=27下面程序的運行結果是_。#include<iostream.h>void main() int i , j , m ;for ( i=1 ; i<=6; i+ ) for ( j=i+1 ; j<=8 ; j+ ) if ( j=4 ) cout << "Bye!” ; break ; m = i * j ;cout << i << "×” &l

7、t;< j << " = " << m << "t" ; cout << endl ;【答案】第1行輸出:1×2 = 2 1×3 = 3 Bye!第2行輸出:2×3 = 6 Bye!第3行輸出:Bye!第4行輸出:4×5 = 20 4×6 = 24 4×7 = 28 4×8 = 32第5行輸出:5×6 = 30 5×7 = 35 5×8 = 40第6行輸出:6×7 = 42 6×8

8、= 48【解析】當 j 的值為4時,break語句結束的是內層循環,外層for循環繼續執行。8完善下列程序,程序功能是:輸入一個自然數,輸出其各因子的連乘形式。(如輸入自然數12,輸出12 = 1×2×2×3 )#include <iostream.h>void main() int i=2 , n ;cout << "輸入一個自然數:" ;cin >> n ;cout << n << " = 1" ;do if ( n%i = 0 ) cout <<

9、“×” << i ;_; else i+ ; while ( _ ) ;cout << endl ;【答案】 n = n / i【答案】 n != 19編寫程序:(要求用if-else語句實現)鍵盤輸入某班同學的一門成績,統計該班級的不及格、6069、 7079、 8089、 90分以上的各個檔次的人數,并將該班同學的原始成績,以及統計出來的各個檔次人數寫入數據文件 data1.txt 中,原始成績按一行4個數據的格式寫入 data1.txt 中。(要求程序具有靈活性,參加統計的學生人數應隨具體情況而定,不應固定,以輸入流結束符 Ctrl+Z 作為統計結束條件

10、。)【答案】編寫程序如下 :#include<fstream.h>#include<iomanip.h>void main() int x , n=0 , c9=0 , c8=0 , c7=0 , c6=0 , c0=0 ;ofstream outf ( “data1.txt” ) ;cout << “請輸入成績 :” ;cin >> x ;while ( cin ) outf << setw(8) << x ;n+ ;if ( n%4=0 ) outf << endl ;if ( x >= 90 ) c

11、9+ ;else if ( x >= 80 ) c8+ ;else if ( x >= 70 ) c7+ ; else if ( x >= 60 ) c6+ ;else c0+ ; cin >> x ; outf << “n總人數=” << n << endl ;outf << “90分以上人數=” << c9 << endl ;outf << “8089分之間人數=” << c8 << endl ;outf << “7079分之間人數=” &l

12、t;< c7 << endl ;outf << “6069分之間人數=” << c6 << endl ;outf << “不及格人數=” << c0 << endl ;outf.close() ;10編寫程序:鍵盤輸入某班同學的一門成績,找出最高分和最低分,并統計出全班的平均成績。(要求程序具有靈活性,參加統計的學生人數應隨具體情況而定,不應固定,以輸入負數作為統計結束條件。)【答案】編寫程序如下 :#include<iostream.h>#include<iomanip.h>vo

13、id main() float score , max , min , sum = 0 ;int num = 0 ;cout << “請輸入成績 :” ;cin >> score ;max = min = score ;while ( score >= 0 ) num+ ; sum += score ;if ( score > max ) max = score ;if ( score < min ) min = score ;cin >> score ; if (num) cout << "學生人數= "

14、<< num << endl ;cout << "平均成績= " << sum/num << endl ;cout << "最高分=" << max << endl ;cout << "最低分= " << min << endl ; else cout << "無輸入數據,無法統計!" << endl ;11編寫程序:輸出下面的圖案。【答案】編寫程序如下 :#

15、include < iostream.h >void main ( ) int i , j , n=7 ;for ( i=1 ; i<=n ; i+ ) /輸出前7行圖案 for ( j=1 ; j<=7- i ; j+ ) cout << ; /內循環for ( j=1 ; j<=2*i-1 ; j+ ) cout << ; /內循環cout << endl ; for ( i=1 ; i<=n-1 ; i+ ) /輸出后6行圖案 for ( j=1 ; j<=i ; j+ ) cout << ; /內

16、循環for ( j=1 ; j<=13-2*i ; j+ ) cout << ; /內循環cout << endl ; -【思考題】選擇題1若int x=3,執行以下循環語句后,輸出的結果是_。while ( !(-x) ) cout << (x-=2) << t ;A0B0 -3C循環體一次都沒做D死循環【答案】?2若int x=10,執行以下switch語句后,x的值是_。switch ( x ) case 10: x+=1;case 9: x+=1;case 11: x+=1;defaule: x+=1; A11B12C13D14【答

17、案】?-填空題1若int i=1;while(i+<5);則執行語句后i的值_。【答案】?2break語句只能用在_、_兩種語句中。【答案】?【答案】?3程序的三種基本的控制結構是_、_、_。【答案】?【答案】?【答案】?4continue語句只能用在_語句中。【答案】?5exit()函數的作用是_。【答案】?6abort()函數的作用是_。【答案】?7return語句的作用是_。【答案】?8若int i=1;for ( ; ;i+);則循環的執行次數是_。【答案】?-完善程序題1求 150 200 之間所有能被 7 整除的數,要求每行輸出四個數。# include < iostr

18、eam.h ># include < _ >void main ( ) int n , k=1 ;cout << “150 200 之間被7整除的數:n” ;for ( n=150 ; n<=200 ; n+ )if ( _ ) cout << setw (12) << n ; if ( _ ) cout << endl ;k+ ; cout << endl ;【答案】?【答案】?【答案】?2將整數反轉輸出。# include < iostream.h >void main ( ) int n ;

19、cout << “ 請輸入一個整數:” ;cin >> n;while ( n != 0 ) cout << _;n = _; cout << endl ;【答案】?【答案】?-寫出下列程序的輸出結果1下面程序的運行結果是_。#include<iostream.h>void main() int i=0, x=0, y=0 ;while ( i<5 ) i+ ;if ( i%3=0 ) x+=i ; i+ ; y += i+ ; cout << "x= " << x <<

20、"ty= " << y << endl ;【答案】輸出:?2下面程序的運行結果是_。#include<iostream.h>void main() int x, y=10 ;while ( x = y-1 ) y -= 2 ;if ( y%3 != 0 ) x+ ; break ; else if ( y<4 ) continue ;x+ ; cout << "x=" << x << "ty=" << y << endl ;【答案】輸

21、出:?3下面程序的運行結果是_。#include<iostream.h>void main() int i , j , m ;for ( i=1 ; i<=5; i+ ) for ( j=i+1 ; j<=6 ; j+ ) if ( j=4 ) continue ; m = i * j ;cout << i << "×” << j << " = " << m << "t" ; cout << endl ;【答案】第1行輸出:?第

22、2行輸出:?第3行輸出:?第4行輸出:?第5行輸出:?-編程題1編寫程序:(要求用switch語句實現)鍵盤輸入某班同學的一門成績,統計該班級的不及格、6069、 7079、 8089、 90分以上的各個檔次的人數,并將該班同學的原始成績,以及統計出來的各個檔次人數寫入數據文件 data2.txt 中,原始成績按一行6個數據的格式寫入 data2.txt 中。(要求程序具有靈活性,參加統計的學生人數應隨具體情況而定,不應固定,以輸入流結束符 Ctrl+Z 作為統計結束條件。)編寫程序如下:【答案】#include<iostream>#include<fstream>us

23、ing namespace std;int main()fstream fout("D:vc+data2.txt");int c9=0,c8=0,c7=0,c6=0,c0=0,n=0;int grade;cout<<"please enter student's grade:"cin>>grade;while(cin)fout<<" "<<grade;n+;if(n%6=0)fout<<endl;switch(grade/10)case 10:case 9:c9+;b

24、reak;case 8:c8+;break;case 7:c7+;break;case 6:c6+;break;default:c0+;/*case 5:case 4:case 3:case 2:case 1:case 0:c0+;break;*/cin>>grade;fout<<endl;/使“總人數”這行不合成績輸出在一行。fout<<"總人數為:"<<n<<endl;fout<<"不及格人數為:"<<c0<<endl;fout<<"

25、6069人數為:"<<c6<<endl;fout<<"7079人數為:"<<c7<<endl;fout<<"8089人數為:"<<c8<<endl;fout<<"90以上人數為:"<<c9<<endl;fout.close();2編寫程序:在文件 data3.txt 中有某班同學的一門成績,從中找出最高分和最低分,并統計出全班的平均成績,將結果輸出到顯示器。(要求程序具有靈活性,參加統計的學生人數應隨具體情況而定,不應固定。)編寫程序如下:【答案】#include<fstream>#include<iostream>using namespace std;int main()ifstream fi("D:vc+data3.txt");float grade,max,min,sum=0;int num=0;fi&g

溫馨提示

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

評論

0/150

提交評論