《c语言程序设计练习五.docx》由会员分享,可在线阅读,更多相关《c语言程序设计练习五.docx(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、路漫漫其修远兮,吾将上下而求索 - C 语言程序设计练习五(参考答案)说明:下述答案仅供参考,假设承受其他方法答题,只要正确实现题目要求,仍可获总分值。五、程序设计题1. 从键盘上输入 10 个整数,并将其存放在一数组中,求出该数组中全部大于零且为偶数的数的平均值。#include void main int a10,i,n=0; float aver;for (i=0;i10;i+) scanf(“%d“,&ai);for (i=0;i0 & ai%2=0) aver+=ai; n+;aver=aver/n; printf(“aver=%.2fn“,aver);2. 假设有n 行n 列数组,
2、试编写一程序,分别求出两条对角线元素之和。从键盘输入 n*n 个整型数,n20#include #define N 20void main int aNN,n,i,j,k=0,t=0; scanf(“%d”,&n);for (i=0;in;i+)for (j=0;jn;j+) scanf(“%d”,&aij);for (i=0;in;i+) k+=aii;t+=ain-1-i;1printf(“k=%d,t=%dn”,k,t) ;3. 从键盘输入 n*n 个整型数n20,组成 n 行n 列数组,打印出其上三角数组。#include void main int a2020,i,j,n; scan
3、f(“%d“,&n); for (i=0;in;i+)for (j=0;jn;j+) scanf(“%d“,&aij);for (i=0;in;i+) for (j=0;jn-i;j+) printf(“%4d“,aij);printf(“n“);4. 用以下近似公式编一个求p 的近似值的程序。p = 1 - 1 + 1 - 1 + (-1)n-11,其中n 的值由键盘输入。43572n - 1#include 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=
4、s*(-1.0);printf(“pi=%fn“,pi*4);5.假设数组 a 中有十个整数 8,2,53,7,9,0,4,10,15,请编程求出该数组中的最大值和最小值。#include void main int a = 8,2,53,7,9,0,4,10,15,max,min,i max=a0;min=a0;for (i=1;i10;i+) if (aimin) min=ai;printf(“max=%d,min=%dn”,max,min);6. 从键盘上输入一个正整数 n(n10),求 n 的阶乘并输出结果。#include void main int i,n; long x=1;sc
5、anf(“%d“,&n); if (n=10) for (i=1;i=n;i+) x=x*i; printf(“%d!=%ldn“,n,x);elseprintf(“Input number Error“);7. 请编程从键盘上输入十个整数,计算其中大于零的奇数的平均值,并输出这些大于零的奇数以及它们的平均值。#include void main int x10,i,n=0; float sum=0.0;for (i=0;i10;i+) scanf(“%d“,&xi);for (i=0;i0 & xi%2!=0) sum+=xi;+n;printf(“%5d“,xi);printf(“n=%d
6、,aver=%fn“,n,sum/n);8. 从键盘输入 10 个整数,编程求其中大于 3 且小于 100 的数的平均值并输出结果。#include void main int a10,i,n=0; float aver;for (i=0;i10;i+) scanf(“%d“,&ai);for (i=0;i3 & ai100) aver+=ai; n+;printf(aver=%fn“, aver/n);9. 从键盘上输入 10 个整数,用冒泡法将它们按从小到大的次序排列出来,并把排列的结果输出。#include void main int a10,i,j,t;for (i=0;i10;i+)
7、 scanf(“%d“,&ai);for (i=0;i9;i+)for (j=i+1;jaj) t=ai,ai=aj,aj=t; for (i=0;i10;i+)printf(“%4d“,ai);10. 用循环语句编程打印以以下图案。第一行的$在第 20 列$#include void main int i,j;for (i=1;i=3;i+) for (j=1;j=21-i;j+) putc(” ”);for (j=1;j=1;i-) for (j=1;j=21-i;j+) putc(” ”);for (j=1;j=2*i-1;j+) putc(”$”); fputc(”n”);11. 由键
8、盘输入 n*m 个数,并把它们存放在一个n 行m 列的数组中(n、m 均不超过 20)。(1) 按n 行m 列输出该二维数组;(2) 求出该二维数组全部元素的平均值;(3) 把该二维数组中大于平均值的元素的值、以及它们行列下标打印出来。#include void main float a2020,aver=0.0; int i,j,n,m; scanf(“%d%d“,&n,&m); for (i=0;in;i+)for (j=0;jm;j+) scanf(“%f“,&aij);for (i=0;in;i+) for (j=0;jm;j+) printf(“%8.2f“,aij); aver+=
9、aij;printf(“n“);aver=aver/(n*m); printf(“aver=%fn“,aver); for (i=0;in;i+)for (j=0;j=aver)printf(“a%d%d=%fn“,i,j,aij);12. 从键盘上输入 10 个字符串每个串不超过 8 个字符,将这些字符串按从小到大的次序排列出来并输出排序后的结果。#include #include void main char str1109,str29; int i,j;for (i=0;i10;i+) gets(str1i);for (i=0;i9;i+)for (j=i+1;j0) strcpy(str2,str1i);strcpy(str1i,str1j); strcpy(str1j,str2);for (i=0;i10;i+) printf(“%sn“,str1i);