C语言编程题及答案.docx
- 文档编号:25942211
- 上传时间:2023-06-16
- 格式:DOCX
- 页数:28
- 大小:26.60KB
C语言编程题及答案.docx
《C语言编程题及答案.docx》由会员分享,可在线阅读,更多相关《C语言编程题及答案.docx(28页珍藏版)》请在冰豆网上搜索。
C语言编程题及答案
C语言编程题
1.(*)求分数序列:
1/2,2/3,3/5,5/8,8/13,13/21......前20项的和。
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);
}
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
三角形面积=
#include"math.h"
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=1.0;}
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.(*)从键盘输入两个整数,输出其和,差,积,商。
7.(**)输入若干个自然数,对奇数从大到小排序,对偶数从小到大排序,输出两种结果。
maxji(inta[],intn)
{inti,j,k,t;
for(i=0;i {k=i; for(j=i+1;j if(a[k] if(k! =i) {t=a[k];a[k]=a[j];a[j]=t;} }} #defineN10 main() {intc[N],i,j; for(i=0;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 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;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,%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++) 程序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); } {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; 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.(*)用近似公式求自然对数的底e的值。 e≈1+1! +++…… #include"math.h" main() {floati,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("%f\n",e); } 15.(*)请编程,用scanf()函数输入三个字符,对这三个字符各加一个整数1后,用 putchar()函数输出,且每输出一个字符换一行。 16.(*)请编程,用scanf()函数输入三个整数,输出其中不大不小的那个数,输出宽度为五位。 intfindmid(inti,intj,intk) {intn; .5. if(i if(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.(*)编程实现输出所有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,3 main() {intm,i,s; for(m=2;m<1000;m++) {s=0; for(i=1;i if(m%i==0)s=s+i; if(m==s) {printf("%3ditsfactorsare",m); for(i=1;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]); else printf("%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.(**)求一个一维数组的最大值,最小值和平均值(主函数调用并输出)。 程序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); } intmax,min;floataver; voidmake(inta[],intn) {inti;floatsum; max=min=a[0]; sum=a[0]; for(i=1;i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 编程 答案