【正文】
power。cin number。long answer。解: 源程序:include long GetPower(int x, int y)。elsereturn i + fn1(i 1)。cout 從1累加到 i 的和為: fn1(i) endl。cout 請(qǐng)輸入一個(gè)正整數(shù):。解: include include int fn1(int i)。函數(shù)可以直接或間接地調(diào)用自身,稱為遞歸調(diào)用。}return i。i = j。j = i。if (i j){temp = i。cout i 和 j 的最小公倍數(shù)是: y endl。y = i * j / x。cin j 。cin i 。 //求最大公約數(shù)的函數(shù)void main(){int i,j,x,y。}程序運(yùn)行輸出:請(qǐng)輸入一個(gè)整數(shù):11511151是質(zhì)數(shù).310 編寫函數(shù)求兩個(gè)整數(shù)的最大公約數(shù)和最小公倍數(shù)。}}if (flag)return 1。 j++){if(i%j == 0){flag = 0。for (j = 2。flag = 1。elsecout i 不是質(zhì)數(shù). endl。cin i。 //判一個(gè)數(shù)是否是質(zhì)數(shù)的函數(shù)void main(){int i。解: 源程序見實(shí)驗(yàn)指導(dǎo)部分實(shí)驗(yàn)三39 編寫函數(shù)判斷一個(gè)數(shù)是否是質(zhì)數(shù),在主程序中實(shí)現(xiàn)輸入、輸出。}程序運(yùn)行輸出:Enter two numbers.Number one:8Number two:2Answer: 438 編寫函數(shù)把華氏溫度轉(zhuǎn)換為攝氏溫度,公式為:C = (F 32) * 5/9。t divide by zero!。if (answer 1)cout Answer: answer。cin two。cin one。short int answer。typedef unsigned long int ULONG。elsereturn a/b。在主程序中實(shí)現(xiàn)輸入輸出。 36 重載函數(shù)時(shí)通過什么來區(qū)分?解: 重載的函數(shù)的函數(shù)名是相同的,但它們的參數(shù)的個(gè)數(shù)和數(shù)據(jù)類型不同,編譯器根據(jù)實(shí)參和形參的類型及個(gè)數(shù)的最佳匹配,自動(dòng)確定調(diào)用哪一個(gè)函數(shù)。這樣形參就成為實(shí)參的一個(gè)別名,對(duì)形參的任何操作也就直接作用于實(shí)參。這一過程是參數(shù)值的單向傳遞過程,一旦形參獲得了值便與實(shí)參脫離關(guān)系,此后無論形參發(fā)生了怎樣的改變,都不會(huì)影響到實(shí)參。}程序運(yùn)行輸出:intOne: 5rSomeRef: 5intOne: 8intTwo: 8rSomeRef: 833 比較值調(diào)用和引用調(diào)用的相同點(diǎn)與不同點(diǎn)。cout rSomeRef:\t rSomeRef endl。 // not what you think!cout \nintOne:\t\t intOne endl。int intTwo = 8。cout intOne:\t\t intOne endl。rSomeRef = intOne。源程序:include int main(){int intOne。按如下形式聲明:類型標(biāo)識(shí)符 被調(diào)函數(shù)名 (含類型說明的形參表)。一個(gè)函數(shù)很可能既調(diào)用別的函數(shù)又被另外的函數(shù)調(diào)用,這樣它可能在某一個(gè)調(diào)用與被調(diào)用關(guān)系中充當(dāng)主調(diào)函數(shù),而在另一個(gè)調(diào)用與被調(diào)用關(guān)系中充當(dāng)被調(diào)函數(shù)。C和C++語言中的子程序就體現(xiàn)為函數(shù)。cout d = d endl。cout d = d endl。cout i = i endl。cout d = d endl。 void main(){int i。} 程序運(yùn)行輸出:請(qǐng)猜這個(gè)數(shù)的值為多少?(0~~100):50你猜的值太大了!請(qǐng)猜這個(gè)數(shù)的值為多少?(0~~100):25你猜的值太大了! 請(qǐng)猜這個(gè)數(shù)的值為多少?(0~~100):10你猜的值太小了!請(qǐng)猜這個(gè)數(shù)的值為多少?(0~~100):15你猜的值太小了!請(qǐng)猜這個(gè)數(shù)的值為多少?(0~~100):18你猜對(duì)了! 235 定義枚舉類型weekday,包括Sunday到Saturday七個(gè)元素在程序中定義weekday類型的變量,對(duì)其賦值,定義整型變量,看看能否對(duì)其賦weekday類型的值。elsecout 你猜對(duì)了! endl。if (n m)cout 你猜的值太小了! endl。do{cout 請(qǐng)猜這個(gè)數(shù)的值為多少?(0~~100):。}}//使用do…while語句include void main() {int n = 18。else if (n m)cout 你猜的值太大了! endl。cin m。int m = 0。分別使用while、do…while語句實(shí)現(xiàn)循環(huán)。解: Break使程序從循環(huán)體和switch語句內(nèi)跳出,繼續(xù)執(zhí)行邏輯上的下一條語句,不能用在別處;continue 語句結(jié)束本次循環(huán),接著開始判斷決定是否繼續(xù)執(zhí)行下一次循環(huán); 233 定義一個(gè)表示時(shí)間的結(jié)構(gòu)體,可以精確表示年、月、日、小時(shí)、分、秒;提示用戶輸入年、月、日、小時(shí)、分、秒的值,然后完整地顯示出來。}}if (flag)cout i 是質(zhì)數(shù). endl。 j++){if(i%j == 0){flag = 0。for (j = 2。 i++){flag = 1。for(i = 2。}while(i = 100)。if (flag)cout i 是質(zhì)數(shù). endl。}j++。do{if(i%j == 0){flag = 0。k = sqrt(i)。i = 2。i++。}j++。while (j = k){if(i%j == 0){flag = 0。k = sqrt(i)。i = 2。分別使用while,dowhile,for循環(huán)語句實(shí)現(xiàn)。default:。:exit(0)。case 39。:cout 數(shù)據(jù)已經(jīng)排序. endl。case 39。:cout 數(shù)據(jù)已經(jīng)刪除. endl。case 39。:cout 數(shù)據(jù)已經(jīng)增加. endl。switch(toupper(choice)){case 39。while(1){cout Menu: A(dd) D(elete) S(ort) Q(uit), Select one:。要求使用Switch語句。}}程序運(yùn)行輸出:Menu: A(dd) D(elete) S(ort) Q(uit), Select one:a數(shù)據(jù)已經(jīng)增加. Menu: A(dd) D(elete) S(ort) Q(uit), Select one:d數(shù)據(jù)已經(jīng)刪除. Menu: A(dd) D(elete) S(ort) Q(uit), Select one:s數(shù)據(jù)已經(jīng)排序. Menu: A(dd) D(elete) S(ort) Q(uit), Select one:q (2)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的菜單程序,運(yùn)行時(shí)顯示Menu: A(dd) D(elete) S(ort) Q(uit), Select one:提示用戶輸入,A表示增加,D表示刪除,S表示排序,Q表示退出,輸入為A、D、S時(shí)分別提示數(shù)據(jù)已經(jīng)增加、刪除、排序。Q39。continue。S39。continue。D39。continue。A39。choice = toupper(c)。while(1){cout Menu: A(dd) D(elete) S(ort) Q(uit), Select one:。要求使用if … else語句進(jìn)行判斷,用break、continue控制程序流程。}} }程序運(yùn)行輸出:你考試考了多少分?(0~100):85你的成績(jī)?yōu)榱迹?30 (1)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的菜單程序,運(yùn)行時(shí)顯示Menu: A(dd) D(elete) S(ort) Q(uit), Select one:提示用戶輸入,A表示增加,D表示刪除,S表示排序,Q表示退出,輸入為A、D、S時(shí)分別提示數(shù)據(jù)已經(jīng)增加、刪除、排序。break。break。break。else{i = score/10。cin score。規(guī)則如下:解: include void main(){int i,score。或:現(xiàn)在正在下雨嗎?(Yes or No):y現(xiàn)在正在下雨。break。N39。break。Y39。cin flag。;否則繼續(xù)提問現(xiàn)在正在下雨嗎?解: 源程序:include include void main(){char flag。若輸入為Y,顯示現(xiàn)在正在下雨。 b | c4. a | b amp。 6 92. ! ( 47 )3. ! ( 3 5) || (6 2 )解: 1. true2. false3. true226 若a = 1,b = 2,c = 3,下列各式的結(jié)果是什么?1. a | b c2. a ^ b amp。225 寫出下列表達(dá)式的值:1. 2 3 amp。s print it againI am 41 years oldYou are 41 years old223 什么叫常量?什么叫變量?解: 所謂常量是指在程序運(yùn)行的整個(gè)過程中其值始終不可改變的量,除了用文字表示常量外,也可以為常量命名,這就是符號(hào)常量;在程序的執(zhí)行過程中其值可以變化的量稱為變量,變量是需要用名字來標(biāo)識(shí)的。return 0。cout I am: myAge years old.\n。cout Let39。cout I am: myAge++ years old.\n。cout You are: yourAge years old\n。 // prefix incrementcout One year passes...\n。myAge++。cout I am: myAge years old.\n。include int main(){int myAge = 39。}解: 程序運(yùn)行輸出:Difference is: 50Now difference is: 4294967246注意,第二行的輸出并非 50,注意x、y、z的數(shù)據(jù)類型。cout \nNow difference is: x endl。cout Difference is: x。unsigned int z = 50。abcdefghijklmnopqrstuvwxyz|~s221 運(yùn)行下面的程序,觀察其輸出,與你的設(shè)想是否相同?include int main(){unsigned int x。()*+,./0123456789:。return 0。 i128。}程序運(yùn)行輸出:The size of an int is: 4 bytes.The size of a short int is: 2 bytes.The size of a long int is: 4 bytes.The size of a char is: 1 bytes.The size of a float is: 4 bytes.The size of a double is: 8 bytes.220 打印ASCII碼為32~127的字符。cout The size of a double is:\t sizeof(double) bytes.\n。cout The size of a char is:\t\t sizeof(char) bytes.\n。cout The size of a short int is:\t sizeof(short) bytes.\n。編程顯示你使用的計(jì)算機(jī)中的各種數(shù)據(jù)類型的字節(jié)數(shù)。return 0。cin i。解: 源程序:include int main(){int i。 /* 輸出結(jié)果 */return 0。 // 給i賦值j = 20。int j。 /* 輸出結(jié)果 */return 0。 /* 給i賦值j = 20。217 修改下面這個(gè)程序中的錯(cuò)誤,改正后它的運(yùn)行結(jié)果是什么?include void main()int iint j。解: if (x y)x = y。局部變量,