C語(yǔ)言編程題及答案_第1頁(yè)
C語(yǔ)言編程題及答案_第2頁(yè)
C語(yǔ)言編程題及答案_第3頁(yè)
C語(yǔ)言編程題及答案_第4頁(yè)
C語(yǔ)言編程題及答案_第5頁(yè)
已閱讀5頁(yè),還剩13頁(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、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=0;i-) printf(%c,ci); 3(*)已知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;cc&a+cb&b+ca) printf(area=%f,area);

2、else1 printf(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 (n0) printf(n0,error!);else if(n=0|n=1) f=1;else f=fac(n-1)*n;return(f);main()int h,s=0,n; for(n=1;

3、n=4;n+) h=fac(n); s=s+h; printf(s=1!+2!+.+10!=%dn,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 a,int n) int i,j,k,t; for(i=0;in-1;i+)k=i;for(j=i+1;jn;j+) if(akaj) k=j; if

4、 (k!=i)t=ak;ak=aj;aj=t; #define N 10 main() int cN,i,j; for(i=0;i=0;i-) if(ci%2=0) printf(%5d,ci); printf(n); for(i=0;iN;i+) if(ci%2!=0) printf(%5d,ci); 8(*)求出0999之間的所有“水仙花數(shù)”并輸出。“水仙花數(shù)”是指一個(gè)三位數(shù),其各位數(shù)字的立方和確好等于該數(shù)本身,如;153153 ,則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

5、+)if(i*i*i+j*j*j+k*k*k=100*i+10*j+k)printf(%d%d%dn,i,j,k);程序:main()int m,i,j,k,a;for(m=101;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元、

6、0.5元面值的零錢100張,以上三種面值的零錢至少有一張,問(wèn)共有幾種換法。請(qǐng)編程實(shí)現(xiàn)。程序1: main()int i,j,k,n=0;for(i=1;i19;i+)for(j=1;j95;j+)for(k=1;k94;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,

7、%d,&a,&n);for(i=1;i=n;i+)程序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); sum+=a*c;b*=10;c+=b;printf(%ld,sum); 程序2:main() long int sn=0,k=0;int a,i,j; scanf(%d,&a); for(i=1;i=5;i+) for(j=1;j=i;j+) k=10*k+a;4 sn=sn+k; k=0; printf(%ldn,sn); 13(*

8、)編程輸出如下圖形(不能僅用printf語(yǔ)句): * * * * * * * * * * * * * * * * * * * * * * * *main()int i,k,j;for(i=0;i=4;i+) for(j=0;j4-i;j+) printf( ); for(k=0;k=2*i;k+) printf(*); printf(n); 14(*)用近似公式求自然對(duì)數(shù)的底e的值。 e1+1!+ + +#includemath.h main() float i,j,e,p=1.0,sum=0.0; for(i=1;i10 ;i+) for(j=1;j=i;j+) p=p*j; sum=sum

9、+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ù),輸出其中不大不小的那個(gè)數(shù),輸出寬度為五位。 int findmid(int i,int j,int k)int n;5 if(ij) n=i;i=j;j=n;if(ik) 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)

10、;printf(%dn,n);17(*)編程實(shí)現(xiàn)輸出所有1100之間能被9整除余2的數(shù)。18(*)編寫一程序?qū)崿F(xiàn)如下功能:輸入1、2、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:printf(thursdayn); braek; case

11、 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,6069分為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(

12、An);break; case 8:printf(Bn);break; case 7:printf(Cn);break; case 6:printf(Dn);break; case 5: 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ù),并按下列格式

13、輸出其因子: 6 its factors are 1,2,3main()int m,i,s; for(m=2;m1000;m+) s=0; for(i=1; im ;i+) if(m%i=0) s=s+i; if (m=s) printf(%3d its factors are ,m); for(i=1;im;i+) if(m%i=0) printf(%4d,i); printf(n); 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;iai0) p

14、rintf(%4dn,ai1); else printf(%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(j=0;j=2;j+)for(i=0;i=2;i+)printf(%5d,bij);printf(“n”);24(*)求一個(gè)一維數(shù)組的最大值,最小值和平均值(主函數(shù)調(diào)用并輸出)。程序2

15、:main()void make(); int a10,i; extern int max,min; extern float aver; for(i=0;i10;i+) scanf(%d,&ai); make(a,10); printf(max=%d,min=%d,aver=%.2f,max,min,aver); int max,min; float aver; void make(int a,int n) int i; float sum;max=min=a0; sum=a0; for(i=1;in;i+) if(maxai) min=ai; sum+=ai;printf(%f,sum);

16、 aver=(float)sum/n; 程序1:float max(int n,float a)int i;float max;max=a0;for(i=0;in;i+)if(maxai) max=ai;return(max);float min(int n,float a) int i;float min;min=a0;for(i=0;iai) min=ai;return(min);float aver(int n,float a) int i;float sum=0,aver;7 for(i=0;in;i+)sum=sum+ai;aver=sum/n;return(aver);#inclu

17、demath.hmain() int i;float m,n,a5,c;for(i=0;i5;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) #includemath.hmain() int i,a5,m,n=0;scanf(%d,&m);for(i=0;i=4;i+)ai=m%10;n=n+ai;m=m-ai*10;printf(%5d,ai);printf(n);printf(%d,n);26(

18、*)編程求出一個(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=2;i+) for(j=0;jmax) max=aij;m1=I;n1=j; else if(aijmin) 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ù),將此

