計(jì)算機(jī)基礎(chǔ)-程序結(jié)構(gòu).ppt

上傳人:za****8 文檔編號:15090694 上傳時(shí)間:2020-08-03 格式:PPT 頁數(shù):77 大?。?00.56KB
收藏 版權(quán)申訴 舉報(bào) 下載
計(jì)算機(jī)基礎(chǔ)-程序結(jié)構(gòu).ppt_第1頁
第1頁 / 共77頁
計(jì)算機(jī)基礎(chǔ)-程序結(jié)構(gòu).ppt_第2頁
第2頁 / 共77頁
計(jì)算機(jī)基礎(chǔ)-程序結(jié)構(gòu).ppt_第3頁
第3頁 / 共77頁

下載文檔到電腦,查找使用更方便

14.9 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《計(jì)算機(jī)基礎(chǔ)-程序結(jié)構(gòu).ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《計(jì)算機(jī)基礎(chǔ)-程序結(jié)構(gòu).ppt(77頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。

1、第四章 結(jié)構(gòu)化程序設(shè)計(jì)和控制結(jié)構(gòu),結(jié)構(gòu)化程序設(shè)計(jì),上個(gè)世紀(jì)六十年代末,結(jié)構(gòu)化程序設(shè)計(jì),軟件發(fā)展的一個(gè)重要的里程碑。 結(jié)構(gòu)化程序設(shè)計(jì)的思路 將一個(gè)描述復(fù)雜的問題,系統(tǒng)地分解成足夠小的和可管理的單元/模塊,從而最終可以編寫成可以正確執(zhí)行的程序。 因?yàn)樵摍C(jī)制是將一個(gè)大規(guī)模的工作,系統(tǒng)地分解為更小的單元/模塊,因此也被稱為“系統(tǒng)分解”。,4-2,系統(tǒng)分解,系統(tǒng)分解實(shí)際上是執(zhí)行任務(wù)的過程,即:對于一個(gè)工作單元,將它分解成一組更小的單元,而這組單元可以執(zhí)行與大單元相同的任務(wù)。 這種思想實(shí)際就是:從一個(gè)大的、復(fù)雜的任務(wù)開始,逐步將之分解到非常小的單元,對于這些小單元來說,是很容易編寫出程序來執(zhí)行的。 既然該

2、過程是一步一步被應(yīng)用,而每一步都是將一個(gè)相對復(fù)雜的任務(wù)精煉成一組更簡單的子任務(wù),那么這種過程也可以稱為“逐步求精”。,4-3,三種結(jié)構(gòu):順序,條件,重復(fù),系統(tǒng)分解思想使用三種基本的控制結(jié)構(gòu)來分解一個(gè)大規(guī)模的任務(wù),這三種基本結(jié)構(gòu)是:順序,條件和重復(fù)。,4-4,順序結(jié)構(gòu),順序結(jié)構(gòu),就是將一個(gè)指定的任務(wù)分解成兩個(gè)子任務(wù),一個(gè)接著一個(gè)。也就是說,當(dāng)執(zhí)行完第一個(gè)子任務(wù)之后再繼續(xù)執(zhí)行下一個(gè)子任務(wù)而從第二個(gè)子任務(wù)返回第一個(gè)子任務(wù)的情況永遠(yuǎn)不會(huì)發(fā)生。 長度單位換算的問題,4-5,執(zhí)行第1部分,(b) 順序,執(zhí)行第2部分,條件結(jié)構(gòu),條件結(jié)構(gòu),又稱判定結(jié)構(gòu),根據(jù)條件的不同每次只執(zhí)行兩個(gè)子任務(wù)中的其中一個(gè)。 當(dāng)條件

