C++程序設(shè)計(jì)實(shí)踐教程思考題答案--精選文檔_第1頁(yè)
C++程序設(shè)計(jì)實(shí)踐教程思考題答案--精選文檔_第2頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、實(shí)驗(yàn)1 C+基礎(chǔ)6編寫程序,輸入某大寫字母的ASCII碼值,輸出該字母的對(duì)應(yīng)小寫字母。#includeusing namespace std;int main()int i;cini;if(i=65 & 1=90 )coutchar(i-A+a)endl;elsecout輸入有誤endl; return 0;實(shí)驗(yàn)2三、實(shí)驗(yàn)思考1.輸入直角三角形的兩條直角邊長(zhǎng),調(diào)用平方根庫(kù)函數(shù)sqrt來(lái)求斜邊的長(zhǎng)度#include#includeusing namespace std;int main() float a,b,c;coutab;c=sqrt(a*a+b*b);cout直角三角形的斜邊=cendl

2、;return 0;2從鍵盤輸入一個(gè)字符,如果輸入的是英文大寫字母,則將它轉(zhuǎn)換成小寫字母后輸出,否則輸出原來(lái)輸入的字符。#includeusing namespace std;int main()char c;1coutc;if(c=A& c=Z)c+=a-A;coutcendl;return 0;3輸入一個(gè)學(xué)生的成績(jī),如高于60分,則輸出“pass”;否則,輸出“failed”。 #includeusing namespace std;int main()float grade;coutgrade;if(grade=60)coutpassendl;elsecoutfailed;return

3、0;4. 計(jì)算分段函數(shù)#include #include using namespace std;int main()double x,y;coutx;if(!x)y=cos(x)-pow(x,2)+3*x;elsey=sin(x)+sqrt(pow(x,2)+1)+3*x;couty=yendl;return 0;25. 從鍵盤上輸入17之間的一個(gè)數(shù)字,輸出其對(duì)應(yīng)星期幾的英文表示。 #include using namespace std;int main()char c;coutc;switch(c)case 1:coutMonday;break;case 2:coutTuesdag;br

4、eak;case 3:coutWenesday;break;case 4:coutThursday;break;case 5:coutFriday;break;case 6:coutSaturday;break;case 7:coutSunday;break;default: cout wrong number;coutendl;return 0;6. 設(shè)計(jì)一個(gè)簡(jiǎn)單的計(jì)算器程序,能夠進(jìn)行加、減、乘、除簡(jiǎn)單運(yùn)算并顯示結(jié)果。 #include using namespace std;int main()coutleftOperandOperatorrightOperand;int result;s

5、witch(Operator)case +:result=leftOperand+rightOperand;break;case -:result=leftOperand-rightOperand;break;case *:3result=leftOperand*rightOperand;break;case /:if(rightOperand!=0)result=leftOperand/rightOperand;elsecout除數(shù)為0,除法不能進(jìn)行endl;return 0;break;default:coutOperator是本程序不支持的操作。endl; return 0;coutle

6、ftOperandOperatorrightOperand=resultendl; return 0;實(shí)驗(yàn)3三、思考題參考程序1n2kn1編程計(jì)算表達(dá)式k=1的值。#include using namespace std;int main()int n,k=1,sum=0,mean;coutn;while(k0)mean=sum/n;elsemean=0;cout1n個(gè)整數(shù)平方和的均值=meanendl;return 0;42輸入兩個(gè)正整數(shù),判別它們是否互為互質(zhì)數(shù)。所謂互質(zhì)數(shù),就是最大公約數(shù)是1。 #include using namespace std;int main()int m,n,r

7、;coutmn;coutm”和”n;if(mn) r=m;m=n;n=r;while(r=m%n)m=n;n=r;if(n=1)cout是互質(zhì)數(shù) endl;elsecout”不是互質(zhì)數(shù)”endl;return 0;3編寫程序,輸出從公元2000年至3000年間所有閏年的年號(hào)。#include using namespace std;int main()int year;cout公元2000年至3000年間閏年的年號(hào):n;for(year=2000;year=3000;year+)if(year%4=0 & year%100 !=0)|(year%400=0)coutyeart;coutendl

