还剩5页未读,继续阅读
文本内容:
《C语言程序设计》练习五参考答案说明下述答案仅供参考,若采用其他方法答题,只要正确实现题目要求,仍可获满分
五、程序设计题
1.从键盘上输入10个整数,并将其存放在一数组中,求出该数组中所有大于零且为偶数的数的平均值#includestdio.hvoidmain{inta
[10]in=0;floataver;fori=0;i10;i++scanf%da[i];fori=0;i10;i++ifa[i]0a[i]%2==0{aver+=a[i];n++;}aver=aver/n;printfaver=%.2f\naver;}2.若有n行n列数组,试编写一程序,分别求出两条对角线元素之和(从键盘输入n*n个整型数,n≤20)#includestdio.h#defineN20voidmain{inta[N][N]nijk=0t=0;scanf“%d”n;fori=0;in;i++forj=0;jn;j++scanf“%d”a[i][j];fori=0;in;i++{k+=a[i][i];t+=a[i][n-1-i];}printf“k=%dt=%d\n”kt ;}3.从键盘输入n*n个整型数(n≤20)组成n行n列数组,打印出其上三角数组#includestdio.hvoidmain{inta
[20]
[20]ijn;scanf%dn;fori=0;in;i++forj=0;jn;j++scanf%da[i][j];fori=0;in;i++{forj=0;jn-i;j++printf%4da[i][j];printf\n;}}4.用以下近似公式编一个求的近似值的程序,其中n的值由键盘输入#includestdio.hvoidmain{floatpi=
0.0s=
1.0;intni;scanf%dn;fori=1;i=n;i++{pi=pi+s/2*i-1;s=s*-
1.0;}printfpi=%f\npi*4;}
5.若数组a中有十个整数825-3,7,-9,0,-4,10,15请编程求出该数组中的最大值和最小值#includestdio.hvoidmain{inta[]={825-3,7,-9,0,-4,10,15}maxminimax=a
[0];min=a
[0];fori=1;i10;i++{ifa[i]maxmax=a[i];Ifa[i]minmin=a[i];}printf“max=%dmin=%d\n”maxmin;}6.从键盘上输入一个正整数nn≤10,求n的阶乘并输出结果#includestdio.hvoidmain{intin;longx=1;scanf%dn;ifn=10{fori=1;i=n;i++x=x*i;printf%d!=%ld\nnx;}elseprintfInputnumberError;}
7.请编程从键盘上输入十个整数,计算其中大于零的奇数的平均值,并输出这些大于零的奇数以及它们的平均值#includestdio.hvoidmain{intx
[10]in=0;floatsum=
0.0;fori=0;i10;i++scanf%dx[i];fori=0;i10;i++ifx[i]0x[i]%2!=0{sum+=x[i];++n;printf%5dx[i];}printfn=%daver=%f\nnsum/n;}
8.从键盘输入10个整数,编程求其中大于3且小于100的数的平均值并输出结果#includestdio.hvoidmain{inta
[10]in=0;floataver;fori=0;i10;i++scanf%da[i];fori=0;i10;i++ifa[i]3a[i]100{aver+=a[i];n++;}printfaver=%f\naver/n;}
9.从键盘上输入10个整数,用冒泡法将它们按从小到大的次序排列出来,并把排列的结果输出#includestdio.hvoidmain{inta
[10]ijt;fori=0;i10;i++scanf%da[i];fori=0;i9;i++forj=i+1;j10;j++ifa[i]a[j]t=a[i]a[i]=a[j]a[j]=t;fori=0;i10;i++printf%4da[i];}10.用循环语句编程打印下列图案(第一行的″$″在第20列)$$$$$$$$$$$$$#includestdio.hvoidmain{intij;fori=1;i=3;i++{forj=1;j=21-i;j++putc;forj=1;j=2*i-1;j++putc$;putc\n;}fori=2;i=1;i--{forj=1;j=21-i;j++putc;forj=1;j=2*i-1;j++putc$;fputc\n;}}11.由键盘输入n*m个数,并把它们存放在一个n行m列的数组中n、m均不超过20
(1)按n行m列输出该二维数组;
(2)求出该二维数组全部元素的平均值;
(3)把该二维数组中大于平均值的元素的值、以及它们行列下标打印出来#includestdio.hvoidmain{floata
[20]
[20]aver=
0.0;intijnm;scanf%d%dnm;fori=0;in;i++forj=0;jm;j++scanf%fa[i][j];fori=0;in;i++{forj=0;jm;j++{printf%
8.2fa[i][j];aver+=a[i][j];}printf\n;}aver=aver/n*m;printfaver=%f\naver;fori=0;in;i++forj=0;jm;j++ifa[i][j]=averprintfa[%d][%d]=%f\nija[i][j];}
12.从键盘上输入10个字符串(每个串不超过8个字符),将这些字符串按从小到大的次序排列出来并输出排序后的结果#includestdio.h#includestring.hvoidmain{charstr1
[10]
[9]str2
[9];intij;fori=0;i10;i++getsstr1[i];fori=0;i9;i++forj=i+1;j10;j++ifstrcmpstr1[i]str1[j]0{strcpystr2str1[i];strcpystr1[i]str1[j];strcpystr1[j]str2;}fori=0;i10;i++printf%s\nstr1[i];}。