《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小时内删除。
发表评论