8、;return 0;4編寫程序模擬猴子吃桃子問(wèn)題:猴子第1天摘下若干桃子,當(dāng)即吃了一半,還不過(guò)癮,又多吃了一個(gè)。第2天將剩下的桃子又吃了一半,又多吃一個(gè)。以后每天都吃了前一天剩下的5一半零1個(gè)。到了第10天,只剩下了一個(gè)桃子。請(qǐng)問(wèn)猴子第一天共摘了多少個(gè)桃子?方法1:#include using namespace std;int main()int day,qian,hou=1;for(day=9;day=1;day-)qian=(hou+1)*2;hou=qian;coutqianendl;return 0;運(yùn)行結(jié)果:1534方法2:#include using namespace std;

9、int main()int day,number=1;for(day=9;day=1;day-)number=(number+1)*2;coutnumberendl;return 0;方法3:#include using namespace std;int peach(int);int main()cout第1天共摘了peach(1)個(gè)endl;return 0;int peach(int day)int number;6if(day=10)number=1;elsenumber=2*(peach(day+1)+1);return number;5計(jì)算s=1+(1+2)+(1+2+3)+(1+

10、2+3+4)+ +(1+2+3+ +n)的值。 方法1:#include using namespace std;int main()int i,j,n;long int sum,total(0);coutn;for(i=1;i=n;i+)sum=0;for(j=1;j=i;j+)sum+=j;total+=sum;couts=totalendl;return 0;#include using namespace std;int main()int i,n;long int sum(0),total(0);coutn;for(i=1;i=n;i+)sum+=i;total+=sum;7cout

11、s=totalendl;return 0;6馬克思曾經(jīng)做過(guò)這樣一道趣味數(shù)學(xué)題:有30個(gè)人在一家小飯館用餐,其中有男人、女人和小孩。每個(gè)男人花了3先令,每個(gè)女人花了2先令,每個(gè)小孩花了1先令,一共花了50先令。請(qǐng)問(wèn)男人、女人以及小孩各有幾個(gè)人?#include using namespace std;int main()int x,y,z;for(x=1;x=16;x+)for(y=1;y=24;y+)z=30-x-y;if(3*x+2*y+z=50)coutMen are x,women are y ,children are z.endl; return 0;實(shí)驗(yàn)4 常用程序設(shè)計(jì)算法三、實(shí)驗(yàn)

12、思考1讀入一個(gè)整數(shù)N,若N為非負(fù)數(shù),則計(jì)算N到2N之間的整數(shù)和;若N為負(fù)數(shù),則求2N到N之間的整數(shù)和。分別利用for和while寫出兩個(gè)程序。#includeusing namespace std;int main()int N;cinN;int i=N;long sum=0;if(N=0)for(;i=2*N;i-) sum+=i; coutsumendl; return 0;#include using namespace std;int main()int N;cinN;int i=N;long sum=0; if(N=0) while(i=2*N) sum+=i; i-; coutsu

13、mendl; return 0;92設(shè)s=1+111+,求與8最接近的s的值及與之對(duì)應(yīng)的n值。 23n#includeusing namespace std;int main()float s=1.0;int n=1;do+n;s+=1.0/n;while(s(8-(s-1.0/n)couts=s-1.0/n n=n-1endl;elsecouts=s n=nBC,且A+B+C100,求滿足1+1=1的共有多少組。A2B2C2#include using namespace std;int main()int A,B,C;int count=0;for(C=0;C!=33;+C )for(B=

14、100; BC;-B )for(A=100; AB; -A)if(A + B + C 100) & (A * A * B * B) = (A * A + B * B) * C * C) cout A B C endl;+ count;cout count is: count endl;10return 0;4一司機(jī)出車禍后駕車逃離現(xiàn)場(chǎng),第一位目擊者記得車牌號(hào)前兩位數(shù)字相同,且后兩位數(shù)字也相同;第二位目擊者是一位數(shù)學(xué)家,他看出車牌號(hào)是四位完全平方數(shù)。試推算肇事車的車牌號(hào)。#includeusing namespace std;int main()int n,i;for(i=32;i100;i+)

