50道C+編程練習題及解答_第1頁
50道C+編程練習題及解答_第2頁
50道C+編程練習題及解答_第3頁
50道C+編程練習題及解答_第4頁
50道C+編程練習題及解答_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、50道C/C+編程練習題1、輸入3個數(shù),求最大值int main() int a,b,c,m; cinabc; m=a; if(bm) m=b; if(cm) m=c; coutm; 2、編程序,求方程ax2+bx+c=0的根#include#includeusing namespace std;int main() double a,b,c,d,x1,x2; cinabc; if(a=0) if(b=0) couterrorn; else cout x=-c/bendl; else d=b*b-4*a*c; if(fabs(d)=1e-6) coutx1=x2=-b/(2*a)1e-6) x

2、1=(-b+sqrt(d)/(2*a); x2=(-b-sqrt(d)/(2*a); coutx1=x1,x2=x2endl; else cout a; if(a=90) cout=80) cout=70) cout=60) coutD; else coutabc; if(a+bc & b+ca & c+ab) cout可以構(gòu)成三角形; else couta; max=min=a; s=a; for(i=1;ia; if(amax) max=a; if(amin) min=a; s=s+a; coutmax,min,s/20.0n; cina; m=a; s=a; for(int i=1; i

3、a; s +=a; if(am) m=a; cout平均值:(double)s/n,最大值:mendl; 7、輸入若干個數(shù),輸入-999表示結(jié)束,求平均值及最大值。#include #include#include using namespace std; int main() int n, count, sum, max; double ave; count = 0; cin n; sum = 0; max = n; while( n != -999 ) sum = sum + n; if( n max ) max = n; count+; cin n; if( count != 0 ) a

4、ve=static_cast(sum) / count; coutsetiosflags(ios:fixed) setprecision(2); cout平均值為:ave 最大值為:maxendl; 8、求和 s=1*1 + 2*2 + 3*3 +.+ 100*100int main() int i,t; double s=0; for(i=1; i=100; i+) t=i*i; s=s+t; 9、印度國王的獎勵,求和 s=20 + 21 + 22 +.+ 263 int main() double t=1,s=0; for(int i=0; i=63; i+) s=s+t; t=2*t;

5、couts/1.4e8endl; 10、求和 s=1! + 2! + 3! +.+ 10! int main() int i; long t,s; t=1; s=0; for(i=1; i=1e-7) t=t/i; e=e+t; i=i+1; cout1e-8) pi=pi+t; i=i+2; k=-k; t=double(k)/i; cout4*pi; 13、求PI值,PI/2 = 1 + 1/3 + 1/3*2/5 + 1/3*2/5*3/7 + . #include #include int main() int i,j; double pi,t; i=0; j=1; t=1; pi=0

6、; while(t1e-18) pi=pi+t; i=i+1; j=j+2; t=t*i/j; coutsetprecision(17)2*pi; 14、輸入20個數(shù),統(tǒng)計其中正數(shù)、負數(shù)和零的個數(shù)。int main() int a,n=0,m=0,s=0; for(int i=1; i a; if(a0) n+; else if(a0) m+; else s+; coutn m a; while(a!=0) if(a%2 = 0) n += a; else m += a; cin a; coutn m;16、寫一函數(shù),計算x的y次方(假設(shè)x、y都為正整數(shù))。int pow(int x, int

7、 y) int s=1; for(int i=1; i=y; i+) s = s * x; return s;17、求水仙花數(shù)(一個三位數(shù),其各位數(shù)字立方和等于該數(shù)字本身)int main() int i,a,b,c; for(i=100;i=999;i+) a=i/100; b=i/10%10; c=i%10; if(i=a*a*a+b*b*b+c*c*c) coutiendl; int main() int i,a,b,c; for(a=1;a=9;a+) for(b=0;b=9;b+) for(c=0;c=9;c+) i=a*100+b*10+c; if(i=a*a*a+b*b*b+c*

8、c*c) coutiendl; 18、編寫一個函數(shù),確定一個整數(shù)是否為完全數(shù)(一個數(shù),等于他的因子之和)。用這個函數(shù)確定和打印1到1000之間的所有完全數(shù)。int perfect(int n) int i,s=1; for(i=2;i=n/2;i+) if(n%i=0) s=s+i; if(s=n) return 1; else return 0;int main() int n; for(n=2;n=1000;n+) if perfect(n) coutnendl; 19、寫一函數(shù),求斐波那契數(shù)列的第n項。int fib(int n) int i,f1,f2,f; if(n=1|n=2) r

9、eturn 1; f1=1; f2=1; for(i=3; i=n; i+) f=f1+f2; f1=f2; f2=f; return f;20、寫一個函數(shù),取一個整數(shù)值并返回將此整數(shù)的各數(shù)字反序的數(shù)值int reverse(int n) int s=0; while(n) s = s * 10 + n % 10; n /= 10; ; return s;21、寫一個函數(shù),將一個整數(shù)的各位數(shù)字的反序打印void show(int n) while(n) cout n % 10 ; n /= 10; ;void show(int n) if(n 10) cout n; else cout n %

10、 10 10) k *= 10; m /= 10; while(n) cout n / k =0; j-) coutaj ;void show(int n) if( n 10 ) cout n; else show( n / 10 ); cout n % 10; 23、求一個整數(shù)的各位數(shù)之和的函數(shù)int sum(int n) int s = 0; while(n) s += n % 10; n /= 10; ; return s;24、寫一函數(shù),判斷某個數(shù)是否素數(shù),以及求11000之內(nèi)的素數(shù)#include #include #include using namespace std; bool

