C語(yǔ)言編程題及答案精編版_第1頁(yè)
C語(yǔ)言編程題及答案精編版_第2頁(yè)
C語(yǔ)言編程題及答案精編版_第3頁(yè)
C語(yǔ)言編程題及答案精編版_第4頁(yè)
C語(yǔ)言編程題及答案精編版_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余13頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1、最新資料推薦C語(yǔ)言編程題1. (*)求分?jǐn)?shù)序列:1/2,2/3,3/5,5/8,8/13,13/21.前 20 項(xiàng)的和。main()float i=1,j=2,t=0,s,n,m;for(n=1;n<=20;n+)s=i/j,m=i,i=j,j=m+j,t=t+s;printf("t=%f",t); 2. (*)從鍵盤輸入一個(gè)字符串,再將其逆序輸出。(如:輸入abcde,輸出edcba)main()int i;char c10;scanf("%s",c);for(i=9;i>=0;i-) printf("%c",ci);3

2、. (*)已知 abc+cba=1333,其中 a、b、c 均為一位數(shù), 例如:617+716=1333, 518+815=1333, 試編程求出符合這一規(guī)律的a、b、c,并輸出結(jié)果。main()int a,b,c,x,y;for(a=1;a<=9;a+)for(b=0;b<=9;b+)for(c=1;c<=9;c+) x=100*a+10*b+c;y=100*c+10*b+a;if(x+y=1333)printf("x=%d,y=%d",x,y); 4. (*)利用海倫公式求三角形面積,三邊長(zhǎng) a,b,c由鍵盤輸入。若輸入的三邊長(zhǎng)不能構(gòu)成三角形,輸出相應(yīng)

3、提示信息。海倫公式如下:其中 s=(a+b+c)/2二角形面積=,s* (s-a)* (s-b) * (s-c)#include"math.h"main() float a,b,c,s,area;scanf("%f,%f,%f",&a,&b,&c);s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c);if(a+b>c&&a+c>b&&b+c>a)printf("area=%f",area);1最新資料推薦else printf(&

4、quot;no");)的值并輸出。5. (*)編程求出 1!+2!+3!+ +8!+9!+10! 程序 1: main() int i,j;double p=1, sum=0;for(i=1;i<=10;i+) for(j=1;j<=i;j+)p=p*i;sum=sum+p;p=1.0; printf("sum=%f",sum);程序 2: float fac(n)int n;float f;if (n<0) printf("n<0,error!");else if(n=0|n=1) f=1;else f=fac(n-1

5、)*n; return(f);main()int h,s=0,n;for(n=1;n<=4;n+) h=fac(n);s=s+h;printf("s=1!+2!+10!=%d'n",s);程序 3: main() int i;double p=1, sum=0;for(i=1;i<=10;i+) p=p*i;sum=sum+p;printf("sum=%f",sum);.2 .6. (*)從鍵盤輸入兩個(gè)整數(shù),輸出其和,差,積,商。7. (*)輸入若干個(gè)自然數(shù),對(duì)奇數(shù)從大到小排序,對(duì)偶數(shù)從小到大排序,輸出兩種結(jié)果。 maxji(int

6、a,int n) int i,j,k,t;for(i=0;i<n-1;i+)k=i;for(j=i+1;j<n;j+)if(ak<aj) k=j;if (k!=i)t=ak;ak=aj;aj=t;#define N 10main()int cN,i,j;for(i=0;i<N;i+)scanf("%d”,&ci);maxji(c,N);for(i=N-1;i>=0;i-)if(ci%2=0)printf("%5d",ci);printf("n");for(i=0;i<N;i+)if(ci%2!=0)p

7、rintf("%5d",ci);8. (*)求出0999之間的所有“水仙花數(shù)”并輸出?!八苫〝?shù)”是指一個(gè)三位數(shù),其各位數(shù)字的立方和確好等于該數(shù)本身,如; 153=1 + 5+3 ,則153是一個(gè)“水仙花數(shù)”。程序 1: main()int i,j,k,a;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=100*i+10*j+k) printf("%d%d%dn”,i,j,k);程序:main()3最新資料推薦int m,i,j,k,a;for(m=101;

8、i<=999;m+)i=m/100;j=(m-m*100)/10;.3 .k=m%10;if(i*i*i+j*j*j+k*k*k=m)printf("%dn",m);9. (*)試編程:判斷輸入的正整數(shù)是否既是 5,又是7的整數(shù)倍數(shù)。若是則輸出yes;否則輸出no。10. (*)已有函數(shù)調(diào)用語(yǔ)句 c=add(a,b);請(qǐng)編寫aad函數(shù),計(jì)算兩個(gè)實(shí)數(shù)a和b的和,并返回和值。11. (*)有人想將手中一張面值100元的人民幣換成5元、1元、0.5元面值的零錢100張,以上三種面值的零錢至少有一張,問(wèn)共有幾種換法。請(qǐng)編程實(shí)現(xiàn)。程序 1: main()int i,j,k,n=

