03_循環(huán)語句的執(zhí)行流程_第1頁
03_循環(huán)語句的執(zhí)行流程_第2頁
03_循環(huán)語句的執(zhí)行流程_第3頁
03_循環(huán)語句的執(zhí)行流程_第4頁
03_循環(huán)語句的執(zhí)行流程_第5頁
已閱讀5頁,還剩37頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Lesson 3循環(huán)語句的執(zhí)行流程2while語句求和int i = 1, int i = 1, s s = 0; = 0;while (i = 100)while (i = 100) s s = = s s + i; + i; i = i + 1; i = i + 1; i = 1i = 1s s = 0 = 0,2,2 ,3,3+1+1+2+2, ,99,99,100,100,101,101+ + +99+99+100+1003while語句與自增int i = 0, s = 0;int i = 0, s = 0;while (i+ = 100)while (i+ = 100) s +=

2、i; s += i;i = 0i = 0s = 0s = 0,1,1,2,2+1+1+2+2, , ,99,99,100,100,101,101+ + +99+99+100+100+101+101,102,102 i = 100 i 0 & +a 0 & +a 5) b += -1; b += -1; printf(%d,%d,%dn, a, b, c); printf(%d,%d,%dn, a, b, c);3,2,-13,2,-12007.9.82007.9.8以下程序的運(yùn)行結(jié)果是以下程序的運(yùn)行結(jié)果是 int n = 12345, d; int n = 12345, d;

3、while (n != 0) while (n != 0) d = n % 10; printf(%d, d); n /= 10; d = n % 10; printf(%d, d); n /= 10; 54321543216while語句4-32010.9.202010.9.20以下程序的運(yùn)行結(jié)果是以下程序的運(yùn)行結(jié)果是 int a = 1, b = 2;int a = 1, b = 2; while (a 6)while (a 0)while (k 0) switch (k)switch (k) default: break;default: break; case 1: n += k;ca

4、se 1: n += k; case 2:case 2: case 3: n += k;case 3: n += k; k-;k-; 7 78for語句的一般格式for (for (表達(dá)式表達(dá)式1; 1; 表達(dá)式表達(dá)式2; 2; 表達(dá)式表達(dá)式3)3) 語句語句 例如,下面的程序計(jì)算例如,下面的程序計(jì)算1 1至至100100的和:的和:for (s = 0, i = 1; i = 100; i+)for (s = 0, i = 1; i = 100; i+) s += i; s += i;9水仙花數(shù)153=13+53+3310臺(tái)階問題112233455861372111Fibonacci數(shù)列11

5、23581321abababab1123581321abcabcabcabc12for語句5-12002008 8. .4 4. .88以下程序的運(yùn)行結(jié)果是以下程序的運(yùn)行結(jié)果是 for (k = 2; k 6; k+, k+)for (k = 2; k 6; k+, k+) printf(#%d, k);printf(#%d, k);#2#4#2#42005.4.102005.4.10以下程序的運(yùn)行結(jié)果是以下程序的運(yùn)行結(jié)果是 for (a = 0, b = 6; a b; a+, b-)for (a = 0, b = 6; a 0; y-) for (y = 9 ; y 0; y-) if (

6、y % 3 = 0) if (y % 3 = 0) printf(%d, -y); printf(%d, -y);85285213for語句5-22010.3.212010.3.21以下程序的運(yùn)行結(jié)果是以下程序的運(yùn)行結(jié)果是 int a = 1, b = 2;int a = 1, b = 2; for ( ; a 8; a+) for ( ; a 8; a+) b += a; a += 2; b += a; a += 2; printf(%d,%d, a, b); printf(%d,%d, a, b);10,1410,14 例例 對(duì)下述對(duì)下述forfor循環(huán)語句,說法正確的是循環(huán)語句,說法正確

7、的是 for (i = 0, k = -1; k = 1; i+, k+)for (i = 0, k = -1; k = 1; i+, k+) printf( printf(* *);); A) A)程序編譯有錯(cuò)程序編譯有錯(cuò) B)B)是無限循環(huán)是無限循環(huán) C)C)只循環(huán)一次只循環(huán)一次 D)D)一次也不循環(huán)一次也不循環(huán)14for語句5-32002009 9.9.9.1818以下程序運(yùn)行后,以下程序運(yùn)行后,c c的值是的值是 int c = 0, k;int c = 0, k; for (k = 1; k 3; k+) for (k = 1; k 3; k+) switch (k) switch