3、為真時(shí),執(zhí)行某一個(gè)子任務(wù),若為假則執(zhí)行另一個(gè)。 任何一個(gè)子任務(wù)都可以為空,也就是說,它可以“什么都不做”。 但不管結(jié)果如何,當(dāng)正確的子任務(wù)執(zhí)行完后,程序始終向前行進(jìn),永遠(yuǎn)不會(huì)回頭去再次測試條件。,4-6,子任務(wù)1,(c) 條件,子任務(wù)2,測試 條件,真,假,重復(fù)結(jié)構(gòu),重復(fù)結(jié)構(gòu),又稱循環(huán)結(jié)構(gòu),只要條件為真就需要將某一個(gè)子任務(wù)多次執(zhí)行時(shí)就將使用這種程序結(jié)構(gòu)。 當(dāng)條件為真,執(zhí)行這一子任務(wù);子任務(wù)執(zhí)行結(jié)束后,回頭再次檢測條件是否為真。 只要被測試的條件為真,程序就會(huì)繼續(xù)執(zhí)行這一相同子任務(wù)。一旦條件不為真,程序就向前行進(jìn)。,4-7,子任務(wù),(d) 重復(fù),測試 條件,真,假,4-8,控制結(jié)構(gòu),條件 if

4、if-else switch 重復(fù) while for do-while,4-9,if,if (condition) action;,condition,action,T,F,Condition ,一個(gè)C表達(dá)式, TRUE (non-zero) 或 FALSE (zero). Action ,一條C語句,簡單語句或復(fù)合語句.,4-10,示例,if (x = 10) y = x * x + 5; if (x = 10) y = x * x + 5; z = (2 * y) / 3; if (x = 10) y = x * x + 5; z = (2 * y) / 3;,復(fù)合語句; 如果 x =

5、10,都執(zhí)行,如果x = 10,執(zhí)行第一條; 第二條語句總會(huì)執(zhí)行,換行和縮進(jìn)風(fēng)格,if語句通行的換行和縮進(jìn)風(fēng)格。 這樣的編程風(fēng)格使得閱讀該段代碼的人能夠很快的識別出如果條件成立將被執(zhí)行的部分。請記住,風(fēng)格只是增強(qiáng)了代碼的可讀性,并不影響程序的執(zhí)行。,4-11,4-12,更多示例,if (temperature=0) printf (At or below freezing point.n); if (key = K) numK+; if (month= =4 | | month= =6 | | month= =9 | | month= =11) printf (The month has 30

6、 daysn);,4-13,常見錯(cuò)誤,if(18= age =25) /*此條件總是為真*/ num+; if (x=2) /*此條件總是為真*/ y=3; /* 變量y總會(huì)被賦值為3*/,4-14,if嵌套,if (x = 3) if (y != 6) z = z + 1; w = w + 2; ,if (x = 3) ,等價(jià)于,4-15,if-else,if (condition) action_if;else action_else;,condition,T,F,示例,if (temperature0) printf (Above freeing.n);,4-16,示例,if (x) y

7、+; z-; else y-; z+; ,4-17,成績等級換算級聯(lián)的if-else,#include int main() char grade; /*成績等級*/ /*獲得輸入值*/ printf (“Enter the grade: ”); scanf (%c, ,4-18,scanf,讀入一個(gè)字符,格式說明“%c”,使得從鍵盤輸入的字符被賦值給grade。,4-19,If與else匹配,語法規(guī)則:else是與最靠近它的未匹配的if相匹配的,if (x != 10) if (y 3) z = z / 2; else z = z * 2;,if (x != 10) if (y 3) z =

8、 z / 2; else z = z * 2; ,等價(jià)于,if (x != 10) if (y 3) z = z / 2; else z = z * 2;,不同于,使用大括號結(jié)合語句 條件表達(dá)式:x?y:z,4-20,if-else:錯(cuò)誤檢查,#include int main() int dividend; int divisor; int result; printf (Enter the dividend: ); scanf (%d, ,4-21,4-22,while,while (test) loop_body;,test,loop_body,T,F,在條件為真的情況下重復(fù)執(zhí)行一個(gè)語句

