C语言程序设计题目与参考答案(1——9章)
1.(课本第84页第7题)设圆半径r=1.5,圆柱的高h=3,求圆周长.圆面积.圆球表面积.圆球体积.圆柱体积。用scanf输入数据,输出计算结果,输出时要求有文字说明,取小数点后2位数字。请编程序:
#include <stdio.h>
int main()
#define p 3.1416
int main()
{double r,h,l,s,S,v,V;
scanf("%lf %lf",&r,&h);
l=2*p*r;s=p*r*r;S=4*p*r*r;
vb语言程序设计第五版上机答案v=4/3*p*r*r*r;V=p*r*r*h;
printf("l=%7.2f\ns=%7.2f\nS=%7.2f\nv=%7.2f\nV=%7.2f\n",l,s,S,v,V);
return 0;
}
2.把560分钟化成小时和分钟。
#include<stdio.h>
main()
{int t,h,m;
t=560;h=t/60;m=t%60;
printf("560分钟等于%d小时%d分钟\n",h,m);
}
3.第112页第6题)有一个函数y=x(x<1),y=2x-1(1<=x<10),y=3x-11(x>=1写程序,输入x的值,输出y相应的值。
#include<stdio.h>
int main()
{
float x,y;
scanf("%f",&x);
if(x<1) y=x;
else
if(x<10) y=2*x-1;
else y=3*x-11;
printf("%f\n",y);
}
4.(第113页第11题)输出4个整数,要求按由小到大的顺序输出。
#include<stdio.h>
int main()
{
float a,b,c,d,t;
scanf("%f,%f,%f,%f",&a,&b,&c,&d);
if(a>b) {t=a;a=b;b=t;}
if(a>c) {t=a;a=c;c=t;}
if(a>d) {t=a;a=d;d=t;}
if(b>c) {t=b;b=c;c=t;}
if(b>d) {t=b;b=d;d=t;}
if(c>d) {t=c;c=d;d=t;}
printf("%f,%f,%f,%f",a,b,c,d);
}
5.(第113页第12题)有4个圆塔,圆心分别为(2,2),(-2,2),(-2,-2),(2,-2),圆半径为1,这四个塔的高度为10米,塔以外无建筑物。今输入任        一点的坐标,求该点的建筑高度(塔外的高度为零)。
# include<stdio.h>
main()
{
float x,y,t;
scanf("%f,%f",&x,&y);
if((x-2)*(x-2)+(y-2)*(y-2)<=1) t=10.0;
else
  if((x+2)*(x+2)+(y-2)*(y-2)<=1) t=10.0;
else
    if((x-2)*(x-2)+(y+2)*(y+2)<=1) t=10.0;
  else if((x+2)*(x+2)+(y+2)*(y+2)<=1) t=10.0;
    else t=0.0;
  printf("%f\n",t);
}
6.第140页第5题)求Sn=a+aa+aaa+…+aa…a之值,其中a是一个数字,n表
示a的位数,例如:2+22+222+2222+22222(此时n=5)n由键盘输入。
#include<stdio.h>
main()
{
int n,i;
long int a=2,sum=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
    sum=sum+a;
    a=10*a+2;
}
printf("sum=%d\n",sum);
}
7.(第140页第8题)输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如,153是一水仙花数,因为153=1*1*1+5*5*5+3*3*3.
#include<stdio.h>
main()
{
int n,a,b,c;
for(n=100;n<=999;n++)
{
  a=n/100;
  b=n/10-10*a;
  c=n%10;
  if((n==a*a*a+b*b*b+c*c*c)&&(n==100*a+10*b+c))
      printf("%6d",n);
}
printf("\n");
}
8. 有2个同学3门课的成绩,求平均值。
#include<stdio.h>
main()
{
int i,j,score;
float sum,average;
for(i=1;i<=2;i++)
{
  sum=0;
  for(j=1;j<=3;j++)
  {scanf("%d",&score);
    sum=sum+score;
  }
  average=sum/3;
  printf("%daverage is %7.2f\n",i,average);
}
}
9. 将一个数组中的10个数据从大到小顺序排列好,并从键盘输入一个数,要求按原来的排序规律将此数插入原数据中。
方法1:
#include<stdio.h>
main()
{  int i,j,t;int a[11];
for(i=0;i<10;i++)
scanf("%d",&a[i]);printf("\n");
for(j=0;j<10;j++)
for(i=0;i<10-j;i++)
if(a[i]<a[i+1])
{t=a[i];a[i]=a[i+1];a[i+1]=t;}
for(i=0;i<10;i++)
printf("%d\t",a[i]);
printf("\n");
scanf("%d",&a[10]);
for(i=9;i>=0;i--)
{if(a[i]<a[10]){t=a[i];a[i]=a[10];a[10]=t;};
  break;};
for(i=0;i<11;i++)
printf("%d\t",a[i]);
printf("\n");
}
  方法2:
#include<stdio.h>
main()
{ int a[11],i,j,t,m;
  for(i=0;i<10;i++)
  scanf(“%d”,&a[i]);
  for(j=0;j<9;j++)
  for(i=0;i<9-j;i++)
  if(a[i]<a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}
  scanf(“%d”,%m);
  a[10]=m;
  for(i=0;i<11;i++)
  if(a[10]>a[i]) {t=a[i];a[i]=a[10];a[10]=t;}
  for(i=0;i<11;i++)
  printf(“%3d”,a[i]);
}
10. 已知五个半径求面积。
#include<stdio.h>
#include<math.h>
#define PI 3.1416
main()
{  int a; float r,s;
    for(a=1;a<=11;a=a+2)
    {r=a+0.5;
    s=PI*pow(r,2);
}
printf("r=%7.1f,\ts=%7.3f\n",r,s);};
}
11.出10个数中的最大值和最小值。
#include<stdio.h>
main()
{ int i,,max,min;
int a[10]={};
max=a[0];
  min=a[0];
for(i=0;i<=9;i++)
  if(a[i]>max) {max=a[i];}
  if(a[i]<min) {min=a[i];}
printf(“max=%d\n,min=%d”,max,min);
}
12. 求一个数组(10个数)中所有元素的和的平均值。
#include<stdio.h>
main()
{int a[10],i,sum=0;
float aver;
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。