9、0;for(i=1;i<19;i+)for(j=1;j<95;j+)for(k=1;k<94;k+)if(5*i+j+0.5*k=100&&i+j+k=100)printf("%d,%d,%dn”,i,j,k);n+; printf("%d",n);12. (*)求Sn=a+aa+aaa+aaaa+aaaaa的前5項(xiàng)之和,其中 a是一個(gè)數(shù)字,例如:2+22+222+2222+22222程序 1: main()int i, a,n;long sum=0, b=1,c=1;scanf("%d,%d",&a,

10、&n);for(i=1;i<=n;i+)sum+=a*c;b*=10;c+=b; printf("%ld",sum);程序 2: main()程序 3: main()long int sn=0,k=a;int a,i,j;scanf("%d",&a);for(i=1;i<=5;i+)k=10*k+a; sn=sn+k;printf("%ldn",sn);最新資料推薦 long int sn=0,k=0;int a,i,j;scanf("%d",&a);for(i=1;i<=

11、5;i+)for(j=1;j<=i;j+) k=10*k+a;.4 .sn=sn+k;k=0; printf("%ldn",sn);13. (*)編程輸出如下圖形(不能僅用 printf 語(yǔ)句): * * * * * * * * * * * * * * * * * * * * *main()int i,k,j;for(i=0;i<=4;i+)for(j=0;j<4-i;j+)printf("");for(k=0;k<=2*i;k+) printf("*");printf("n");14. (

12、*)用近似公式求自然對(duì)數(shù)的底e的值。11e1+1!+ + 2!3!#include"math.h"main()float i,j,e,p=1.0,sum=0.0;for(i=1;i<10 ;i+)for(j=1;j<=i;j+)p=p*j;sum=sum+1.0/p;p=1.0;e=i+sum;最新資料推薦printf("%fn",e);15 ( * )請(qǐng)編程,用scanf() 函數(shù)輸入三個(gè)字符,對(duì)這三個(gè)字符各加一個(gè)整數(shù)1 后,用putchar() 函數(shù)輸出,且每輸出一個(gè)字符換一行。16 ( *)請(qǐng)編程,用scanf() 函數(shù)輸入三個(gè)整數(shù),輸

13、出其中不大不小的那個(gè)數(shù),輸出寬度為五位。int findmid(int i,int j,int k)int n; 5 if(i<j) n=i;i=j;j=n;if(i<k) n=i;else if(j>k) n=j;else n=k;return(n);main()int i,j,k,n;scanf("%d%d%d",&i,&j,&k);n=findmid(i,j,k);printf("%dn",n);17 (*)編程實(shí)現(xiàn)輸出所有1100之間能被9整除余2的數(shù)。18 ( *)編寫一程序?qū)崿F(xiàn)如下功能:輸入1、 2、

14、 3、 4、 5、 6、 7(分別對(duì)應(yīng)星期一至星期日)中的任何一個(gè)數(shù),便能輸出與之對(duì)應(yīng)的英文名稱。如輸入1,則輸出Monday。main()char day;scanf("%c",&day);swith(day)case '1':printf(" mondayn");break;case '2':printf("tuesdayn"); break;case '3':printf("wednsdayn"); break;case '4':prin

15、tf("thursdayn"); braek;case '5':printf(" fridayn"); break;case '6':printf("saturdayn"); break;case '7':printf("sundayn"); break;defult: printf("errorn");19 (*) 編一程序,對(duì)于給定的一個(gè)百分制成績(jī),輸出相應(yīng)的5 分制成績(jī)。設(shè):90 分以上為A , 8089 分為B , 7079 分為C , 6

16、069 分為D , 60 分以下為E 。 (用 switch最新資料推薦語(yǔ)句實(shí)現(xiàn))。main()int s,score;scanf("%d",&score);s=score/10;switch(s)case 10:printf("An");break;case 9:printf("An");break;case 8:printf("Bn");break;case 7:printf("Cn");break;case 6:printf("Dn");break;case 5

