(完整版)C習(xí)題答案.._第1頁
(完整版)C習(xí)題答案.._第2頁
(完整版)C習(xí)題答案.._第3頁
(完整版)C習(xí)題答案.._第4頁
(完整版)C習(xí)題答案.._第5頁
已閱讀5頁,還剩102頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、4- 2 編寫一個程序,要求從鍵盤上輸入兩個整數(shù),并輸出這兩個數(shù)中的大數(shù)。4- 3編寫一個程序,實現(xiàn)根據(jù)輸入的 x值,可求出y的值,并輸出x和y的值。計算y值的數(shù)學(xué)公式為:y= 1.5x+7.5 x<=2.59.32x-34.2 x>2.54- 4設(shè)計一個程序,輸入實行變量 x和y的值。若x>y,則輸出x-y的值;否則輸出y-x的值4- 5 設(shè)計一個程序,求出下列一元二次方程的根:axA2+bx+c=0系數(shù)a、b、c的值從鍵盤上輸入。求方程根的計算公式為:s=(-b+ 根號( bA2-4ac )/2a當(dāng)平方根小于0時,輸出“ No solutons! ” ;否則,輸出 x的兩

2、個根。4- 6設(shè)計一個程序,將從鍵盤上輸入的百分制成績轉(zhuǎn)換成對應(yīng)的五分制成績并輸出。90分以上為A,8089分為B,7079為C,6069為D,60分以下為E。分別用條件語句和開關(guān)語句實現(xiàn)。4- 7 從鍵盤輸入 10個實數(shù),并求出這 10個數(shù)之和及平均值。用循環(huán)語句實現(xiàn),寫出完整的程序。4- 8從鍵盤輸入一個整數(shù)n的值,按下式求出y的值,并輸出n和y的值(y用實數(shù)表示):y=1!+2!+3!+n!4- 9 設(shè)計一個程序,輸出所有的水仙花數(shù)。所謂水仙化數(shù)是一個三為數(shù),其各位數(shù)字的立方和等于該數(shù)本身。列如:153=1A3+5A3+3A3因此 153是一個水仙化數(shù)。4- 10 設(shè)計一個程序,求出 1

3、00200之間的所有素數(shù)。4-11 用循環(huán)語句實現(xiàn)輸出如下的圖形:*4-12 設(shè)計一個程序,按以下公式求出數(shù)列的20項并輸出。計算公式為:y=0 n=0;y=1 n=1;y=2 n=2;y=Y(n-1)+Y(n-2)+Y(n-3) n>24-13 設(shè)計一個程序,輸入一個四位數(shù)(整數(shù),求出各位數(shù)之和。4-14 從鍵盤輸入若干個實數(shù),以輸入 0為結(jié)束。設(shè)計一個程序,分別統(tǒng)計出正數(shù)的個數(shù)和負(fù)數(shù)的個數(shù)。并求出正數(shù)之和、負(fù)數(shù)之和及 總的平均值。4-15 設(shè)計一個程序,輸入一個四位整數(shù)。將各位數(shù)字分開,并按其反序輸出。列如:輸入1234,則輸出 4321,要求必須用循環(huán)語句實現(xiàn)。4-16設(shè)計一個程序

4、,求出滿足以下條件的最小的n值和s值:s=1+2+3+.+n,且 x>=6004-17 求pi/2的近似值的公式為:pi/2=2/1*2/3*4/3*4/5*2n/(2n-1)*2n/(2n+1)其中,n=1、2、3. 設(shè)計一個程序,求出當(dāng)n=100是pi的值4-18 求出1599中能被 3整除,且至少有一位數(shù)字為 5的所有整數(shù)。如 15、 51、 513均是滿足條件的整數(shù)。4- 19求滿足以下條件的三為數(shù)n,它除以11所得的商等于n的各位數(shù)字的平方和,且其中至少有兩位數(shù)字相同。列如,131除以11的商為 11,各位數(shù)字的平方和為 11,所以它是滿足條件的三位數(shù)。5- 2設(shè)計一程序,計算

5、組合數(shù):C ( m,r )= m!/(r!*(m-r)!), 其中m,r為正整數(shù),且 m>r.分別求出C(4,2).C(6,4).C(8,7)的組合數(shù)。求階乘和組合數(shù)須用函數(shù)來實現(xiàn)。5- 3 設(shè)計一個程序,輸入一個十進(jìn)制整數(shù),輸出相應(yīng)的十六進(jìn)制數(shù)。設(shè)計一個函數(shù)實現(xiàn)數(shù)制轉(zhuǎn)換。5- 4 設(shè)計一個程序,求出 5100 之間的所有素數(shù),要求每行輸出 5個素數(shù)。判斷一個整數(shù)是否為素數(shù)用一個函數(shù)來實現(xiàn)。5- 5 設(shè)計一個程序,輸入兩個整數(shù),求出這兩個整數(shù)的最小公倍數(shù)。求兩個數(shù)的最小公倍數(shù)用一個函數(shù)來實現(xiàn)。5- 6 設(shè)計一個程序,輸入兩個整數(shù),求出這兩個整數(shù)的最大公約數(shù)。求兩個數(shù)的最大公約數(shù)用一個函數(shù)

6、來實現(xiàn)。5- 7 設(shè)計一個程序,通過重載求兩個數(shù)中大數(shù)的函數(shù) max(x,y) ,分別實現(xiàn)求兩個實數(shù)和兩個整數(shù)的大數(shù)。5- 8 設(shè)計一個程序 , 用內(nèi)聯(lián)函數(shù)實現(xiàn)求出三個實數(shù)中的最大數(shù),并輸出最大數(shù)。5- 9 定義一個求 n! 的函數(shù), n 的缺省值為 10。5- 10 設(shè)計一參數(shù)數(shù)目可變的函數(shù),第一個參數(shù) n 為參數(shù)的個數(shù)。求出這 n 個實蠶之和并輸出。5-11設(shè)計一參數(shù)數(shù)目可變的函數(shù),第一個參數(shù)n為參數(shù)的個數(shù)。調(diào)用該函數(shù)時,若n=3,則求出后三個實參之積并返回該值;若 n=則求出后四個實參的平均值并返回該值5-12 用遞歸函數(shù)實現(xiàn) Fibonnaci 數(shù)列的前 n 項, n 作為函數(shù)的參數(shù)5

7、-13當(dāng)x>1時,Hermite多項式定義為:H(x)=1 n=0 ,2x n=1 ,.,當(dāng)輸入實數(shù)x和整數(shù)n后,求出Hermite多項式的前n項的值。分別用遞歸函數(shù)和非遞歸函數(shù)來實現(xiàn)。5-14阿克曼函數(shù)定義如下: .,其中m n為正整數(shù),設(shè)計一個程序,分別求出Acm (5,3)的值5-15 設(shè)計一個程序, 要求輸入一個整數(shù), 并能逐位正序和反序輸出, 如輸入一個整數(shù) 3456,則輸出 3456和6543,分別設(shè)計兩個函數(shù), 一個實現(xiàn)正序輸出,另一個實現(xiàn)反序輸出5-16 設(shè)計一個程序,將求兩個實數(shù)的最大值函數(shù)放在頭文件 mufun.h 中,在源程序文件 mypro.cpp 中包含該頭文件

8、,并實現(xiàn)輸入三個 實數(shù),求出最大值5-17設(shè)計一個程序,定義帶參數(shù)的宏MAX(A,B)和MIN(A,B),分別求出兩個數(shù)中的大數(shù)和小數(shù),在主函數(shù)中輸入三個數(shù),并求出這三個數(shù)中的最大數(shù)和最小數(shù)5-18 已知三角形的三條邊 a,b,c ,則三角形的面積為: area=sqrts(s-a)(s-b)(s-c) 求出其中 s = (a+b+c) /2 。編寫程序,分別用帶 參數(shù)的宏和函數(shù)求三角形的的面積5- 19 設(shè)計一個程序,使用條件編譯輸出調(diào)試信息6- 1 讀入一組整數(shù)到一維數(shù)組中,設(shè)計一程序,找出其中最大的偶數(shù)和最大的奇數(shù)(若設(shè)有奇數(shù)時,輸出“沒有奇數(shù)!“)并輸入6- 2 輸入一組非 0 整數(shù)(

9、以輸入 0 作為輸入結(jié)束標(biāo)志)到一維數(shù)組中,設(shè)計一程序,求出這一組數(shù)的平均數(shù),并分別統(tǒng)計出這正數(shù)和 負(fù)數(shù)的個數(shù)6- 3 輸入 10個數(shù)到一維數(shù)組中,按升序排序后輸出。分別用 3個函數(shù)實現(xiàn)數(shù)據(jù)的輸入,排序和輸出6- 4輸入N個數(shù)到一維數(shù)組中,求均方差:D=其中 M=6- 5 設(shè)計一程序,求一個 4*4 距陣對角線元素和6- 6 先輸入一個 4*4 的距陣,轉(zhuǎn)置后輸出結(jié)果,6- 7用一個2維數(shù)組float cla502來存放一個班級的2門課程(C+和計算機應(yīng)用基礎(chǔ))的成績6- 8 用 cin.getline()將一個字符串出入到字符數(shù)組 S(char S200)中,刪除字符串中的所有空格后輸出6-

10、 9 用 cin.getline()將一個字符串出入到字符數(shù)組中,按反序輸出6-10 設(shè)計一個函數(shù)int strlen(char s)求出字符串S中包含的字符個數(shù),并作為函數(shù)的返回值6-11 設(shè)計一個函數(shù)void strcpy(char a,char b),將b中的字符串拷貝到數(shù)組 a中6-12 設(shè)計一個函數(shù)void strcat(char a,charb)將 b 中的字符串拼接到數(shù)組 a 中的字符串的后面,構(gòu)成一個字符串6-13 用篩選法求出2 到 200之間的所有的素數(shù)7- 1 定義描述一個人出生日期的結(jié)構(gòu)體類型變量,包括年,月,日7- 2 定義描述通訊錄的結(jié)構(gòu)體類型變量,包括姓名,地址,

11、電話號碼和郵編7- 5 為全班同學(xué)建立一個通訊錄(結(jié)構(gòu)體數(shù)組) ,完成數(shù)據(jù)的輸入和輸出7- 6 定義描述復(fù)數(shù)的結(jié)構(gòu)體類型變量,并實現(xiàn)復(fù)數(shù)的輸入和輸出。設(shè)計三個函數(shù)分別完成復(fù)數(shù)的加法,減法和乘法運算7- 7 定義描述三維坐標(biāo)點( x,y,z )的結(jié)構(gòu)體類型變量,完成坐標(biāo)點的輸入 / 輸出,并求兩左邊點之間的距離7- 8 一個元素包括:姓名,學(xué)號,C+成績,英語成績,數(shù)學(xué)成績和這三門功課的平均成績。設(shè)計四個函數(shù):全班成績的輸入,求出每個同學(xué)的平均成績,按平均成績的升序排序,輸出全班成績表7- 9 定義一個描述一周日程的枚舉類型,完成這種枚舉類型變量的輸入和輸出7- 10 定義一個描述三種顏色的每舉

12、類型,輸出這三種顏色的全排列結(jié)果8- 2 用指針作為函數(shù)的參數(shù) ,設(shè)計一個實現(xiàn)兩個參數(shù)交換的函數(shù). 輸入三個實數(shù) ,按升序排列后輸出 .8- 3 定義一個而維的字符串?dāng)?shù)組 ,輸入若干個字符串 , 按升序排列后輸出 ,要求設(shè)計一個通用的排列函數(shù) ,輸入?yún)?shù)作為字符串?dāng)?shù)組 和要排列的字符串的個數(shù) .8- 4 設(shè)計一個通用的插入排列函數(shù) , 參數(shù)為指向?qū)崝?shù)的指針 (指向一個已經(jīng)排好序的數(shù)組 )和一個實數(shù) , 將該實數(shù)插入到已經(jīng)排好序的數(shù) 組中.主函數(shù)完成輸入若干個實數(shù) ,沒輸入一個實數(shù) , 調(diào)用一次插入排序的函數(shù)完成數(shù)據(jù)的排序 , 最后輸出已經(jīng)排好的數(shù)據(jù) .8- 5 設(shè)計一個函數(shù) ,求字符串的長度