9、。在每次重復(fù)執(zhí)行這個(gè)語句之前,都要先檢查條件。如果條件的值為邏輯真(非零),語句將被再次執(zhí)行。,示例,#include int main() int i=0; while (i10) printf (%d , i); i=i+1; while語句適用于使用標(biāo)志控制的循環(huán)。 事先并不知道重復(fù)的次數(shù),只知道循環(huán)需要繼續(xù)直到某個(gè)事件(即標(biāo)志)發(fā)生。,4-23,4-24,無限循環(huán),#include int main() int i=0; while (i10) printf (%d , i); ,4-25,for,for (init; end-test; re-init) statement,init

10、,test,loop_body,re-init,F,T,for,for循環(huán),適用于記數(shù)器控制的循環(huán)。 for循環(huán)是while循環(huán)的一種特殊情況,它適用于事先知道重復(fù)次數(shù)的情況。 for循環(huán)可以使用while循環(huán)來構(gòu)造(反之亦然) #include int main() int i; for (i=0;i10;i+) printf (%d ,i); ,4-26,4-27,示例,/*-這個(gè)循環(huán)會(huì)輸出什么?-*/ for (i=0; i=10; i+) printf (“%d”, i);,計(jì)算9的階乘,#include int main() int i; int result=1; for (i=9

11、; i1; i-) result = result * i; ,4-28,常見錯(cuò)誤,result = 1; for (i=9; i1; i-) ; result = result * i; printf (result = %dn, result) ; printf (i = %dn, i);,4-29,4-30,循環(huán)嵌套,#include int main() int multiplicand; /*被乘數(shù)*/ int multiplier; /*乘數(shù)*/ /*外層循環(huán)*/ for (multiplier=1; multiplier10; multiplier+) /*內(nèi)部循環(huán)*/ for

12、(multiplicand=1; multiplicand= multiplier; multiplicand+) printf (%d*%d=%dt, multiplicand, multiplier, multiplicand*multiplier); printf (n); “t”,制表符,4-31,do-while,do loop_body; while (test);,loop_body,test,T,F,在循環(huán)體被執(zhí)行一次之后再計(jì)算條件表達(dá)式的值,示例,i = 0 ; do printf (%dn , i); i = i + 1 ; while ( i 10 );,4-32,編程風(fēng)

13、格,對于以上三種類型的重復(fù)結(jié)構(gòu),哪些情況下采用while,哪些情況采用for,哪些情況采用do-while? 在大部分情況下,這三種結(jié)構(gòu)可以互換使用。 區(qū)別在于編程風(fēng)格:為了提高代碼的可讀性,更好的將循環(huán)的目的傳達(dá)給閱讀代碼的人,而選擇恰當(dāng)?shù)慕Y(jié)構(gòu)。,4-33,4-34,switch,switch (expression) case const1: action1; break;case const2: action2; break;default: action3; ,evaluateexpression,= const1?,= const2?,action1,action2,action3,

14、T,T,F,F,switch,給編譯器提供一個(gè)可以通過跳過一些測試以優(yōu)化這些代碼的機(jī)會(huì)。 使用switch語句代替級聯(lián)的if-else語句,4-35,switch語句的一般形式,switch (表達(dá)式) case 常量表達(dá)式1: /*語句1*/ break;/*可選*/ case常量表達(dá)式2: /*語句2*/ break; /*可選*/ case常量表達(dá)式n: /*語句n*/ break; /*可選*/ default: /*語句n+1*/ ,4-36,計(jì)算過程,首先計(jì)算switch后面的表達(dá)式的值,然后判定表達(dá)式的值與下面的哪個(gè)case后面的常量表達(dá)式的值相同。如果與某個(gè)值相同,那么執(zhí)行該c

