C语言编程题及答案.docx

上传人:b****8 文档编号:12543195 上传时间:2023-06-06 格式:DOCX 页数:24 大小:23.65KB
下载 相关 举报
C语言编程题及答案.docx_第1页
第1页 / 共24页
C语言编程题及答案.docx_第2页
第2页 / 共24页
C语言编程题及答案.docx_第3页
第3页 / 共24页
C语言编程题及答案.docx_第4页
第4页 / 共24页
C语言编程题及答案.docx_第5页
第5页 / 共24页
C语言编程题及答案.docx_第6页
第6页 / 共24页
C语言编程题及答案.docx_第7页
第7页 / 共24页
C语言编程题及答案.docx_第8页
第8页 / 共24页
C语言编程题及答案.docx_第9页
第9页 / 共24页
C语言编程题及答案.docx_第10页
第10页 / 共24页
C语言编程题及答案.docx_第11页
第11页 / 共24页
C语言编程题及答案.docx_第12页
第12页 / 共24页
C语言编程题及答案.docx_第13页
第13页 / 共24页
C语言编程题及答案.docx_第14页
第14页 / 共24页
C语言编程题及答案.docx_第15页
第15页 / 共24页
C语言编程题及答案.docx_第16页
第16页 / 共24页
C语言编程题及答案.docx_第17页
第17页 / 共24页
C语言编程题及答案.docx_第18页
第18页 / 共24页
C语言编程题及答案.docx_第19页
第19页 / 共24页
C语言编程题及答案.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言编程题及答案.docx

《C语言编程题及答案.docx》由会员分享,可在线阅读,更多相关《C语言编程题及答案.docx(24页珍藏版)》请在冰点文库上搜索。

C语言编程题及答案.docx

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

三角形面积=s*(sa)*(sb)*(sc)

#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);

elseprintf("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

=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++)

{sum+=a*c;

b*=10;c+=b;}

printf("%ld",sum);

}

程序2:

main()

程序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);

{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的值。

11

1+1!

+十+

2!

3!

#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][O]);

}

.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(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;i

for(j=0;j<=2;j++)

最小值和平均值(主函数调用并输出)。

程序2:

main()

{voidmake();

inta[10],i;

externintmax,min;

externfloataver;

for(i=0;i<10;i++)

8scanf("%d",&a[i]);

make(a,10);

printf("max=%d,min=%d,aver=%.2f',max,min,aver)

return(max);

}

floatmin(intn,floata[])

{inti;

floatmin;

min=a[0];

for(i=0;i

if(min>a[i])min=a[i];

return(min);

}

floataver(intn,floata[])

{inti;

floatsum=0,aver;

.7.

for(i=0;i

sum=sum+a[i];

aver=sum/n;

return(aver);

}

#include"math.h"

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);

2634,输

}

25.(**)编写函数,求一个不超过五位的十进制整数各位数值的和。

(如:

输入

出15)

#include"math.h"

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);

}

26.(**)编程求出一个3x3矩阵的最大和最小元素及其下标。

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=a[i][j];m2=i;n2=j;}printf("max=%d,%3d,%3d,min=%d,%3d,%3d",max,m1,n1,min,m2,n2);

}

27.

m个字符开

(**)有一个字符串,包含n个字符,编写一个函数,将此字符串中从第始的全部字符复制成另一个字符串。

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.(**)求一个3x3矩阵的对角线元素之和。

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.(**)从键盘输入两个整数,输出其最大公约数和最小公倍数。

程序1:

main()

{inta,b,t,p,r;

scanf("%d,%d",&a,&b);

if(a

p=a*b;

while(b!

=0)

{r=a%b;a=b;b=r;}

printf(“%5d%5”d,a,p/a);}

.9.

main()

{inta,b,m,n,i,t;

scanf(“%d%”d,&a,&b);

if(a

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);

10个数,要求

}

30.(**)一个已按从小到大的顺序排序的数组,有9个元素,从终端输入第

按原来排序的规律将它插入数组中。

(该数比第一个数大,比第九个数小)

#defineN10

main()

{intb,i,n,a[N]={1,5,7,11,15,19,23,28,31};

scanf("%d",&b);

for(i=0;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

printf("%5d",a[i]);

}

31.(**)请编写程序,输出以下扬辉三角形(要求输出10行)

1

11

121

1331

14641

#defineM10

#defineN10

main()

{inta[M][N],i,j;

for(i=0;i

for(j=0;j<=i;j++)

if(j==0||j==i)a[i][j]=1;

else

a[i][j]=a[i-1][j-1]+a[i-1][j];

for(i=0;i

{for(j=0;j<=i;j++)

printf("%4d",a[i][j]);

printf("\n");}

}

0和4),用-1作为输入

把串b的前五个字符连接请编程实现。

32.(**)从键盘输入少于50个的整数,其值在0和4之间(包结束标志,统计每个整数的个数。

请编程实现。

33.(**)从键盘输入两个字符串a和b,要求不用库函数strcat

到串a中;如果b的长度小于5,则把b的所有元素都连接到a中,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);}

34.(**)编写函数,在一个一维数组中查找指定值,若找到则返回该数值的下标,否则返回-1。

要求用指针变量传递数组首地址。

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");

}

35.(**)写一程序,要求用户在键盘上输入一个整数,并把每位数字转换为英文。

例如:

输入1024时,输出OneZeroTwoFour

main(){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");}}}

36.(**)A数组中有8个元素,从第6个元素开始将数组后三个元素移到数组开头。

例如:

A

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2