13、(指向字符串的指針作為函數(shù)的參數(shù)). 在主函數(shù)中輸入一個字符串 , 并輸出該字符串及其長度 .8- 6 設(shè)計一個函數(shù) ,將一個字符串并接到一個字符串的尾部 , 并接后構(gòu)成一個新的字符串 , 主函數(shù)完成輸入該字符串 ,輸出該字符串和并 接后的 新的字符串的功能 .8- 7 設(shè)計一個函數(shù) ,將一個字符串拷貝到另一個參數(shù)所指向的字符樹組中.主函數(shù)完成輸入一個字符串 , 輸出拷貝后的字符串的功能 .8- 8 輸入一個二維數(shù)組 A66. 設(shè)計一個函數(shù) ,用指向一維數(shù)組的指針變量和二維數(shù)組的行數(shù)作為函數(shù)的參數(shù) , 求出平均值 ,最大元素 值,和最小元素值 , 并輸出.8- 9 設(shè)計一個用矩形法求積分的通用

14、函數(shù) ,被積函數(shù)的指針 ,積分的上限 , 積分的下限和積分區(qū)間的等分?jǐn)?shù)作為函數(shù)的參數(shù) .分別求出下 列定積分的值 ;()8-10定義一個指向字符串的指針數(shù)組,用一個函數(shù)完成N個不等長字符串的輸入,-根據(jù)實際輸入的字符串長度用NEV運算符分配存儲空間,依次使指針數(shù)組中的元素指向每一個輸入的字符串 ,設(shè)計一個完成 N 個字符串排序的函數(shù) ,在主函數(shù)中實現(xiàn)將排序后的字符串輸 出.8-11輸入一個字符串,串內(nèi)有數(shù)字和非數(shù)字字符.例如ABC2345345.將其中連續(xù)的數(shù)字作為一個整數(shù)依次存放到另一個整數(shù)數(shù)組B 中8-12 建立一個無序鏈表 , 沒一個節(jié)點包括 : 學(xué)號 , 姓名 , 年齡 . 由一個函數(shù)