8、(k) default: c += k; default: c += k; case 2: c+; case 2: c+; breakbreak; ; case 4: c += 2; case 4: c += 2; breakbreak; ; 3 315for語句5-42002004 4.9.9.2020以下程序的運(yùn)行結(jié)果是以下程序的運(yùn)行結(jié)果是 int i;int i; for (i = 0; i 3; i+) for (i = 0; i 3; i+) switch (i) switch (i) case 0: printf(%d, i); case 0: printf(%d, i); cas

9、e 2: printf(%d, i); case 2: printf(%d, i); default: printf(%d, i); default: printf(%d, i); 00012200012216for語句5-52009.9.102009.9.10以下程序的運(yùn)行結(jié)果是以下程序的運(yùn)行結(jié)果是 int f, f1, f2, i;int f, f1, f2, i; f1 = 0; f2 = 1; f1 = 0; f2 = 1; printf(%d%d, f1, f2); printf(%d%d, f1, f2); for (i = 3; i = 5; i+) for (i = 3; i

10、0); while (a 0);b = 0;b = 0;a = 456;a = 456;w = 456;w = 456;a = 456/10 = 45;a = 456/10 = 45;b = 0b = 0* *10+6 = 6;10+6 = 6;b = 6b = 6* *10+5 = 65;10+5 = 65;b = 65b = 65* *10+4 = 654;10+4 = 654;a = 45/10 = 4;a = 45/10 = 4;a = 4/10 = 0;a = 4/10 = 0;if (if (b=wb=w) printf() printf(是是););else printf(els

11、e printf(否否););回文數(shù)回文數(shù): :66,121,8998,766,121,8998,7不是不是: :456,67456,6718do-while語句4-1 例例 以下程序的運(yùn)行結(jié)果是以下程序的運(yùn)行結(jié)果是 int a = 3;int a = 3; do do printf(%d, a -= 2); printf(%d, a -= 2); while (!-a); while (!-a); 1-21-22002009 9. .9 9. .9 9 以下程序運(yùn)行后,以下程序運(yùn)行后,a a的值是的值是 int a = 1, b = 7;int a = 1, b = 7; dodo b =

12、b / 2; b = b / 2; a += b;a += b; while (b 1); while (b 1);5 519do-while語句4-22007.9.192007.9.19以下程序的運(yùn)行結(jié)果是以下程序的運(yùn)行結(jié)果是 int i = 0;int i = 0; do do printf(%d, i); printf(%d, i); while (i+); while (i+); printf(%dn, i); printf(%dn, i); A)0,0 B)0,1 C)1,1 D) A)0,0 B)0,1 C)1,1 D)死循環(huán)死循環(huán)20do-while語句4-32008.9.292

13、008.9.29以下程序的運(yùn)行結(jié)果是以下程序的運(yùn)行結(jié)果是 int i = 5;int i = 5; do do if (i % 3 = 1) if (i % 3 = 1) if (i % 5 = 2) if (i % 5 = 2) printf( printf(* *%d, i); break;%d, i); break; i+; i+; while (i != 0); while (i != 0);* *7 721do-while語句4-42007.4.232007.4.23以下程序的運(yùn)行結(jié)果是以下程序的運(yùn)行結(jié)果是 int k = 5, n = 0;int k = 5, n = 0; dod

14、o switch (k)switch (k) case 1: case 3: n+=1; break;case 1: case 3: n+=1; break; default: n = 0; k-;default: n = 0; k-; case 2: case 4: n+=2; k-; break;case 2: case 4: n+=2; k-; break; printf(%d, n);printf(%d, n); while (k 0 & n 0 & n 5); 2345234522循環(huán)語句比較i = 100; s = 0;i = 100; s = 0;whilewhi

15、le (i = 9) (i = 9) s+; s+;s = 0;s = 0;forfor (i = 100; i = 9; i+) (i = 100; i = 9; i+) s+; s+;i = 100; s = 0;i = 100; s = 0;dodo s+; s+; whilewhile (i = 9); (i = 9);23三種循環(huán)語句的比較while 語句語句for 語句語句do - while 語句語句當(dāng)循環(huán)次數(shù)無法確定,需根據(jù)某個(gè)條件當(dāng)循環(huán)次數(shù)無法確定,需根據(jù)某個(gè)條件控制循環(huán)次數(shù)時(shí),通常用控制循環(huán)次數(shù)時(shí),通常用 while 語句。語句。當(dāng)已經(jīng)知道循環(huán)次數(shù)的時(shí)候,用當(dāng)已經(jīng)知道循環(huán)次