19、字符串中從第m個(gè)字符開(kāi)始的全部字符復(fù)制成另一個(gè)字符串。 main()char chs230=0,chs130=this is my first C program;int i,j,m;scanf(%d,&m);for(i=m,j=0;i30;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

20、=j) sum1+=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(ab) t=a;a=b;b=t;p=a*b;while(b!=0)r=a%b;a=b;b=r;printf(“%5d%5d”,a,p/a);9 main() int a,b,m,n,i,t; scanf(“%d%d”,&a,&b);if(ab)t=a;a=b;b=t;m=a;n=b;for(i=1;i=n;i+)if(m

21、%i=0)&(n%i=0) printf(%5dn,i);break;printf(%5d,a*b/i);30(*)一個(gè)已按從小到大的順序排序的數(shù)組,有9個(gè)元素,從終端輸入第10個(gè)數(shù),要求按原來(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;ib) n=i;break;for(i=(N-2);i=n;i-)ai+1=ai;an=b;for(i=0;iN;i+)printf(%5d,ai);31(*)請(qǐng)編寫程序,輸出以下?lián)P輝三角形(

22、 要求輸出10行)。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1: # define M 10 # define N 10 main() int aMN,i,j; for(i=0;iM;i+) for(j=0;j=i;j+) if(j=0|j=i) aij=1; else aij=ai-1j-1+ai-1j; for(i=0;iM;i+) for(j=0;j=i;j+) printf(%4d,aij); printf(n); 32(*)從鍵盤輸入少于50個(gè)的整數(shù),其值在0和4之間(包括0和4),用-1作為輸入結(jié)束標(biāo)志,統(tǒng)計(jì)每個(gè)整數(shù)的個(gè)數(shù)。請(qǐng)編程實(shí)現(xiàn)。33(*)從鍵盤輸入兩個(gè)字符

23、串a(chǎn)和b,要求不用庫(kù)函數(shù)strcat把串b的前五個(gè)字符連接到串a(chǎn)中;如果b的長(zhǎng)度小于5,則把b的所有元素都連接到a中,請(qǐng)編程實(shí)現(xiàn)。 main() char a50,b10,*p1,*p2; int i,j; scanf(“%s%s”,a,b); n=strlen(a); for(p1=a+n,p2=b;p1=a+(n+4);p1+,p2+)*p1=*p2; if(*p2= =0) break; *p1=0;printf(“%s”,a);34(*)編寫函數(shù),在一個(gè)一維數(shù)組中查找指定值,若找到則返回該數(shù)值的下標(biāo),否則返回-1。要求用指針變量傳遞數(shù)組首地址。 main()float a10=1,2,

24、3,4,5,6,7,8,9,10;float b;int i;scanf(%f,&b);for(i=0;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)i-;switch(ci+1)case 0: printf(zero);pr

25、intf( );break;case 1: printf(one);printf( ); break; case 2: printf(two);printf( ); break;case 3: printf(three);printf( );break;case 4: printf(four);printf( );break;case 5: printf(five);printf( );break;case 6: printf(six);printf( ); break;case 7: printf(seven);printf( ); break;case 8: printf(eight);p

26、rintf( ); break;case 9: printf(nine);printf( ); break;default:printf(no);36(*)A數(shù)組中有8個(gè)元素,從第6個(gè)元素開(kāi)始將數(shù)組后三個(gè)元素移到數(shù)組開(kāi)頭。例如: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;i8;i+) printf(%5d,ai);printf(n);for(j=0;j=0;i-)ai+1=ai;a0=t;for(i=0;i8;i+)printf(

27、%5d,ai);37(*)按如下格式打印輸出乘法口訣表: 11=1 12=2 22=4 19=9 29=18 39=27 99=81 38(*)請(qǐng)將n個(gè)整數(shù)按升序重新放在原數(shù)組中,操作時(shí)不得另開(kāi)辟數(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,j,t,p;for(i=0;i10;i+)scanf(%d,&ai);for(i=0;i9;i+)p=i;for(j=i+1;jaj)p=j;if(p!=j)t=ai;ai=ap;ap=t;for(i=0

28、;i10;i+)printf(%5d,ai);40(*) 編寫函數(shù),給定一個(gè)數(shù),刪除數(shù)組中與之相等的元素,返回值為刪除后數(shù)組中的元素個(gè)數(shù)。 main()float a10,t;int s,b6=0,i;for(i=0;i10;i+) scanf(%f,&ai);i=0;while(i10)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

29、0: b5+; break;for(i=0;i=5;i+)printf(%2d,bi);41.(*)輸入一個(gè)整數(shù),判斷它能否被3、5、7整除,并輸出以下信息之一:能同時(shí)被3、5、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;i10;i+) printf(“%5

30、d”,ai); printf(“n”); scanf(“%d”,&m); for(i=0;i=10) printf(“no”); 43(*)給出年、月、日,計(jì)算出該日是該年的第幾天。44(*)求3至50之間所有素?cái)?shù)之和,用子函數(shù)判斷是否為素?cái)?shù)。 #include main() int m,k,i,s=0; for (m=3;m50;m+) k=sqrt(m); for(i=2;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è)字符串,按由小到大的順序輸出。(用字符指針實(shí)現(xiàn))。49(*) 請(qǐng)編程,從鍵盤輸入6名學(xué)生

溫馨提示

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