15、n=i*i;if(n%10 = n%100/10 & n/1000 = n/100%10)coutnendl;return 0;115編程驗(yàn)證“四方定理”:所有自然數(shù)至多只要用4個(gè)數(shù)的平方和就可以表示。 #includeusing namespace std;int main()int number,i,j,k,l;coutnumber;for(i=1;inumber/2;i+)for(j=0;j=i;j+)for(k=0;k=j;k+)for(l=0;l=k;l+)if(number=i*i+j*j+k*k+l*l)coutnumber=i*i+j*j+k*k+l*lendl;exit(0)

16、;return 0;6編程驗(yàn)證“角谷猜想”:任給一個(gè)自然數(shù),若為偶數(shù)則除以2,若為奇數(shù)則乘3加1,得到一個(gè)新的自然數(shù),然后按同樣的方法繼續(xù)運(yùn)算,若干次運(yùn)算后得到的結(jié)果必然為1。#includeusing namespace std;int main()int n,flag;flag=1;coutplease input n:n;while(flag)if(n%2=0)n=n/2;elsen=n*3+1;12 if(n=1) flag=0; coutsuccess!endl; return 0;實(shí)驗(yàn)5 函數(shù)和編譯預(yù)處理三、實(shí)驗(yàn)思考1. 參考程序如下:#include using namespac

17、e std;long int Fibonacci(int n);void main()int i;long int t,t1;coutplease input t:t;for (i=2;i+)t1=Fibonacci(i);if (t1t) coutmin Fibonacci=t1endl;break; long int Fibonacci(int n)if (n=0) return 1;else if (n=1) return 1;else return Fibonacci(n-1)+Fibonacci(n-2);2. 參考程序如下:#include using namespace std;

18、int num_n(int n,int a) /由n個(gè)a組成的多位數(shù)的計(jì)算 if (n=1) return a;13else return num_n(n-1,a)*10+a;void main()int i,n;long int sum=0;coutplease input n:n;for (i=1;i=n;i+)coutnum_n(i,2)endl;sum+=num_n(i,2);coutn=n:sum=sumendl; 3. 參考程序如下:#include using namespace std;int isprime(int n) /判斷n是否為素?cái)?shù)的函數(shù) int i;for (i=2

19、;in-1;i+)if (n%i=0) return 0;/非素?cái)?shù),函數(shù)值返回0 return 1;/素?cái)?shù),函數(shù)值返回1void main()int i,min_prime,max_prime;for (i=1000;i=2000;i+)if(isprime(i)=1)cout最小素?cái)?shù)=i=1000;i-)if(isprime(i)=1)cout最大素?cái)?shù)=iendl; break; 4. 參考程序如下:#include using namespace std;int sum(int n)14static s=0;s=s+n;return s;void main()int i, n,s;cout

20、n;for (i=1;i=n;i+)s=sum(i);cout1n之和=sendl;5. 參考程序如下:#include using namespace std;int is_h(int n) /判斷參數(shù)n是否為回文int i,m,fn;/i用來(lái)記錄n的某一位數(shù)字,m初值為n,fn用于記錄n的倒序數(shù) m=n;fn=0;while(m!=0)i=(m%10);fn=(fn*10+i);m=m/10;if(fn=n) return 1; /是回文數(shù)返回1else return 0; /不是回文數(shù)返回0void main()int i;int t; cint;for (i=1;i=t;i+)if (

21、is_h(i)=1)cout回文數(shù):iendl;156. 參考程序如下:#include using namespace std;#define X (a+b)/2#define AREA X*hvoid main()float a,b,h,s;cout請(qǐng)分別輸入a,b,h的值,用空格分隔!abh;s=AREA;coutAREAendl;實(shí)驗(yàn)六 數(shù)組三、實(shí)驗(yàn)思考題參考源代碼思考題1. shi_6_3_1.cpp#include #define N 5int lookup(int ,int ,int ); /函數(shù)說(shuō)明void main() int i, aN,index,yLooked;cout