16、數(shù)的時(shí)候,用 for 語語句比較方便。句比較方便。當(dāng)需要先執(zhí)行循環(huán)體,后判斷循環(huán)條件當(dāng)需要先執(zhí)行循環(huán)體,后判斷循環(huán)條件時(shí),用時(shí),用 do - while 語句。語句。24循環(huán)語句比較2004.9.252004.9.25若變量已正確定義,要求程序完成若變量已正確定義,要求程序完成求求5!5!的計(jì)算,以下的計(jì)算,以下不能不能完成此操作的程序是完成此操作的程序是 A)for (i = 1, s = 1; i = 5; i+)A)for (i = 1, s = 1; i = 5; i+) s s * *= i;= i;B)i = s = 1;B)i = s = 1; while (i = 5) s w

17、hile (i = 5) s * *= i+;= i+;C)i = 0; s = 1;C)i = 0; s = 1; do s do s * *= +i; while (i 5);= +i; while (i 5);D)for (i = 1; i = 5; i+)D)for (i = 1; i = 5; i+) s = 1; s s = 1; s * *= i; = i; 25for與while語句2007.9.292007.9.29有以下程序段,且變量已正確定義有以下程序段,且變量已正確定義和賦值和賦值 for (s = 1.0, k = 1 for (s = 1.0, k = 1; ; k

18、 = n k = n; ; k+) k+) s = s + 1.0 / (k s = s + 1.0 / (k * * (k + 1); (k + 1); 請(qǐng)?zhí)羁?,使下面程序段的功能為完全相同?qǐng)?zhí)羁?,使下面程序段的功能為完全相?s = 1.0; k = 1; s = 1.0; k = 1; while ( while (_) ) s = s + 1.0 / (k s = s + 1.0 / (k * * (k + 1); (k + 1); _; ; k = nk 10); (k 10); printf(s = %d, s);printf(s = %d, s);s = 0s = 028cont

19、inue語句5-22008.4.212008.4.21以下程序的運(yùn)行結(jié)果是以下程序的運(yùn)行結(jié)果是 int x = 8;int x = 8; for ( ; x 0; x-) for ( ; x 0; x-) if (x % 3) if (x % 3) printf(%d, x-); printf(%d, x-); continuecontinue; ; printf(%d, -x); printf(%d, -x); 8542854229continue語句5-32005.4.412005.4.41以下程序運(yùn)行后,以下程序運(yùn)行后,b b的值是的值是 int a = 1, b;int a = 1,

20、b; for (b = 1; b = 10; b+) for (b = 1; b = 8) if (a = 8) break;break; if (a % 2 = 1) if (a % 2 = 1) a += 5;a += 5; continuecontinue; ; a -= 3; a -= 3; 4 430continue語句5-42002004 4. .9 9. .2424 以下程序的運(yùn)行結(jié)果是以下程序的運(yùn)行結(jié)果是int iint i = = 0,0, s s = = 0;0;for (for ( ; ; ; ; ) ) ifif (i(i = 3 3 | i i = 5) 5) con

21、tinuecontinue; ;if (iif (i = 6) break;6) break;i+;i+; s s +=+= i;i; printf(%d,printf(%d, s);s);A)10A)10 B)13B)13 C)21C)21 D)D)死循環(huán)死循環(huán) 31continue語句5-5 例例 填空實(shí)現(xiàn)程序的功能:輸出填空實(shí)現(xiàn)程序的功能:輸出100100以內(nèi)(不含以內(nèi)(不含100100)能被)能被3 3整除且個(gè)位數(shù)為整除且個(gè)位數(shù)為7 7的所有整數(shù)的所有整數(shù) for (i = 0; for (i = 0; _ _ _ _; i+); i+) j = i j = i * * 10 + 7;

22、 10 + 7; if (if (_) ) continuecontinue; ; printf(%d, j);printf(%d, j); i 100i 100i 10i 10j % 3 != 0j % 3 != 032控制語句 控制語句控制語句 if ().else.if ().else. 條件語句條件語句 for ().for ().循環(huán)語句循環(huán)語句 while ().while ().循環(huán)語句循環(huán)語句 do.while ()do.while ()循環(huán)語句循環(huán)語句 continuecontinue結(jié)束本次循環(huán)語句結(jié)束本次循環(huán)語句 breakbreak中止中止switchswitch或循環(huán)

23、語句或循環(huán)語句 switchswitch多分支選擇語句多分支選擇語句 gotogoto轉(zhuǎn)向語句轉(zhuǎn)向語句 returnreturn從函數(shù)返回語句從函數(shù)返回語句1.1.2.2.3.3.4.4.5.5.6.6.7.7.8.8.9.9.33輸出和的平方根 請(qǐng)編寫程序:輸入整數(shù)請(qǐng)編寫程序:輸入整數(shù)n n,輸出,輸出n n以內(nèi)(不包括以內(nèi)(不包括n n)同時(shí)能被)同時(shí)能被3 3與與7 7整除的所有自然數(shù)之和的平整除的所有自然數(shù)之和的平方根。方根。 #include #include int n, iint n, i, , s = 0s = 0; ; / / 累加器累加器s s置置0 0 scanf(%d,

