C++程序設計實踐教程思考題答案_第1頁
C++程序設計實踐教程思考題答案_第2頁
C++程序設計實踐教程思考題答案_第3頁
C++程序設計實踐教程思考題答案_第4頁
C++程序設計實踐教程思考題答案_第5頁
已閱讀5頁,還剩27頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、實驗1 C+基礎6.編寫程序,輸入某大寫字母的 ASCII碼值,輸出該字母的對應小寫字母。#in cludeviostream using n ames pace std;int mai n() int i;cin i;if(i=65 & 1 #in cludevcmath using n ames pace std;int mai n() float a,b,c;coutvv請輸入直角三角形的兩條邊長:II.cin ab;c二sqrt(a*a+b*b);coutvv直角三角形的斜邊 二vvcvvendl;return 0;2. 從鍵盤輸入一個字符,如果輸入的是英文大寫字母,則將它轉(zhuǎn)換成小寫字

2、母后輸出,否則輸出原來輸入的字符。#in cludeviostream using n ames pace std;int mai n()char c;coutvv請輸入一個字符:II.cinc;if(c=A& cv=Z) c+=a-A;coutvvcvve ndl;return 0;3. 輸入一個學生的成績,如高于 60分,貝y輸出“ Pass” ;否則,輸出failed ”。 #includeviostream using n ames pace std;int mai n()float grade;coutvv請輸入成績:II.cin grade;if(grade=60) cout vp

3、 asse ndl;else coutfailed;return 0;4. 計算分段函數(shù) #in clude #in clude using n ames pace std;int mai n()double x,y;coutvv請輸入一個數(shù)x:;cinx;y二cos(x)-po w(x,2)+3*x;else y=si n(x)+sqrt( pow(x,2)+1)+3*x;coutvvy二vvyvve ndl;return 0;5. 從鍵盤上輸入17之間的一個數(shù)字,輸出其對應星期幾的英文表示。#in clude using n ames pace std;int mai n() char c

4、;coutc;switch(c) case 1:cout Mon day;break;case 2:coutTuesdag;break;case 3:coutvvWe nesday;break;case 4:coutvvThursday;break;case 5:coutFriday;break;case 6:coutSaturday;break;case 7:coutvvS un day;break;default: coutvv wrong nu mber;coutvve ndl;return 0;6. 設計一個簡單的計算器程序,能夠進行加、減、乘、除簡單運算并顯示結(jié)果。#i nclude

5、 using n ames pace std;int mai n()coutvv輸入簡單的算術(shù)表達式:(數(shù) 操作符 數(shù));int left Operan d,right Operand;char Op erator;cin left Operan d Op eratorright Operand;int result;switch( Op erator) case +:result=left Operan d+right Operan d;break;case result=left Operan d-right Operan d;break;case3result=left Operan d

6、*right Operan d;break;case /: if(right Op era nd!=0) result=left Operan d/right Operand;else coutvv除數(shù)為0,除法不能進行vvendl;return 0;break;default: coutvvOperatorvv是本程序不支持的操作。vvendl; return 0;coutvvleft Operan dvv Op eratorvvright Operan dvv=vvresultvve ndl;實驗3三、思考題參考程序return 0;41n2 kn 1.編程計算表達式k 1的值。#in e

7、lude using n ames pace std;int mai n() int n ,k=1,sum=0,mea n;coutvv請輸入n的值:;cinn;while(k0) mea n二 sum/n;else mea n=0;cout1n個整數(shù)平方和的均值二wmeanvvendl;2輸入兩個正整數(shù),判別它們是否互為互質(zhì)數(shù)。所謂互質(zhì)數(shù),就是最大公約數(shù)是 1。#include using n ames pace std;int mai n()int m,n,r;coutvv請輸入兩個正整數(shù):II.cinmn;coutvvmusing n ames pace std;int mai n()

