《C語言程序設(shè)計》題庫及答案.doc

上傳人:小** 文檔編號:16762998 上傳時間:2020-10-23 格式:DOC 頁數(shù):20 大小:81KB
收藏 版權(quán)申訴 舉報 下載
《C語言程序設(shè)計》題庫及答案.doc_第1頁
第1頁 / 共20頁
《C語言程序設(shè)計》題庫及答案.doc_第2頁
第2頁 / 共20頁
《C語言程序設(shè)計》題庫及答案.doc_第3頁
第3頁 / 共20頁

下載文檔到電腦,查找使用更方便

5 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《《C語言程序設(shè)計》題庫及答案.doc》由會員分享,可在線閱讀,更多相關(guān)《《C語言程序設(shè)計》題庫及答案.doc(20頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、 《C語言程序設(shè)計》復(fù)習(xí)題庫 1、計算下面公式的值。T=1/1!+1/2!+1/3!+……+1/m! 當(dāng)m=5時的結(jié)果(按四舍五入保留3位小數(shù))。(注:所有變量用float數(shù)據(jù)類型定義?。┐鸢福?.717 2、程序填空:用*號輸出字母C的圖案。 #include "stdio.h" #include "conio.h" main() { _____________ printf(" *\n"); _____________ _____________ getch(); } 3、8232和9678,它們的個、十、百、千各位數(shù)字之和是15

2、的倍數(shù),8+2+3+2=15,9+6+7+8=30。編寫程序,求四位數(shù)的所有奇數(shù)中,這樣的數(shù)(各位數(shù)字之和是15的倍數(shù))的總和。(注:所有變量用long數(shù)據(jù)類型定義!) 答案:1533459 4、 /*下面程序的功能是:計算并輸出700以內(nèi)的最大的10個能被13或者17整除的自然數(shù)之和。請改正程序中的錯誤,并運行,最后給出程序運行的正確結(jié)果。(注:只有一處錯誤!)*/ 答案:6591 #include void main() { int total=0, mc=1, k=700; int pm[10],count=0; while( (k>=

3、2) && mc<=10 ) { if ((k%13==0) || (k%17==0)) { pm[mc] = k; mc++; } k--; } for( k=1;k<=10;k++ ) total += pm[k-1]; printf(" %d\n",total); } 5、求x = 1+1/5+1/7+1/9+…的近似值,直到最后一項的絕對值小于10-5為止。 6、計算如下公式的A20值。 A1=1, A2=1/(1+A1), A3=1

4、/(1+A2), A4=1/(1+A3), ......(按四舍五入保留10位小數(shù))。答案:0.6180339850 7、求[10,1600]之間能被7整除的奇數(shù)之和。答案:90965 8、函數(shù)mystrlen(char *s)的功能是求字符串s的長度。請?zhí)羁铡? Int mystrlen(char *s) {int num=0; while( ) {____;} return ( ); } 9、[100,500]之間同時滿足除以7余5,除以5余3,除以3余1的整數(shù)之和。答案:1042 10、求[100,999]之間所有的素數(shù)的個數(shù)。答案:143 11、編寫程序,求滿足下

5、列條件的所有四位數(shù)ABCD的個數(shù),該四位數(shù)是8的倍數(shù),且A+B=B+C,即第1位數(shù)加上第2位數(shù)等于第2位數(shù)加上第3位數(shù)。答案:110 12、 /*數(shù)列1,2,1,4,7,12,23…具有這樣的特征,從第四項(也就是4)開始,每一項是前三項之和,4=1+2+1,7=2+1+4,12=1+4+7….。下列程序的功能是求出該數(shù)列前10項的和。請改正程序中的錯誤,并運行修改后的程序,給出程序結(jié)果。(注:只有一處錯誤?。?/ 答案:311 #include void main() { long sum=0,a[30]={1,2,1}; int k,j;

6、 for( k=3;k<10;k++ ) a[k] = a[k-1]+a[k-2]+a[k-3]; for( j=1;j<=10;j++ ) sum += a[j]; printf(" %ld\n",sum); } 13、 /*求1到2000之間的雙胞胎數(shù)的對數(shù)。雙胞胎數(shù):兩素數(shù)差為2稱為雙胞胎數(shù)。例如227和229是一對雙胞胎數(shù),它們都是素數(shù)且差為2。*/ 答案:61 #include int prime(int x) { int k; for(k=2;k