15、ase后面的語句。,4-37,注意事項(xiàng),switch后面的表達(dá)式必須是整型(int或char)。 每一個(gè)case都由0條或多條語句組成,不需要用大括號分隔。 每一個(gè)case后面的常量表達(dá)式都必須是唯一的,不允許有重復(fù)。它還必須是一個(gè)常量表達(dá)式,不能是基于程序執(zhí)行而變化的變量。 break語句是可選的。break語句用于跳出switch結(jié)構(gòu),將控制流直接改變至switch的右括號之后。如果不使用break語句,那么控制流則從當(dāng)前的case到達(dá)下一個(gè)。 還可以包括一個(gè)default語句。如果switch表達(dá)式與任何一個(gè)case都不匹配的話,將會(huì)選擇這種情況。如果沒有給出default,并且表達(dá)式與

16、任何一個(gè)常量都不匹配,那么不執(zhí)行任何case。,4-38,編程風(fēng)格,如果不包括default語句,最后一個(gè)case就不需要使用break。 然而,在最后一個(gè)case的后面包括break是一種好的編程習(xí)慣。如果在switch的末尾再添加一個(gè)case的話,就不需要給前面的一個(gè)case加break了。這是一種好的、具有保護(hù)性的編程風(fēng)格。,4-39,4-40,示例switch代替級聯(lián)的if-else,#include int main() char grade; /*成績等級*/ printf (“Enter the grade: ”); scanf (“%c”, ,4-41,break,switch

17、 (a) case 1: printf(“A”);case 2: printf(“B”);default: printf(“C”);,If a is 1, prints “ABC”. If a is 2, prints “BC”.Otherwise, prints “C”.,break,break語句也可以用于循環(huán)結(jié)構(gòu)中。 break語句使編譯器生成提前跳出循環(huán)或者switch語句的代碼。 當(dāng)用于循環(huán)結(jié)構(gòu)時(shí),break通過將控制跳出包含它的那層循環(huán),使該層循環(huán)終止。 /* 這段代碼產(chǎn)生輸出為:1 2*/ for (i=1; i10; i+) if (i%3=0) break; printf (

18、%d ,i); ,4-42,continue,用于循環(huán)結(jié)構(gòu)中的continue語句 使編譯器生成結(jié)束當(dāng)前的循環(huán),開始下一次重復(fù)的代碼。 /* 這段代碼產(chǎn)生輸出為:1 3 5 7 9*/ for (i=1; i10; i+) if (i%2=0) continue; printf (%d , i); ,4-43,4-44,使用控制結(jié)構(gòu)解決問題,應(yīng)用“自頂向下”方法,解決需要使用控制結(jié)構(gòu)的問題。,問題1:計(jì)算自然對數(shù)之底e的近似值,級數(shù)展開式來計(jì)算的e的值。,4-45,步驟0,為計(jì)算中要包括的數(shù)據(jù)選擇一個(gè)恰當(dāng)?shù)谋硎痉椒ā?既然級數(shù)處理的是小數(shù),需要采用double型浮點(diǎn)數(shù)來表示在級數(shù)計(jì)算中調(diào)用的變

19、量。,4-46,步驟1,問題的最初設(shè)計(jì)。 包含四個(gè)階段:初始化,獲取輸入,計(jì)算,輸出結(jié)果。 首先把所有需要初始化的數(shù)據(jù)初始化(一個(gè)程序必須要有正確的初始值才能真正解決問題。因此,每個(gè)算法的第一步是:初始化變量。) 然后要求用戶輸入要計(jì)算的級數(shù)的項(xiàng)數(shù) 之后計(jì)算出給定項(xiàng)數(shù)的級數(shù) 最后,打印出結(jié)果。 分解為包含多項(xiàng)子任務(wù)的順序結(jié)構(gòu)。,4-47,開始,初始化,結(jié)束,獲得輸入n,計(jì)算級數(shù),輸出結(jié)果,步驟2,分解“計(jì)算級數(shù)”:對級數(shù)逐項(xiàng)進(jìn)行計(jì)算,直到計(jì)算出用戶指定的項(xiàng)數(shù)。 注意:與for循環(huán)的流程圖一致。,4-48,開始,初始化,結(jié)束,獲得輸入n,計(jì)算級數(shù),輸出結(jié)果,初始化 循環(huán)計(jì)數(shù)器i,i= n?,再計(jì)