15、完成建立鏈表工作 , 另一個函數(shù)完成輸出鏈表上各結(jié)點 值8-14 建立一個有序鏈表 , 每一個節(jié)點包括 : 學(xué)號 , 姓名 ,.求出總分最高和最低的同學(xué)并輸出8- 15 建立一條無序鏈表 , 用一個函數(shù)實現(xiàn)將這條鏈表構(gòu)成一條新的逆序鏈表 , 即將鏈表頭當(dāng)鏈表尾 , 鏈表尾當(dāng)鏈表頭 , 輸出這兩條鏈表 上各個節(jié)點的植9- 1 定義一個描述復(fù)數(shù)的類,數(shù)據(jù)成員包括實部和虛部;成員函數(shù)包括:輸出復(fù)數(shù),置實部,置虛部。9- 2定義一個描述學(xué)生基本情況的類,數(shù)據(jù)成員包括姓名,學(xué)號,數(shù)學(xué),英語,物理和C+成績,成員函數(shù)包括輸出數(shù)據(jù),置姓名和學(xué)號,置四們課的成績和平均成績。9- 4三維坐標(biāo)中的一條直線的兩端點

16、的坐標(biāo)(x1,y1,z1)和(x2,y2,z2)來描述。定義一個類,實現(xiàn)坐標(biāo)數(shù)據(jù)的設(shè)置,輸出端點的坐標(biāo)和直線的長度。構(gòu)成一個完整的程序,完成測試工作。10- 2 定義一個描述復(fù)數(shù)的類,數(shù)據(jù)成員包括實部和虛部;成員函數(shù)包括輸出復(fù)數(shù)以及構(gòu)造函數(shù)完成數(shù)據(jù)的初始化。10- 3定義一個描述學(xué)生基本情況的類,數(shù)據(jù)成員包括姓名,學(xué)號,數(shù)學(xué),英語,物理和C+成績;成員函數(shù)包括輸出數(shù)據(jù),構(gòu)造函數(shù)可完成所有數(shù)據(jù)的初始化,修改每一個數(shù)據(jù)成員的函數(shù),求出總成績和平均成績的函數(shù)。11- 1 把定義直角坐標(biāo)系上的一個點的類作為基類,派生出描述一條直線的類, 再派生出三角形類。 要求成員函數(shù)能求出兩點間的距離、三角形的周長