7、_____) break; if(k==x) return 1; else return 0; } void main( ) { int a,b,n=0; int prime(int x); for(a=2;a<=1998;a++) { if(prime(a)==1) { b=a+2; if(__________) n++; } } printf(" %d \n",n); } 14、編寫程序,統(tǒng)計2

8、00~400之間的所有滿足三個數(shù)字之積為42,三個數(shù)字之和為12的數(shù)的個數(shù)。答案:4 15、有30個學(xué)生一起買小吃,共花錢50元,其中每個大學(xué)生花3元,每個中學(xué)生花2元,每個小學(xué)生花1元,問大、中、小學(xué)生的人數(shù)分配共有多少種不同的解(去掉某類學(xué)生數(shù)為0的解)?答案:9 16、愛因斯坦走臺階:有一臺階,如果每次走兩階,最后剩一階;如果每次走三階,最后剩兩階;如果每次走四階,最后剩三階;如果每次走五階,最后剩四階;如果每次走六階,最后剩五階;如果每次走七階,剛好走完.求滿足上述條件的最小臺階數(shù)是多少?答案:119 17、 /*求1000以內(nèi)最大的10個素數(shù)的和。*/ 答案:9664 #

9、include int prime(long n) { long k; for(k=2;k<=n-1;k++) if(____________) return 0; return 1; } void main( ) { long t,total=0,num=0; int prime(long n); for(t=1000;t>=2;t--) { if(____________) { total=total+

10、t; num++; } if(num==10)break; } printf("\n%ld",total); } 18、 /*求1!+2!+3!+...+7!,7!表示7的階乘。*/ 答案:5913 #include long jc( long x) { long k,fac=1; for(k=1;________;k++) fac *=k ; ________; } void main( ) { long n,sum=0; l

11、ong jc(long x); for(n=1;n<=7;n++) ________; printf("\n%ld",sum); } 19、求10000以內(nèi)所有完數(shù)之和,"完數(shù)"是指:一個數(shù)如果剛好與它所有的真因子(不包括該數(shù)本身)之和相等,如:6=1+2+3,則6就是一個完數(shù)。(注:所有變量用int數(shù)據(jù)類型定義!) 答案:8658 20、/*數(shù)列1,2,1,4,7,12,23…具有這樣的特征,從第四項(也就是4)開始,每一項是前三項之和,4=1+2+1,7=2+1+4,12=1+4+7….。下列程序先給出數(shù)列的第一項(1)、第二項(2)、第三項(

12、1),再逐步計算其它項并保存在數(shù)組a中,最后求出該數(shù)列的第25項。請改正程序中的錯誤,并運行修改后的程序,給出程序結(jié)果。(注:只有一處錯誤!)*/答案:1323525 #include #include #define N 30 void main() { long a[N]; int k; clrscr(); a[0] = 1; a[1] = 2; a[2]=1; for( k=3;k<=20;k++ ) a[k] = a[k-1]+a[k-2]+a[k-3]; printf(" %l

13、d\n",a[k-1]); } 21、/*求區(qū)間[200,3000]中所有回文數(shù)的和,回文數(shù)是正讀與反讀都是一樣的數(shù),如525,1551。*/ 答案:87970 #include int hws(long n) { long x=n,t=0,k; while(x>0) { k=x%10; t = t*10 + k; x=x/10; } if( ___________) return 1; else return 0; } void main( ) {

14、 long k,s=0; int hws(long n); for(k=200; k<=2000;k++) if(___________) s=s+k; printf("\n%ld",s); } 22、/*下面的程序是求表達(dá)式的值: s=1+1/3+(1*2)/(3*5)+(1*2*3)/(3*5*7)+...+(1*2*3*...*n)/(3*5*7*...(2*n+1))請將程序補充完整,并給出當(dāng)n=25時,程序的運行結(jié)果(按四舍五入保留10位小數(shù))。*/答案:1.5707963267 #incl

15、ude double fun(int n) { double s=1.0, t=1.0; int k; double rtn=1.0; for(k=1;k<=n; k++) { t = t*k; s = s*(2*k+1); _________________ } return rtn; } void main() { double sum; __________ printf("\n %.10lf",sum); } 23、已知:Sn

