C语言程序设计练习五(参考答案)

更新时间:2023-09-26 13:44:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《C语言程序设计》练习五(参考答案)

五、程序设计题

1.从键盘上输入10个整数,并将其存放在一数组中,求出该数组中所有大于零且为偶数的数的平均值。

#include void main()

{ 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 #define N 20 void main()

{ 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 void main()

{ 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 void main()

{ 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 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]

}

printf(“max=%d,min=%d\\n”,max,min);

}

6.从键盘上输入一个正整数n(n≤10),求n的阶乘并输出结果。 #include void main() { int i,n; long x=1; scanf(\ if (n<=10)

{ for (i=1;i<=n;i++)

x=x*i;

printf(\ } else

printf(\}

7.请编程从键盘上输入十个整数,计算其中大于零的奇数的平均值,并输出这些大于零的奇

3

数以及它们的平均值。

#include void main()

{ 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 void main()

{ 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 void main()

{ 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 void main() { int i,j;

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

(3)把该二维数组中大于平均值的元素的值、以及它们行列下标打印出来。 #include void main()

{ float a[20][20],aver=0.0; int i,j,n,m;

scanf(\ for (i=0;i

scanf(\

for (i=0;i

{ for (j=0;j

{ printf(\

aver+=a[i][j];

} printf(\}

aver=aver/(n*m); printf(\ for (i=0;i

12.从键盘上输入10个字符串(每个串不超过8个字符),将这些字符串按从小到大的次序排列出来并输出排序后的结果。 #include

6

if (a[i][j]>=aver)

printf(\

#include void main()

{ char str1[10][9],str2[9]; int i,j;

for (i=0;i<10;i++) gets(str1[i]); for (i=0;i<9;i++)

for (j=i+1;j<10;j++)

if (strcmp(str1[i],str1[j])>0) { strcpy(str2,str1[i]); strcpy(str1[i],str1[j]); strcpy(str1[j],str2); }

for (i=0;i<10;i++)

printf(\}

13.从键盘上输入一个整数m,判断其是否为“完数”,如果是“完数”则输出“Yes”,否则输出“No”。

#include void main()

{ int m,i,k=0; //k存放因子的累加和 printf(\请输入一个正整数\\n\

scanf(\ //输入整数存放到m变量中

for (i=1;i<=m-1;i++) //该循环结构用于寻找m的因子

if (m%i==0)k=k+i; //如果m能被i整除,说明i是m的一个因子,则累加

if (m==k) //如果k(因子的累加数)和m相等,说明m是完数

printf(\ else

printf(\}

14.编写一个函数(函数头为:int fun(int y)),其功能是:若参数y为闰年,则返回1,否则返回0。

#include int fun(int y)

7

{ if ((y%4==0&&y0!=0)||(y@0==0)) return (1); else return (0); }

void main() //编写主函数的目的主要是为了调试所定义的函数

{ int x,y;

scanf(\ y=fun(x);

printf(\}

15.编写一个名为countc函数(函数头为:int countc(char array[])),其功能是:统计array数组中所存放的字符串中大写字母的数目,并返回字符串中大写字母的数目。

int countc(char array[]) { int num=0,i=0;

while (array[i]!='\\0')

{ if (array[i]>='A'&&array[i]<='Z') num++; i++; }

return (num); }

void main() //编写主函数的目的主要是为了调试所定义的函数 {int x;char a[80]; scanf(\ x=countc(a);

printf(\}

8

本文来源:https://www.bwwdw.com/article/ctqd.html

Top