




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、會計學1上海交大上海交大第1頁/共591頁第2頁/共591頁第3頁/共591頁第4頁/共591頁第5頁/共591頁第6頁/共591頁賦值表達式賦值表達式自增自減運算符自增自減運算符強制類型轉換強制類型轉換數(shù)據(jù)的輸入輸出數(shù)據(jù)的輸入輸出第7頁/共591頁/ File: hello.cpp/ this program prints the message/ “hello everyone” on the screen#include int main() std:cout “hello everyone” std:endl; return 0;程序注釋程序注釋預處理命令預處理命令主程序主程序第8頁/
2、共591頁第9頁/共591頁/ File: hello.cpp/ this program prints the message/ “hello everyone” on the screen#include int main() std:cout “hello everyone” std:endl; return 0;程序注釋程序注釋預處理命令預處理命令主程序主程序第10頁/共591頁第11頁/共591頁第12頁/共591頁第13頁/共591頁第14頁/共591頁/ File: hello.cpp/ this program prints the message/ “hello everyo
3、ne” on the screen#include int main() std:cout “hello everyone” std:endl; return 0;程序注釋程序注釋預處理命令預處理命令主程序主程序第15頁/共591頁第16頁/共591頁函數(shù)體與與PYTHONPYTHON不同,不同,C+C+的函數(shù)體必須用一對花括號括起來。的函數(shù)體必須用一對花括號括起來。事實上,事實上,PYTHONPYTHON中所有必須縮進的語句,在中所有必須縮進的語句,在C+C+中都必須中都必須用花括號括起來。用花括號括起來。第17頁/共591頁nstd:cout “hello, everyone” std:e
4、ndlnstd:endl表示換行第18頁/共591頁第19頁/共591頁第20頁/共591頁第21頁/共591頁賦值表達式賦值表達式自增自減運算符自增自減運算符強制類型轉換強制類型轉換數(shù)據(jù)的輸入輸出數(shù)據(jù)的輸入輸出第22頁/共591頁/ file: circle.cpp/ 該程序用于計算園的面積和周長該程序用于計算園的面積和周長#define PI 3.14159 /定義符號常量定義符號常量#include using namespace std;int main() double radius, area, circum; cout radius; area = PI * radius * r
5、adius; circum = 2 * PI * radius; cout endl; cout 園的面積為:園的面積為: area endl; cout 園的周長為:園的周長為: circum endl; return 0;變量定義變量定義輸入階段輸入階段計算階段計算階段輸出階段輸出階段第23頁/共591頁第24頁/共591頁賦值表達式賦值表達式自增自減運算符自增自減運算符強制類型轉換強制類型轉換數(shù)據(jù)的輸入輸出數(shù)據(jù)的輸入輸出第25頁/共591頁第26頁/共591頁第27頁/共591頁賦值表達式賦值表達式自增自減運算符自增自減運算符強制類型轉換強制類型轉換數(shù)據(jù)的輸入輸出數(shù)據(jù)的輸入輸出第28頁/
6、共591頁枚舉類型枚舉類型變量賦初值變量賦初值了解占用的內存量了解占用的內存量第29頁/共591頁程序設計 - 31第30頁/共591頁第31頁/共591頁第32頁/共591頁第33頁/共591頁第34頁/共591頁第35頁/共591頁程序設計 - 37unsigned int0232-1unsigned short065535unsigned long0232-1第36頁/共591頁第37頁/共591頁枚舉類型枚舉類型變量賦初值變量賦初值了解占用的內存量了解占用的內存量第38頁/共591頁第39頁/共591頁第40頁/共591頁枚舉類型枚舉類型變量賦初值變量賦初值了解占用的內存量了解占用的內
7、存量第41頁/共591頁第42頁/共591頁第43頁/共591頁第44頁/共591頁第45頁/共591頁第46頁/共591頁第47頁/共591頁字符形式字符形式含義含義n換行換行t水平制表水平制表b退一格退一格r回車回車f換頁換頁”“ddd1到到3位八進制數(shù)代表的字符位八進制數(shù)代表的字符xhh1到到2位十六進制數(shù)代表的字符位十六進制數(shù)代表的字符第48頁/共591頁枚舉類型枚舉類型變量賦初值變量賦初值了解占用的內存量了解占用的內存量第49頁/共591頁第50頁/共591頁枚舉類型枚舉類型變量賦初值變量賦初值了解占用的內存量了解占用的內存量第51頁/共591頁第52頁/共591頁第53頁/共591
8、頁第54頁/共591頁枚舉類型枚舉類型變量賦初值變量賦初值了解占用的內存量了解占用的內存量第55頁/共591頁定義變量時沒有賦初值,然后直接引用該變量是危險的!定義變量時沒有賦初值,然后直接引用該變量是危險的! 第56頁/共591頁枚舉類型枚舉類型變量賦初值變量賦初值了解占用的內存量了解占用的內存量第57頁/共591頁第58頁/共591頁賦值表達式賦值表達式自增自減運算符自增自減運算符強制類型轉換強制類型轉換數(shù)據(jù)的輸入輸出數(shù)據(jù)的輸入輸出第59頁/共591頁const = ; 如:const double PI = 3.1415926;第60頁/共591頁賦值表達式賦值表達式自增自減運算符自增自
9、減運算符強制類型轉換強制類型轉換數(shù)據(jù)的輸入輸出數(shù)據(jù)的輸入輸出第61頁/共591頁第62頁/共591頁double。nfloat和double運算時,將float轉換成double。第63頁/共591頁第64頁/共591頁絕對值函數(shù)絕對值函數(shù) int abs(int x) ; double fabs(double x) ex double exp(double x) xy double pow(double x, double y) double sqrt(double x) ln x double log(double x)log10 x double log10(double x)三角函數(shù)三
10、角函數(shù) double sin(double x) double cos(double x) double tan(double x)反三角函數(shù)反三角函數(shù) double asin(double x) double acos(double x) double atan(double x)x第65頁/共591頁賦值表達式賦值表達式自增自減運算符自增自減運算符強制類型轉換強制類型轉換數(shù)據(jù)的輸入輸出數(shù)據(jù)的輸入輸出第66頁/共591頁第67頁/共591頁第68頁/共591頁第69頁/共591頁a = b = c = 5 給給a, b, c均賦值均賦值5 當用到多重賦值時,要保證所有的變量都是同類當用到多重
11、賦值時,要保證所有的變量都是同類型的,以避免在自動類型轉換時出現(xiàn)與預期不相型的,以避免在自動類型轉換時出現(xiàn)與預期不相符的結果的可能性。如變量符的結果的可能性。如變量d d定義為定義為double,double,變量變量i i定義為定義為intint,語句,語句 d = i = 1.5;d = i = 1.5;的結果是:的結果是:i i等于等于1 1,d d等于等于1.01.0 第70頁/共591頁第71頁/共591頁賦值表達式賦值表達式自增自減運算符自增自減運算符強制類型轉換強制類型轉換數(shù)據(jù)的輸入輸出數(shù)據(jù)的輸入輸出第72頁/共591頁j=i+ i=4 j=3 j=+i i=4 j=4 j=i-
12、 i=2 j=3 j=-i i=2 j=2 第73頁/共591頁賦值表達式賦值表達式自增自減運算符自增自減運算符強制類型轉換強制類型轉換數(shù)據(jù)的輸入輸出數(shù)據(jù)的輸入輸出第74頁/共591頁n答案是:用強制類型轉換第75頁/共591頁double z;z = (double)x / y; 第76頁/共591頁第77頁/共591頁賦值表達式賦值表達式自增自減運算符自增自減運算符強制類型轉換強制類型轉換數(shù)據(jù)的輸入輸出數(shù)據(jù)的輸入輸出第78頁/共591頁第79頁/共591頁第80頁/共591頁符。第81頁/共591頁如如a,b,c為字符型變量,對應語句為字符型變量,對應語句a = cin.get();b =
13、 cin.get(); c = cin.get();如果輸入如果輸入a b c ,則,則a的值是的值是a,b的值是空格,的值是空格,c的值是的值是b。如果將這個輸入用于語句:如果將這個輸入用于語句:cin a b c ,那么變量那么變量a、b、c的內容分別為的內容分別為a、b、c,因為空格,因為空格被作為輸入值之間的分隔符。被作為輸入值之間的分隔符。 第82頁/共591頁n上述情況的組合:cout a + b = a+b endl; 第83頁/共591頁第84頁/共591頁第85頁/共591頁eg. x y a b = c d a b = c d 都是合法的關系表達式都是合法的關系表達式注意:
14、注意:-2 -1 0 -2 -1 6 - 2 (5 + 3) (6 2) 第87頁/共591頁第88頁/共591頁第89頁/共591頁第90頁/共591頁eg. (m = a b) & (n = c d) a = 1, b = 2, c = 2, d = 4, m = 1, n = 1. 問執(zhí)行后問執(zhí)行后m,n的值分別為多少?的值分別為多少? m=0, n=1 第91頁/共591頁第92頁/共591頁 第93頁/共591頁第94頁/共591頁第95頁/共591頁的if語句配對。第96頁/共591頁if (x 100) if (x 90) 語句1 else if (x=90 A90score=8
15、0 B80score=70 C70score=60 Dscore= 90: cout = 80: cout = 70: cout = 60: cout D; break; default: cout =90 A90score=80 B80score=70 C70score=60 Dscore60 E表達式表達式=成績成績/10 switch(score / 10) case 10: case 9: cout A; break; case 8: cout B; break; case 7: cout C; break; case 6: cout D; break; default: cout E
16、; 第105頁/共591頁生成題目生成題目switch(題目類型題目類型) case 加法:顯示題目,輸入和的值,判斷正確與否加法:顯示題目,輸入和的值,判斷正確與否 case 減法:顯示題目,輸入差的值,判斷正確與否減法:顯示題目,輸入差的值,判斷正確與否 case 乘法:顯示題目,輸入積的值,判斷正確與否乘法:顯示題目,輸入積的值,判斷正確與否 case 除法:顯示題目,輸入商和余數(shù)的值,判斷正確與否除法:顯示題目,輸入商和余數(shù)的值,判斷正確與否要求自動出要求自動出0 - 90 - 9之間的四則運算題,并批改結果之間的四則運算題,并批改結果第106頁/共591頁第107頁/共591頁ran
17、d()種子種子1234812348第108頁/共591頁第109頁/共591頁#include /包含偽隨機數(shù)生成函數(shù)包含偽隨機數(shù)生成函數(shù)#include /包含取系統(tǒng)時間的函數(shù)包含取系統(tǒng)時間的函數(shù)#include using namespace std;int main() int num1, num2, op, result1, result2; /num1,num2:操作數(shù),操作數(shù),op:運算符,運算符,result1,result2: 結果結果 srand(time(NULL); /隨機數(shù)種子初始化隨機數(shù)種子初始化 num1=rand() * 10 / (RAND_MAX + 1);
18、/ 生成運算數(shù)生成運算數(shù) num2=rand() * 10 / (RAND_MAX + 1); /生成運算數(shù)生成運算數(shù) op=rand() * 4 / (RAND_MAX + 1); / 生成運算符生成運算符 0-+, 1- -, 2-*,3- / 自動出題程序第110頁/共591頁switch (op) case 0: cout num1 + num2 result1; if (num1 + num2 = result1) cout you are rightn; else cout you are wrongn; break; case 1: cout num1 - num2 result
19、1; if (num1 - num2 = result1) cout you are rightn; else cout you are wrongn; break; case 2: cout num1 * num2 result1; if (num1 * num2 = result1) cout you are rightn;else cout you are wrongn; break; 第111頁/共591頁case 3: cout num1 / num2 result1; cout result2; if (num1 / num2 = result1) & (num1 % num2 =
20、 result2) cout you are rightn; else cout 0.000001) while (p0.000001) ex += p; ex += p; 計算新的計算新的p p; 問題:如何計算p?計算第i個p,需要兩個i次的循環(huán)。第一個循環(huán)計算xi,第二個循環(huán)計算i!解決方案:從前一項計算后一項。如果p是第i項的值,則第i+1項的值為 p*x/(i+1) 第126頁/共591頁int main()int main()double ex, x, p;/exdouble ex, x, p;/ex存儲存儲e ex x的值,的值,p p保存當前項的值保存當前項的值 int i;i
21、nt i; cout cout x; cin x; ex=0; p=1; i=0; ex=0; p=1; i=0; while (p 1e-6) while (p 1e-6) ex += p; ex += p; +i; +i; p = p p = p * * x / i; x / i; cout e cout e的的 x x 次方等于次方等于: ex endl; ex endl; return 0;return 0;第127頁/共591頁第128頁/共591頁第129頁/共591頁015223xxx第130頁/共591頁程序設計 - 132) 1()2() 1(*2)2(*1xfxfxfxxf
22、xx第131頁/共591頁第132頁/共591頁第133頁/共591頁第134頁/共591頁第135頁/共591頁周期第136頁/共591頁第137頁/共591頁第138頁/共591頁第139頁/共591頁#include using namespace std;int main() int mellon, apple, orange; /分別表示西瓜數(shù)、蘋果數(shù)和桔子數(shù)分別表示西瓜數(shù)、蘋果數(shù)和桔子數(shù) for (mellon=1; mellon10; +mellon) / 對每種可能的西瓜數(shù)對每種可能的西瓜數(shù) for ( apple=1; apple 50 - 5 * mellon; +appl
23、e) /當西瓜數(shù)給定后可能的蘋果數(shù)當西瓜數(shù)給定后可能的蘋果數(shù) orange = 3*(50-5*mellon-apple); / 剩下的錢全買了桔子剩下的錢全買了桔子 if (mellon+apple+orange = 100) / 三種水果數(shù)之和是否為三種水果數(shù)之和是否為100 cout mellon: mellon ; cout apple: apple ; cout orange: orange endl; return 0; 第140頁/共591頁Mellon:1 apple:18 orange:81Mellon:2 apple:11 orange:87Mellon:3 apple:4
24、 orange:93第141頁/共591頁第142頁/共591頁第143頁/共591頁第144頁/共591頁main() int a, b, c, d; for (a=1; a=4; +a) for (b=1; b=4; +b) if ( a = b) continue; else for (c=1; c=4; +c) if (c=a|c=b) continue; else d=10 a b - c; if (a=1)+(b=4)+(c=3)=1 &(b=1)+(a=4)+(c=2)+(d=3)=1 &(b=4)+(a=3)=1 &(c=1)+(d=4)+(b=2)+(a=3)=1) cout
25、 a b c d;問題:效率差解決方法:一旦找到答案就應該結束第145頁/共591頁main() int a, b, c, d; bool flag = false; for (a=1; a=4; +a) for (b=1; b=4; +b) if ( a = b) continue; else for (c=1; c=4; +c) if (c=a|c=b) continue; else d=10 a b - c; if (a=1)+(b=4)+(c=3)=1 &(b=1)+(a=4)+(c=2)+(d=3)=1 &(b=4)+(a=3)=1 &(c=1)+(d=4)+(b=2)+(a=3)=
26、1) cout a b c d; flag = true; break; if (flag) break; if (flag) break;改進版1:程序不夠簡練第146頁/共591頁main() int a, b, c, d; bool flag = false; for (a=1; a=4 & !flag; +a) for (b=1; b=4 & !flag; +b) if ( a = b) continue; else for (c=1; c=4 ; +c) if (c=a|c=b) continue; else d=10 a b - c; if (a=1)+(b=4)+(c=3)=1
27、&(b=1)+(a=4)+(c=2)+(d=3)=1 &(b=4)+(a=3)=1 &(c=1)+(d=4)+(b=2)+(a=3)=1) cout a b c d; flag = true; break; 改進版2第147頁/共591頁第148頁/共591頁第149頁/共591頁第150頁/共591頁n將所有解綜合起來第151頁/共591頁第152頁/共591頁第153頁/共591頁#includeusing namespace std;#define ONEFEN 1#define TWOFEN 2#define FIVEFEN 5#define ONEJIAO 10int main()
28、int money; int onefen = 0, twofen = 0, fivefen = 0, onejiao = 0; cout money; 第154頁/共591頁/不斷嘗試每一種硬幣不斷嘗試每一種硬幣 while (money = ONEJIAO) onejiao+; money -= ONEJIAO; while (money = FIVEFEN) fivefen+; money -= FIVEFEN; while (money = TWOFEN) twofen+; money -= TWOFEN; while (money = ONEFEN) onefen+; money -
29、= ONEFEN;/輸出結果輸出結果 cout 1角硬幣數(shù):角硬幣數(shù): onejiao endl; cout 5分硬幣數(shù):分硬幣數(shù): fivefen endl; cout 2分硬幣數(shù):分硬幣數(shù): twofen endl; cout 1分硬幣數(shù):分硬幣數(shù): onefen endl; return 0;第155頁/共591頁第156頁/共591頁第157頁/共591頁n程序只能用順序結構n如果羊群規(guī)模發(fā)生變化,程序就得重寫第158頁/共591頁第159頁/共591頁第160頁/共591頁個數(shù)決定數(shù)組的大小int a=1,2,3,4,5; 則默認數(shù)組大小為5初始化表初始化表第161頁/共591頁這一
30、特性,使得數(shù)組的應用非常靈活。第162頁/共591頁第163頁/共591頁隨機值隨機值隨機值隨機值隨機值隨機值3隨機值隨機值100 103104 107108 111112 115116 119第164頁/共591頁第165頁/共591頁int main() int intarray10, idx; for (idx = 0; idx intarrayidx ; cout endl; for ( idx = 0; idx = 9; +idx) cout intarrayidx; 第166頁/共591頁int main()double sheep10, max=0; int i, maxNum;
31、 for (i=0; i10; +i) cout “請輸入第請輸入第” i sheepi; for (i=0; imax) max = sheepi; maxNum = i; cout “最重的羊是第最重的羊是第” maxNum “只只” endl; cout “它的重量是它的重量是” max endl; return 0;第167頁/共591頁第168頁/共591頁第169頁/共591頁第170頁/共591頁#include #include using namespace std;int main() int count26 = 0, i; char ch; ch = toupper(ci
32、n.get(); while (ch=A & ch =Z) +countch-A; ch = toupper( cin.get(); for (i=0; i 26; +i) cout counti t; return 0;第171頁/共591頁第172頁/共591頁第173頁/共591頁第174頁/共591頁int main() int k, x; int array = 2, 3, 1, 7, 5, 8, 9, 0, 4, 6; cout x; for (k = 0; k 10; +k) if (x = arrayk) cout k; break; if (k = 10) cout not
33、found; return 0;第175頁/共591頁第176頁/共591頁第177頁/共591頁0Atlanta1Boston2Chicago3Denver4Detroit5Houston6Los Angeles7Miami8New York9Philadelphia10 San Francisco11 Seattle Seattle 11San Francisco10Philadelphia9New York8Miami7Los Angeles6Houston5Detroit4Denver3Chicago2Boston1Atlanta0Seattle 11San Francisco10Ph
34、iladelphia9New York8Miami7Los Angeles6Houston5Detroit4Denver3Chicago2Boston1Atlanta0第178頁/共591頁int main()int lh, rh, mid, x; int array =0,1,2,3,4,5,6,7,8,9; cout x; lh = 0; rh = 9; while ( lh = rh ) mid = ( lh + rh ) / 2; if ( x= arraymid ) cout x 的位置是:的位置是: mid endl; break; if ( x rh) cout 沒有找到?jīng)]有找到
35、 endl; return 0;第179頁/共591頁K次次第180頁/共591頁Nlog2N10310071000101,000,000201,000,000,00030第181頁/共591頁第182頁/共591頁 int lh, rh, array; 輸入要排序的元素,存入輸入要排序的元素,存入array; for (lh = 0; lh n; lh+) 在在array的從的從lh到到n 1的元素之間找出最小的放入的元素之間找出最小的放入rh; 交換下標交換下標 lh和和 rh中的值中的值; 輸出排好序的元素輸出排好序的元素;第183頁/共591頁314159265358979393975
36、85331594126已正確定位已正確定位9397585341593126已正確定位已正確定位9397585359413126已正確定位已正確定位第184頁/共591頁int main( ) int lh, rh, k, tmp; int array = 2, 5, 1, 9, 10, 0, 4, 8, 7, 6; for (lh = 0; lh 10; lh+) rh = lh; for (k = lh; k 10; +k) if ( arrayk arrayrh ) rh = k; tmp = arraylh; arraylh = arrayrh; arrayrh = tmp; for (
37、lh =0; lh10; +lh) cout arraylh ; return 0;第185頁/共591頁第186頁/共591頁第187頁/共591頁For (i=1; in; +i) 從元素0到元素n-i進行冒泡,最大的泡放入元素n-i;第188頁/共591頁第189頁/共591頁第190頁/共591頁5730421968待冒泡的元素待冒泡的元素5304217689待冒泡的元素待冒泡的元素3042156789待冒泡的元素待冒泡的元素0321456789待冒泡的元素待冒泡的元素0213456789待冒泡的元素待冒泡的元素0123456789待冒泡的元素待冒泡的元素第191頁/共591頁int
38、main() int a = 0, 3, 5, 1, 8, 7, 9, 4, 2, 10, 6; int i, j, tmp, n = 11; bool flag; for (i=1; in; +i) flag = false; for (j=0; jn-i; +j) if (aj+1 aj) tmp = aj; aj = aj+1; aj+1 = tmp; flag = true; if (!flag) break;/* 一趟冒泡中沒有發(fā)生交換,排序結束一趟冒泡中沒有發(fā)生交換,排序結束*/ cout endl; for (i=0; in; +i) cout ai ; return 0; 第1
39、92頁/共591頁第193頁/共591頁eg. int a45; 相當于定義了相當于定義了20 個變量:個變量: a00, a01, ., a04,. a30, a31, ., a34 第194頁/共591頁col0col1col2col3col4row0row1row2row3a23第195頁/共591頁a00a01a04a10a34按行序排列第196頁/共591頁121110987654321第197頁/共591頁000000054321000000054321第198頁/共591頁000500430021第199頁/共591頁程序舉例程序舉例-矩陣乘法矩陣乘法 矩陣乘法矩陣乘法 C=A*
40、B ALM,BMN CLN Mkjkbkiajic1*輸入輸入A,B 相乘相乘 輸出輸出C 第200頁/共591頁#define MAX_SIZE 10 /矩陣的最大規(guī)模矩陣的最大規(guī)模int main()int aMAX_SIZEMAX_SIZE; int bMAX_SIZEMAX_SIZE int cMAX_SIZEMAX_SIZE; int i, j, k; int NumOfRowA, NumOfColA, NumOfColB; /輸入輸入A,B的大小的大小 cout NumOfRowA NumOfColA NumOfColB; 第201頁/共591頁/輸入數(shù)組輸入數(shù)組A cout n輸
41、入數(shù)組輸入數(shù)組A:n; for (i=0; i NumOfRowA; +i) for (j=0; j NumOfColA; +j) cout a i j aij; /輸入數(shù)組輸入數(shù)組B cout n輸入數(shù)組輸入數(shù)組B:n; for (i=0; i NumOfColA; +i) for (j=0; j NumOfColB; +j) cout b i j bij;第202頁/共591頁/執(zhí)行執(zhí)行A*B for (i=0; i NumOfRowA; +i) for (j=0; j NumOfColB; +j) cij = 0; for (k=0; kNumOfColA; +k) cij += aik
42、 * bkj; 第203頁/共591頁/輸出數(shù)組輸出數(shù)組C cout n輸出數(shù)組輸出數(shù)組C:; for (i=0; i NumOfRowA; +i) cout endl; for (j=0; j NumOfColB; +j) cout cij t; return 0; 第204頁/共591頁程序舉例程序舉例-打印打印N N階魔陣階魔陣81635749217241815235714164613202210121921311182529第一個元素:第一行中間一列第一個元素:第一行中間一列 下一單元:行下一單元:行-1,列,列+1 如行如行-1,列,列+1有內容,則下一單元為有內容,則下一單元為“行
43、行+1,列不變,列不變” 第205頁/共591頁第206頁/共591頁n找下一行 row = ( row + 1 ) % scalen找上一行 row = ( row - 1 + scale ) % scale第207頁/共591頁#include using namespace std;#define MAX 15 /最高位最高位15階階int main() int magicMAXMAX = 0; int row, col, count,scale; / 輸入階數(shù)輸入階數(shù)scale cout scale;第208頁/共591頁 /生成魔陣生成魔陣 row=0; col = (scale -
44、 1) / 2; magicrowcol = 1; for (count = 2; count = scale * scale; count+) if (magic(row - 1 + scale) % scale(col + 1) % scale = 0) row = ( row - 1 + scale ) % scale; col = ( col + 1 ) % scale; else row = ( row + 1 ) % scale; magicrowcol = count; / 輸出輸出 for (row=0; rowscale; row+) for (col=0; colscale
45、; col+) cout magicrowcol t; cout s2 返回值為正數(shù),返回值為正數(shù),s1=s1返回值返回值為為0,s1s2返回值為負數(shù)返回值為負數(shù)strncmp(s1, s2, n)如如 strcmp,但至多比較,但至多比較n個字符個字符strchr(s, ch)返回一個指向返回一個指向s中第一次出現(xiàn)中第一次出現(xiàn)ch的地址的地址strrchr(s, ch)返回一個指向返回一個指向s中最后一次出現(xiàn)中最后一次出現(xiàn)ch的地址的地址strstr(s1, s2)返回一個指向返回一個指向s1中第一次出現(xiàn)中第一次出現(xiàn)s2的地址的地址第222頁/共591頁第223頁/共591頁第224頁/共5
46、91頁int main() char sentence80, prev = ; /prev 表示當前字符的前一字符表示當前字符的前一字符 int i, num = 0; gets(sentence); for (i = 0; sentencei != 0; +i) if (prev = & sentencei != ) +num; prev = sentencei; cout 單詞個數(shù)為:單詞個數(shù)為: num b) return(a) else return(b); 函數(shù)體函數(shù)體第230頁/共591頁第231頁/共591頁函數(shù)舉例函數(shù)舉例無參數(shù)、無返回值的函數(shù)無參數(shù)、無返回值的函數(shù) * * *
47、 * *void printstar() cout “ *n”; cout “ *n”; cout “ *n”; cout “ *n”; cout “*n”;第232頁/共591頁函數(shù)舉例函數(shù)舉例有參數(shù)、無返回值的函數(shù)有參數(shù)、無返回值的函數(shù)void printstar(int numOfLine) int i , j; for (i = 1; i = numOfLine; +i) cout endl; for (j = 1; j = numOfLine - i; +j) cout ; for (j = 1; j = 2 * i - 1; +j) cout “*”; 第233頁/共591頁函數(shù)舉
48、例函數(shù)舉例第234頁/共591頁函數(shù)舉例函數(shù)舉例有參數(shù)、有返回值的函數(shù)有參數(shù)、有返回值的函數(shù) int p(int n) int s=1, i; if (n 0) return(0); for (i = 1; i = n; +i) s *= i; return(s); 第235頁/共591頁函數(shù)舉例函數(shù)舉例返回布爾量的函數(shù)返回布爾量的函數(shù)bool IsLeapYear(int year) bool leapyear; leapyear = (year %4 = 0) &(year % 100 != 0) | (year % 400 = 0); return (leapyear);第236頁/共5
49、91頁v重載函數(shù)重載函數(shù)v函數(shù)模版函數(shù)模版v變量的作用域變量的作用域v變量的存儲類變量的存儲類別別v遞歸函數(shù)遞歸函數(shù)v基于遞歸的算基于遞歸的算法法第237頁/共591頁第238頁/共591頁第239頁/共591頁#include int max(int a, int b); main() int x, y; cin x y; cout b) return(a); else return(b); 函數(shù)原型說明函數(shù)原型說明函數(shù)調用函數(shù)調用函數(shù)實現(xiàn)函數(shù)實現(xiàn)第240頁/共591頁#include int max(int a, int b) if (a b) return(a); else return
50、(b); main() int x, y; cin x y; cout x y; cout max(x, y);int p( int n ) int s =1, i; if (n 0) return(0); for (i=1;in2? n1: n2); mainx(2)y(3)m a inx(2)y(3)maxa(2)b(3)n1n2 mainx(2)y(3)maxa(2)b(3)n1n2pn(2)si mainx(2)y(3)maxa(2)b(3)n1(2)n2pn(3)simainx(2)y(3)maxa(2)b(3)n1(2)n2(6)mainx(2)y(3)第245頁/共591頁v重載
51、函數(shù)重載函數(shù)v函數(shù)模板函數(shù)模板v變量的作用域變量的作用域v變量的存儲類變量的存儲類別別v遞歸函數(shù)遞歸函數(shù)v基于遞歸的算基于遞歸的算法法第246頁/共591頁n第二種方法更加簡練n返回值是平均成績第247頁/共591頁第248頁/共591頁注意:形式參數(shù)是數(shù)組,實際參數(shù)也是一個數(shù)組注意:形式參數(shù)是數(shù)組,實際參數(shù)也是一個數(shù)組第249頁/共591頁nn你會發(fā)現(xiàn)輸出的值90而不是80。第250頁/共591頁第251頁/共591頁數(shù)組名和數(shù)組規(guī)模第252頁/共591頁v重載函數(shù)重載函數(shù)v函數(shù)模版函數(shù)模版v變量的作用域變量的作用域v變量的存儲類變量的存儲類別別v遞歸函數(shù)遞歸函數(shù)v基于遞歸的算基于遞歸的算法
52、法第253頁/共591頁第254頁/共591頁special(5,3.2) /x=5; y=3.2 special(6) /x=6; y=1.5 special( ) /x=2; y=1.5第255頁/共591頁省值第256頁/共591頁第257頁/共591頁v重載函數(shù)重載函數(shù)v函數(shù)模版函數(shù)模版v變量的作用域變量的作用域v變量的存儲類變量的存儲類別別v遞歸函數(shù)遞歸函數(shù)v基于遞歸的算基于遞歸的算法法第258頁/共591頁第259頁/共591頁#includeinline float cube(float s) return s*s*s; int main()float side;cin side
53、;cout cube(side) endls;return 0; 第260頁/共591頁第261頁/共591頁v重載函數(shù)重載函數(shù)v函數(shù)模版函數(shù)模版v變量的作用域變量的作用域v變量的存儲類變量的存儲類別別v遞歸函數(shù)遞歸函數(shù)v基于遞歸的算基于遞歸的算法法第262頁/共591頁第263頁/共591頁int max(int a1, int a2, int a3, int a4, int a5); 第264頁/共591頁第265頁/共591頁v重載函數(shù)重載函數(shù)v函數(shù)模版函數(shù)模版v變量的作用域變量的作用域v變量的存儲類變量的存儲類別別v遞歸函數(shù)遞歸函數(shù)v基于遞歸的算基于遞歸的算法法第266頁/共591頁第
54、267頁/共591頁第268頁/共591頁第269頁/共591頁v重載函數(shù)重載函數(shù)v函數(shù)模版函數(shù)模版v變量的作用域變量的作用域v變量的存儲類變量的存儲類別別v遞歸函數(shù)遞歸函數(shù)v基于遞歸的算基于遞歸的算法法第270頁/共591頁Int main(void) int a = 2, b = 3; cout a b; int a = 4; cout a b; cout a b;第271頁/共591頁第272頁/共591頁第273頁/共591頁int p = 1, q = 5, r=3;int f1() int p = 3, r = 2; q=p+q+r; cout “f1: p,q,r=“ p q r
55、; int f2() p=p+q+r; cout “f2: p,q,r=“ p q r p q r; int f3() int q; r = 2*r; q=r+p; cout “f3: p,q,r=“ p q r; main()f3(); cout “after f3: p,q,r=” p q r p q r; f1(); cout “after f1: p,q,r=“ p q r; f2(); cout “after f2: p,q,r=” p q r p q r; 結果:結果: f3: p,q,r=1 7 6 after f3: p,q,r=1 5 6 f1: p,q,r=3 10 2 a
56、fter f1:p,q,r=1 10 6 f2: p,q,r=17 10 6 after f2: p,q,r=17 10 6 第274頁/共591頁第275頁/共591頁v重載函數(shù)重載函數(shù)v函數(shù)模版函數(shù)模版v變量的作用域變量的作用域v變量的存儲類變量的存儲類別別v遞歸函數(shù)遞歸函數(shù)v基于遞歸的算基于遞歸的算法法第276頁/共591頁n靜態(tài)變量:static第277頁/共591頁第278頁/共591頁第279頁/共591頁第280頁/共591頁/file1.cpp#include using namespace std;void f();extern int x; /外部變量的聲明外部變量的聲明i
57、nt main() f(); cout in main(): x= “ x endl; return 0;/file2.cpp#include using namespace std;int x; /全局變量的定義全局變量的定義void f() cout in f(): x= “ x endl; 第281頁/共591頁第282頁/共591頁塊時還可以使用此值。eg. int f(int a) int b=0; static int c=3; b=b+1; c=c+1; return(a+b+c); void main() int a=2,i; for (i=0; i3; +i) cout f(
58、a); 運行結果為:運行結果為:7 8 9 第283頁/共591頁第284頁/共591頁第285頁/共591頁void a();void b();void c();void d();main() int x=6; cout “x in main is “ x endl; a(); b(); c(); d(x); x+; a(); b(); c(); d(x); cout “x in main is ” x endl; void a()int x=25; cout “x in a is ” x endl; void b()static int x=50; cout “x in b is ” x+
59、 endl; void c() extern int x; x*=10; cout “x in c is ” x endl; int x=2; void d(int x) cout “x in d is ” +x endl; 結果:結果: x in main is 6 x in a is 25 x in b is 50 x in c is 20 x in d is 7 x in a is 25 x in b is 51 x in c 200 x in d is 8 x in main is 7 第286頁/共591頁v重載函數(shù)重載函數(shù)v函數(shù)模版函數(shù)模版v變量的作用域變量的作用域v變量的存儲類變
60、量的存儲類別別v遞歸函數(shù)遞歸函數(shù)v基于遞歸的算基于遞歸的算法法第287頁/共591頁間接地調用函數(shù)本身第288頁/共591頁第289頁/共591頁基本情況基本情況第290頁/共591頁n!=1*2*3*4*(n-1)*n(n-1)!遞歸形式:遞歸形式:其他)!1(*01!nnnn遞歸終止條件遞歸終止條件long p(int n) if (n = 0) return 1; else return n * p(n-1); 第291頁/共591頁第292頁/共591頁Fibonacci函數(shù)函數(shù)00112132435568其他)2() 1(1100)(nFnFnnnFint f(int n)if (n
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個人轉租店鋪合同范本
- 兼職合同范例簡易范例
- 休閑農(nóng)莊出租合同范本
- 叉車維修度合同范本
- 麗水塔吊拆裝合同范本
- 個人簡單授權委托書怎么寫
- 工業(yè)鍋爐司爐考試模擬題(含答案)
- 電工技術及實訓考試題(含參考答案)
- 上半年工質量監(jiān)督工作總結
- iso認證合同范本
- 重大危險源監(jiān)理實施細則(二篇)
- 自身免疫性多內分泌腺體綜合征
- 2023版?zhèn)€人征信模板簡版(可編輯-帶水?。?/a>
- IEC-60068-系列標準完整版
- 中醫(yī)師承跟師筆記
- 鳳飛羌舞演藝中心及演出項目可行性研究報告
- 工程電磁場教案
- 02職業(yè)生涯目標的分解和組合
- 全國2016年10月自考00043經(jīng)濟法概論(財經(jīng)類)試題及答案
- 施工和檢維修管理制度
- 建設工程檔案預驗收申請表
評論
0/150
提交評論