C语言《程序设计基础》复习题 .pdf
2011-2012第二学期《程序设计基础》复习题
程序设计题:
项目四:
【例4-2】求学生的总评成绩。现有十个学生,从键盘上输入他们的
平时成绩、期终成绩,输出总评成绩。总评成绩=平时成绩*40%+期终成绩*60%.
#includestdio.h
main()
{intI;
floata[11],b[11],c[11];
printf(输入平时成绩:);
for(i=1;i=10;i++)
scanf(%f,a[i]);
printf(输入期终成绩:);
for(i=1;i=10;i++)
scanf(%f,b[i]);
for(i=1;i=10;i++)
c[i]=0.4*a[i]+0.6*b[i];
printf(输出总评成绩:);
for(i=1;i=10;i++)
printf(%5.1f,c[i]);
printf(\n);
}
任务2多个学生一门课成绩的排序
一个班5位同学参加了一次数学考试,现要输入全班同学的成绩,并按学生成
绩高低进行排序。(比较法、冒泡法)
比较法
#includestdio.h
#defineN10
main()
{inti,math[N],t,j;
printf(请输入多个同学的成绩:);
for(i=0;iN;i++)
scanf(%d,math[i]);
for(j=0;jN-1;j++)
//循环N-1次,就可以分离出前N-1个数
for(i=j+1;iN;i++)
//分离第j个数,则一定与第j+1至最后一个数比较
if(math[j]math[i])
{t=math[j];math[j]=math[i];math[i]=t;}
printf(多个同学的成绩排序为:);
for(i=0;i10;i++)
printf(%3d,math[i]);
printf(\n);}
冒泡法
#includestdio.h
#defineN10
main()
{inti,math[N],t,j;
printf(请输入多个同学的成绩:);
for(i=0;iN;i++)
scanf(%d,math[i]);
for(j=0;jN-1;j++)
for(i=0;iN-1-j;i++)
if(math[i]math[i+1])
{t=math[i];math[i]=math[i+1];
math[i+1]=t;}
printf(多个同学的成绩排序为:);
for(i=0;i10;i++)
printf(%3d,math[i]);
printf(\n);
}
【例4-6】求出斐波那契数列的前20项并输出。(前两项为1,从第三项开始每
一项是前两项的和)
#include“stdio.h”
main()
{intj,k,fa[20];
fa[0]=1;
fa[1]=1;
for(j=2;j20;j++)
fa[j]=fa[j-1]+fa[j-2];
for(j=0;j20;j++)
printf(“%d,”,fa[j]);
}
【例4-10】输入三个同学的姓名,按ASCII码从大到小的顺序排序。
#includestdio.h
#includestring.h
main()
{charn1[10],n2[10],n3[10];
chartt[20];
printf(请输入姓名:\n);
gets(n1);
gets(n2);
gets(n3);
if(strcmp(n1,n2)0)
if(strcmp(n1,n3)0)
if(strcmp(n2,n3)0)
printf(输出的姓名为:\n);
puts(n1);
puts(n2);
puts(n3);}
【例4-13】输入五个同学三门课的成绩,计算各门课的总分及平均分,并输出。
#includestdio.h
#defineN5
main()
{inti,j;
intscore[N][3],sum[3]={0},avg[3];
printf(请输入五个同学三门课的成绩:\n);
for(i=0;iN;i++)
for(j=0;j3;j++)
scanf(%d,score[i][j]);
for(j=0;j3;j++)
{for(i=0;iN;i++)
sum[j]=sum[j]+score[i][j];
avg[j]=sum[j]/N;}
printf(\n);
printf(输出五个同学