大一c语言期末试题及参考答案 下载本文

{

int i;

long sn=0,m=0; for(i=0;i

m=m*10+a; sn+=m; }

return sn; }

(3)从十个字符串中找出所要的某个字符串,若能找到则把他删除,然后输出新字符串;若未找到则输出“”can not fond”. (9分) #include #include main() {

char s[10][80]; char s2[80]; int i,j; int num=0;

printf(\ for(i=0;i<10;i++) gets(s[i]);

printf(\ gets(s2);

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

if(strcmp(s[i],s2)==0) {

for(j=i;j<9-num;j++) {

strcpy(s[j],s[j+1]); } i--; num++; } }

for(i=0;i<10-num;i++) puts(s[i]); }

(4)一个班有N个同学,修5门课从键盘输入他们的性名、学号、性别和成绩。 1)按平均成绩从高到底打印全班的成绩单。 2)求第三门课的平均分

3)找出平均分在90以上或全部功课在85以上的女生。

要求:输入、输出、计算、排序和查找分别用函数实现,主函数只是调用这些函数。不得使用全局变量。 #include #define N 5 struct Student {

char name[20]; int number; int sex;

float score[5]; float aver; };

void Input(struct Student *stu);

void Average(struct Student *stu,float *aver); void Sort(struct Student *stu);

void Search(struct Student *stu,float score);

main() {

struct Student stu[N]; float score=85.0; float aver3; Input(stu); Sort(stu);

Average(stu,&aver3);

printf(\ Search(stu,score); }

void Input(struct Student *stu) {

int i,j;

float aver=0; for(i=0;i

aver=0;

printf(\ gets(stu[i].name);

printf(\

scanf(\

printf(\ for(j=0;j<5;j++) {

scanf(\ aver +=stu[i].score[j]; }

stu[i].aver = aver/5; getchar(); } }

void Sort(struct Student *stu) {

int i,j;

struct Student temp; for(i=0;i

for(j=i+1;j

if(stu[i].aver

temp=stu[i]; stu[i]=stu[j]; stu[j]=temp; } } }

printf(\

for(i=0;i

printf(\\

stu[i].name, stu[i].number, stu[i].sex,

stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].score[4],

stu[i].aver); } }

void Average(struct Student *stu,float *average3) {

float sum3=0; int i;

for(i=0;i

sum3 += stu[i].score[2]; *average3=sum3/N; }

void Search(struct Student *stu,float score) {

int i,j;

int flag =1;

printf(\

printf(\ for(i=0;i

for(j=0;j<5;j++)

flag = flag&&(stu[i].score[j]>score); if(stu[i].aver>90.0&&flag) {

printf(\\

stu[i].name, stu[i].number, stu[i].sex,

stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].score[4],

stu[i].aver);

} }

printf(\}