17、和面積等。11- 7 設(shè)計一個大學(xué)的類系統(tǒng), 大學(xué)中有學(xué)生、 教師、干部和工人。 學(xué)生的任務(wù)是學(xué)習(xí); 教師的任務(wù)是上課和科研; 干部的任務(wù)是管理; 工人的任務(wù)是定額生產(chǎn)產(chǎn)品。提取共性作為基類,并派生出滿足要求的各個類及每一個類上的必要操作。11- 8 設(shè)計一個描述兒童、成人和老人的類系統(tǒng),兒童分為學(xué)齡前和學(xué)齡期兒童,成人有工作,老人已經(jīng)退休。提取共性作為類基,并 派生出滿足要求的各個類及每一個類上的必要操作。12- 7 建立一條雙向無敘鏈表,節(jié)點數(shù)據(jù)包括:姓名、地址和工資。12- 8 建立一條雙向有序鏈表,節(jié)點數(shù)據(jù)包括:姓名、地址和工資。按工資從小到大的順序排列。13- 5定義一個復(fù)數(shù)類,通過

18、重載運算符:=、+=、- =、+、-、*、/、=、!=,直接實現(xiàn)兩個復(fù)數(shù)之間的各種運算。編寫一個完整 的程序13- 6定義一個學(xué)生類,數(shù)據(jù)成員包括:姓名,學(xué)號, C+數(shù)學(xué)和物理的成績。重載運算符“ <<'和“>>”,實現(xiàn)學(xué)生類對象的直接 輸入和輸出。增加轉(zhuǎn)換函數(shù),實現(xiàn)姓名和總成績的轉(zhuǎn)換設(shè)計一個程序,驗證成員函數(shù)和重載運算符的正確性。13-7 定義描述平面上一個帶內(nèi)的類 point ,重載“ +”和“ - ”運算符,并區(qū)分這種運算符的前置和后置運算。構(gòu)成一個完整的程序。13-8 定義一個指向字符串的指針數(shù)組,重載下標(biāo)運算符,實現(xiàn)下標(biāo)是否出界的檢查。13-9 通過重

19、載函數(shù)調(diào)用運算符,完成三維數(shù)組小標(biāo)的合法性檢查。三維數(shù)組的類型可為整性或?qū)嵭汀?3-10 完善字符串類,增加以下運算符的重載:+=、-=、=、! =。在主函數(shù)中側(cè)重檢測重載運算符的正確性。第4章4-2#include <iostream.h>void main()int x,y,t;cout<<" 請輸入兩個整數(shù): "cin>>x;cin>>y;if(x>=y)t=x;else t=y;cout<<t<<'n'4-3#include <iostream.h>void m