16、=2/1+3/2+4/3+…+(n+1)/n, 求Sn不超過50的最大值(按四舍五入的方式精確到小數(shù)點后第三位)。答案:49.395 24、計算Y=X/1!-X^3/3!+X^5/5!-X^7/7!+……前20項的值(已知:X=2)。要求:按四舍五入的方式精確到小數(shù)點后第二位。答案: 0.91 25、若某正整數(shù)平方等于某兩個正整數(shù)平方之和,稱該正整數(shù)為弦數(shù)。例:3^2+4^2=5^2,則5為弦數(shù),求[131,200]之間最小的弦數(shù)。答案:135 26、已知X,Y,Z為三個正整數(shù),且X^2+Y^2+Z^2=25^2,求X+Y+Z的最大值。答案:43 27、猴吃桃:有一天小猴子摘下了若干個

17、桃子,當(dāng)即吃掉一半,還覺得不過癮,又多吃了一個。第二天接著吃了剩下的桃子中的一半,仍不過癮,又多吃了一個。以后每天都是吃尚存桃子的一半零一個。到第10天早上小猴子再去吃桃子時,看到只剩下一個桃子了。問小猴子第一天共摘下了多少個桃子。答案:1534 28、求[1,50]之間的所有整數(shù)能構(gòu)成直角三角形的三邊的組數(shù)。例如:3*3+4*4=5*5,它們構(gòu)成直角三角形,所以{3,4,5}作為一組,但{4,3,5}視為跟{3,4,5}相同的一組。答案:20 29、15元錢換成1元、2元、5元的票面,問有多少種不同的兌換方法?輸出所有的兌換方法。 答案: 18種 30、用迭代法求x等于a開平方的正數(shù)

18、值。 迭代公式為:xn+1=1/(2*(xn+a/xn)),要求直到前后兩次求出的x的差的絕對值小于10-5為止。A的值從鍵盤輸入。 31、求最大的水仙花數(shù),所謂水仙花數(shù),指的是一個三位數(shù),其各個數(shù)字的立方之和等于該數(shù)。 答案:407 32、一球從100米的高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第10次落地時,共經(jīng)過多少米?第10次反彈多高? 答案: 299.609375 0.097656 33、編寫程序,完成如下功能,輸入8個float類型的實數(shù),分別求最大值和最小值,保留三位小數(shù)輸出最大值和最小值。 34、編寫程序輸出如下字符圖

19、形: @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ … @ @ @ 35、計算:s=f(-30)+f(-29)+......+f(-1)+f(0)+f(1)+......+f(30)的值。其中函數(shù)定義如下:f(x)=(x+1)/(x-2) 如果 x>1; f(x)=0 如果 x=0 或 x=2 ;f(x)=(x-1)/(x-2) 如果 x<0。(按四舍五入保留6位小數(shù)) 答案:65.223018 36、編寫程序輸出如下字符圖形(最后一行19顆星): * * * * * * * * * * * * * * * … * * *

20、 … * * * * 37、企業(yè)發(fā)放的獎金根據(jù)利潤提成。利潤(I)低于或等于10萬元時,獎金可提10%;利潤高   于10萬元,低于20萬元時,低于10萬元的部分按10%提成,高于10萬元的部分,可提   成7.5%;20萬到40萬之間時,高于20萬元的部分,可提成5%;40萬到60萬之間時高于   40萬元的部分,可提成3%;60萬到100萬之間時,高于60萬元的部分,可提成1.5%,高于100萬元時,超過100萬元的部分按1%提成,從鍵盤輸入當(dāng)月利潤I,求應(yīng)發(fā)放獎金總數(shù)? 38、計算下面公式的值。 T=1+1/(2*3)+1/(3*4)+……+1/(m*(m+1))

21、,當(dāng)m=50時的結(jié)果(按四舍五入保留6位小數(shù))。(注:所有變量用double數(shù)據(jù)類型定義?。? 答案:1.480392 39、程序填空:輸入一行字符,分別統(tǒng)計出其中英文字母、空格、數(shù)字和其它字符的個數(shù)。 程序分析:利用while語句,條件為輸入的字符不為\n. #include "stdio.h" #include "conio.h" main() { char c; int letters=0,space=0,digit=0,others=0; printf("please input some characters\n"); while((c=getchar()

22、)!=\n) { if(c>=a&&c<=z||c>=A&&c<=Z) _________ else if(c== ) _________ else if(c>=0&&c<=9) _________ else _________ } printf("all in all:char=%d space=%d digit=%d others=%d\n",letters, space,digit,others); getch(); } 40、打印出如下圖案(菱形) * *** ***** ***

23、**** ***** *** * 41、求出[2,478]以內(nèi)的: (1)最大的素數(shù)。 *467 (2)素數(shù)數(shù)目。 *91 (3)所有素數(shù)之和。 *19580 42、已知: (1)若N=10,求Y 。 *1304735 (2)若N=15,求Y。 *1.184172E+07 43、已知:, 其中:X = 0.25,n = 1,2,┅,求: (1) Y值(精確到小數(shù)點后第5位) *1.28767 (2) 與(1)匹配的最小的n *7 44、以下程