20、算一項(xiàng),i遞增,真,假,計(jì)算級數(shù),步驟3,分解“再計(jì)算一項(xiàng)”一個(gè)重要的子任務(wù):計(jì)算一個(gè)數(shù)的階乘,取階乘結(jié)果的倒數(shù),再加到當(dāng)前的近似值上。,4-49,再計(jì)算一項(xiàng),再計(jì)算一項(xiàng),初始化 階乘結(jié)果result、循環(huán)計(jì)數(shù)器j,j=i?,result=result*j,j遞增,假,真,加上1/result,C程序,#include int main() double e=1; /*e的近似值*/ int result; /*階乘計(jì)算結(jié)果*/ int i, j; /*重復(fù)變量*/ int numOfTerms;/*計(jì)算的項(xiàng)數(shù)*/ printf(Number of terms (must be 1 or la

21、rger): ); scanf(%d, ,4-50,可以一次聲明多個(gè)相同類型的變量,變量之間以逗號隔開 例如, int i, j;,4-51,問題2:找出100200之間的素?cái)?shù),步驟0 選擇一個(gè)合適的數(shù)據(jù)類型來表示和這個(gè)問題有關(guān)的各種數(shù)據(jù)。 因?yàn)樗財(cái)?shù)的特點(diǎn)只適用于整數(shù),因此在計(jì)算中選擇整數(shù)數(shù)據(jù)類型。,4-52,步驟1,問題的最初設(shè)計(jì)。 包含一個(gè)任務(wù):顯示100200之間的素?cái)?shù)。,4-53,開始,結(jié)束,顯示位于100200之間的素?cái)?shù),步驟2,分解子任務(wù):檢查每個(gè)位于100到200之間的整數(shù),如果是素?cái)?shù)則顯示出來。 計(jì)數(shù)器控制的循環(huán),4-54,開始,結(jié)束,顯示位于100200之間的素?cái)?shù),初始化 n

22、um=100,num=200?,顯示素?cái)?shù),num=num+1,真,假,步驟3,分解“顯示素?cái)?shù)”子任務(wù):判定當(dāng)前的數(shù)字是否是素?cái)?shù),如果是素?cái)?shù)就顯示出來。 任何位于100到200之間不是素?cái)?shù)的數(shù),至少有一個(gè)從2到14之間的除數(shù)。,4-55,顯示素?cái)?shù),沒有除數(shù)?,num是素?cái)?shù),將其顯示,真,假,顯示素?cái)?shù),用2到14之間的 整數(shù)去除num,步驟3,步驟4,精煉“用2到14之間的整數(shù)去除一個(gè)數(shù)” 子任務(wù):用2到14之間的所有整數(shù)去除當(dāng)前的數(shù),并且判斷是否可以整除。 計(jì)數(shù)器控制的循環(huán)結(jié)構(gòu)。,4-56,divisor=14?,計(jì)算num/divisor,真,假,初始化除數(shù) divisor=2,divisor

23、= divisor+1,用2到14之間的 整數(shù)去除num,標(biāo)志變量,如何記錄某個(gè)數(shù)可以被2到14之間的整數(shù)整除? 在內(nèi)部循環(huán)開始之前,設(shè)標(biāo)志變量prime為TRUE。如果在2到14之間找到了一個(gè)除數(shù),設(shè)標(biāo)志為FALSE,并跳出內(nèi)部循環(huán)。 內(nèi)部循環(huán)結(jié)束后,如果prime保持為TRUE,就說明由外部循環(huán)產(chǎn)生的數(shù)沒有除數(shù),是素?cái)?shù)。 利用宏替換,定義兩個(gè)符號名TRUE和FALSE,分別映射為1和0。,4-57,C程序,#include #define FALSE 0 #define TRUE 1 int main() int num; int divisor; int prime; /*從100開始直

