《C语言程序设计》练习五(参考答案)
五、程序设计题
1.从键盘上输入10个整数,并将其存放在一数组中,求出该数组中所有大于零且为偶数的数的平均值。
#include
{ int a[10],i,n=0; float aver=0;
for (i=0;i<10;i++) scanf(\ for (i=0;i<10;i++)
if (a[i]>0 && a[i]%2==0) { aver+=a[i]; n++; }
aver=aver/n;
printf(\}
2.若有n行n列数组,试编写一程序,分别求出两条对角线元素之和。(从键盘输入n*n个整型数,n≤20)
#include
{ int a[N][N],n,i,j,k=0,t=0; scanf(“%d”,&n); for (i=0;i } printf(“k=%d,t=%d\\n”,k,t) ; 1 } 3.从键盘输入n*n个整型数(n≤20),组成n行n列数组,打印出其上三角数组。 #include { int a[20][20],i,j,n; scanf(\ for (i=0;i scanf(\ for (i=0;i printf(\printf(\ } } 4.用以下近似公式编一个求?的近似值的程序。 ?1111,其中n的值由键盘输入。 ?1??????(?1)n?143572n?1 #include { float pi=0.0,s=1.0; int n,i; scanf(\ for (i=1;i<=n;i++) { pi=pi+ s/(2*i-1); s=s*(-1.0); } printf(\} 2 5.若数组a中有十个整数8,2,5-3,7,-9,0,-4,10,15,请编程求出该数组中的最大值和最小值。 #include { 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] } printf(“max=%d,min=%d\\n”,max,min); } 6.从键盘上输入一个正整数n(n≤10),求n的阶乘并输出结果。 #include { for (i=1;i<=n;i++) x=x*i; printf(\ } else printf(\} 7.请编程从键盘上输入十个整数,计算其中大于零的奇数的平均值,并输出这些大于零的奇 3 数以及它们的平均值。 #include { int x[10],i,n=0; float sum=0.0; for (i=0;i<10;i++) scanf(\ for (i=0;i<10;i++) if (x[i]>0 && x[i]%2!=0) { sum+=x[i]; ++n; printf(\} printf(\} 8.从键盘输入10个整数,编程求其中大于3且小于100的数的平均值并输出结果。 #include { int a[10],i,n=0; float aver; for (i=0;i<10;i++) scanf(\ for (i=0;i<10;i++) if (a[i]>3 && a[i]<100) { aver+=a[i]; n++; } printf(aver=%f\\n\} 9.从键盘上输入10个整数,用冒泡法将它们按从小到大的次序排列出来,并把排列的结果输出。 #include { int a[10],i,j,t; for (i=0;i<10;i++) 4 scanf(\ 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(\} 10.用循环语句编程打印下列图案。(第一行的″$″在第20列) $ $ $ $ $ $ $ $ $ $ $ $ $ #include for (i=1;i<=3;i++) { for (j=1;j<=21-i;j++) putc(' '); for (j=1;j<=2*i-1;j++) putc('$'); putc('\\n'); } for (i=2;i>=1;i--) { for (j=1;j<=21-i;j++) putc(' '); for (j=1;j<=2*i-1;j++) putc('$'); fputc('\\n'); } } 11.由键盘输入n*m个数,并把它们存放在一个n行m列的数组中(n、m均不超过20)。 (1)按n行m列输出该二维数组; (2)求出该二维数组全部元素的平均值; 5