20、ain()float x,y;cout<<" 請輸入一個實數(shù): "cin>>x;if(x<=2.5)y=1.5*x+7.5;else y=9.32*x-34.2;cout<<x<<'t'<<y<<'n'4-4#include <iostream.h>void main()float x,y;cout<<" 請輸入兩個實數(shù): "cin>>x;cin>>y;if(x>y)cout<<x

21、-y<<'n'else cout<<y-x<<'n'4-5#include <iostream.h>#include <math.h>void main()float a,b,c,delta,x1,x2;cout<<" 請輸入方程的三個系數(shù) a,b,c: "cin>>a;cin>>b;cin>>c;delta=b*b-4*a*c;if(delta>=0)delta=sqrt(delta);if(delta>0)x1=(-b+

22、delta)/2/a;x2=(-b-delta)/2/a; cout<<" 方程有兩個不等實根: " cout<<"x1="<<x1<<'t'<<"x2="<<x2<<'n'else cout<<" 方程有兩個相等實根: " cout<<"x1=x2="<<(-b)/2/a<<'n'else cout<<&

23、quot;No solutions!n"4-6#include <iostream.h>void main()int s;while(1)cout<<" 請輸入百分制分?jǐn)?shù): "cin>>s;if(s<=0)break;else if(s>=90)cout<<" 五分制分?jǐn)?shù)為 An"else if(s>=80)cout<<" 五分制分?jǐn)?shù)為 Bn"else if(s>=70)cout<<" 五分制分?jǐn)?shù)為 Cn"el

24、se if(s>=60)cout<<" 五分制分?jǐn)?shù)為 Dn" else cout<<" 五分制分?jǐn)?shù)為 En"用開關(guān)語句實現(xiàn),程序如下:#include <iostream.h>void main()int s;while(1)cout<<" 請輸入百分制分?jǐn)?shù): cin>>s;if(s<=0)break;switch(s/10)case 10:An"break; Bn"break; Cn"break; Dn"break;En"

25、break;case 9:cout<<" 五分制分?jǐn)?shù)為case 8:cout<<" 五分制分?jǐn)?shù)為case 7:cout<<" 五分制分?jǐn)?shù)為case 6:cout<<" 五分制分?jǐn)?shù)為 default:cout<<" 五分制分?jǐn)?shù)為 4-7#include<iostream.h>void main()int i;float a,avg,sum=0; for(i=1;i<=10;+i) cout<<" 輸入第 "<<i<<

26、;" 個數(shù) :"cin>>a;cout<<'n'sum+=a; cout<<"10 個數(shù)的和 sum="<<sum<<'n'cout<<"10 個數(shù)的平均 avg=" <<sum/10<<'n'4-8#include<iostream.h>void main()int i,n,y=0,k,j;cout<<" 請輸入 n 的值 :" cin>&g

27、t;n;cout<<'n' for(i=1;i<=n;+i) k=1;for(j=1;j<=i;+j)k*=j;y+=k;if(n=1)cout<<"1!=1"<<'n'else if(n=2)cout<<"1!+2!=3"<<'n'elsecout<<"n 為 :"<<n<<'n'cout<<"1!+2!+"<< n&l

28、t;< "匸"<<y<<n:4-9#include <iostream.h>void main()int i,j,k;for(i=1;i<=9;i+)for(j=0;j<=9;j+)for(k=0;k<=9;k+) if(i*i*i+j*j*j+k*k*k=i*100+j*10+k) cout<<i<<j<<k<<'n'4-10#include <iostream.h>#include<math.h>void main()int

29、 s,i,j;for(s=101;s<200;s+=2)j=sqrt(s);for(i=3;i<=j;i+)if(s%i=0)break;if(i>=j+1)cout<<s<<'n'4-11#include <iostream.h>#include <iomanip.h>void main()int i,j;for(i=1;i<=3;i+)cout<<setw(i-1)*3)<<" "for(j=1;j<=5;j+)cout<<setw(3)&l

30、t;<"*" cout<<'n'4-12#include<iostream.h>void main()int n,y0,y1=0,y2=1,y3=2; for(n=0;n<=3;n+) switch(n) case 0:cout<<"y1="<<y1<<'n'break; case 1:cout<<"y2="<<y2<<'n'break;case 2:cout<<&qu

31、ot;y3="<<y3<<'n'break; default:for(;n<20;n+) cout<<"y"<<n+1<<"="<<y1+y2+y3<<'n' y0=y1;y1=y2;y2=y3;y3=y1+y2+y0;4-13#include <iostream.h>void main()int i,k,l,j,s=0;cout<<" 請輸入一個四位整數(shù) :" cin>&g

