C語言編程題及答案_第1頁
C語言編程題及答案_第2頁
C語言編程題及答案_第3頁
C語言編程題及答案_第4頁
C語言編程題及答案_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

C語言編程題1.(*)求分?jǐn)?shù)序列:1/2,2/3,3/5,5/8,8/13,13/21 前20項(xiàng)的和。main(){floati=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);}$(*)從鍵盤輸入一個(gè)字符串,再將其逆序輸出。(如:輸入abcde,輸出edcba)main(){inti;charc[10];scanf("%s",c);for(i=9;i>=0;i--)printf("%c",c[i]);}(*)已知abc+cba=1333,其中a、b、c均為一位數(shù),例如:617+716=1333,518+815=1333,試編程求出符合這一規(guī)律的a、b、c,并輸出結(jié)果。main(){inta,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);}}(*)利用海倫公式求三角形面積,三邊長a,b,c由鍵盤輸入。若輸入的三邊長不能構(gòu)成三角形,輸出相應(yīng)提示信息。海倫公式如下:其中s=(a+b+c)/2三角形面積二Js*(s_a)*(s_b)*(s_c)#include""*main(){floata,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);else.1.printf("no");}5.(*)編程求出1!+2!+3!+—+8!+9!+10!的值并輸出。程序1:main(){inti,j;doublep=1,sum=0;|for(i=1;i<=10;i++){for(j=1;j<=i;j++)p=p*i;sum=sum+p;p=;}printf("sum=%f",sum);}程序2:floatfac(n)intn;!{floatf;if(n<0)printf("n<0,error!");elseif(n==0||n==1) f=1;elsef=fac(n-1)*n;return(f);}main(){inth,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(){inti;【doublep=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(inta[],intn){inti,j,k,t;for(i=0;i<n-1;i++){k=i;for(j=i+1;j<n;j++)if(a[k]<a[j])k=j;if(k!=i){t=a[k];a[k]=a[j];a[j]=t;}}}#defineN10main(){intc[N],i,j;for(i=0;i<N;i++)scanf("%d",&c[i]);maxji(c,N);for(i=N-1;i>=0;i--)if(c[i]%2==0)printf("%5d",c[i]);printf("\n");for(i=0;i<N;i++)if(c[i]%2!=0)printf("%5d",c[i]);}(*)求出0?999之間的所有“水仙花數(shù)”并輸出?!八苫〝?shù)”是指一個(gè)三位數(shù),其各位數(shù)字的立方和確好等于該數(shù)本身,如;153=1+5+3,則153是一個(gè)“水仙花數(shù)”。程序1:main(){inti,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%d\n",i,j,k);}程序:main(){intm,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("%d\n",m);}(*)試編程:判斷輸入的正整數(shù)是否既是5,又是7的整數(shù)倍數(shù)。若是則輸出yes;否則輸出no。|(*)已有函數(shù)調(diào)用語句c=add(a,b);請編寫aad函數(shù),計(jì)算兩個(gè)實(shí)數(shù)a和b的和,并返回和值。11.(*)有人想將手中一張面值100元的人民幣換成5元、1元、元面值的零錢100張,以上三種面值的零錢至少有一張,問共有幾種換法。請編程實(shí)現(xiàn)。程序1:main(){inti,j,k,n=0;for(i=1;i<19;i++)for(j=1;j<95;j++)for(k=1;k<94;k++)if(5*i+j+*k==100&&i+j+k==100)