17、:case 4:case 3:case 2:case 1:printf("En");break;default:printf("error"); 20. ( *)試編程:判斷輸入的正整數(shù)是否既是5,又是7 的整數(shù)倍數(shù)。若是則輸出yes;否則輸出no。21. ( * )一個(gè)數(shù)如果卻好等于它的因子之和,這個(gè)數(shù)就稱為“完數(shù)”。例如,6 的因子為1、 2、 3,而6=1+2+3,因此6 是“完數(shù)”。編程序找出100 之內(nèi)的所有完數(shù),并按下列格式輸出其因子:6 its factors are 1,2,3main()int m,i,s;for(m=2;m<10

18、00;m+) s=0;for(i=1; i<m ;i+)if(m%i=0) s=s+i;if (m=s) printf("%3d its factors are ",m);for(i=1;i<m;i+)if(m%i=0) printf("%4d",i);printf("n");7最新資料推薦22. (*)輸入5對(duì)整數(shù),請(qǐng)輸出每對(duì)數(shù)中較大者main()int i,j,a52;for(i=0;i<=4;i+)for(j=0;j<=1;j+)scanf("%d",&aij);for(i=0

19、;i<=4;i+)if(ai1>ai0)printf("%4dn",ai1);elseprintf("%4dn",ai0);.6 .23. (* )編程將一個(gè)3x3矩陣轉(zhuǎn)置(行列互換)后輸出。main()int i,j, a33,b33;for(i=0;i<=2;i+)for(j=0;j<=2;j+)scanf("%d",&aij);for(i=0;i<=2;i+)for(j=0;j<=2;j+)print(%5d ,aij);bji=aij;printf('n');for(

20、j=0;j<=2;j+)for(i=0;i<=2;i+)printf("%5d",bij); printf( n "); 24. (*)求一個(gè)一維數(shù)組的最大值,最小值和平均值(主函數(shù)調(diào)用并輸出)程序1:float max(int n,float a)int i;float max;max=a0;for(i=0;i<n;i+) if(max<ai) max=ai; return(max);程序2:main()void make();int a10,i;extern int max,min;extern float aver;for(i=0;i

21、<10;i+)scanf("%d”,&ai);make(a,10);8printf("max=%d,min=%d,aver=%.2f",max,min,aver) ;最新資料推薦float min(int n,float a) int i;float min;min=a0;for(i=0;i<n;i+)if(min>ai) min=ai;return(min);)float aver(int n,float a) int i;float sum=0,aver;.7 .for(i=0;i<n;i+)sum=sum+ai;aver=su

22、m/n;return(aver);)#include"math.h" main() int i;float m,n,a5,c;for(i=0;i<5;i+)scanf("%f",&ai);m=max(5,a);n=min(5,a);c=aver(5,a);printf("%5f%5f%5fn”,m,n,c);)25. (* )編寫函數(shù),求一個(gè)不超過(guò)五位的十進(jìn)制整數(shù)各位數(shù)值的和。(如:輸入2634,輸出15)#include"math.h" main() int i,a5,m,n=0;scanf("%d

23、",&m);for(i=0;i<=4;i+)ai=m%10;9最新資料推薦n=n+ai;m=m-ai*10;printf("%5d",ai);printf('n'); printf("%d",n);26. (*)編程求出一個(gè)3x3矩陣的最大和最小元素及其下標(biāo)。main()int i,j,max,min,a33,m1,n1,m2,n2;for(i=0;i<=2;i+)for(j=0;j<=2;j+) scanf("%d”,&aij);min=max=a00;.8 .for(i=0;i&l

24、t;=2;i+)for(j=0;j<=2;j+)if(aij>max) max=aij;m1=I;n1=j;else if(aij<min)min=aij;m2=i;n2=j;printf("max=%d,%3d,%3d,min=%d,%3d,%3d",max,m1,n1,min,m2,n2);27. (*)有一個(gè)字符串,包含 n個(gè)字符,編寫一個(gè)函數(shù),將此字符串中從第m個(gè)字符開始的全部字符復(fù)制成另一個(gè)字符串。main()char chs230=0,chs130="this is my first C program"int i,j,m;

25、scanf("%d",&m);for(i=m,j=0;i<30;i+,j+)chs2j=chs1i;chs229='0'printf("%s",chs2); 28 . (*)求一個(gè)3x3矩陣的對(duì)角線元素之和。 main() int i,j,sum1=0,sum2=0,a33;for(i=0;i<=2;i+)最新資料推薦for(j=0;j<=2;j+)scanf("%d",&aij);for(i=0;i<=2;i+)for(j=0;j<=2;j+)if(i=j) sum1+=