32、t;k;j=k; for(i=1;i<=4;+i) l=j%10; j=j/10; s+=l;/cout<<" 四位整數(shù)為 :"<<'n' cout<<'n'<<k<<" 的各位數(shù)字之和為 :"<<s<<'n'4-#include <iostream.h>void main(void)float a,s1=0,s2=0;int m=0,n=0;cin>>a; while(a) if(a>0

33、) m+;s1+=a; else n+; s2+=a; cin>>a;cout<<"n 正數(shù)有 "<<m<<" 個 " cout<<"n 負(fù)數(shù)有 "<<n<<" 個 "cout<<"n 正數(shù)之和為 :"<<s1;cout<<"n 負(fù)數(shù)之和為 :"<<s2;cout<<"n 總的平均為 :"<<(s1+s

34、2)/(m+n)<<'n' 4-15#include <iostream.h>void main()int s,i,j,n;cout<<" 請輸入一個四位整數(shù): " cin>>s;i=1; while(i<=4) n=s%10; cout<<n; s=s/10;+i; cout<<'n'4-16 #include <iostream.h> void main() int n=1,s=0; while(s<600) s+=n;+n; cout<

35、<"n="<<n<<'t'<<"s="<<s<<'n'4-17#include <iostream.h>void main()double pi=1;int i=1;while(i<=1000)pi=pi*2*(2*i/(2*i-1);+i;cout.setf(ios:scientific,ios:floatfield); cout<<"pi="<<pi<<'n'4-1

36、8#include <iostream.h>#include <iomanip.h>void main()int i=3,j,n,k,s=-1;while(i<=599)if(i%3=0)k=i;while(k)n=k%10;if(n=5)s+; if(s%5=0)cout<<'n' cout<<setw(7)<<i; break;else k=k/10;+i;cout<<'n'4-19#include <iostream.h>#include <iomanip.h&

37、gt;void main()int k,i=101,s=-1,n,a1,a2,a3,t=0,j,m;while(i<=999)k=i/11;a1=i%10;m=i/10;a2=m%10;m=m/10;a3=m%10; n=a1*a1+a2*a2+a3*a3;if(k=n)if(a1=a2|a2=a3|a1=a3)s+;if(s%5=0)cout<<'n'cout<<setw(7)<<i; +i; cout<<'n'第5章5-1#include <iostream.h>int max(int a,i

38、nt b) int maxz; if(a>=b)maxz=a; else maxz=b; return maxz;void main()int i,j,k,m,n; cout<<" 請輸入三個整數(shù): " cin>>i; cin>>j;cin>>k; m=max(i,j); n=max(m,k); cout<<"max="<<n<<'n'5-2#include <iostream.h>#include <stdlib.h>int

39、 jc(int n)int j=1,i;if(n<0)cout<<"n 應(yīng)為正數(shù) !"<<'n' exit(1); if(n=0)return 1; for(i=2;i<=n;i+)j*=i; return j;int zh(int m,int r)int c; if(m<=r) cout<<"m 必須大于 r!"<<'n' exit(1); c=jc(m)/(jc(r)*jc(m-r);return c;void main(void)cout<<

40、;"C(4,2)="<<zh(4,2)<<'n'cout<<"C(6,4)="<<zh(6,4)<<'n'cout<<"C(8,7)="<<zh(8,7)<<'n'5-3#include <iostream.h>int conversion(int x,int a)int i;if(x/16=0)a0=x;return 1;elsei=conversion(x/16,a);ai+=

41、x%16;return i;void main()int i=0,x,a50;cout<<" 請輸入一個正整數(shù) ( 十進(jìn)制 ):"cin>>x;i=conversion(x,a);cout<<" 該數(shù)對應(yīng)的十六進(jìn)制數(shù)是 :"for(int j=0;j<i;j+)cout<<aj;cout<<'n'5-4#include <iostream.h>#include <math.h>int s=0;void ifprimenumber(int x)int

42、i,p=1;for(i=2;i<=x/2;i+)if(x%i=0)p=0; break;if(p!=0)cout<<x<<" " s+;void main()for(int k=5;k<=100;k+) ifprimenumber(k); if(s%5=0)cout<<'n' cout<<'n'法二:#include <iostream.h>#include <math.h>int s=0;void ifprime(int x)int i,p=1; for(i

43、=2;i<sqrt(x);i+) if(x%i=0) p=0; break;if(p!=0) cout<<x<<'t' s+;void main()for(int k=5;k<=100;k+) ifprime(k); if(s%5=0)cout<<'n'/cout<<'n':"<<x*y/b<<'n'"<<g<<'n'5-5#include <iostream.h> void

