第八章 C语言习题及答案(第八章)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

8-1 编写程序,将10个数34,3,29,63,70,16,85,82,90,93存放于一组数组中,求出这十个数的和及平均值。

解:#include "stdio.h"

void main()

{

int a[10]={34,3,29,63,70,16,85.82,90,93};

int i ,sum=0;

float average ;

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

{

sum=sum+a[i] ;

}

average=sum/10.0;

printf("sum=%d,average=%f\n",sum,average);

}

运行结果:sum=565,average=56.5000

思考:数组有何特点?此问题如果不用数组进行处理将会怎样?

8-2 编写程序,求存放于上题数组中10个数的最大值,最小值及所在的位置。

解:#include "stdio.h"

void main()

{

int a[10]={34,3,29,63,70,16,85,82,90,93};

int i,sum,max,min,d_max,d_min;

max=min=a[0];

d_max=d_min=0;

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

{

if(a[i]>max) {max=a[i];d_max=i;}

if(a[i]

}

printf("max=%d,a[%d]\n",max,d_max);

printf("min=%d,a[%d]\n",min,d_min);

}

运行结果:max=93,a[9]

Min=3,a[1]

思考:数组a[i]中i的变化意味着什么?

8-3 编写程序,从键盘读入50个数存放于一数组中,求出该数组中最大值、最小值及所在位置。

解:#include "stdio.h"

void main()

{

float a[50],max,min;

int i,d_max,d_min;

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

scanf("%f",&a[i]);

max=min=a[0];

d_max=d_min=0;

for(i=1;i<50;i++)

{

if(a[i]>max) {max=a[i];d_max=i;}

if(a[i]

}

printf("max=%d,a[%d]\n",max,d_max);

printf("min=%d,a[%d]\n",min,d_min);

}

思考:此题中不用数组也可以处理吗?如果可以,区别之处在哪里?8-4将存放于上题数组中的50个数分别按升序,降序排序。

解:#include "stdio.h"

#define N 50

void main()

{

float a[N] ,t;

int i,j;

for(i=0;i

scanf("%f",&a[i]);

/*按升序排序*/

for(i=0;i

{

for(j=i;j

if(a[i]>a[j]) {t=a[i];a[i]=a[j];a[j]=t;}

printf("%8.2f",a[i]);

}

printf("\n");

/*按降序排序*/

for(i=0;i

{

for(j=i;j

if(a[i]

printf("%8.2f",a[i]);

}

printf("\n");

}

思考:此题中可以不用数组进行处理吗?(进一步理解数组的特点。)8-5 编写程序,从键盘输入某班学生C语言课程考试成绩,评定每个学生C语言成绩等级。如果高于平均分10分,则等级为优秀;如果低于平均分10分,则等级为一般;否则等级为中等。

解:#include "stdio.h"

#define N 3

void main()

{

int i ,j;

float average,a[N],sum=0;

for(i=0;i

{

scanf("%f",&a[i]) ;

sum=sum+a[i];

}

average=sum/N;

for(i=0;i

{

if(a[i]>average+10) printf("a[%d]优秀\n",i);

else if(a[i]

else printf("a[%d]中等\n",i);

}

}

思考:表示数组元素的a[i]一般称为什么变量?它与一般变量有何区别?

8-6 某班期终考试有六门课程,编写程序计算每门课程的平均成绩。进一步考虑全年级10个班的情况。

解:#include "stdio.h"

#define N 30

#define M 6

void main()

{

int i,j;

float average[M],a[N][M],sum=0;

for(i=0;i

for(j=0;j

scanf("%f",&a[i][j]);

for(j=0;j

{

sum=0;

for(i=0;i

sum=sum+s[i][j] ;

average[j]=sum/N;

}

printf("6门课程的平均成绩分别为:\n");

for(i=0;i

{

printf("%f ",average[i]);

}

printf("\n") ;

}

思考:在此题中定义的数组a[N][M]中,N表示什么?M 表示什么?若考虑全年级10个班的情况,程序应做哪些改进?

相关文档
最新文档