8、int year;coutvv公元2000年至3000年間閏年的年號:n;for(year=2000;yearv=3000;year+) if(year%4=0 & year%100 !=0川(year%400=0) coutyeart;coutvve ndl;return 0;4. 編寫程序模擬猴子吃桃子問題:猴子第 1天摘下若干桃子,當即吃了一半,還不過癮,又多吃了一個。第2天將剩下的桃子又吃了一半,又多吃一個。以后每天都吃了前一天剩下的一半零1個。到了第10天,只剩下了一個桃子。請問猴子第一天共摘了多少個桃子?方法1:#in clude using n ames pace std;int

9、 mai n() int day,qia n,hou=1;for(day=9;day=1;day-) qia n=(hou+1)*2;hou=qia n;coutvvqia nwen dl;return 0;運行結(jié)果:1534方法2:#in clude using n ames pace std;int mai n() int day ,nu mber=1;for(day=9;day=1;day-) nu mber=( nu mbe 葉1)*2;cout vnu mbervve ndl;方法3:#in elude using n ames pace std;int p each(i nt);i

10、nt mai n() coutvv第 1 天共摘了 peach(1)vv個endl;return 0;int p each(i nt day) int nu mber;if(day=1O) nu mber=1;else nu mber=2* (p each(day+1)+1);retu rn nu mber;5 .計算 s=1+ (1+2) + (1+2+3) + (1+2+3+4) + + (1+2+3+n )的值。方法1:#in clude using n ames pace std;int mai n() int i,j,n;long int sum,total(0);coutvvi n

11、put n:;cinn;for(i=1;i 二n ;i+) sum=0;for(j=1;j=i;j+) sum+=j;total+=sum;coutvvs二vvtotalvve ndl;return 0;#in clude using n ames pace std;int mai n() int i,n;long int sum(0),total(0);coutvvi nput n:;cinn;for(i=1;i 二n ;i+) sum+=i;total+二sum;coutvvs二vvtotalvve ndl;return 0;6 .馬克思曾經(jīng)做過這樣一道趣味數(shù)學題: 有30個人在一家小飯館

12、用餐,其中有男人、女人和小孩。每個男人花了 3先令,每個女人花了 2先令,每個小孩花了 1先令,一共花了 50先令。請問男人、女人以及小孩各有幾個人?#in clude using n ames pace std;int mai n() int x,y, z;for(y=1;yv=24;y+)for(x=1;xv=16;x+)z=30-x-y;if(3*x+2*y+z=50) coutvvMe n are x,wome n are y ,childre n are z .e ndl; return 0;實驗4常用程序設計算法三、實驗思考1. 讀入一個整數(shù)N,若N為非負數(shù),則計算N到2XN之間的

13、整數(shù)和;若N為負數(shù),則求2XN到N之間的整數(shù)和。分別利用for和while寫出兩個程序。#in clude using n ames pace std;int mai n() int N;cin N;int i=N;if(N=0) for(;i=2*N;i-) sum+=i; coutvvsumvve ndl; retu rn 0;#in clude using n ames pace std;int mai n() int N;cin N;int i=N;long sum=0; if(N=0) while(i=2*N) sum+=i; i-; coutvvsumvve ndl; retu r

14、n 0;2.設 s 1 111,求與8最接近的s的值及與之對應的n值。23nreturn 0;#in clude using n ames pace std;int mai n() float s=1.0;int n=1;do+n;s+=1.0/n;while(s(8-(s-1.0/n) coutvvs=vvs-1.0/nvv vvn=vvn-1e ndl;else couts=s BC且A+B+CV100求滿足1 1 1的共有多少組。A2B2C2 #in elude using n ames pace std;int mai n() int A,B,C;int coun t=0;for(C=

15、0;C!=33;+C ) for(B=1OO; 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 co unt is: count using n ames pace std;int mai n() int n,i;for(i=32;iv100;i+) n 二i*i;if(n %10 = n %100/10 & n/1000 = n/100%10) cout vnvven dl;return 0;115. 編

16、程驗證“四方定理”:所有自然數(shù)至多只要用4個數(shù)的平方和就可以表示。#in clude using n ames pace std;int nu mber,i,j,k,l;coutvv P lease en ter a nu mber:;cinnu mber;for(i=1;i vnu mber/2;i+) for(j=0;j=i;j+) for(k=0;k=j;k+) for(l=0;l=k;l+) if(n umber二二i*i+j*j+k*k+l*l) coutv vnu mbervv二vvivv*vvivv+vvjvv*vvjvv+vvkvv*vvkv +l*l using n ames

17、 pace std;int mai n()int n flag;flag=1;coutv vpl ease input n:n;while(flag) if(n %2=0) n二n/2;else n=n*3+1;12 if(n二=1) flag=0; coutsuccess!e ndl; retu rn 0;實驗5函數(shù)和編譯預處理三、實驗思考1.參考程序如下: #in clude using n ames pace std;long int Fib on acci (int n);void mai n() long int t,t1;int i;coutv vpl ease input t:t

18、;for (i=2;i+) t1=Fib on acci(i);if (t1t) coutvv min Fib on acci=t1e ndl;break; long int Fib on acci (int n) if (n=0) retu rn 1;else if (n二=1) retu rn 1;else retu rn Fib onacci(n-1)+Fib on acc i(n-2);2. 參考程序如下: #in clude 由n個a組成的多位數(shù)的計算using n ames pace std;int num_n (i nt n ,i nt a) / if (n二=1) retu r

19、n a;13else return num_n(n-1,a)*10+a;void mai n() int i,n;long int sum=0;coutv vpl ease input n:n;for (i=1;iusing n ames pace std;int isp rime(i nt n) /判斷n是否為素數(shù)的函數(shù)int i;for (i=2;iv n-1;i+)if (n %i=0) return 0;/非素數(shù),函數(shù)值返回0 return 1;/ 素數(shù),函數(shù)值返回1void mai n()int i,min _p rime,max_ prime;for (i=1000;iv=2000

20、;i+) if(is pnme(i)=1) coutvv最小素數(shù)二vvivvendl; break; for (i=2000;i=1000;i-) if(is prime(i)=1) coutvv最大素數(shù)二vvivvendl; break; 4. 參考程序如下: #in elude viostream using n ames pace std;int sum(i nt n)14static s=0;s=s+n;return s;void mai n() int i, n,s;coutvv情指定 n:;cinn;s=sum(i);for (i=1;iv 二n ;i+)coutvv1n 之禾0

21、二vvsvvendl;5. 參考程序如下: #in elude using n ames pace std;int is_h(i nt n) /判斷參數(shù)n是否為回文int i,m,fn;/i用來記錄n的某一位數(shù)字,m初值為n,fn用于記錄n的倒序數(shù)m二n;fn=O;while(m!=O)i=(m%10);fn=(fn*10+i);m=m/10;if(fn=n) retu rn 1; /是回文數(shù)返回1else return 0; /不是回文數(shù)返回0void mai n() int i;int t; cin t;for (i=1;i=t;i+) if (is_h(i)=1) coutvv回文數(shù):v

22、vivvendl;156. 參考程序如下: #in clude using n ames pace std;#defi ne X (a+b)/2 #defi ne AREA X*h void mai n() float a,b,h,s;coutvv請分別輸入a,b,h的值,用空格分隔! wendl; cinabh;s=AREA;coutvvAREAvve ndl;實驗六數(shù)組三、實驗思考題參考源代碼思考題 1. shi_6_3_1.c PP#in elude viostream.h函數(shù)說明#defi ne N 5 int look up (i nt ,i nt ,int ); / void ma

23、i n() int i, aN,i ndexyLooked;if(xi=y)coutvv請輸入N(=5)個整數(shù):e ndl;for(i=0;iai;coutvv請輸入您要找的整數(shù): yLooked;in dex=look up( a,N,yLooked); / coutvv您要找的數(shù)下標為:indexvvendl; else coutvv沒有找到vvyLookedvvendl;coutvvn 謝謝使用本程序,再見!vvendl; cin.get();函數(shù)定義16cin.get();int look up (i nt x,i nt n ,i nt y) /int flag=-1; /首先假設找不

24、到int i;for(i=0;iv n;i+)flag二i;break; II找到了則不必再往后找retu rn flag;思考題 2. shi_6_3_2.cpp#in elude 函數(shù)說明#defi ne N 5 int max(i nt ,i nt ); / void mai n() int i, aN,xMax;coutvv請輸入 N(=5)個整數(shù):vvendl;for(i=0;ivN;i+) cin ai;xMax=max(a,N);coutvv數(shù)組中最大的的整數(shù):vvxMaxvvendl;coutvvn謝謝使用本程序,再見!vvendl;cin.getO;cin.getO;int

25、max(i nt x,i nt n)for(i=1;iv n;i+)/也可寫成 for(i=0;ivn;i+)if(xir) r=xi; /發(fā)現(xiàn)了更大的則修改rint i,r=x0; /首先假設x0最大,且存于r中return r; / r中存有最大元素的值仃 思考題 3. shi_6_3_3.cpp #in elude viostream.h函數(shù)說明#defi ne N 5 void in vert(i nt ,i nt); / void mai n() int i, aN;coutvv請輸入 N(=5)個整數(shù):vvendl;for(i=0;ivN;i+) cin ai;in vert(a,

26、N);coutvvn 這些數(shù)逆序輸出如下:nvvendl; for(i=0;ivN;i+) cou tvvaivv;coutvvn 謝謝使用本程序,再見!vvendl; cin.get();cin.get();void in vert(i nt x,i nt n) int i=0, j=n-1,t; / while(ivj)t=xi; xi=xj; xj=t;i+;j-; return;思考題 4. shi_6_3_4.cpp #in elude #defi ne M 3 /M #defi ne N 4 /N void mai n() int n umMN; 二1,6,9, 3,5,4, 2,

27、7,8; int i,j,it,itt,t,jt,exist=0;coutvv請輸入 3 行 4 列 的 二維 數(shù)組:vvendl; for (i=0;inu mij;18for (i=0;ivM;+i) t=n umi0; jt=0; for (j=0;jvN;+j) if ( tvnumij) t=numij, jt=j; itt=i;for(it=0;itvM;+it)if ( tn umitjt) t=n umitjt, itt二it; if (i二二itt) e xist=1;break; if (exist) coutvv 鞍點為tendl; else cout 無鞍點endl;

28、coutvvn 謝謝使用本程序,再見!endl; cin.get(); cin.get(); 思考題 5. shi_6_3_5.cpp4I4| 4 r-K - V Mr ri.If wr風q I- B h1 h-坯 T.:人出訂:h - o 3, 1. * A 1, h*切 I .:. Il I . , J-分析:采用3個數(shù)組,它們元素值含義如下:19第19/23頁bab0 ab1 w、 . 、w abN -1a、b、c數(shù)組元素值含義示意圖 #defi ne N 7 #i nclude #i nclude using n ames pace std; i nt main( ) int i,j,

29、t,k,ik;in t aN,bN,cN; cout please inp ut N numbers:e ndl; fo r (i=0;iai; /從鍵盤上輸入N個元素,a0保存第一個數(shù)據(jù)couta 數(shù)組各元素的值:n; for(i=0;iN;i+) coutsetw(6)ai; coute ndl;for (i=0;ivN;i+) bi=i;for (i=0;ivN-1;i+)/排序,使abOab1 w、. 、w abN-1 k=i; /每輪選擇過程開始時假定abi 最小,將下標i保存在 k 中 for (j=i+1;jabj) k=j; /若發(fā)現(xiàn)某個abj小于 abk,則將k 修改為 j

30、if (k!=i) 20旳im I -1丄1I m 時“】hl|liPiht41hFIWftli 5 3 1 4 H 3 5 1ugurniif:l 沖 II14aHE郵|I |4】十WO HJI 卅冷 H?)K41W wI、丨I丨2卍世 1 dJIv3|tiSt 門創(chuàng)第20/23頁 t=bi; bi=bk; bk=t; coutvvb 數(shù)組各元素的值:n; for(i=0;iN;i+) coutvvsetw(6)vvbi; coute ndl;ik=1;cb0=ik;時,它們的編號for (i=1;iN;i+) if (abi!=abi-1) / abi=abi-1相同 ik+; cbi=ik; coutvvc數(shù)組各元素的值(a數(shù)組元素按大小編號):vvn: for(i=0;iN;i+) coutv

溫馨提示

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

評論

0/150

提交評論