24、到200*/ for (num=100; num=200; num+) prime=TRUE; /*假設(shè)該數(shù)是素?cái)?shù)*/ /*測試num是否是素?cái)?shù)*/ for (divisor=2; divisor=14; divisor+) if (num%divisor)=0) prime=FALSE; break; if (prime) printf (The number %d is primen, num); ,4-58,問題3:計(jì)算字符串“int”出現(xiàn)的次數(shù),由鍵盤鍵入一行字符,計(jì)算這行字符包含多少個(gè)字符組合“int”。 步驟0:需要處理由用戶輸入的字符數(shù)據(jù)。最適合的類型是字符類型,即char。 實(shí)

25、際上,對于輸入一行字符,最好的表示方法是字符數(shù)組,或字符串。,4-59,步驟1,包括兩個(gè)子任務(wù):處理輸入和輸出結(jié)果,4-60,開始,處理輸入,結(jié)束,輸出結(jié)果,步驟2,分解“處理輸入”子任務(wù)中 由于一次只能讀入用戶輸入的一個(gè)字符,并進(jìn)行處理。 該子任務(wù)需要一個(gè)字符接一個(gè)字符處理,直到到達(dá)一行字符的末尾 采用標(biāo)志控制的循環(huán)。末尾是換新行字符,即“n”。,4-61,處理輸入,處理下一個(gè)字符,更多字符?,假,真,處理輸入,步驟3,細(xì)化“處理下一個(gè)字符”。 檢查輸入的字符,記錄下是否連續(xù)出現(xiàn)了“int”字符組合。,4-62,處理下一個(gè)字符,獲得下一個(gè)字符,遇到i?,假,遇到n?,假,遇到t?,假,Got

26、I=0, GotIN=0.,真,GotI=1. GotIN=0.,真,if GotIN, GotIN=0. if GotI, GotIN=1. GotI=0.,真,if GotIN, count+. GotI=0. GotIN=0.,GotI和GotIN:記錄可能出現(xiàn)的3種狀態(tài) 在遇到字符i后,狀態(tài)為GotI=1,GotIN=0; 在遇到字符組合in后,狀態(tài)為GotI=0,GotIN=1; 在遇到字符組合int后,計(jì)數(shù)器count加1,且狀態(tài)為GotI=0,GotIN=0;遇到其他字符組合,狀態(tài)為GotI=0,GotIN=0。,4-63,C程序,#include #define FALSE 0

27、 #define TRUE 1 int main() char nextChar; /*字符串中的下一個(gè)字符*/ int gotI=FALSE; /*表明i是否被找到*/ int gotIN=FALSE; /*表明in是否被找到*/ int count=0; /*記錄次數(shù)*/ printf (Enter your string: ); do scanf (%c, ,4-64,switch (nextChar) case i: gotI=TRUE; gotIN=FALSE; break; case n: if (gotIN) gotIN=FALSE; if (gotI) gotIN=TRUE;

28、gotI=FALSE; break; case t: if (gotIN) count+; gotI=FALSE; gotIN=FALSE; break; default: gotI=FALSE; gotIN=FALSE; while (nextChar !=n); printf(count = %dn, count); ,4-65,小結(jié),一般不可能從一開始就知道所有的情況。 當(dāng)發(fā)現(xiàn)有困難的時(shí)候,不要輕易放棄。 在碰到問題時(shí)(實(shí)際上這是大部分問題都會(huì)遇到的情況),應(yīng)該看看是否能夠理解問題中的某一部分,然后從這一點(diǎn)擴(kuò)展出去。問題就像一道謎題,起初含糊,但是研究得越多,問題越容易被“擊破”。一旦明