24、序輸入三個整數(shù)值給a,b,c,程序把b中的值給a,把c中的值給b,把a中的值給c,交換后輸出a、b、c的值。例如:讀入后,a=10、b=20、c=30;交換后,a=20、b=30、c=10。請?zhí)羁铡? #include<stdio.h> main() {int a,b,c,t; printf("Enter a,b,c:"); scanf("%d%d%d", ___); ___;a=b;___;___; printf("a=%d b=%d c=%d\n",a,b,c); } 45.下面fun函數(shù)的功能是從a數(shù)組中查找值為y的元素;若找到,返回該元素的下標(biāo)值,若不

25、存在值為y的元素,返回0;數(shù)列放在a數(shù)組的a[1]到a[n]中,a[0]元素用來作為臨時存儲單元。請?zhí)羁铡? fun(int a[],int y,int n) {int k=0; a[0]=y;k=n; while( ) k--; return( ); } 46、 /*下列程序的功能是求出二階Fibonacci數(shù)列前10之和,1,1,2,3,5,8…。請改正程序中的錯誤,并運行修改后的程序,給出程序結(jié)果。(注:只有一處錯誤!3是第四項,5是第五項。)*/ 答案:143 #include void main() { long

26、 sum=0,a[30]={1,1,2}; int k; for( k=2;k<10;k++ ) a[k] = a[k-1]+a[k-2]; for( k=1;k<=10;k++ ) sum += a[k]; printf(" %ld\n",sum); } 47、20,160]之間的所有偶數(shù)的平方和。答案:694380 48、求[10,2000]之間能被2或3或5整除的數(shù)之和。答案:67795 49、求800以內(nèi)的最大的20個素數(shù)之和。答案:14510 50、求當(dāng)n=60時下式的和:s=1+1/(1+2)+1/(

27、1+2+3)+......+1/(1+2+3+......+n)(按四舍五入保留6位小數(shù))。答案:1.967214 51、編寫程序:輸入x的值,按照下列公式計算cos(x) cos(x)=1-x2/2!+ x4/4!- x6/6!+... 精確到10-5。 /*C1 1.717*/ main() { int i; long jc=1; float s=0; for(i=1;i<=5;i++) { jc=jc*i; s=s+1.0/jc; } printf("%f",s); } /*C3 15334

28、59*/ main() { long i,c=0,t=0,g,s,b,q; for(i=1001;i<=9999;i=i+2) { g=i%10; s=i/10%10; b=i/100%10; q=i/1000; if((g+s+b+q)%15==0) { c++; t=t+i; } } printf("%ld",t); } /*C4 6591*/ main() { int i,s=0,c=0; for(i=70

29、0;i>=1;i--) if(i%13==0||i%17==0) { c++; s+=i; if(c==10)break; } printf("%d",s); } /*C5 6.058311*/ main() { long i=5; double s=1; while(1.0/i>=1e-5) { s=s+1.0/i; i=i+2; } printf("%lf",s); } /*C6 0.6180339850 */ main() { in

30、t i; double a=1; for(i=2;i<=20;i++) { a=1.0/(1+a); } printf("%.10lf",a); } /*C7 90965*/ main() { long i,s=0; for(i=11;i<=1600;i=i+2) if(i%7==0) s=s+i; printf("%ld",s); } /*C9 1042 */ main() { long i,s=0; for(i=100;i<=500;i++) if(i%5=

31、=3&&i%7==5&&i%3==1) s=s+i; printf("%ld",s); } /*C10 143*/ main() { int c=0,i,j,p; for(i=100;i<=999;i++) { p=1; for(j=2;j

32、i=1000;i<=9999;i=i+8) { q=i/1000; b=i/100%10; s=i/10%10; if(q+b==b+s)c++; } printf("%d",c); } /*C13 61*/ #include"fun.c" main( ) { int a,b,n=0; int prime(int x); for(a=2;a<=1998;a++) if(prime(a)==1&&prime(a+2)==1) n++; printf(

33、"%d",n); } /*C14 4*/ main() { int c=0,i,g,s,b; for(i=200;i<=400;i++) { g=i%10; s=i/10%10; b=i/100; if(g+s+b==12&&g*s*b==42) c++; } printf("%d",c); } /*C15 9*/ main() { int d,z,x,c=0; for(d=1;d<=17;d++) for(z=1;z<=25;z

34、++) { x=30-d-z; if(x>=0&&d*3+z*2+x==50) c++; } printf("%d",c); } /*C16 119*/ main() { int tj,i,j; for(tj=1;tj>=0;tj++) if(tj%2==1&&tj%3==2&&tj%4==3&&tj%5==4&&tj%6==5&&tj%7==0)break; printf("%d",tj); } /*C19 8658*/

