您好,欢迎访问三七文档
)(*)(*)(*csbsassC语言编程题1.(*)求分数序列:1/2,2/3,3/5,5/8,8/13,13/21......前20项的和。main(){floati=1,j=2,s=0,t,n,m;for(n=1;n=20;n++)t=i/j,m=i,i=j,j=m+j,s=t+s;printf(s=%f,s);}2.(*)从键盘输入一个字符串,再将其逆序输出。(如:输入abcde,输出edcba)main(){inti;charc[10];scanf(%s,c);for(i=9;i=0;i--)printf(%c,c[i]);}3.(*)已知abc+cba=1333,其中a、b、c均为一位数,例如:617+716=1333,518+815=1333,试编程求出符合这一规律的a、b、c,并输出结果。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);}}4.(*)利用海伦公式求三角形面积,三边长a,b,c由键盘输入。若输入的三边长不能构成三角形,输出相应提示信息。海伦公式如下:其中s=(a+b+c)/2三角形面积=#includemath.hmain(){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+bc&&a+cb&&b+ca)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=1.0;}printf(sum=%f,sum);}程序2:floatfac(n)intn;{floatf;if(n0)printf(n0,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.(*)从键盘输入两个整数,输出其和,差,积,商。7.(**)输入若干个自然数,对奇数从大到小排序,对偶数从小到大排序,输出两种结果。maxji(inta[],intn){inti,j,k,t;for(i=0;in-1;i++){k=i;for(j=i+1;jn;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;iN;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;iN;i++)if(c[i]%2!=0)printf(%5d,c[i]);}8.(*)求出0~999之间的所有“水仙花数”并输出。“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身,如;153=1+5+3,则153是一个“水仙花数”。程序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);}9.(*)试编程:判断输入的正整数是否既是5,又是7的整数倍数。若是则输出yes;否则输出no。10.(*)已有函数调用语句c=add(a,b);请编写aad函数,计算两个实数a和b的和,并返回和值。11.(*)有人想将手中一张面值100元的人民币换成5元、1元、0.5元面值的零钱100张,以上三种面值的零钱至少有一张,问共有几种换法。请编程实现。程序1:main(){inti,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,%d\n,i,j,k);n++;}printf(%d,n);}12.(*)求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,例如: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;b*=10;c+=b;}printf(%ld,sum);}程序2:main(){longintsn=0,k=0;inta,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;程序3:main(){longintsn=0,k=a;inta,i,j;scanf(%d,&a);for(i=1;i=5;i++){k=10*k+a;sn=sn+k;}printf(%ld\n,sn);}!21!31k=0;}printf(%ld\n,sn);}13.(*)编程输出如下图形(不能仅用printf语句):*************************main(){inti,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.(*)用近似公式求自然对数的底e的值。e≈1+1!+++……#includemath.hmain(){floati,j,e,p=1.0,sum=0.0;for(i=1;i10;i++){for(j=1;j=i;j++)p=p*j;sum=sum+1.0/p;p=1.0;}e=i+sum;printf(%f\n,e);}15.(*)请编程,用scanf()函数输入三个字符,对这三个字符各加一个整数1后,用putchar()函数输出,且每输出一个字符换一行。16.(*)请编程,用scanf()函数输入三个整数,输出其中不大不小的那个数,输出宽度为五位。intfindmid(inti,intj,intk){intn;.5.if(ij){n=i;i=j;j=n;}if(ik)n=i;elseif(jk)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.(*)编程实现输出所有1~100之间能被9整除余2的数。18.(*)编写一程序实现如下功能:输入1、2、3、4、5、6、7(分别对应星期一至星期日)中的任何一个数,便能输出与之对应的英文名称。如输入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);19.(*)编一程序,对于给定的一个百分制成绩,输出相应的5分制成绩。设:90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为‘E’。(用switch语句实现)。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;case5:case4:case3:case2:case1:printf(E\n);break;default:printf(error);}}20.(*)试编程:判断输入的正整数是否既是5,又是7的整数倍数。若是则输出yes;否则输出no。21.(**)一个数如果却好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数”。编程序找出100之内的所有完数,并按下列格式输出其因子:6itsfactorsare1,2,3main(){intm,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(%3ditsfactorsare,m);for(i=1;im;i++)if(m%i==0)printf(%4d,i);printf(\n);}}}22.(*)输入5对整数,请输出每对数中较大者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.(**)编程将一个3x3矩阵转置(行列互换)后输出。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”);}}24.(**)求一个一维数组的最大值,最小值和平均值(主函数调用并输出)。程序1:floatmax(intn,floata[]){inti;floatmax;max=a[0];for(i=0;in;i++)if(maxa[i])max=a[i];return(max);}floatmin(intn,floata[]){inti;floatmin;min=a[0];for(i=0;in;i++)if(min
本文标题:C语言编程题及答案
链接地址:https://www.777doc.com/doc-4807840 .html