c语言编程题答案.docx

上传人:b****7 文档编号:10428252 上传时间:2023-02-11 格式:DOCX 页数:16 大小:17.30KB
下载 相关 举报
c语言编程题答案.docx_第1页
第1页 / 共16页
c语言编程题答案.docx_第2页
第2页 / 共16页
c语言编程题答案.docx_第3页
第3页 / 共16页
c语言编程题答案.docx_第4页
第4页 / 共16页
c语言编程题答案.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

c语言编程题答案.docx

《c语言编程题答案.docx》由会员分享,可在线阅读,更多相关《c语言编程题答案.docx(16页珍藏版)》请在冰豆网上搜索。

c语言编程题答案.docx

c语言编程题答案

第三章;

1.编写一个程序,从键盘输入一个三位整数,将它们逆序输出。

例如输入127,输出721。

voidmain()

{intn,a,b,c,t;

scanf("%d",&n);

if(n>=100&&n<1000)

{a=n/100;

b=n/10%10;

c=n%10;

t=c*100+b*10+a;

if(c!

=0)

printf("%d",t);

if(c==0)

printf("0%d",t);

}

}

方法二:

voidmain()

{

intn,x1,x2,x3,y;

scanf("%3d",&n);

x1=n/100;

x2=n/10%10;

x3=n%10;

y=x3*100+x2*10+x1;

printf("y=%d",y);

}

第四章:

打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该

数本身。

例如:

153是一水仙花数,因为153=1^3+5^3+3^3.

#include"stdio.h"

voidmain()

{intn,i,a,b,c,t;

for(i=100;i<1000;i++)

{n=i;

a=n/100;

b=n/10%10;

c=n%10;

t=a*a*a+b*b*b+c*c*c;

if(t==n)

printf("%d",n);

}

}

方法二:

voidmain()