44、main()cout<<" 請輸入兩個正整數(shù): int x,y;cin>>x>>y;if(x>y)int temp=x;x=y;y=temp;int r,a=x,b=y;while(r=a%b)!=0)a=b;b=r;cout<<x<<" 和 "<<y<<" 的最小公倍數(shù)是5-6#include <iostream.h> int gcd(int,int);void main()int a,b,g,l;cout<<" 請輸入兩個正整數(shù)

45、: " cin>>a>>b;cout<<"a="<<a<<'t'<<"b="<<b<<'n'g=gcd(a,b);cout<<a<<" 和 "<<b<<" 的最大公約數(shù)為: int gcd(int a,int b)int i;for(i=a;i>=1;i-) if(!(a%i)|(b%i) return i;return 1;5-7#i

46、nclude <iostream.h>int max(int x,int y)int z; return z=x>y?x:y;float max(float x,float y)return x>y?x:y;void main()int a,b;float x,y;cout<<" 請輸入兩個整數(shù): " cin>>a>>b;cout<<"max("<<a<<","<<b<<")="<<m

47、ax(a,b)<<'n' cout<<" 請輸入兩個實數(shù): "cin>>x>>y; cout<<"max("<<x<<","<<y<<")="<<max(x,y)<<'n'5-8#include <iostream.h>inline float max(float x,float y,float z)float k; k=x>y?x:y

48、; return k>z?k:z;void main()cout<<" 請輸入三個實數(shù): "float a,b,c; cin>>a>>b>>c; cout<<"max="<<max(a,b,c)<<'n'5-9#include <iostream.h>int v(int n=10);void main()int a;cout<<"1!+2!+10!="<<v()<<h'cou

49、t<<" 請輸入一個正整數(shù): "cin>>a;cout<<"1!+2!+ +"<<a<<"!="<<v(a)<<'n'int v(int n)int k=1;for(int i=1;i<=n;i+)k=k*i;return k;5-10#include <iostream.h>#include <stdarg.h>int sum(int num,int b.)va_list ap;int temp,sum;

50、va_start(ap,b);sum=b;for(int i=1;i<num;i+) temp=va_arg(ap,int); sum=sum+temp;va_end(ap);return sum;void main()int x,y,z,u,v,w;cout<<" 請輸入二個數(shù)據(jù): "cin>>x>>y;cout<<"sum("<<x<<","<<y<<")="<<sum(2,x,y)<<

51、'n' cout<<" 請輸入三個數(shù)據(jù): "cin>>x>>y>>z;cout<<"sum("<<x<<","<<y<<","<<z<<")="<<sum(3,x,y,z)<<'n' cout<<" 請輸入四個數(shù)據(jù): "cin>>x>>y>>z

52、>>u;cout<<"sum("<<x<<","<<y<<","<<z<<","<<u<<")="<<sum(4,x,y,z,u)<<'n' cout<<" 請輸入五個數(shù)據(jù): "cin>>x>>y>>z>>u>>v; cout<<&qu

53、ot;sum("<<x<<","<<y<<","<<z<<","<<u<<","<<v<<")="<<sum(5,x,y,z,u,v)<<'n' cout<<" 請輸入六個數(shù)據(jù): "cin>>x>>y>>z>>u>>v>>w;

54、 cout<<"sum("<<x<<","<<y<<","<<z<<","<<u<<","<<v<<","<<w<<")="<<sum(6,x,y,z,u,v,w)<<'n'5-11#include <iostream.h>#include <s

55、tdarg.h>float v(int num,int b.)va_list ap;int sub,sum,temp;float arv;va_start(ap,b);sub=b;sum=b;if(num=3)for(int i=1;i<num;i+) temp=va_arg(ap,int);sub=sub*temp;return sub;if(num=4)for(int j=1;j<num;j+) temp=va_arg(ap,int); sum=sum+temp;arv=sum/num;return arv;return 0;void main()int x,y,z,k;

56、cout<<" 輸入三個整數(shù): "cin>>x>>y>>z;cout<<" 輸出三個整數(shù)的積: "<<v(3,x,y,z)<<'n' cout<<" 輸入四個整數(shù): "cin>>x>>y>>z>>k;cout.precision(2);cout<<" 輸出這四個整數(shù)的平均值: "<<v(4,x,y,z,k)<<'n

57、' (注:求出的平均值取的是整數(shù)。 )5-12#include <iostream.h>#include <iomanip.h>long int f(int n)if(n=1|n=2)return (1);else return f(n-1)+f(n-2);void main()int i,n;cout<<" 請輸入 n 的值: "cin>>n;for(i=1;i<=n;i+)cout<<setw(10)<<f(i);if(i%4=0)cout<<'n'cout

58、<<'n'5-13遞歸算法:#include <iostream.h>int hermite(float x,int n)if(n=0)return(1);else if(n=1)return(2*x);else if(n>1)return(2*x*hermite(x,n-1)-2*(n-1)*hermite(x,n-2); void main()cout<<" 請輸入實數(shù) x 及正整數(shù) n: "float x;int n;cin>>x>>n; for(int i=0;i<=n;i+)

59、cout<<hermite(x,i)<<'t' if(i+1)%5=0)cout<<'n'cout<<'n'非遞歸算法:#include <iostream.h>float hermite(float x,int n) if(n=0)return(1); if(n=1)return(2*x);float h1=1,h2=2*x,h3;for(int i=2;i<=n;i+) h3=2*x*h2-2*(i-1)*h1; h1=h2; h2=h3; return h3;void mai