26、aij;if(i+j)=2) sum2+=aij;printf("%5d%5d",sum1,sum2); 29. (*)從鍵盤輸入兩個(gè)整數(shù),輸出其最大公約數(shù)和最小公倍數(shù)。程序1:main()int a,b,t,p,r;scanf("%d,%d",&a,&b);if(a<b) t=a;a=b;b=t; p=a*b;while(b!=0)r=a%b;a=b;b=r;printf(%5d%5 d,a,p/a);.9 .main() int a,b,m,n,i,t;scanf( %d%d,&a,&b);if(a<b)t

27、=a;a=b;b=t;m=a;n=b;for(i=1;i<=n;i+)if(m%i=0)&&(n%i=0)printf("%5dn",i);break; printf("%5d",a*b/i);10個(gè)數(shù),要求30. ( *)一個(gè)已按從小到大的順序排序的數(shù)組,有 9個(gè)元素,從終端輸入第 按原來(lái)排序的規(guī)律將它插入數(shù)組中。(該數(shù)比第一個(gè)數(shù)大,比第九個(gè)數(shù)小)#define N 10main()int b,i,n,aN=1,5,7,11,15,19,23,28,31;scanf("%d",&b);for(i=0;i

28、<N-1;i+)if(ai>b) n=i;break;for(i=(N-2);i>=n;i-) ai+1=ai;11最新資料推薦an=b;for(i=0;i<N;i+)printf("%5d",ai); )31. (*)請(qǐng)編寫程序,輸出以下?lián)P輝三角形(要求出10行)11 11 2 11 3 3 11 4 6 4 1# define M 10# define N 10 main()int aMN,i,j;for(i=0;i<M;i+)for(j=0;j<=i;j+)if(j=0|j=i)aij=1;elseaij=ai-1j-1+ai-1j

29、;for(i=0;i<M;i+)for(j=0;j<=i;j+)printf("%4d",aij); printf("n");舌0和4),用-1作為輸入把串b的前五個(gè)字符連接 請(qǐng)編程實(shí)現(xiàn)。)32. (*)從鍵盤輸入少于50個(gè)的整數(shù),其值在 0和4之間(包一結(jié)束標(biāo)志,統(tǒng)計(jì)每個(gè)整數(shù)的個(gè)數(shù)。請(qǐng)編程實(shí)現(xiàn)。33. (*)從鍵盤輸入兩個(gè)字符串a(chǎn)和b,要求不用庫(kù)函數(shù) strcat到串a(chǎn)中;如果b的長(zhǎng)度小于5,則把b的所有元素都連接到a中,main() char a50,b10,*p1,*p2;int i,j;scanf( "%s%s ,a,b);

30、n=strlen(a);for(p1=a+n,p2=b;p1<=a+(n+4);p1+,p2+)*p1 =*p2;if(*p2=0' ) break;12最新資料推薦*p1= 0;printf( “ %s” ,a);34 ( * )編寫函數(shù),在一個(gè)一維數(shù)組中查找指定值,若找到則返回該數(shù)值的下標(biāo),否則返回 -1 。要求用指針變量傳遞數(shù)組首地址。 main()float a10=1,2,3,4,5,6,7,8,9,10;float b;int i;scanf("%f",&b);for(i=0;i<10;i+)if(b=ai)printf("

31、%dn",i);break;if(i>=10) printf("-1");printf("n");35 ( * )寫一程序,要求用戶在鍵盤上輸入一個(gè)整數(shù),并把每位數(shù)字轉(zhuǎn)換為英文。例如:輸入 1024 時(shí),輸出One Zero Two Fourmain() long int n;int m,i=0,c10;scanf("%ld",&n);dom=n%10;i+;ci=m;printf("%5d%5d%5dn",i,m,ci);while (n/=10)>0);while(i>=1)

32、i-;switch(ci+1)case 0: printf("zero");printf(" ");break;case 1: printf("one");printf(" "); break; case 2: printf("two");printf(" "); break;case 3: printf("three");printf(" ");break;case 4: printf("four");printf

33、(" ");break;case 5: printf("five");printf(" ");break;case 6: printf("six");printf(" "); break;最新資料推薦case 7: printf("seven");printf(" "); break;case 8: printf("eight");printf(" "); break;case 9: printf("nin

34、e");printf(" "); break;default:printf("no");36 (*) A數(shù)組中有8個(gè)元素,從第6個(gè)元素開始將數(shù)組后三個(gè)元素移到數(shù)組開頭。例如:A 數(shù)組元素為:2 6 9 8 5 3 7 4移動(dòng)后數(shù)組變?yōu)椋? 7 4 2 6 9 8 5#define N 8main()int a8=2,6,9,8,5,3,7,4;int i, j,t;for(i=0;i<8;i+)printf("%5d",ai);printf("n");for(j=0;j<3;j+) t=aN-

35、1;for(i=N-2;i>=0;i-)ai+1=ai;a0=t;for(i=0;i<8;i+) printf("%5d",ai); 37 ( * )按如下格式打印輸出乘法口訣表:1X 1=11X 2=2 2 X 2=41 X 9=9 2 X 9=18 3 X 9=27 9 X 9=8138 ( * )請(qǐng)將 n 個(gè)整數(shù)按升序重新放在原數(shù)組中,操作時(shí)不得另開辟數(shù)組。39 ( * )輸入若干學(xué)生一門功課的成績(jī),統(tǒng)計(jì)各分?jǐn)?shù)段的人數(shù)。凡不及格(60 分以下)都由一個(gè)計(jì)數(shù)器來(lái)統(tǒng)計(jì),其它以10 分作為一個(gè)數(shù)段,100 分作為一個(gè)分?jǐn)?shù)段。main()int a10;int i