{

inti,x,y,z;

printf("所有的水仙花为:

n");

for(i=100;i<1000;i++)

{x=i/100;y=i/10%10;z=i%10;

if(i==x*x*x+y*y*y+z*z*z)

printf("%5d",i);

}

}

21编写一程序,对于给定的一个百分制成绩,输出相应的五分制成绩。

设:

90分以上为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。

#include"stdio.h"

voidmain()

{floatscore;

scanf("%f",&score);

if(score>100||score<0)

printf("\ninputerror!

");

if(score>=90)

printf("A");

if(score>=80&&score<=89)

printf("B");

if(score>=70&&score<=79)

printf("C");

if(score>=60&&score<=69)

printf("D");

if(score<60)

printf("E");

}

第五章:

26键盘输入10个实型数,求其倒数的和并输出.

#include"stdio.h"

voidmain()

{floata[10],t;

doubles=0.0;

inti;

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

{scanf("%f",&a[i]);

t=1/a[i];

s=s+t;}

printf("%f",s);

}

方法二:

#include

main()

{floata[10],s=0.0;

inti;

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

{

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

a[i]=1.0/a[i];}

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

s+=a[i];

printf("%f",s);

}

27键盘输入10个正实型数,求其方根的和并输出。

#include"stdio.h"

#include"math.h"

voidmain()

{floata[10],t,s=0.0;

inti;

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

{scanf("%f",&a[i]);

t=sqrt(a[i]);

s=s+t;}

printf("%f",s);

}

方法二:

#include

#include

main()

{

floata[10];

inti;

floats=0.0,t;

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

{

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

t=sqrt(a[i]);

}

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

s+=t;

printf("%f",s);

}

28计算s=1-2!

+3!

-4!

+…-10!

的值并输出

#include"stdio.h"

voidmain()

{intt,i,j,a;

longs=0;

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

{t=1;

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

t=t*j;

if(i%2==0)

a=-1*t;

else

a=t;

s=s+a;}

printf("%ld",s);

}

29计算s=1-1/3+1/5-1/7+…1/101的值并输出。

#include"stdio.h"

voidmain()

{inti;

floatt,s=0.0;

for(i=1;i<=101;i+=2)

{t=1.0/i;

if(i/2%2!

=0)

t=-1*t;

s+=t;}

printf("%f",s);

}

方法二:

#include"math.h"

#include"stdio.h"

main()

{

longi=1;doubles=0.0,m;

for(;i<=51;i++)

{m=(double)1.0/(2*i-1);

if(i%2==0)m=-m;

s+=m;

}

printf("s=%lf",s);

}

30输入一个正整数,要求以相反的顺序输出该数。

例如输入12345,输出位54321。

#include"stdio.h"

voidmain()

{longn;

scanf("%ld",&n);

while(n)

{printf("%ld",n%10);

n=n/10;

}

}

31任意输入一个偶数,请将它分解为两个素数之和。

intisP(intm)

{inti;

for(i=2;i

if(m%i==0)return0;return1;}

main()

{intnum,i,j;i=0;j=0;printf("num=");

scanf("%d",&num);

for(i=2;i<=num/2;i++)

{j=num-i;if(isP(i)&&isP(j))

{printf("num=%d+%d",i,j);

printf("\n");

}

}

}

32编写程序,输入三角型的三条边长,求其面积。

注意:

对于不合理的边长输入要输出数据错误的提示信息。

#include"stdio.h"

#include"math.h"

voidmain()

{floata,b,c,t;

doubles;

scanf("%f%f%f",&a,&b,&c);

if(a+b>c&&a+c>b&&b+c>a)

{t=(a+b+c)/2.0;

s=sqrt(t*(t-a)*(t-c)*(t-b));

printf("%f",s);}

else

printf("error");

}

33输入n值,输出如图所示矩形。

******

******

******

******

******

******

n=6时的矩形

按照上述思路,实现打印矩形。

voidmain()

{intn,i,j;

scanf("%d",&n);

for(i=1;i<=n;i++)

{for(j=1;j<=n;j++)

printf("*");

printf("\n");

}

}

34.编写程序:

求S=1/(1*2)+1/(2*3)+1/(3*4)+……前50项之和。

#include

#include

main()

{

longi=1;doubles=0.0,m;

for(;i<51;i++)

{

m=(double)1.0/(i*(i+1));

s+=m;

}

printf("s=%lf",s);

}

35统计在[1030-25830]之间有多少个数能同时被13和27整除。

#include"stdio.h"

voidmain()

{inti,j=0;

for(i=1030;i<=25830;i++)

if(i%13==0&&i%27==0)

j++;

printf("%d",j);

}

 

第六章:

22在主函数中输入8个整数,调用函数对其进行排序(从小到大),排序方法不限,

最后在主函数中输出结果。

#include"stdio.h"

inta[8],i,j,n,t,b[8];

intfun(intn)

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

for(j=i+1;j<=7;j++)

if(a[i]>a[j])

{t=a[i];a[i]=a[j];a[j]=t;}

return(a[n]);

}

voidmain()

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

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

for(n=0;n<=7;n++)

b[n]=fun(n);

for(n=0;n<=7;n++)

printf("%d",b[n]);

}

23编写函数,采用递归方法将任一整数转换为二进制形式。

法二:

#defineN10000000000

#include"stdio.h"

voidmain()

{intj=1,a[10],m;

longn,t,i;

scanf("%ld",&n);

for(i=2;i<=N;i=i*2)

{a[0]=n%2;

t=n/i;

a[j]=t%2;

j++;

if(t==1)

break;

}

for(m=j-1;m>=0;m--)

printf("%d",a[m]);

}

法二:

#include

voidchange(intn);

voidmain()

{intn;

printf("pleaseinputainteger:

");

scanf("%d",&n);

change(n);

}

voidchange(intn)

{

if(n==1||n==0)

printf("%d",n);

else{change(n/2);

printf("%d",n%2);

}

}

24编写函数,采用递归方法在屏幕上显示如下杨辉三角形:

  1

  11

  121

  1331

  14641

  15101051

  …… …… …… …… ……

#include"stdio.h"

voidmain()

{inta[6][6],i,j;

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

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

if(j==0||j==i)

a[i][j]=1;

for(i=2;i<=5;i++)

for(j=1;j<=i-1;j++)

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

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

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

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

printf("\n");}

}

第七章:

9从键盘输入十个整数,用合并排序法对输入的数据按照从小到大的顺序进行排序,

将排序后的结果输出。

#include"stdio.h"

voidmain()

{inta[10],i,j,t;

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

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

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

for(j=i+1;j<=9;j++)

if(a[i]>a[j])

{t=a[i];a[i]=a[j];a[j]=t;}

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

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

}

10求一维整型数组中零的个数。

要求:

主函数定义数组a[10]={-15,-22,13,44,-25,66,0,88,-39,10},

调用自定义函数求出零的个数,然后在主函数中输出结果。

#include"stdio.h"

inta[10]={-15,-22,13,44,0,66,-25,88,-39,10},i,y,j=0,t;

intfun(intt)

{

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

if(a[i]==t)

j++;

return(j);}

voidmain()

{

y=fun(0);

printf("%d",y);

}

方法二:

#include

voidmain()

{

inti,a[10],count=0;

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

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

printf("\n");

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

{if(a[i]==0)

count++;

}

printf("count=%d\n",count);

}

11统计数组中小于数组元素平均值的元素的个数。

要求:

主函数定义一维整型数组a[10]={12,34,56,78,90,9,87,65,43,21},

调用自定义函数统计小于数组元素平均值的元素的个数,并在主函数中输出结果

#include"stdio.h"

inta[10]={12,34,56,78,90,9,87,65,43,21},i,s=0,y,j=0;

floatt;

intfun(floatt)

{

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

if(a[i]

j++;

return(j);}

voidmain()

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

s=s+a[i];

t=s/10.0;

y=fun(t);

printf("%d",y);

}

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

当前位置:首页 > 解决方案 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1