《C语言程序设计》练习五(参考答案)
说明:下述答案仅供参考,若采用其他方法答题,只要正确实现题目要求,仍可获满分。
五、程序设计题
1.从键盘上输入10个整数,并将其存放在一数组中,求出该数组中所有大于零且为偶数的数的平均值。
#include <stdio.h>
void main()
{ int a[10],i,n=0;
  float aver;
  for (i=0;i<10;i++)
      scanf("%d",&a[i]);
  for (i=0;i<10;i++)
      if (a[i]>0 && a[i]%2==0)
    { aver+=a[i];
      n++;
    }
  aver=aver/n;
  printf("aver=%.2f\n",aver);
}
2.若有n行n列数组,试编写一程序,分别求出两条对角线元素之和。(从键盘输入n*n个整型数,n≤20)
#include <stdio.h>
#define N 20
void main()
{ int a[N][N],n,i,j,k=0,t=0;
  scanf(%d,&n);
  for (i=0;i<n;i++)
      for (j=0;j<n;j++)
          scanf(%d,&a[i][j]);
  for (i=0;i<n;i++)
      { k+=a[i][i];
        t+=a[i][n-1-i];
c语言数组最大值最小值}
  printf(k=%d,t=%d\n,k,t) ;
}
3.从键盘输入n*n个整型数(n≤20),组成n行n列数组,打印出其上三角数组。
#include <stdio.h>
void main()
{ int a[20][20],i,j,n;
  scanf("%d",&n);
  for (i=0;i<n;i++)
      for (j=0;j<n;j++)
      scanf("%d",&a[i][j]);
  for (i=0;i<n;i++)
      { for (j=0;j<n-i;j++)
        printf("%4d",a[i][j]);
    printf("\n");
      }
}
4.用以下近似公式编一个求的近似值的程序。
,其中n的值由键盘输入。
#include <stdio.h>
void main()
{ float pi=0.0,s=1.0;
  int n,i;
  scanf("%d",&n);
  for (i=1;i<=n;i++)
      { pi=pi+ s/(2*i-1);
        s=s*(-1.0);
      }
  printf("pi=%f\n",pi*4);
}
5.若数组a中有十个整数8,2,5-3,7,-9,0,-4,10,15,请编程求出该数组中的最大值和最小值。
#include <stdio.h>
void main()
{ int a[ ]={ 8,2,5-3,7,-9,0,-4,10,15},max,min,i
  max=a[0];min=a[0];
  for (i=1;i<10;i++)
      { if (a[i]<max) max=a[i];
        If (a[i]>min) min=a[i];
}
      printf(max=%d,min=%d\n,max,min);
}
6.从键盘上输入一个正整数n(n≤10),求n的阶乘并输出结果。
#include <stdio.h>
void main()
{ int i,n;
  long x=1;
  scanf("%d",&n);
  if (n<=10)
    { for (i=1;i<=n;i++)
      x=x*i;
      printf("%d!=%ld\n",n,x);
    }
  else
    printf("Input number Error");
}
7.请编程从键盘上输入十个整数,计算其中大于零的奇数的平均值,并输出这些大于零的奇数以及它们的平均值。
#include <stdio.h>
void main()
{ int x[10],i,n=0;
  float sum=0.0;
  for (i=0;i<10;i++)
      scanf("%d",&x[i]);
  for (i=0;i<10;i++)
      if (x[i]>0 && x[i]%2!=0)
{ sum+=x[i];
          ++n;
printf("%5d",x[i]);
}
  printf("n=%d,aver=%f\n",n,sum/n);
}
8.从键盘输入10个整数,编程求其中大于3且小于100的数的平均值并输出结果。
#include <stdio.h>
void main()
{ int a[10],i,n=0;
  float aver;
  for (i=0;i<10;i++)
      scanf("%d",&a[i]);
  for (i=0;i<10;i++)
    if (a[i]>3 && a[i]<100)
    { aver+=a[i];
      n++;
    }
  printf(aver=%f\n", aver/n);
}
9.从键盘上输入10个整数,用冒泡法将它们按从小到大的次序排列出来,并把排列的结果输出。
#include <stdio.h>
void main()
{ int a[10],i,j,t;
  for (i=0;i<10;i++)
      scanf("%d",&a[i]);
  for (i=0;i<9;i++)
      for (j=i+1;j<10;j++)
          if (a[i]>a[j]) t=a[i],a[i]=a[j],a[j]=t;
  for (i=0;i<10;i++)
      printf("%4d",a[i]);
}
10.用循环语句编程打印下列图案。(第一行的″$″在第20列)
      $
  $  $  $
$  $  $  $  $

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