36、,j,t,p;for(i=0;i<10;i+)scanf("%d",&ai);for(i=0;i<9;i+)p=i;最新資料推薦for(j=i+1;j<10;j+) if(ap>aj)p=j;if(p!=j)t=ai;ai=ap;ap=t;)for(i=0;i<10;i+) printf("%5d",ai);40 (*)編寫函數(shù),給定一個(gè)數(shù),刪除數(shù)組中與之相等的元素,返回值為刪除后數(shù)組中 的元素個(gè)數(shù)。main()float a10,t;int s,b6=0,i;for(i=0;i<10;i+)scanf(&qu

37、ot;%f",&ai);i=0;while(i<10)s=(int)ai/10;i+;switch(s)case 10:b0+; break;case 9:b1+; break;case 8:b2+; break;case 7:b3+; break;case 6:b4+;break;case 5:case 4:case 3:case 2:case 1:case 0: b5+; break;for(i=0;i<=5;i+)printf("%2d",bi);41 (*)輸入一個(gè)整數(shù),判斷它能否被 3、5、7整除,并輸出以下信息之一:能同時(shí)被3、5、

38、7整除;最新資料推薦能被其中兩個(gè)數(shù)(說(shuō)明哪兩個(gè)數(shù))整除;只能被其中一個(gè)整除(說(shuō)明哪個(gè)數(shù)) ;不能被3、 5、 7 任何一個(gè)整除。42 ( * )有 10 個(gè)數(shù)已按由小到大的順序存放在一個(gè)整型數(shù)組中,從鍵盤輸入一個(gè)數(shù),找出該數(shù)是數(shù)組中的第幾個(gè)元數(shù),如果該數(shù)不在數(shù)組中,則打印出“無(wú)此數(shù)”。main() int a10= 2,4,6,8,10,12,14,16,18,20;int i,t,j,m;for(i=0;i<10;i+)printf( “ %5d” ,ai);printf( “n” );scanf( “ %d” ,&m);for(i=0;i<10;i+) if(m=ai)

39、printf( “ %5d” ,i+1);break; if(i>=10) printf( “ no” ); 43 ( * )給出年、月、日,計(jì)算出該日是該年的第幾天。44 ( * )求 3 至 50 之間所有素?cái)?shù)之和,用子函數(shù)判斷是否為素?cái)?shù)。#include <math.h>main()int m,k,i,s=0;for (m=3;m<50;m+)k=sqrt(m);for(i=2;i<=k;i+)if (m%i=0) break;if(i>=k+1) s=s+m ; printf("%5dn",s);45 ( * )不用 strcpy 函數(shù),實(shí)現(xiàn)兩個(gè)字符串的復(fù)制( 形參用指針變量) 。46 ( * )從鍵盤輸入10 個(gè)數(shù),將其中最小的數(shù)與第一個(gè)數(shù)對(duì)換,最大的數(shù)與最后一個(gè)數(shù)對(duì)換,實(shí)現(xiàn)從小到大的排序。(用指針實(shí)現(xiàn))47 ( * )編制程序。在主函數(shù)中輸入a、 b、 c 三個(gè)數(shù),在子函數(shù)中用指針?lè)▽、 b、 c排序(最大數(shù)放在a 變量中,最小數(shù)放在c 變量著) ,在主函數(shù)中輸出。48 ( * ) 輸入三個(gè)字符

溫馨提示

  • 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)論