四、程序填充題(本大題共3小題,每小題6分,共18分)
請將下列程序橫線處缺少的部分補上,使其能正確運行。
30. 從鍵盤輸入10個整數(shù),用“冒泡排序法”由小到大進(jìn)行排序。
#define N 10
main()
{ int i,j,t,a[N];
for(i=0;i<N;i++) scanf(“%d’’,&a[i]);
for(i=0;i<N-1;i++)
for(j=N-1;j>=i+1;______ ) /*第一空*/
if(a[j]<a[j-1])
{ t=a[j];________;a[j-1]=t;} /*第二空*/
for(i=0;i<N;i++)printf(″%5d″, _______); /*第三空*/
printf(″\n″);
}
31. 統(tǒng)計文本文件file.dat的行數(shù)(提示:以’\n’作為每行的結(jié)束)。
#include<stdio.h>
#include<stdlib.h>
main()
{ int lines=_________; /*第一空*/
char ch;
FILE *fp;
fp=fopen(″file.dat″,″r″);
while(_______) /*第二空*/
{ ch=fgetc(fp);
if (ch _____ ’\n’) lines++: /*第三空*/
}
printf(″Lines=%d\n″,lines);
fclose(fp);
}
32. 從鍵盤輸入10名學(xué)生的姓名和數(shù)學(xué)、英語及C語言的成績,計算并輸出其總成績和平均成績。
typedef struct
{ char name[20];
int math,english,C;
float sum,aver; /* 總成績和平均成績 */
}STU;
main()
{ STU st[10],*p;
int i:
for(i=0;i<10;i++)
{ printf(″Input name:″);
scanf(″%s″,______); /*第一空*/
printf(″Input 3 score: ″);
scanf(″%d,%d,%d″,&st[i].math,&st[i].english,&st[i].C);
}
for(p=st;p<st+10:p++)
{ p->______=p->math+p->english+p->C; /*第二空*/
p->______=p->sum/3; /*第三空*/
printf(″name=%s,sum=%5.1f,aver=%5.1f\n″, p->name, p->sum, p->aver);
}
}