22、請(qǐng)輸入N(=5)個(gè)整數(shù):endl;for(i=0;iai;cout請(qǐng)輸入您要找的整數(shù):yLooked;index=lookup(a,N,yLooked); /函數(shù)調(diào)用 if(index!=-1)cout您要找的數(shù)下標(biāo)為:indexendl; elsecout沒(méi)有找到y(tǒng)Lookedendl;coutn謝謝使用本程序,再見(jiàn)!endl; cin.get();16cin.get();int lookup(int x,int n,int y) /函數(shù)定義int flag=-1; /首先假設(shè)找不到int i;for(i=0;in;i+)if(xi=y)flag=i;break; /找到了則不必再往后找re

23、turn flag;- 思考題2. shi_6_3_2.cpp#include #define N 5int max(int ,int ); /函數(shù)說(shuō)明void main() int i, aN,xMax;cout請(qǐng)輸入N(=5)個(gè)整數(shù):endl;for(i=0;iai;xMax=max(a,N);cout數(shù)組中最大的的整數(shù):xMaxendl;coutn謝謝使用本程序,再見(jiàn)!endl;cin.get();cin.get();int max(int x,int n)int i,r=x0; /首先假設(shè) x0 最大, 且存于 r 中for(i=1;in;i+) / 也可寫成 for(i=0;ir)

24、r=xi; / 發(fā)現(xiàn)了更大 的則 修改 rreturn r; / r 中 存有最大 元素的值-17思考題3. shi_6_3_3.cpp#include #define N 5void invert(int ,int); /函數(shù)說(shuō)明void main() int i, aN;cout請(qǐng)輸入N(=5)個(gè)整數(shù):endl;for(i=0;iai;invert(a,N);coutn 這些數(shù) 逆序輸出如下:nendl; for(i=0;iN;i+) coutai ;coutn謝謝使用本程序,再見(jiàn)!endl; cin.get();cin.get();void invert(int x,int n)int

25、i=0, j=n-1,t; /while(ij)t=xi; xi=xj; xj=t;i+;j-;return;-思考題4. shi_6_3_4.cpp#include #define M 3 /M 行#define N 4 /N 列void main()int numMN; /=1,6,9, 3,5,4, 2,7,8; int i,j,it,itt, t,jt,exist=0;cout請(qǐng)輸入 3 行 4 列 的 二維 數(shù)組: endl; for (i=0;iM;+i)for (j=0;jnumij;18for (i=0;iM;+i) t=numi0; jt=0; for (j=0;jN;+j)

26、if ( tnumij) t=numij, jt=j; itt=i;for(it=0;itnumitjt) t=numitjt, itt=it; if (i=itt) exist=1;break; if (exist) cout鞍點(diǎn)為 tendl; else cout無(wú)鞍點(diǎn) endl;coutn謝謝使用本程序,再見(jiàn)!endl; cin.get(); cin.get(); -思考題5. shi_6_3_5.cpp分析:采用3個(gè)數(shù)組,它們?cè)刂岛x如下:19第19/23頁(yè) bab0ab1 、.、abN-1a、b、c數(shù)組元素值含義示意圖#define N 7#include #include usi

27、ng namespace std; int main( ) int i,j,t,k,ik;int aN,bN,cN; coutplease input N numbers:endl; for (i=0;iai; /從鍵盤上輸入N個(gè)元素,a0保存第一個(gè)數(shù)據(jù)couta數(shù)組各元素的值:n; for(i=0;iN;i+)coutsetw(6)ai; coutendl;for (i=0;iN;i+) bi=i;for (i=0;iN-1;i+) /排序,使 ab0ab1 、.、abN-1 k=i; /每輪選擇過(guò)程開(kāi)始時(shí)假定 abi 最小,將下標(biāo)i保存在k中 for (j=i+1;jabj) k=j; /若發(fā)現(xiàn)某個(gè)abj小于abk,則將k修改為j if (k!=i)20第20/23頁(yè) t=bi; bi=bk; bk=t; coutb數(shù)組各元素的值:n; for(i=0;iN;i+)coutsetw(6)bi; coutendl;ik=1;cb0=ik;for (i=1;iN;i+) if (abi!=abi-1) / abi=abi-1時(shí),它們的編號(hào)相同 ik+; cbi=ik; coutc數(shù)組各元素的值(a數(shù)組元素按大小編號(hào)):n; for(i=0;iN;i+)coutsetw(

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論