29、白了這個(gè)問題提供了什么條件,要求做什么,以及如何運(yùn)行,就可以回到第一步重新開始系統(tǒng)的分解過程。,4-66,【一個(gè)小題目】,下面是一個(gè)C程序,其想要輸出20個(gè)減號,不過,粗心的程序員把代碼寫錯(cuò) 了,你需要把下面的代碼修改正確,不過,你只能增加或是修改其中的一個(gè)字符,請你給 出三種答案。 int n=20; for(int i=0; in; i-) printf(-); ,4-67,【1】int n=20; for(int i=0; -in; i-)printf(-); 【2】int n=20; for(int i=0; in; n-) printf(-); 【3】int n=20; for(in

30、t i=0; i+n; i-) printf(-);,4-68,習(xí)題書面作業(yè),4.1 當(dāng)x等于0、1和2時(shí),下列代碼片段的輸出各是什么? 1)if (1=x=0) printf (“True. ”); else printf (False. ); 2)if (1=x ,4-69,4)if (x=0) printf (x equals 0n); else if(x=1) printf (x equals 1n); else printf (x does not equal 0 or 1n ); 5)switch (x) case 0: printf (x equals 0n); case 1:

31、printf (x equals 1n); break; default: printf (x does not equal 0 or 1n ); break; ,4-70,4.2 下列代碼片段的輸出是什么? 1)int i; int sum=0; for(i=1;i0) i-; printf (%d , i);,4-71,4)int i=1; int sum=0; do if(i%7=0) sum=sum+i; i+; while(sum0); printf (%d , i);,4.3 如下代碼的輸出是什么? int input; int i; int j; int sum=0; scanf

32、 (%d, ,4-72,4.4 如下代碼的輸出是什么? 1)int i; int j; for (i=4; i=1; i-) for (j=1; j=i; j+) printf (#); for (j=1; j=4-i; j+) printf (*); printf (n); ,4-73,2)int i; for(i=1;i=5;i+) switch(i%5) case 0: printf(“*”); break; case 1: printf(“#”); break; default: printf(“n”); case 2: printf(“ ,4.5 改寫如下代碼片段,要求不使用cont

33、inue語句,仍然實(shí)現(xiàn)這段代碼的功能。 for (i=1; i10; i+) if (i%2=0) continue; printf (%d , i); ,4-74,習(xí)題上機(jī)作業(yè),4.6 使用if-else語句,完成第三章習(xí)題:判斷某個(gè)整數(shù)是否可以被7整除。 4.7 改寫第三章圖3.2中的程序,將條件表達(dá)式改為if-else語句:從鍵盤讀入兩個(gè)整數(shù),將兩個(gè)整數(shù)中較大的數(shù)輸出。 4.8 使用if-else語句,編寫一個(gè)C程序:根據(jù)輸入的月份數(shù),輸出該月份的天數(shù)。注意,2月的天數(shù)問題。 4.9 編寫一個(gè)C程序,計(jì)算如下函數(shù): f (n) = f (n-1) + f (n-2) 初始條件為:f (0

34、)=1, f (1)=1 4.10 編寫一個(gè)C程序,計(jì)算計(jì)算9的階乘。要求使用while循環(huán)。,4-75,4.11 編寫一個(gè)C程序:根據(jù)鍵盤輸入的整數(shù)n,在第一行輸出一個(gè)1,第二行輸出2個(gè)2,第三行輸出3個(gè)3,直到第n行輸出n個(gè)n結(jié)束。 例如,如果輸入為4,則輸出如下: 1 22 33 3 44 4 4,4-76,4.12 編寫C程序:計(jì)算的近似值。可以使用如下級數(shù)展開式來計(jì)算的值。( 要求項(xiàng)數(shù)n從鍵盤輸入。) 4.13 選做題編寫C程序:從鍵盤輸入一行字符,判斷這行字符是否是合法的e-mail地址。合法的e-mail地址為:在前至少需要出現(xiàn)一個(gè)字母,在和句點(diǎn)之間至少一個(gè)字母,在句點(diǎn)后至少一個(gè)字母。,4-77,

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

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!