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

下載本文檔

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

文檔簡介

4-2編寫一個(gè)程序,要求從鍵盤上輸入兩個(gè)整數(shù),并輸出這兩個(gè)數(shù)中的大數(shù)。4-3編寫一個(gè)程序,實(shí)現(xiàn)根據(jù)輸入的x值,可求出y的值,并輸出x和y的值。計(jì)算y值的數(shù)學(xué)公式為:y={1.5x+7.5x<=2.59.32x-34.2x>2.54-4設(shè)計(jì)一個(gè)程序,輸入實(shí)行變量x和y的值。若x>y,則輸出x-y的值;否則輸出y-x的值4-5設(shè)計(jì)一個(gè)程序,求出下列一元二次方程的根:ax^2+bx+c=0系數(shù)a、b、c的值從鍵盤上輸入。求方程根的計(jì)算公式為:s=(-b+根號(b^2-4ac))/2a當(dāng)平方根小于0時(shí),輸出“Nosolutons!”;否則,輸出x的兩個(gè)根。4-6設(shè)計(jì)一個(gè)程序,將從鍵盤上輸入的百分制成績轉(zhuǎn)換成對應(yīng)的五分制成績并輸出。90分以上為A,80~89分為B,70~79為C,60~69為D,60分以下為E。分別用條件語句和開關(guān)語句實(shí)現(xiàn)。4-7從鍵盤輸入10個(gè)實(shí)數(shù),并求出這10個(gè)數(shù)之和及平均值。用循環(huán)語句實(shí)現(xiàn),寫出完整的程序。4-8從鍵盤輸入一個(gè)整數(shù)n的值,按下式求出y的值,并輸出n和y的值(y用實(shí)數(shù)表示):y=1!+2!+3!+.....n!4-9設(shè)計(jì)一個(gè)程序,輸出所有的水仙花數(shù)。所謂水仙化數(shù)是一個(gè)三為數(shù),其各位數(shù)字的立方和等于該數(shù)本身。列如:153=1^3+5^3+3^3因此153是一個(gè)水仙化數(shù)。4-10設(shè)計(jì)一個(gè)程序,求出100~200之間的所有素?cái)?shù)。4-11用循環(huán)語句實(shí)現(xiàn)輸出如下的圖形:***************4-12設(shè)計(jì)一個(gè)程序,按以下公式求出數(shù)列的20項(xiàng)并輸出。計(jì)算公式為:y=0n=0;y=1n=1;y=2n=2;y=Y(n-1)+Y(n-2)+Y(n-3)n>24-13設(shè)計(jì)一個(gè)程序,輸入一個(gè)四位數(shù)(整數(shù),求出各位數(shù)之和。4-14從鍵盤輸入若干個(gè)實(shí)數(shù),以輸入0為結(jié)束。設(shè)計(jì)一個(gè)程序,分別統(tǒng)計(jì)出正數(shù)的個(gè)數(shù)和負(fù)數(shù)的個(gè)數(shù)。并求出正數(shù)之和、負(fù)數(shù)之和及總的平均值。4-15設(shè)計(jì)一個(gè)程序,輸入一個(gè)四位整數(shù)。將各位數(shù)字分開,并按其反序輸出。列如:輸入1234,則輸出4321,要求必須用循環(huán)語句實(shí)現(xiàn)。4-16設(shè)計(jì)一個(gè)程序,求出滿足以下條件的最小的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è)計(jì)一個(gè)程序,求出當(dāng)n=100是pi的值4-18求出1~599中能被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è)計(jì)一程序,計(jì)算組合數(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ù)來實(shí)現(xiàn)。5-3設(shè)計(jì)一個(gè)程序,輸入一個(gè)十進(jìn)制整數(shù),輸出相應(yīng)的十六進(jìn)制數(shù)。設(shè)計(jì)一個(gè)函數(shù)實(shí)現(xiàn)數(shù)制轉(zhuǎn)換。5-4設(shè)計(jì)一個(gè)程序,求出5~100之間的所有素?cái)?shù),要求每行輸出5個(gè)素?cái)?shù)。判斷一個(gè)整數(shù)是否為素?cái)?shù)用一個(gè)函數(shù)來實(shí)現(xiàn)。5-5設(shè)計(jì)一個(gè)程序,輸入兩個(gè)整數(shù),求出這兩個(gè)整數(shù)的最小公倍數(shù)。求兩個(gè)數(shù)的最小公倍數(shù)用一個(gè)函數(shù)來實(shí)現(xiàn)。5-6設(shè)計(jì)一個(gè)程序,輸入兩個(gè)整數(shù),求出這兩個(gè)整數(shù)的最大公約數(shù)。求兩個(gè)數(shù)的最大公約數(shù)用一個(gè)函數(shù)來實(shí)現(xiàn)。5-7設(shè)計(jì)一個(gè)程序,通過重載求兩個(gè)數(shù)中大數(shù)的函數(shù)max(x,y),分別實(shí)現(xiàn)求兩個(gè)實(shí)數(shù)和兩個(gè)整數(shù)的大數(shù)。5-8設(shè)計(jì)一個(gè)程序,用內(nèi)聯(lián)函數(shù)實(shí)現(xiàn)求出三個(gè)實(shí)數(shù)中的最大數(shù),并輸出最大數(shù)。5-9定義一個(gè)求n!的函數(shù),n的缺省值為10。5-10設(shè)計(jì)一參數(shù)數(shù)目可變的函數(shù),第一個(gè)參數(shù)n為參數(shù)的個(gè)數(shù)。求出這n個(gè)實(shí)蠶之和并輸出。5-11設(shè)計(jì)一參數(shù)數(shù)目可變的函數(shù),第一個(gè)參數(shù)n為參數(shù)的個(gè)數(shù)。調(diào)用該函數(shù)時(shí),若n=3,則求出后三個(gè)實(shí)參之積并返回該值;若n=則求出后四個(gè)實(shí)參的平均值并返回該值5-12用遞歸函數(shù)實(shí)現(xiàn)Fibonnaci數(shù)列的前n項(xiàng),n作為函數(shù)的參數(shù)5-13當(dāng)x>1時(shí),Hermite多項(xiàng)式定義為:H(x)={1n=0,2xn=1,……..,當(dāng)輸入實(shí)數(shù)x和整數(shù)n后,求出Hermite多項(xiàng)式的前n項(xiàng)的值。分別用遞歸函數(shù)和非遞歸函數(shù)來實(shí)現(xiàn)。5-14阿克曼函數(shù)定義如下:………………..,其中m、n為正整數(shù),設(shè)計(jì)一個(gè)程序,分別求出Acm(5,3)的值5-15設(shè)計(jì)一個(gè)程序,要求輸入一個(gè)整數(shù),并能逐位正序和反序輸出,如輸入一個(gè)整數(shù)3456,則輸出3456和6543,分別設(shè)計(jì)兩個(gè)函數(shù),一個(gè)實(shí)現(xiàn)正序輸出,另一個(gè)實(shí)現(xiàn)反序輸出5-16設(shè)計(jì)一個(gè)程序,將求兩個(gè)實(shí)數(shù)的最大值函數(shù)放在頭文件mufun.h中,在源程序文件mypro.cpp中包含該頭文件,并實(shí)現(xiàn)輸入三個(gè)實(shí)數(shù),求出最大值5-17設(shè)計(jì)一個(gè)程序,定義帶參數(shù)的宏MAX(A,B)和MIN(A,B),分別求出兩個(gè)數(shù)中的大數(shù)和小數(shù),在主函數(shù)中輸入三個(gè)數(shù),并求出這三個(gè)數(shù)中的最大數(shù)和最小數(shù)5-18已知三角形的三條邊a,b,c,則三角形的面積為:area=sqrt[s(s-a)(s-b)(s-c)求出其中s=(a+b+c)/2。編寫程序,分別用帶參數(shù)的宏和函數(shù)求三角形的的面積5-19設(shè)計(jì)一個(gè)程序,使用條件編譯輸出調(diào)試信息6-1讀入一組整數(shù)到一維數(shù)組中,設(shè)計(jì)一程序,找出其中最大的偶數(shù)和最大的奇數(shù)(若設(shè)有奇數(shù)時(shí),輸出“沒有奇數(shù)!“)并輸入6-2輸入一組非0整數(shù)(以輸入0作為輸入結(jié)束標(biāo)志)到一維數(shù)組中,設(shè)計(jì)一程序,求出這一組數(shù)的平均數(shù),并分別統(tǒng)計(jì)出這正數(shù)和負(fù)數(shù)的個(gè)數(shù)6-3輸入10個(gè)數(shù)到一維數(shù)組中,按升序排序后輸出。分別用3個(gè)函數(shù)實(shí)現(xiàn)數(shù)據(jù)的輸入,排序和輸出6-4輸入N個(gè)數(shù)到一維數(shù)組中,求均方差:D=其中M=6-5設(shè)計(jì)一程序,求一個(gè)4*4距陣對角線元素和6-6先輸入一個(gè)4*4的距陣,轉(zhuǎn)置后輸出結(jié)果,6-7用一個(gè)2維數(shù)組floatcla[50][2]來存放一個(gè)班級的2門課程(c++和計(jì)算機(jī)應(yīng)用基礎(chǔ))的成績6-8用cin.getline()將一個(gè)字符串出入到字符數(shù)組S(charS[200])中,刪除字符串中的所有空格后輸出6-9用cin.getline()將一個(gè)字符串出入到字符數(shù)組中,按反序輸出6-10設(shè)計(jì)一個(gè)函數(shù)intstrlen(chars[])。求出字符串S中包含的字符個(gè)數(shù),并作為函數(shù)的返回值6-11設(shè)計(jì)一個(gè)函數(shù)voidstrcpy(chara[],charb[]),將b中的字符串拷貝到數(shù)組a中6-12設(shè)計(jì)一個(gè)函數(shù)voidstrcat(chara[],charb[])。將b中的字符串拼接到數(shù)組a中的字符串的后面,構(gòu)成一個(gè)字符串6-13用篩選法求出2到200之間的所有的素?cái)?shù)7-1定義描述一個(gè)人出生日期的結(jié)構(gòu)體類型變量,包括年,月,日7-2定義描述通訊錄的結(jié)構(gòu)體類型變量,包括姓名,地址,電話號碼和郵編7-5為全班同學(xué)建立一個(gè)通訊錄(結(jié)構(gòu)體數(shù)組),完成數(shù)據(jù)的輸入和輸出7-6定義描述復(fù)數(shù)的結(jié)構(gòu)體類型變量,并實(shí)現(xiàn)復(fù)數(shù)的輸入和輸出。設(shè)計(jì)三個(gè)函數(shù)分別完成復(fù)數(shù)的加法,減法和乘法運(yùn)算7-7定義描述三維坐標(biāo)點(diǎn)(x,y,z)的結(jié)構(gòu)體類型變量,完成坐標(biāo)點(diǎn)的輸入/輸出,并求兩左邊點(diǎn)之間的距離7-8一個(gè)元素包括:姓名,學(xué)號,C++成績,英語成績,數(shù)學(xué)成績和這三門功課的平均成績。設(shè)計(jì)四個(gè)函數(shù):全班成績的輸入,求出每個(gè)同學(xué)的平均成績,按平均成績的升序排序,輸出全班成績表7-9定義一個(gè)描述一周日程的枚舉類型,完成這種枚舉類型變量的輸入和輸出7-10定義一個(gè)描述三種顏色的每舉類型,輸出這三種顏色的全排列結(jié)果8-2用指針作為函數(shù)的參數(shù),設(shè)計(jì)一個(gè)實(shí)現(xiàn)兩個(gè)參數(shù)交換的函數(shù).輸入三個(gè)實(shí)數(shù),按升序排列后輸出.8-3定義一個(gè)而維的字符串?dāng)?shù)組,輸入若干個(gè)字符串,按升序排列后輸出,要求設(shè)計(jì)一個(gè)通用的排列函數(shù),輸入?yún)?shù)作為字符串?dāng)?shù)組和要排列的字符串的個(gè)數(shù).8-4設(shè)計(jì)一個(gè)通用的插入排列函數(shù),參數(shù)為指向?qū)崝?shù)的指針(指向一個(gè)已經(jīng)排好序的數(shù)組)和一個(gè)實(shí)數(shù),將該實(shí)數(shù)插入到已經(jīng)排好序的數(shù)組中.主函數(shù)完成輸入若干個(gè)實(shí)數(shù),沒輸入一個(gè)實(shí)數(shù),調(diào)用一次插入排序的函數(shù)完成數(shù)據(jù)的排序,最后輸出已經(jīng)排好的數(shù)據(jù).8-5設(shè)計(jì)一個(gè)函數(shù),求字符串的長度(指向字符串的指針作為函數(shù)的參數(shù)).在主函數(shù)中輸入一個(gè)字符串,并輸出該字符串及其長度.8-6設(shè)計(jì)一個(gè)函數(shù),將一個(gè)字符串并接到一個(gè)字符串的尾部,并接后構(gòu)成一個(gè)新的字符串,主函數(shù)完成輸入該字符串,輸出該字符串和并接后的新的字符串的功能.8-7設(shè)計(jì)一個(gè)函數(shù),將一個(gè)字符串拷貝到另一個(gè)參數(shù)所指向的字符樹組中.主函數(shù)完成輸入一個(gè)字符串,輸出拷貝后的字符串的功能.8-8輸入一個(gè)二維數(shù)組A[6][6].設(shè)計(jì)一個(gè)函數(shù),用指向一維數(shù)組的指針變量和二維數(shù)組的行數(shù)作為函數(shù)的參數(shù),求出平均值,最大元素值,和最小元素值,并輸出.8-9設(shè)計(jì)一個(gè)用矩形法求積分的通用函數(shù),被積函數(shù)的指針,積分的上限,積分的下限和積分區(qū)間的等分?jǐn)?shù)作為函數(shù)的參數(shù).分別求出下列定積分的值;()8-10定義一個(gè)指向字符串的指針數(shù)組,用一個(gè)函數(shù)完成N個(gè)不等長字符串的輸入,-根據(jù)實(shí)際輸入的字符串長度用NEW運(yùn)算符分配存儲空間,依次使指針數(shù)組中的元素指向每一個(gè)輸入的字符串,設(shè)計(jì)一個(gè)完成N個(gè)字符串排序的函數(shù),在主函數(shù)中實(shí)現(xiàn)將排序后的字符串輸出.8-11輸入一個(gè)字符串,串內(nèi)有數(shù)字和非數(shù)字字符.例如ABC2345345.......將其中連續(xù)的數(shù)字作為一個(gè)整數(shù)依次存放到另一個(gè)整數(shù)數(shù)組B中.....8-12建立一個(gè)無序鏈表,沒一個(gè)節(jié)點(diǎn)包括:學(xué)號,姓名,年齡...由一個(gè)函數(shù)完成建立鏈表工作,另一個(gè)函數(shù)完成輸出鏈表上各結(jié)點(diǎn)值......8-14建立一個(gè)有序鏈表,每一個(gè)節(jié)點(diǎn)包括:學(xué)號,姓名,...求出總分最高和最低的同學(xué)并輸出8-15建立一條無序鏈表,用一個(gè)函數(shù)實(shí)現(xiàn)將這條鏈表構(gòu)成一條新的逆序鏈表,即將鏈表頭當(dāng)鏈表尾,鏈表尾當(dāng)鏈表頭,輸出這兩條鏈表上各個(gè)節(jié)點(diǎn)的植9-1定義一個(gè)描述復(fù)數(shù)的類,數(shù)據(jù)成員包括實(shí)部和虛部;成員函數(shù)包括:輸出復(fù)數(shù),置實(shí)部,置虛部。9-2定義一個(gè)描述學(xué)生基本情況的類,數(shù)據(jù)成員包括姓名,學(xué)號,數(shù)學(xué),英語,物理和C++成績,成員函數(shù)包括輸出數(shù)據(jù),置姓名和學(xué)號,置四們課的成績和平均成績。9-4三維坐標(biāo)中的一條直線的兩端點(diǎn)的坐標(biāo)(x1,y1,z1)和(x2,y2,z2)來描述。定義一個(gè)類,實(shí)現(xiàn)坐標(biāo)數(shù)據(jù)的設(shè)置,輸出端點(diǎn)的坐標(biāo)和直線的長度。構(gòu)成一個(gè)完整的程序,完成測試工作。10-2定義一個(gè)描述復(fù)數(shù)的類,數(shù)據(jù)成員包括實(shí)部和虛部;成員函數(shù)包括輸出復(fù)數(shù)以及構(gòu)造函數(shù)完成數(shù)據(jù)的初始化。10-3定義一個(gè)描述學(xué)生基本情況的類,數(shù)據(jù)成員包括姓名,學(xué)號,數(shù)學(xué),英語,物理和C++成績;成員函數(shù)包括輸出數(shù)據(jù),構(gòu)造函數(shù)可完成所有數(shù)據(jù)的初始化,修改每一個(gè)數(shù)據(jù)成員的函數(shù),求出總成績和平均成績的函數(shù)。11-1把定義直角坐標(biāo)系上的一個(gè)點(diǎn)的類作為基類,派生出描述一條直線的類,再派生出三角形類。要求成員函數(shù)能求出兩點(diǎn)間的距離、三角形的周長和面積等。11-7設(shè)計(jì)一個(gè)大學(xué)的類系統(tǒng),大學(xué)中有學(xué)生、教師、干部和工人。學(xué)生的任務(wù)是學(xué)習(xí);教師的任務(wù)是上課和科研;干部的任務(wù)是管理;工人的任務(wù)是定額生產(chǎn)產(chǎn)品。提取共性作為基類,并派生出滿足要求的各個(gè)類及每一個(gè)類上的必要操作。11-8設(shè)計(jì)一個(gè)描述兒童、成人和老人的類系統(tǒng),兒童分為學(xué)齡前和學(xué)齡期兒童,成人有工作,老人已經(jīng)退休。提取共性作為類基,并派生出滿足要求的各個(gè)類及每一個(gè)類上的必要操作。12-7建立一條雙向無敘鏈表,節(jié)點(diǎn)數(shù)據(jù)包括:姓名、地址和工資。12-8建立一條雙向有序鏈表,節(jié)點(diǎn)數(shù)據(jù)包括:姓名、地址和工資。按工資從小到大的順序排列。13-5定義一個(gè)復(fù)數(shù)類,通過重載運(yùn)算符:=、+=、-=、+、-、*、/、==、?。?,直接實(shí)現(xiàn)兩個(gè)復(fù)數(shù)之間的各種運(yùn)算。編寫一個(gè)完整的程序13-6定義一個(gè)學(xué)生類,數(shù)據(jù)成員包括:姓名,學(xué)號,C++、數(shù)學(xué)和物理的成績。重載運(yùn)算符“<<”和“>>”,實(shí)現(xiàn)學(xué)生類對象的直接輸入和輸出。增加轉(zhuǎn)換函數(shù),實(shí)現(xiàn)姓名和總成績的轉(zhuǎn)換設(shè)計(jì)一個(gè)程序,驗(yàn)證成員函數(shù)和重載運(yùn)算符的正確性。13-7定義描述平面上一個(gè)帶內(nèi)的類point,重載“++”和“--”運(yùn)算符,并區(qū)分這種運(yùn)算符的前置和后置運(yùn)算。構(gòu)成一個(gè)完整的程序。13-8定義一個(gè)指向字符串的指針數(shù)組,重載下標(biāo)運(yùn)算符,實(shí)現(xiàn)下標(biāo)是否出界的檢查。13-9通過重載函數(shù)調(diào)用運(yùn)算符,完成三維數(shù)組小標(biāo)的合法性檢查。三維數(shù)組的類型可為整性或?qū)嵭汀?3-10完善字符串類,增加以下運(yùn)算符的重載:+=、-=、==、!=。在主函數(shù)中側(cè)重檢測重載運(yùn)算符的正確性。第4章4-2#include<iostream.h>voidmain(){intx,y,t;cout<<"請輸入兩個(gè)整數(shù):";cin>>x;cin>>y;if(x>=y)t=x;elset=y;cout<<t<<'\n';}4-3#include<iostream.h>voidmain(){floatx,y;cout<<"請輸入一個(gè)實(shí)數(shù):";cin>>x;if(x<=2.5)y=1.5*x+7.5;elsey=9.32*x-34.2;cout<<x<<'\t'<<y<<'\n';}4-4#include<iostream.h>voidmain(){floatx,y;cout<<"請輸入兩個(gè)實(shí)數(shù):";cin>>x;cin>>y;if(x>y)cout<<x-y<<'\n';elsecout<<y-x<<'\n';}4-5#include<iostream.h>#include<math.h>voidmain(){floata,b,c,delta,x1,x2;cout<<"請輸入方程的三個(gè)系數(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+delta)/2/a;x2=(-b-delta)/2/a;cout<<"方程有兩個(gè)不等實(shí)根:";cout<<"x1="<<x1<<'\t'<<"x2="<<x2<<'\n';}else{cout<<"方程有兩個(gè)相等實(shí)根:";cout<<"x1=x2="<<(-b)/2/a<<'\n';}}elsecout<<"Nosolutions!\n";}4-6#include<iostream.h>voidmain(){ints;while(1){cout<<"請輸入百分制分?jǐn)?shù):";cin>>s;if(s<=0)break;elseif(s>=90)cout<<"五分制分?jǐn)?shù)為A\n";elseif(s>=80)cout<<"五分制分?jǐn)?shù)為B\n";elseif(s>=70)cout<<"五分制分?jǐn)?shù)為C\n";elseif(s>=60)cout<<"五分制分?jǐn)?shù)為D\n";elsecout<<"五分制分?jǐn)?shù)為E\n";}}用開關(guān)語句實(shí)現(xiàn),程序如下:#include<iostream.h>voidmain(){ints;while(1){cout<<"請輸入百分制分?jǐn)?shù):";cin>>s;if(s<=0)break;switch(s/10){case10:case9:cout<<"五分制分?jǐn)?shù)為A\n";break;case8:cout<<"五分制分?jǐn)?shù)為B\n";break;case7:cout<<"五分制分?jǐn)?shù)為C\n";break;case6:cout<<"五分制分?jǐn)?shù)為D\n";break;default:cout<<"五分制分?jǐn)?shù)為E\n";break;}}}4-7#include<iostream.h>voidmain(){inti;floata,avg,sum=0;for(i=1;i<=10;++i){cout<<"輸入第"<<i<<"個(gè)數(shù):";cin>>a;cout<<'\n';sum+=a;}cout<<"10個(gè)數(shù)的和sum="<<sum<<'\n';cout<<"10個(gè)數(shù)的平均avg="<<sum/10<<'\n';}4-8#include<iostream.h>voidmain(){inti,n,y=0,k,j;cout<<"請輸入n的值:";cin>>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';elseif(n==2)cout<<"1!+2!=3"<<'\n';else{cout<<"n為:"<<n<<'\n';cout<<"1!+2!+…+"<<n<<"!="<<y<<'\n';}}4-9#include<iostream.h>voidmain(){inti,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>voidmain(){ints,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>voidmain(){inti,j;for(i=1;i<=3;i++){cout<<setw((i-1)*3)<<"";for(j=1;j<=5;j++)cout<<setw(3)<<"*";cout<<'\n';}}4-12#include<iostream.h>voidmain(){intn,y0,y1=0,y2=1,y3=2;for(n=0;n<=3;n++){switch(n){case0:cout<<"y1="<<y1<<'\n';break;case1:cout<<"y2="<<y2<<'\n';break;case2:cout<<"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>voidmain(){inti,k,l,j,s=0;cout<<"請輸入一個(gè)四位整數(shù):";cin>>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-14#include<iostream.h>voidmain(void){floata,s1=0,s2=0;intm=0,n=0;cin>>a;while(a){if(a>0){m++;s1+=a;}else{n++;s2+=a;}cin>>a;}cout<<"\n正數(shù)有"<<m<<"個(gè)";cout<<"\n負(fù)數(shù)有"<<n<<"個(gè)";cout<<"\n正數(shù)之和為:"<<s1;cout<<"\n負(fù)數(shù)之和為:"<<s2;cout<<"\n總的平均為:"<<(s1+s2)/(m+n)<<'\n';}4-15#include<iostream.h>voidmain(){ints,i,j,n;cout<<"請輸入一個(gè)四位整數(shù):";cin>>s;i=1;while(i<=4){n=s%10;cout<<n;s=s/10;++i;}cout<<'\n';}4-16#include<iostream.h>voidmain(){intn=1,s=0;while(s<600){s+=n;++n;}cout<<"n="<<n<<'\t'<<"s="<<s<<'\n';}4-17#include<iostream.h>voidmain(){doublepi=1;inti=1;while(i<=1000){pi=pi*2*(2*i/(2*i-1));++i;}cout.setf(ios::scientific,ios::floatfield);cout<<"pi="<<pi<<'\n';}4-18#include<iostream.h>#include<iomanip.h>voidmain(){inti=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;}elsek=k/10;}}++i;}cout<<'\n';}4-19#include<iostream.h>#include<iomanip.h>voidmain(){intk,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>intmax(inta,intb){intmaxz;if(a>=b)maxz=a;elsemaxz=b;returnmaxz;}voidmain(){inti,j,k,m,n;cout<<"請輸入三個(gè)整數(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>intjc(intn){intj=1,i;if(n<0){cout<<"n應(yīng)為正數(shù)!"<<'\n';exit(1);}if(n==0)return1;for(i=2;i<=n;i++)j*=i;returnj;}intzh(intm,intr){intc;if(m<=r){cout<<"m必須大于r!"<<'\n';exit(1);}c=jc(m)/(jc(r)*jc(m-r));returnc;}voidmain(void){cout<<"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>intconversion(intx,inta[]){inti;if(x/16==0){a[0]=x;return1;}else{i=conversion(x/16,a);a[i++]=x%16;}returni;}voidmain(){inti=0,x,a[50];cout<<"請輸入一個(gè)正整數(shù)(十進(jìn)制):";cin>>x;i=conversion(x,a);cout<<"該數(shù)對應(yīng)的十六進(jìn)制數(shù)是:";for(intj=0;j<i;j++)cout<<a[j];cout<<'\n';}5-4#include<iostream.h>#include<math.h>ints=0;voidifprimenumber(intx){inti,p=1;for(i=2;i<=x/2;i++){if(x%i==0){p=0;break;}}if(p!=0){cout<<x<<"";s++;}}voidmain(){for(intk=5;k<=100;k++){ifprimenumber(k);if(s%5==0)cout<<'\n';}cout<<'\n';}法二:#include<iostream.h>#include<math.h>ints=0;voidifprime(intx){inti,p=1;for(i=2;i<sqrt(x);i++){if(x%i==0){p=0;break;}}if(p!=0){cout<<x<<'\t';s++;}}voidmain(){for(intk=5;k<=100;k++){ifprime(k);if(s%5==0)cout<<'\n';}//cout<<'\n';}5-5#include<iostream.h>voidmain(){cout<<"請輸入兩個(gè)正整數(shù):";intx,y;cin>>x>>y;if(x>y){inttemp=x;x=y;y=temp;}intr,a=x,b=y;while((r=a%b)!=0){a=b;b=r;}cout<<x<<"和"<<y<<"的最小公倍數(shù)是:"<<x*y/b<<'\n';}5-6#include<iostream.h>intgcd(int,int);voidmain(){inta,b,g,l;cout<<"請輸入兩個(gè)正整數(shù):";cin>>a>>b;cout<<"a="<<a<<'\t'<<"b="<<b<<'\n';g=gcd(a,b);cout<<a<<"和"<<b<<"的最大公約數(shù)為:"<<g<<'\n';}intgcd(inta,intb){inti;for(i=a;i>=1;i--)if(!((a%i)||(b%i)))returni;return1;}5-7#include<iostream.h>intmax(intx,inty){intz;returnz=x>y?x:y;}floatmax(floatx,floaty){returnx>y?x:y;}voidmain(){inta,b;floatx,y;cout<<"請輸入兩個(gè)整數(shù):";cin>>a>>b;cout<<"max("<<a<<","<<b<<")="<<max(a,b)<<'\n';cout<<"請輸入兩個(gè)實(shí)數(shù):";cin>>x>>y;cout<<"max("<<x<<","<<y<<")="<<max(x,y)<<'\n';}5-8#include<iostream.h>inlinefloatmax(floatx,floaty,floatz){floatk;k=x>y?x:y;returnk>z?k:z;}voidmain(){cout<<"請輸入三個(gè)實(shí)數(shù):";floata,b,c;cin>>a>>b>>c;cout<<"max="<<max(a,b,c)<<'\n';}5-9#include<iostream.h>intv(intn=10);voidmain(){inta;cout<<"1!+2!+…+10!="<<v()<<'\n';cout<<"請輸入一個(gè)正整數(shù):";cin>>a;cout<<"1!+2!+…+"<<a<<"!="<<v(a)<<'\n';}intv(intn){intk=1;for(inti=1;i<=n;i++)k=k*i;returnk;}5-10#include<iostream.h>#include<stdarg.h>intsum(intnum,intb...){va_listap;inttemp,sum;va_start(ap,b);sum=b;for(inti=1;i<num;i++){temp=va_arg(ap,int);sum=sum+temp;}va_end(ap);returnsum;}voidmain(){intx,y,z,u,v,w;cout<<"請輸入二個(gè)數(shù)據(jù):";cin>>x>>y;cout<<"sum("<<x<<","<<y<<")="<<sum(2,x,y)<<'\n';cout<<"請輸入三個(gè)數(shù)據(jù):";cin>>x>>y>>z;cout<<"sum("<<x<<","<<y<<","<<z<<")="<<sum(3,x,y,z)<<'\n';cout<<"請輸入四個(gè)數(shù)據(jù):";cin>>x>>y>>z>>u;cout<<"sum("<<x<<","<<y<<","<<z<<","<<u<<")="<<sum(4,x,y,z,u)<<'\n';cout<<"請輸入五個(gè)數(shù)據(jù):";cin>>x>>y>>z>>u>>v;cout<<"sum("<<x<<","<<y<<","<<z<<","<<u<<","<<v<<")="<<sum(5,x,y,z,u,v)<<'\n';cout<<"請輸入六個(gè)數(shù)據(jù):";cin>>x>>y>>z>>u>>v>>w;cout<<"sum("<<x<<","<<y<<","<<z<<","<<u<<","<<v<<","<<w<<")="<<sum(6,x,y,z,u,v,w)<<'\n';}5-11#include<iostream.h>#include<stdarg.h>floatv(intnum,intb...){va_listap;intsub,sum,temp;floatarv;va_start(ap,b);sub=b;sum=b;if(num==3){for(inti=1;i<num;i++){temp=va_arg(ap,int);sub=sub*temp;}returnsub;}if(num==4){for(intj=1;j<num;j++){temp=va_arg(ap,int);sum=sum+temp;}arv=sum/num;returnarv;}return0;}voidmain(){intx,y,z,k;cout<<"輸入三個(gè)整數(shù):";cin>>x>>y>>z;cout<<"輸出三個(gè)整數(shù)的積:"<<v(3,x,y,z)<<'\n';cout<<"輸入四個(gè)整數(shù):";cin>>x>>y>>z>>k;cout.precision(2);cout<<"輸出這四個(gè)整數(shù)的平均值:"<<v(4,x,y,z,k)<<'\n';}(注:求出的平均值取的是整數(shù)。)5-12#include<iostream.h>#include<iomanip.h>longintf(intn){if(n==1||n==2)return(1);elsereturnf(n-1)+f(n-2);}voidmain(){inti,n;cout<<"請輸入n的值:";cin>>n;for(i=1;i<=n;i++){cout<<setw(10)<<f(i);if(i%4==0)cout<<'\n';}cout<<'\n';}5-13遞歸算法:#include<iostream.h>inthermite(floatx,intn){if(n==0)return(1);elseif(n==1)return(2*x);elseif(n>1)return(2*x*hermite(x,n-1)-2*(n-1)*hermite(x,n-2));}voidmain(){cout<<"請輸入實(shí)數(shù)x及正整數(shù)n:";floatx;intn;cin>>x>>n;for(inti=0;i<=n;i++){cout<<hermite(x,i)<<'\t';if((i+1)%5==0)cout<<'\n';}cout<<'\n';}非遞歸算法:#include<iostream.h>floathermite(floatx,intn){if(n==0)return(1);if(n==1)return(2*x);floath1=1,h2=2*x,h3;for(inti=2;i<=n;i++){h3=2*x*h2-2*(i-1)*h1;h1=h2;h2=h3;}returnh3;}voidmain(){cout<<"請輸入實(shí)數(shù)x及正整數(shù)n:";floatx;intn;cin>>x>>n;for(inti=0;i<=n;i++){cout<<hermite(x,i)<<'\t';if((i+1)%5==0)cout<<'\n';}cout<<'\n';}5-14#include<iostream.h>unsignedlongintacm(intm,intn){intc;if(m==0)returnn+1;if(n==0)returnacm(m-1,1);if(n>0&&m>0){c=acm(m,n-1);returnacm(m-1,c);}return-1;}voidmain(){intm,n;//cout<<"Acm(5,3)="<<acm(5,3)<<'\n';//cout<<"Acm(4,2)="<<acm(4,2)<<'\n';//cout<<"Acm(5,5)="<<acm(5,5)<<'\n';cout<<"請輸入m和n的值:";cin>>m>>n;cout<<"Acm("<<m<<","<<n<<")="<<acm(m,n)<<'\n';}5-15#include<iostream.h>voidf1(intn){intj=n%10;if(n/10)f1(n/10);cout<<j;}voidf2(intn){cout<<n%10;if(n/10)f2(n/10);}voidmain(){intx;cout<<"輸入一個(gè)整數(shù):";cin>>x;cout<<"輸入的整數(shù)為:"<<x<<'\n';cout<<"該整數(shù)的反序輸出為:";f2(x);cout<<'\n';cout<<"該整數(shù)的正序輸出為:";f1(x);cout<<'\n';}5-16主程序mypro.cpp如下:#include<iostream.h>#include"myfun.h"voidmain(){floatx,y,z,t;cout<<"請輸入三個(gè)實(shí)數(shù):";cin>>x>>y>>z;t=max(x,y);cout<<"三個(gè)實(shí)數(shù)中最大的是:"<<max(t,z)<<'\n';}頭文件myfun.h如下:floatmax(floata,floatb){returna>b?a:b;}5-17#include<iostream.h>#defineMAX(A,B)A>B?A:B#defineMIN(A,B)A>B?B:Avoidmain(){intx,y,z,s,t,u,v;cout<<"請輸入三個(gè)數(shù):";cin>>x>>y>>z;s=MAX(y,z);u=MAX(x,s);t=MIN(y,z);v=MIN(x,t);cout<<"max("<<x<<","<<y<<","<<z<<")="<<u<<"\n";cout<<"min("<<x<<","<<y<<","<<z<<")="<<v<<"\n";}5-18用帶參宏求:#include<iostream.h>#include<math.h>#definearea(s,a,b,c)sqrt(s*(s-a)*(s-b)*(s-c))voidmain(){floatm,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>#defines(a,b,c)(a+b+c)/2#definearea(s,a,b,c)sqrt(s*(s-a)*(s-b)*(s-c))voidmain(){floatm,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>#defines(a,b,c)(a+b+c)/2#definearea(s,a,b,c)sqrt(s*(s-a)*(s-b)*(s-c))voidmain(){floatx,y,z;cin>>x>>y>>z;cout<<area(s(x,y,z),x,y,z)<<'\n';}用函數(shù)求:#include<iostream.h>#include<math.h>floatarea(inta,intb,intc){floats;s=(a+b+c)/2;return(sqrt(s*(s-a)*(s-b)*(s-c)));}voidmain(){floatx,y,z;cout<<"請輸入三條邊的長度:";cin>>x>>y>>z;cout<<"三角形的面積為:"<<area(x,y,z)<<'\n';}5-19#include<iostream.h>#defineAunsignedlongintacm(intm,intn){unsignedlongintc;if(m==0)returnn+1;if(n==0)returnacm(m-1,1);if(n>0&&m>0){c=acm(m,n-1);returnacm(m-1,c);}return-1;}voidmain(){ints,t;#ifndefAcout<<"Acm(5,3)="<<acm(5,3)<<'\n';cout<<"Acm(4,2)="<<acm(4,2)<<'\n';cout<<"Acm(5,5)="<<acm(5,5)<<'\n';#elsecout<<"請輸入m和n的值:";cin>>s>>t;cout<<"Acm("<<s<<","<<t<<")="<<acm(s,t)<<'\n';#endif}第6章6-1#include<iostream.h>voidmain(){inta[100],b[100],c[100];intmax2,max1,j=0,k=0,n,m,t;cout<<"請輸入一組整數(shù)(o結(jié)束):";inti=0;do{cin>>a[i];i++;}while(a[i-1]);t=i-1;for(i=0;i<=t;i++){if(a[i]%2){b[j++]=a[i];n=j;}else{c[k++]=a[i];m=k;}}max1=b[0];cout<<"輸入的奇數(shù)有:";for(i=0;i<n;i++){cout<<b[i]<<"";if(b[i]>max1)max1=b[i];}cout<<"其中最大的奇數(shù)為:"<<max1<<endl;max2=c[0];cout<<"輸入的偶數(shù)有:";for(i=0;i<m;i++){cout<<c[i]<<"";if(c[i]>max2)max2=c[i];}cout<<"其中最大的偶數(shù)為:"<<max2<<endl;}6-2#include<iostream.h>voidmain(){inta[100],b[100],c[100];intmax2,max1,j=0,k=0,t;floatavg,s=0;cout<<"請輸入一組整數(shù)(o結(jié)束):";inti=0;do{cin>>a[i];s+=a[i];i++;}while(a[i-1]);t=i-1;cout<<"共輸入"<<t<<"個(gè)整數(shù)!"<<endl;for(i=0;i<=t;i++)if(a[i]>0)j++;elseif(a[i]<0)k++;avg=s/t;cout<<"這組數(shù)的平均值為"<<avg<<endl;cout<<"其中輸入的正整數(shù)個(gè)數(shù)為:"<<j<<endl;cout<<"其中輸入的負(fù)整數(shù)個(gè)數(shù)為:"<<k<<endl;}6-3#include<iostream.h>voidinput(inta[10]){for(inti=0;i<10;i++)cin>>a[i];}voidsort(inta[10]){inti,j,k;for(i=0;i<9;i++)for(j=i+1;j<10;j++)if(a[i]>a[j]){k=a[i];a[i]=a[j];a[j]=k;}}voidprint(inta[10]){for(inti=0;i<10;i++)cout<<a[i]<<"";}voidmain(){intb[10];cout<<"輸入10個(gè)數(shù):\n";input(b);cout<<"輸出這10個(gè)數(shù):\n";print(b);sort(b);cout<<"\n升序排序后輸出這10個(gè)數(shù):\n";print(b);cout<<'\n';}6-4#include<iostream.h>#include<math.h>voidmain(){floata[100],s=0.0,t;floatD=0.0,M;inti=0;cout<<"請輸入一組實(shí)數(shù)(以0結(jié)束):";do{cin>>a[i];i++;}while(a[i-1]!=0);t=i-1;cout<<t<<endl;for(intj=0;j<=t;j++)s+=a[j];M=s/t;cout<<"M="<<M<<'\n';for(intk=0;k<=t;k++)D=D+(a[k]-M)*(a[k]-M);cout<<"D="<<D<<'\n';}6-5#include<iostream.h>#include<math.h>voidmain(){floata[4][4],s=0,t;inti=0,j;cout<<"請輸入一個(gè)4階矩陣(按行輸入):\n";for(;i<4;i++)for(j=0;j<4;j++){cout<<"a["<<i<<"]["<<j<<"]=";cin>>a[i][j];}s=a[0][0]+a[1][1]+a[2][2]+a[3][3]+a[0][3]+a[1][2]+a[2][1]+a[3][0];cout<<"輸入的矩陣為:\n";for(i=0;i<4;i++){for(j=0;j<4;j++)if(a[i][j]<10)cout<<a[i][j]<<"";elsecout<<a[i][j]<<"";cout<<"\n";}cout<<"兩對角線上的元素之和為:"<<s<<endl;}法二:#include<iostream.h>#include<math.h>voidmain(){floata[4][4],s=0,t;inti=0,intj;cout<<"請輸入一個(gè)4階矩陣(按行輸入):\n";for(;i<4;i++)for(j=0;j<4;j++){cout<<"a["<<i<<"]["<<j<<"]=";cin>>a[i][j];}for(i=0;i<4;i++)s+=a[i][i];for(i=0;i<4;i++)s+=a[i][3-i];cout<<"輸入的矩陣為:\n";for(i=0;i<4;i++){for(j=0;j<4;j++)if(a[i][j]<10)cout<<a[i][j]<<"";elsecout<<a[i][j]<<"";cout<<"\n";}cout<<"兩對角線上的元素之和為:"<<s<<endl;}法三:#include<iostream.h>#include<math.h>voidmain(){floata[4][4],s=0,t;inti=0,intj;cout<<"請輸入一個(gè)4階矩陣(按行輸入):\n";for(;i<4;i++)for(j=0;j<4;j++){cout<<"a["<<i<<"]["<<j<<"]=";cin>>a[i][j];}for(i=0;i<4;i++)for(j=0;j<4;j++)if((i==j)||(i+j==3))s+=a[i][j];cout<<"輸入的矩陣為:\n";for(i=0;i<4;i++){for(j=0;j<4;j++)if(a[i][j]<10)cout<<a[i][j]<<"";elsecout<<a[i][j]<<"";cout<<"\n";}cout<<"兩對角線上的元素之和為:"<<s<<endl;}6-6#include<iostream.h>#include<iomanip.h>voidmain(){intt,a[4][4],k=1;for(inti=0;i<4;i++)for(intj=0;j<4;j++)a[i][j]=k++;cout<<"輸出數(shù)組\n";for(i=0;i<4;i++){for(intj=0;j<4;j++)cout<<setw(4)<<a[i][j];cout<<endl;}cout<<endl;for(i=0;i<4;i++)for(intj=i;j<4;j++){t=a[i][j];a[i][j]=a[j][i];a[j][i]=t;}cout<<"轉(zhuǎn)置后的數(shù)組\n";for(i=0;i<4;i++){for(intj=0;j<4;j++)cout<<setw(4)<<a[i][j];cout<<endl;}cout<<endl;}6-7#include<iostream.h>#include<math.h>#include<string.h>#include<iomanip.h>voidmain(){intsum,sun1=0,sun2=0,n;floatarg1,arg2,arg,cla[50][2];cout<<"輸入學(xué)生人數(shù)(小于50):";cin>>n;cout<<"請依次輸入學(xué)生的學(xué)號、C++成績及計(jì)算機(jī)應(yīng)用基礎(chǔ)的成績!"<<endl;cout<<""<<"學(xué)號"<<'\t'<<"C++"<<""<<"計(jì)算機(jī)應(yīng)用基礎(chǔ)"<<'\n';for(inti=0;i<n;i++){cout<<"第"<<i+1<<"號學(xué)生的成績:"<<"";cin>>cla[i][0]>>cla[i][1];}sum=0;for(i=0;i<n;i++){cout<<'\t'<<"cout<<'\n';"<<cla[i][0]<<setw(14)<<cla[i][1]<<setw(14);sun1+=cla[i][0];sun2+=cla[i][1];}cout<<endl;arg1=(float)sun1/n;arg2=(float)sun2/n;arg=(float)(sun1+sun2)/(2*n);cout<<"平均成績?yōu)椋?<<""<<arg1<<"cout<<endl;"<<arg2<<'\n';cout<<"全班的平均成績:"<<arg<<endl;}6-8#include<iostream.h>#include<string.h>voidmain(){chars[200],t[200];inti=0,j=0;cout<<"請輸入字符串(回車結(jié)束):";cin.getline(s,200);cout<<"s="<<s<<"\n";for(;i<strlen(s);i++)if(s[i]!=''&&i<strlen(s))t[j++]=s[i];t[j]='\0';cout<<"t="<<t<<endl;}法二:#include<iostream.h>#include<string.h>voidmain(){chars[200];inti=0;cout<<"請輸入字符串(回車結(jié)束):";cin.getline(s,200);cout<<"s="<<s<<"\n";for(;s[i]!='\0';i++)if(s[i]!='')cout<<s[i];cout<<endl;}法三:#include<iostream.h>#include<string.h>voidmain(){chars[200],t[200];inti=0,j=0;cout<<"請輸入字符串(回車結(jié)束):";cin.getline(s,200);cout<<"s="<<s<<"\n";for(;s[i]!='\0';i++)if(s[i]!='')t[j++]=s[i];t[j]='\0';cout<<t;cout<<endl;}6-9#include<iostream.h>voidmain(){chars[30];cout<<"請輸入字符串:";cin.getline(s,30);inti=0;while(s[i++]!='\0');i-=2;cout<<"反序后為:";for(;i>=0;i--)cout<<s[i];cout<<endl;}6-10#include<iostream.h>intstrle(chars[]){for(inti=0;s[i];i++);//cout<<s[i];returni;}voidmain(){chara[30];cout<<"請輸入字符串:";cin.getline(a,30);cout<<'\n'<<"字符串的長度為:"<<strle(a)<<endl;}6-11#include<iostream.h>voidstrcpy(chara[],charb[]){for(inti=0;a[i];i++)b[i]=a[i];b[i]='\0';}voidmain(){chara[20],b[20];cout<<"請輸入字符串:";cin.getline(a,30);cout<<"a="<<a<<endl;strcpy(a,b);cout<<"經(jīng)拷貝后為:";cout<<"b="<<b<<endl;}6-12#include<iostream.h>voidstrcat(chara[],charb[]){intj=0;while(a[j]!='\0')j++;for(inti=0;b[i];i++)a[j++]=b[i];a[j]='\0';}voidmain(){intj=0,i=0;chara[80],b[20];cout<<"請輸入字符串a(chǎn):";cin.getline(a,80);cout<<"請輸入字符串b:";cin.getline(b,20);cout<<"a="<<a<<endl;cout<<"b="<<b<<endl;strcat(a,b);cout<<"經(jīng)拼接后的字符串a(chǎn)為:";cout<<"a="<<a<<endl;}6-13#include<iostream.h>voidmain(void){intprime[99],j=3;for(inti=0;i<99;i++){prime[i]=j;j+=2;}//賦初值for(i=0;i<98;i++)if(prime[i])//當(dāng)prime[i]的值為0時(shí),從下一元素開始for(j=i+1;j<99;j++)if(prime[j]&&prime[j]%prime[i]==0)//若prime[j]=0,則prime[j]不是素?cái)?shù),置為0prime[j]=0;j=1;cout<<2<<'\t';for(i=0;i<99;i++)if(prime[i]){//若prime[i]不等于0,則表明prime[i]是素?cái)?shù)cout<<prime[i]<<'\t';j++;if(j%5==0)cout<<'\n';}cout<<'\n';cout<<"素?cái)?shù)的個(gè)數(shù)為:"<<j<<'\n';}第七章7-1structbody{intyear;intmoth;intdate;};7-2structcommunion{charname[20];charaddress[30];longphone;longmailnum;};7-3沒錯(cuò)7-4語句cin>>s1>>s2;語句s3=s1;s4=s2;語句cout<<s3<<s4;7-5//錯(cuò)誤,結(jié)構(gòu)體變量不可直接輸入/出//錯(cuò)誤,不同類型的變量不可直接賦值//錯(cuò)誤,同上#include<iostream.h>structstudent{charname[10];charsex[4];intage;charaddress[30];longphone;longmailnum;};studentInput(studentx){cout<<"輸入姓名、性別、年齡、地址、電話號碼和郵政編碼:";cin>>>>x.sex>>x.age>>x.address>>x.phone>>x.mailnum;returnx;}voidOutput(studentx){cout<<<<'\t'<<x.sex<<'\t'<<x.age<<'\t'<<x.address<<'\t'<<x.phone<<'\t'<<x.mailnum<<'\n';}voidmain(void){studentsts[50];intn;cout<<"輸入學(xué)生人數(shù):";cin>>n;cout<<'\n';for(inti=0;i<n;i++)sts[i]=Input(sts[i]);for(i=0;i<n;i++)Output(sts[i]);cout<<'\n';}7-6#include<iostream.h>structcompl{floatreal;floatcom;};compladd(complc1,complc2){complt;t.real=c1.real+c2.real;=+;returnt;}complsub(complc1,complc2){complt;t.real=c1.real-c2.real;=;returnt;}complmul(complc1,complc2){complt;t.real=c1.real**;=*c2.real+c1.real*;returnt;}complave(complc1,complc2){complt;t.real=(c1.real*c2.real+*)/(c2.real*c2.real+*);=(*c2.real-c1.real*)/(c2.real*c2.real+*);returnt;}complinput(void){complc;cout<<"輸入復(fù)數(shù)的實(shí)部和虛部:";cin>>c.real>>;returnc;}voidoutput(complc){cout<<"復(fù)數(shù)的實(shí)部:"<<c.real<<"復(fù)數(shù)的虛部:"<<<<'\n';}voidmain(){complc1,c2,c3,c4,c5,c6;c1=input();c2=input();c3=add(c1,c2);c4=sub(c1,c2);c5=mul(c1,c2);c6=ave(c1,c2);cout<<"c1:";output(c1);cout<<"c2:";output(c2);cout<<"二復(fù)數(shù)之和:";output(c3);cout<<"二復(fù)數(shù)之差:";output(c4);cout<<"二復(fù)數(shù)之積:";output(c5);cout<<"二復(fù)數(shù)之商:";output(c6);}7-7#include<iostream.h>#include<math.h>structPoint{floatx,y,z;};Pointinput(Pointt);voidOutput(Pointt);doubleDistance(Pointt1,Pointt2);voidmain(){Pointp1,p2,k;p1=input(k);p2=input(k);Output(p1);Output(p2);cout<<"兩點(diǎn)間的距離為:"<<Distance(p1,p2)<<'\n';}Pointinput(Pointt){cout<<"輸入點(diǎn)的坐標(biāo)(x,y,z):";cin>>t.x>>t.y>>t.z;returnt;}voidOutput(Pointt){cout<<"點(diǎn)的坐標(biāo)為:("<<t.x<<','<<t.y<<','<<t.z<<")\n";}doubleDistance(Pointt1,Pointt2){floatd1,d2,d3;d1=t1.x-t2.x;d2=t1.y-t2.y;d3=t1.z-t2.z;returnsqrt(d1*d1+d2*d2+d3*d3);}7-8#include<iostream.h>structscore{intnum;charname[20];floatc,eng,math,phy,average;};scoreinput(scorest);floataverage(floata,floatb,floatc,floatd);voidsort(scorest[],intn);voidprint(scorest[],intn);voidmain(){scorestudent[20];intm;cout<<"請輸入學(xué)生數(shù):";cin>>m;for(inti=0;i<m;i++)student[i]=input(student[i]);sort(student,m);print(student,m);}scoreinput(scorest){cout<<"請輸入學(xué)生學(xué)號:";cin>>st.num;cout<<"請輸入學(xué)生姓名:";cin>>;cout<<"請輸入C++成績:";cin>>st.c;cout<<"請輸入英語成績:";cin>>st.eng;cout<<"請輸入數(shù)學(xué)成績:";cin>>st.math;cout<<"請輸入物理成績:";cin>>st.phy;cout<<endl;st.average=average(st.c,st.eng,st.math,st.phy);returnst;}floataverage(floata,floatb,floatc,floatd){return(a+b+c+d)/4.0;}voidsort(scorest[],intn){scoretemp;for(inti=0;i<n-1;i++)for(intj=i;j<n;j++)if(st[i].average>st[j].average){temp=st[i];st[i]=st[j];st[j]=temp;}}voidprint(scorest[],intn){cout<<"No."<<"姓名"<<"C++"<<"英語"<<"數(shù)學(xué)"<<"物理"<<"平均"<<endl;for(inti=0;i<n;i++){cout<<st[i].num<<'\t';cout<<st[i].name<<'\t';cout<<st[i].c<<'\t';cout<<st[i].eng<<'\t';cout<<st[i].math<<'\t';cout<<st[i].phy<<'\t';cout<<st[i].average<<endl;}}7-9#include<iostream.h>enumweekdays{Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday};voidInput(weekdays&day){inti;cout<<"0:星期天,1:星期一,2:星期二,3:星期三,4:星期四,5:星期五,6:星期六\n";cin>>i;if(i<0||i>6)cout<<"輸入值不對!";else{switch(i){case0:day=Sunday;break;case1:day=Monday;break;case2:day=Tuesday;break;case3:day=Wednesday;break;case4:day=Thursday;break;case5:day=Friday;break;case6:day=Saturday;}}}voidOutput(weekdaysx){switch(x){caseSunday:cout<<"今天是星期天\n";break;caseMonday:cout<<"今天是星期一\n";break;caseTuesday:cout<<"今天是星期二\n";break;caseWednesday:cout<<"今天是星期三\n";break;caseThursday:cout<<"今天是星期四\n";break;caseFriday:cout<<"今天是星期五\n";break;caseSaturday:cout<<"今天是星期六\n";}}voidmain(void){weekdaysday;Input(day);Output(day);cout<<'\n';}7-10#include<iostream.h>enumcolor{Red,Blue,Green};voidprint(colorcol){switch(col){caseRed:cout<<"Red\t";break;caseBlue:cout<<"Blue\t";break;caseGreen:cout<<"Green\t";break;}}voidmain(){colori,j,k;intn=0;for(i=Red;i<=Green;i=(color)((int)i+1))for(j=Red;j<=Green;j=(color)((int)j+1))for(k=Red;k<=Green;k=(color)((int)k+1))if(i!=j&&j!=k&&i!=k){cout<<++n<<'\t';print(i);print(j);print(k);cout<<"\n";}}第八章8-1(1)地址變量不能輸入,不可用cin語句,通常用同類型的變量賦值(2)p2沒有初始化,即懸空時(shí)不能對其所指的內(nèi)存賦值。超出范圍(3)類型不同(4)類型不同(5)類型不同8-2#include<iostream.h>voidswap(int*p1,int*p2){intt;t=*p1;*p1=*p2;*p2=t;}voidmain(){inta,b,c;int*s1,*s2,*s3;cout<<"輸入三個(gè)數(shù)a,b,c:";cin>>a>>b>>c;s1=&a;s2=&b;s3=&c;if(a>b)swap(s1,s2);if(a>c)swap(s1,s3);if(b>c)swap(s2,s3);cout<<"輸出排好序的三個(gè)數(shù):";cout<<a<<'\t'<<b<<'\t'<<c<<endl;}8-3#include<iostream.h>#include<string.h>#defineN10//二維數(shù)組的行數(shù)#defineM80//二維數(shù)組的列數(shù)voidsort(chars[][M],intn){inti,j,k;chars1[80];for(i=0;i<n-1;i++){k=i;for(j=i+1;j<n;j++)if(strcmp(s[k],s[j])>0)k=j;if(k!=i){strcpy(s1,s[k]);strcpy(s[k],s[i]);strcpy(s[i],s1);}}}voidmain(){inti,n;charstr[N][M];cout<<"請輸入字符串的個(gè)數(shù)(小于等于10)!"<<'\n'<<"字符串的個(gè)數(shù)是:";cin>>n;//二維數(shù)組的實(shí)際行數(shù)cout<<"請輸入字符串(以回車符結(jié)束每個(gè)字符串的輸入)!"<<'\n';for(i=0;i<=n;i++)cin.getline(str[i],80);sort(str,n);cout<<

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論