60、n()cout<<" 請輸入實數(shù) x 及正整數(shù) n: float x;int n;cin>>x>>n;for(int i=0;i<=n;i+) cout<<hermite(x,i)<<'t' if(i+1)%5=0)cout<<'n' cout<<'n'5-14#include <iostream.h>unsigned long int acm(int m,int n) int c;if(m=0)return n+1; if(n=0)r

61、eturn acm(m-1,1);if(n>0&&m>0) c=acm(m,n-1); return acm(m-1,c);return -1;void main()int m,n;/ cout<<"Acm(5,3)="<<acm(5,3)<<'n'/ cout<<"Acm(4,2)="<<acm(4,2)<<'n'/ cout<<"Acm(5,5)="<<acm(5,5)<

62、<'n'cout<<" 請輸入 m 和 n 的值: " cin>>m>>n; cout<<"Acm("<<m<<","<<n<<")="<<acm(m,n)<<'n'5-15#include <iostream.h>void f1(int n)int j=n%10; if(n/10)f1(n/10); cout<<j;void f2(i

63、nt n) cout<<n%10; if(n/10)f2(n/10);void main()int x; cout<<" 輸入一個整數(shù): " cin>>x;cout<<" 輸入的整數(shù)為: "<<x<<'n' cout<<" 該整數(shù)的反序輸出為: " f2(x);cout<<'n' cout<<" 該整數(shù)的正序輸出為: " f1(x);cout<<'n'

64、;5-16 主程序 mypro.cpp 如下: #include <iostream.h> #include "myfun.h"void main()float x,y,z,t; cout<<" 請輸入三個實數(shù): " cin>>x>>y>>z;t=max(x,y);cout<<" 三個實數(shù)中最大的是: "<<max(t,z)<<'n' 頭文件 myfun.h 如下: float max(float a,float b) re

65、turn a>b?a:b;5-17#include <iostream.h> #define MAX(A,B) A>B?A:B #define MIN(A,B) A>B?B:Avoid main()int x,y,z,s,t,u,v; cout<<" 請輸入三個數(shù): " cin>>x>>y>>z;s=MAX(y,z);u=MAX(x,s); t=MIN(y,z);v=MIN(x,t);cout<<"max("<<x<<","

66、;<<y<<","<<z<<")="<<u<<"n" cout<<"min("<<x<<","<<y<<","<<z<<")="<<v<<"n"5-18 用帶參宏求:#include <iostream.h> #include <math.h

67、>#define area(s,a,b,c) sqrt(s*(s-a)*(s-b)*(s-c)void main()float m,x,y,z;cout<<" 請輸入三角形三條邊的長度: "cin>>x>>y>>z;m=(x+y+z)/2;cout<<" 三角形的面積為: "<<area(m,x,y,z)<<'n'法二:#include <iostream.h>#include <math.h>#define s(a,b,c)

68、 (a+b+c)/2#define area(s,a,b,c) sqrt(s*(s-a)*(s-b)*(s-c)void main()float m,x,y,z,t;cout<<" 請輸入三角形三條邊的長度: "cin>>x>>y>>z;t=s(x,y,z);cout<<" 三角形的面積為: "<<area(t,x,y,z)<<'n'法三:(宏也可復(fù)合)#include <iostream.h>#include <math.h>#d

69、efine s(a,b,c) (a+b+c)/2#define area(s,a,b,c) sqrt(s*(s-a)*(s-b)*(s-c)void main()float x,y,z;cin>>x>>y>>z;cout<<area(s(x,y,z),x,y,z)<<'n'用函數(shù)求:#include <iostream.h>#include <math.h>float area(int a,int b,int c)float s;s=(a+b+c)/2;return(sqrt(s*(s-a)*(

70、s-b)*(s-c);void main()float x,y,z;cout<<" 請輸入三條邊的長度: " cin>>x>>y>>z;cout<<" 三角形的面積為: "<<area(x,y,z)<<'n'5-19#include <iostream.h> #define Aunsigned long int acm(int m,int n)unsigned long int c;if(m=0)return n+1; if(n=0)return acm(m-1,1);if(n>0&&m>0)c=acm(m,n-1);return acm(m-1,c);return -1;void main()int s,t;#ifndef A cout<<"Acm(5,3)="<<acm(5,3)<<'n' cout<<"Acm(4,2)="<&l

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論