35、 main() { int i,s=0,w,j; for(i=1;i<=10000;i++) { w=0; for(j=1;j

36、 } /*C22 1.5707963166*/ #define N 24 main() { int i,j; double s=1,s1,s2; for(i=1;i<=N;i++) { s1=1; s2=1; for(j=1;j<=i;j++) { s1*=j; s2*=(2*j+1); } s+=(s1/s2); } printf("%.10lf",s); } /*C23 49.395*/ main() {

37、 int i=1; double s=0; do { s+=(1+1.0/i); printf("\n%0.3lf",s); i++; } while(s<50); } /*C24 0.91*/ #include main() { int x=2,i,j; double jc(int i); double y=0,fz; for(i=1;i<=20;i++) { fz=pow(-1,i+1)*pow(x,2*i-1); y+=fz/

38、jc(2*i-1); printf("\n%d,%.0lf/%.0lf",i,fz,jc(2*i-1)); } printf("\n%.2lf",y); } double jc(int i) { int j; double r=1; for(j=1;j<=i;j++) r*=j; return r; } /*C25 135*/ #include main() { long a,b,c; int xs=0; for(c=131;c<=200;c++) { xs=0;

39、 for(a=1;a

40、,y,z,max=0; for(x=1;x main() {int a,b,c,n=0; int xs=0; for(c=1;c<=50;c++) for(a=1;a

41、=1;b main() { double x1=1.0,x2; double a; scanf("%lf",&a); while(1) { x1=1.0/2*(x1+a/x1); if(fabs(x2-x1)<=1e-5) break; else x2=x1; } printf("%lf",x1); } /*C35 67.2230

42、18*/ main() { double f(double x),s=0; int i; for(i=-30;i<=30;i++) s=s+f(i); printf("%lf",s); } double f(double x) { double y; if(x==0||x==2)y=0; else if(x>1)y=(x+1)/(x-2); else if(x<0)y=(x-1)/(x-2); return y; } /*C38 1.480392*/ main() { double t=1; int m; for

43、(m=2;m<=50;m++) t=t+1.0/(m*(m+1)); printf("%lf",t); } /*C41 467,91,19580*/ #include"fun.c" main() { int i,c=0,s=0,max; for(i=2;i<=478;i++) if(prime(i)) { max=i; c++; s+=i; } printf("%d,%d,%d",max,c,s); } /*C42 1304735*

44、/ #define N 10 main() { int i; double a,b,y=0; for(i=1;i<=N;i++) { if(i%2==0) {a=i/2.0;b=i*i*i;} else {a=i;b=i*i;} y=y+(a-b)*(a-b); } printf("%lf",y); } /*C43 7*/ #define X 0.25 #include main() { double y=1,s=1.28767; int i

45、; for(i=1;y<=s;i++) y=y+(double)pow(X,i)/i; printf("%d",i); } /*C46 143*/ #include void main() { long sum=0,a[30]={1,1,2}; int k; for( k=2;k<10;k++ ) a[k]= a[k-1]+a[k-2]; for( k=0;k<=10;k++ ) sum += a[k]; printf(" %ld\n",sum); } /

46、*C47 694380*/ main() { long i,s=0; for(i=20;i<=160;i+=2) s=s+i*i; printf("%ld",s); } /*C48 1466295*/ main() { long i,s=0; for(i=10;i<=2000;i++) if(i%2==0||i%3==0||i%5==0) s=s+i; printf("%ld",s); } /*C49 14510*/ #include"fun.c" main() { int i,c=0,s=0

47、; for(i=800;i>=1;i--) if(prime(i)&&c<20) { c++; s=s+i; } printf("\n%d",s); } /*C50 1.967213*/ #define N 60 main() { int i; double s; for(i=1;i<=60;i++) s=s+1.0/((1+i)*i/2); printf("%lf",s); } /*fun.c 自定義函數(shù)判斷素數(shù)*/ int prime(int x) { int k; for(k=2;k

展開閱讀全文
溫馨提示:
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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!