{printf("%d,%d,%d\n",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(){inti,a,n;longsum=0,b=1,c=1;scanf("%d,%d",&a,&n);for(i=1;i<=n;i++){sum+=a*c;程序3:main()b*=10;c+=b;}{longintsn=0,k=a;¥inta,i,j;printf("%ld",sum);}scanf("%d",&a);for(i=1;i<=5;i++)程序2:main(){k=10*k+a;{longintsn=0,k=0;sn=sn+k;inta,i,j;}scanf("%d",&a);for(i=1;i<=5;i++)printf("%ld\n",sn);#{for(j=1;j<=i;j++)k=10*k+a;.4.sn=sn+k;k=0;}printf("%ld\n",sn);}13.(*)編程輸出如下圖形(不能僅用printf語句):main(){inti,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.(*)用近似公式求自然對(duì)數(shù)的底e的值。11《2!3!e~1+1!+++#include""main(){floati,j,e,p=,sum=;for(i=1;i<10;i++){for(j=1;j<=i;j++)p=p*j;sum=sum+p;p=;}e=i+sum;printf("%f\n",e);}(*)請編程,用scanf()函數(shù)輸入三個(gè)字符,對(duì)這三個(gè)字符各加一個(gè)整數(shù)1后,用putchar()函數(shù)輸出,且每輸出一個(gè)字符換一行。(*)請編程,用scanf()函數(shù)輸入三個(gè)整數(shù),輸出其中不大不小的那個(gè)數(shù),輸出寬度為五位。intfindmid(inti,intj,intk)|{intn;if(i<j){n=i;i=j;j=n;}if(i<k)n=i;elseif(j>k)n=j;elsen=k;return(n);}{main(){inti,j,k,n;scanf("%d%d%d",&i,&j,&k);n=findmid(i,j,k);printf("%d\n",n);}17.(*)編程實(shí)現(xiàn)輸出所有1?100之間能被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(){charday;scanf("%c",&day);swith(day){case'1':printf("monday\n");break;case'2':printf("tuesday\n");break;case'3':printf("wednsday\n");break;case'4':printf("thursday\n");braek;{case'5':printf("friday\n");break;case'6':printf("saturday\n");break;case'7':printf("sunday\n");break;defult:printf("error\n");(*)編一程序,對(duì)于給定的一個(gè)百分制成績,輸出相應(yīng)的5分制成績。設(shè):90分以上為'A',80~89分為'B',70~79分為'C',60~69分為'D',60分以下為'E'。(用switch語句實(shí)現(xiàn))。main(){ints,score;@scanf("%d",&score);s=score/10;switch(s){case10:printf("A\n");break;case9:printf("A\n");break;

case8:printf("B\n");break;case7:printf("C\n");break;case6:printf("D\n");break;《case5case4case3case2default:printf("error");caseprintf("E\n");break;caseprintf("E\n");break;}}【(*)試編程:判斷輸入的正整數(shù)是否既是5,又是7的整數(shù)倍數(shù)。若是則輸出yes;否則輸出no。(**)一個(gè)數(shù)如果卻好等于它的因子之和,這個(gè)數(shù)就稱為“完數(shù)”。例如,6的因子為1、2、3,而6=1+2+3,因此6是“完數(shù)”。編程序找出100之內(nèi)的所有完數(shù),并按下列格式輸出其因子: 6itsfactorsare1,2,3main(){intm,i,s;for(m=2;m<1000;m++){s=0;for(i=1;i<m;i++)if(m%i==0)s=s+i;)if(m==s){printf("%3ditsfactorsare",m);for(i=1;i<m;i++)if(m%i==0)printf("%4d",i);printf("\n");}}}(*)輸入5對(duì)整數(shù),請輸出每對(duì)數(shù)中較大者main(){inti,j,a[5][2];for(i=0;i<=4;i++)

for(j=0;j<=1;j++)scanf("%d",&a[i][j]);for(i=0;i<=4;i++)if(a[i][1]>a[i][0])printf("%4d\n",a[i][1]);elseprintf("%4d\n",a[i][0]);}.6.23.(**)編程將一個(gè)3x3矩陣轉(zhuǎn)置(行列互換)后輸出。main()!{inti,j,a[3][3],b[3][3];for(i=0;i<=2;i++)for(j=0;j<=2;j++)scanf("%d",&a[i][j]);for(i=0;i<=2;i++){for(j=0;j<=2;j++){print(“%5d”,a[i][j]);b[j][i]=a[i][j];}printf('\n');}for(j=0;j<=2;j++){for(i=0;i<=2;i++)printf("%5d",b[i][j]);printf(“\n”);}}printf(“\n”);}}24.(**)求一個(gè)一維數(shù)組的最大值)程序1:floatmax(intn,floata[]){inti;floatmax;max=a[0];for(i=0;i〈n;i++)if(max〈a[i])max=a[i];return(max);值和平均值(主函數(shù)調(diào)用并輸出)。|程序2:main(){voidmake();inta[10],i;externintmax,min;externfloataver;for(i=0;i〈10;i++)scanf("%d",&a[i]);make(a,10);printf("max=%d,min=%d,aver=%.2f",max,min,aver)floatmin(intn,floata[]){inti;floatmin;min=a[0];for(i=0;i<n;i++)if(min>a[i])min=a[i];return(min);}floataver(intn,floata[]){inti;floatsum=0,aver;.7.for(i=0;i<n;i++)sum=sum+a[i];aver=sum/n;return(aver);}#include""main(){inti;floatm,n,a[5],c;for(i=0;i<5;i++)scanf("%f",&a[i]);m=max(5,a);n=min(5,a);c=aver(5,a);printf("%5f%5f%5f\n",m,n,c);}25.(**)編寫函數(shù),求一個(gè)不超過五位的十進(jìn)制整數(shù)各位數(shù)值的和。(如:輸入2634,輸出15)#include""main(){inti,a[5],m,n=0;scanf("%d",&m);for(i=0;i<=4;i++){a[i]=m%10;n=n+a[i];m=m-a[i]*10;printf("%5d",a[i]);}printf('\n');printf("%d",n);}(**)編程求出一個(gè)3x3矩陣的最大和最小元素及其下標(biāo)。main(){inti,j,max,min,a[3][3],m1,n1,m2,n2;for(i=0;i<=2;i++)for(j=0;j<=2;j++)scanf("%d",&a[i][j]);min=max=a[0][0];.8.for(i=0;i<=2;i++)for(j=0;j<=2;j++)if(a[i][j]>max){max=a[i][j];m1=I;n1=j;}elseif(a[i][j]<min){min=a[i][j];m2=i;n2=j;}printf("max=%d,%3d,%3d,min=%d,%3d,%3d",max,m1,n1,min,m2,n2);}(**)有一個(gè)字符串,包含n個(gè)字符,編寫一個(gè)函數(shù),將此字符串中從第m個(gè)字符開始的全部字符復(fù)制成另一個(gè)字符串。main(){charchs2[30]={0},chs1[30]="thisismyfirstCprogram";inti,j,m;scanf("%d",&m);for(i=m,j=0;i<30;i++,j++)chs2[j]=chs1[i];chs2[29]='\0';printf("%s",chs2);}$28.(**)求一個(gè)3x3矩陣的對(duì)角線元素之和。main(){inti,j,sum1=0,sum2=0,a[3][3];for(i=0;i<=2;i++)for(j=0;j<=2;j++)scanf("%d",&a[i][j]);for(i=0;i<=2;i++){for(j=0;j<=2;j++))if(i==j)sum1+=a[i][j];if((i+j)==2)sum2+=a[i][j];}printf("%5d%5d",sum1,sum2);}29.(**)從鍵盤輸入兩個(gè)整數(shù),輸出其最大公約數(shù)和最小公倍數(shù)程序1:main(){inta,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%5d”,a,p/a);}.9.main(){inta,b,m,n,i,t;scanf(“%d%d”,&a,&b);if(a<b){t=a;a=b;b=t;}m=a;n=b;for(i=1;i<=n;i++)if((m%i==0)&&(n%i==0)){printf("%5d\n",i);break;}printf("%5d",a*b/i);>}30.(**)一個(gè)已按從小到大的順序排序的數(shù)組,有9個(gè)元素,從終端輸入第10個(gè)數(shù),要求按原來排序的規(guī)律將它插入數(shù)組中。(該數(shù)比第一個(gè)數(shù)大,比第九個(gè)數(shù)小)#defineN10main(){intb,i,n,a[N]={1,5,7,11,15,19,23,28,31};scanf("%d",&b);for(i=0;i<N-1;i++)if(a[i]>b){n=i;break;}$for(i=(N-2);i>=n;i--)a[i+1]=a[i];a[n]=b;for(i=0;i<N;i++)printf("%5d",a[i]);}31.(**)請編寫程序,輸出以下?lián)P輝三角形(要求輸出10行)。*111121133114641#defineM10#defineN10main(){inta[M][N],i,j;for(i=0;i<M;i++)for(j=0;j<=i;j++)if(j==0||j==i)a[i][j]=1;elsea[i][j]=a[i-1][j-1]+a[i-1][j];for(i=0;i<M;i++){for(j=0;j<=i;j++)printf("%4d",a[i][j]);printf("\n");}}32.(**)從鍵盤輸入少于50個(gè)的整數(shù),其值在0和4之間(包括0和4),用-1作為輸入結(jié)束標(biāo)志,統(tǒng)計(jì)每個(gè)整數(shù)的個(gè)數(shù)。請編程實(shí)現(xiàn)。(**)從鍵盤輸入兩個(gè)字符串a(chǎn)和b,要求不用庫函數(shù)strcat把串b的前五個(gè)字符連接\到串a(chǎn)中;如果b的長度小于5,則把b的所有元素都連接到a中,請編程實(shí)現(xiàn)。main(){chara[50],b[10],*p1,*p2;inti,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);}(**)編寫函數(shù),在一個(gè)一維數(shù)組中查找指定值,若找到則返回該數(shù)值的下標(biāo),否則返回-1。要求用指針變量傳遞數(shù)組首地址。main(){floata[10]={1,2,3,4,5,6,7,8,9,10};floatb;?inti;scanf("%f",&b);for(i=0;i<10;i++)if(b==a[i]){printf("%d\n",i);break;}if(i>=10)printf("-1");printf("\n");}(**)寫一程序,要求用戶在鍵盤上輸入一個(gè)整數(shù),并把每位數(shù)字轉(zhuǎn)換為英文。例如:輸入1024時(shí),輸出OneZeroTwoFourmain(){longintn;intm,i=0,c[10];scanf("%ld",&n);do{m=n%10;i++;c[i]=m;printf("%5d%5d%5d\n",i,m,c[i]);}while((n/=10)>0);while(i>=1){i--;switch(c[i+1]){case0:{printf("zero");printf("");break;}case1:{printf("one");printf("");break;}case2:{printf("two");printf("");break;}case3:{printf("three");printf("");break;}case4:{printf("four");printf("");break;}case5:{printf("five");printf("");break;}case6:{printf("six");printf("");break;}case7:{printf("seven");printf("");break;}case8:{printf("eight");printf("");break;}case9:{printf("nine");printf("");break;}default:printf("no");}}}(**)A數(shù)組中有8個(gè)元素,從第6個(gè)元素開始將數(shù)組后三個(gè)元素移到數(shù)組開頭。例如:A數(shù)組元素為:26985374移動(dòng)后數(shù)組變?yōu)椋?7426985#defineN8¥main(){inta[8]={2,6,9,8,5,3,7,4};inti,j,t;for(i=0;i<8;i++)printf("%5d",a[i]);printf("\n");for(j=0;j<3;j++){t=a[N-1];?for(i=N-2;i>=0;i--)a[i+1]=a[i];a[0]=t;}for(i=0;i<8;i++)printf("%5d",a[i]);}37.(**)按如下格式打印輸出乘法口訣表:]1X1=11X2=22X2=4III1X9=92X9=183X9=279X9=8138.(**)請將n個(gè)整數(shù)按升序重新放在原數(shù)組中,操作時(shí)不得另開辟數(shù)組。39.(**)輸入若干學(xué)生一門功課的成績,統(tǒng)計(jì)各分?jǐn)?shù)段的人數(shù)。凡不及格(60分以下)都由一個(gè)計(jì)數(shù)器來統(tǒng)計(jì),其它以10分作為一個(gè)數(shù)段,100分作為一個(gè)分?jǐn)?shù)段。main()?{inta[10];inti,j,t,p;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<9;i++){p=i;for(j=i+1;j<10;j++)if(a[p]>a[j])p=j;(if(p!=j){t=a[i];a[i]=a[p];a[p]=t;}}for(i=0;i<10;i++)printf("%5d",a[i]);40.(**)編寫函數(shù),給定一個(gè)數(shù),刪除數(shù)組中與之相等的元素,返回值為刪除后數(shù)組中|的元素個(gè)數(shù)。main(){floata[10],t;ints,b[6]={0},i;for(i=0;i<10;i++)scanf("%f",&a[i]);i=0;while(i<10)/{s=(int)a[i]/10;i++;switch(s){case10:b[0]++;break;case9:b[1]++;break;case8:b[2]++;break;case7:b[3]++;break;case6:b[4]++;break;|case5:case4:case3:case2:case1:case0:b[5]++;break;}}for(i=0;i<=5;i++)printf("%2d",b[i]);}41.(**)輸入一個(gè)整數(shù),判斷它能否被3、5、7整除,并輸出以下信息之一:⑴能同時(shí)被3、5、7整除;⑵能被其中兩個(gè)數(shù)(說明哪兩個(gè)數(shù))整除;⑶只能被其中一個(gè)整除(說明哪個(gè)數(shù));)⑷不能被3、5、7任何一個(gè)整除。42.(**)有10個(gè)數(shù)已按由小到大的順序存放在一個(gè)整型數(shù)組中,從鍵盤輸入一個(gè)數(shù),找出該數(shù)是數(shù)組中的第幾個(gè)元數(shù),如果該數(shù)不在數(shù)組中,則打印出“無此數(shù)”。main(){inta[10]={2,4,6,8,10,12,14,16,18,20};inti,t,j,m;for(i=0;i<10;i++)printf(“%5d”,a[i]);printf(“\n”);[scanf(“%d”,&m);for(i=0;i<10;i++)if(m==a[i]){printf(“%5d”,i+1);break;}if(i>=10)printf(“no”);}43.(**)給出年、月、日,計(jì)算出該日是該年的第幾天。44.(***)求3至50之間所有素?cái)?shù)之和,用子函數(shù)判斷是否為素?cái)?shù)。#include<>main()|{intm,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("%5d\n",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))(***)編制程序。在主函數(shù)中輸入a、b、c三個(gè)數(shù),在子函數(shù)中用指針法將a、b、c排序(最大數(shù)放在a變量中,最小數(shù)放在c變量著),在主函數(shù)中輸出。(***)輸入三個(gè)字符串,按由小到大的順序輸出。(用字符指針實(shí)現(xiàn))。49.(***)請編程,從鍵盤輸入6名學(xué)生的5門成績,分

溫馨提示

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

評(píng)論

0/150

提交評(píng)論