11、 isprime(int n) float k=sqrt(float(n); for(int i=2; i=k; i+) if(n%i=0) return false; return true; int main() for(int n=2; n=1000; n+) if(isprime(n) coutsetw(5)n; 25、用篩法求11000之內(nèi)的素數(shù) #include #include #include #include using namespace std; int main() int i,k,a1001; for(i=2; i=1000; i+) ai=1; float s=sq

12、rt(float(1000); for(i=2; i=s; i+) if(ai=1) k=2*i; while(k=1000) ak=0; k=k+i; for(i=2; i=1000; i+) if(ai=1) coutsetw(5)n) m=m-n; else n=n-m; return m; 29、求兩個數(shù)的最小公倍數(shù)int lcm(int m, int n) int t,s; if(mn) t=m; m=n; n=t; s=m; while(s%n != 0) s=s+m; int lcm(int m, int n) return m*n/gcd(m,n); 30、百錢買百雞問題:雞翁

13、一值錢五,雞母一值錢三,雞雛三值錢一,百錢買百雞,問雞翁、母、雛各幾何?int main() int cock,hen,chick; for(cock=0; cock=20; cock+) for(hen=0; hen=33; hen+) chick=100-cock-hen; if(5*cock+3*hen+chick/3.0=100) coutsetw(4)cocksetw(4)hen setw(4)chick=a & si=z) count+; i+; coutcount=A & si=Z) si=si+32; coutsendl;33、打印楊輝三角形(帕斯卡三角形),打印10行。#in

14、clude#include using namespace std;int main() int a1010=0; for(int i=0; i10; i+) ai0=1; aii=1; for(int i=1; i10; i+) for(int j=1; ji; j+) aij = ai-1j-1 + ai-1j; for(int i=0; i10; i+) for(int j=0; j=i; j+) coutsetw(4)aij; coutendl; 34、打印一個九九乘法表#include#include using namespace std;int main() for(int j=

15、1; j=9; j+) for(int i=1; i=j; i+) couti*j=setw(2)i*j ; coutendl; 35、擲骰子10000次,統(tǒng)計得到各點數(shù)的次數(shù)。int main() int a7=0; srand(time(0); for(int i=1; i = 10000 ; +i) +a 1 + rand()%6 ; for(int i=1; i = 6 ; +i) couti: aiendl; 36、編寫函數(shù)distance,計算兩點(x1,y1)和(x2,y2)之間的距離。 double distance(double x1, double y1, double x

16、2, double y2) return sqrt( (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) );37、寫一個程序,進行體操評分,依次輸入10名評委所評分數(shù),去除一個最高分和一個最低分,再算出平均分作為選手的得分。int main() int i; float max,min,s,x; max = 0; min = 10; s=0; for(i=1;i x; s = s + x; if(xmax) max = x; s = s - min - max; cout s/8; 38、寫一函數(shù),將一數(shù)組中的元素反轉(zhuǎn)。void reverse(int a, int n) f

17、or(int i=0; in/2; i+) swap(ai,an-i-1);39、寫一函數(shù),在一個數(shù)組中找出最大元素的位置int SearchMax(int a, int n) int k = 0; for(int i=1; iak) k = i; return k;40、找出一個二維數(shù)組中的鞍點,即該元素在該行上最大,在該列上最小。41、寫一個字符串拷貝函數(shù) void strcpy(char *p, const char *q) while(*p+=*q+); char *strcpy(char *str1, const char *str2) char *p=str1; while(*st

18、r1+=*str2+); return p; 42、寫一個字符串比較函數(shù)int strcmp(char *str1, const char *str2) while(*str1 & * str2 & *str1=*str2) str1+; str2+; return *str1-*str2; int strcmp(char *str1, const char *str2) while(*str1=*str2) if(*str1=0) return 0; str1+; str2+; return *str1-*str2; 43、寫一個字符串連接函數(shù)char *strcat(char *str1,

19、 char *str2) char *p=str1; while(*str1!=0) str1+; while(*str1+=*str2+); return p; 44、寫一個求字符串長度函數(shù)int strlen(char *str) int n=0; while(*str!=0) n+; str+; return n; 45、寫一函數(shù),在一數(shù)組里查找某個值。int search(int a, int n, int key) for(int i=0; iyearmonthday; for(i=1; i2) s+; cout s; 48、編寫一個幫助小學生學習加法的程序,隨機產(chǎn)生2個數(shù),讓學生輸入答案。 #include#includeusing namespace std;int main() int x,y,z; srand( time(0) ); x = rand() % 1000; y = rand() % 1000; cout x + y z; while( z != 0 ) while( z != x+y ) cout 錯誤!請重做n ; coutx + yz; cout 正確!n ; x = rand()

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論