24、 &n); scanf(%d, &n);for (i = 1; i n; i+)for (i = 1; i n; i+) if (if (_) ) s += i;s += i; printf(%f, sqrt(s); printf(%f, sqrt(s); / / 計(jì)算平方根計(jì)算平方根i % 3 = 0 & i % 7 = 0i % 3 = 0 & i % 7 = 034數(shù)列求和 請(qǐng)編寫程序:求請(qǐng)編寫程序:求s = a+aa+aaa+s = a+aa+aaa+aaa+aaaa a的值,其中的值,其中a a是一個(gè)數(shù)字。是一個(gè)數(shù)字。 例如:例如:2+22+222+2

25、222+222222+22+222+2222+22222(此時(shí)(此時(shí)n=5n=5),),n n和和a a從鍵盤輸入。從鍵盤輸入。int int s = 0s = 0, a, n, i;, a, n, i;scanf(%d%d, &a, &n);scanf(%d%d, &a, &n);for (i = 1; i = n; i+)for (i = 1; i = n; i+) s += a; s += a; printf(s = %d, s);printf(s = %d, s);a = a = a a * * 10 10 + + a % 10a % 10; ;35輸入

26、密碼 請(qǐng)編寫程序:輸入密碼,如果三次輸入錯(cuò)誤,請(qǐng)編寫程序:輸入密碼,如果三次輸入錯(cuò)誤,則停止輸入。則停止輸入。int mima = 123456, m, i = 0;int mima = 123456, m, i = 0;dodo printf( printf(請(qǐng)輸入密碼:請(qǐng)輸入密碼:);); scanf(%d, &m); scanf(%d, &m); while ( while (_););if (m = mima) printf(if (m = mima) printf(密碼正確密碼正確!);!);else printf(else printf(輸入錯(cuò)誤輸入錯(cuò)誤!);!);

27、m != mima & +i 3m != mima & +i 336輸出最大的偶數(shù) 請(qǐng)編寫程序:輸入請(qǐng)編寫程序:輸入5 5個(gè)正整數(shù),輸出其中最大個(gè)正整數(shù),輸出其中最大的偶數(shù)。如果的偶數(shù)。如果5 5個(gè)數(shù)中沒有偶數(shù),則輸出個(gè)數(shù)中沒有偶數(shù),則輸出-1-1。 例如:如果例如:如果5 5個(gè)整數(shù)是個(gè)整數(shù)是3,6,2,7,43,6,2,7,4,則輸出,則輸出6 6;如果如果5 5個(gè)整數(shù)是個(gè)整數(shù)是3,5,1,9,73,5,1,9,7,則輸出,則輸出-1-1。 int a, t = -1, i;int a, t = -1, i;for (i = 1; i = 5; i+)for (i = 1;

28、i ta % 2 = 0 & a t37輸出后n-1位數(shù) 請(qǐng)編寫程序:輸入一個(gè)大于請(qǐng)編寫程序:輸入一個(gè)大于1010的無符號(hào)整數(shù)的無符號(hào)整數(shù)w(unsigned w)w(unsigned w),輸出,輸出w w后后n-1n-1位的數(shù)。例如:位的數(shù)。例如:若若w = 4567, w = 4567, 則輸出則輸出567567;若;若w = 456w = 456,則輸,則輸出出5656。 unsignedunsigned w w scanf(% scanf(%u u, &w);, &w); / / 格式符格式符%u%u; ; , t, m = 1;, t, m = 1; t =

29、 w;t = w; while (t) while (t) t /= 10; m t /= 10; m * *= 10; = 10; printf(% printf(%u u, w % (m / 10);, w % (m / 10);38習(xí)題演練 請(qǐng)編寫程序:刪除整數(shù)尾部的請(qǐng)編寫程序:刪除整數(shù)尾部的0 0。例如:若整。例如:若整數(shù)是數(shù)是3400034000、34003400、340340或或3434,都輸出,都輸出3434。scanf(%d, &a);scanf(%d, &a);while (while (_) ) a = a / 10; a = a / 10;printf(%d, a);printf(%d, a);a % 10 = 0a % 10 = 02005.9.102005.9.10 實(shí)現(xiàn):實(shí)現(xiàn):s s = = 1+12+123+1234

溫馨提示

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

評(píng)論

0/150

提交評(píng)論