问答题

程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。函数fun的功能是对形参b所指结构体变量中的数据进行修改,最后在主函数中输出修改后的数据。 例如:b所指变量t中的学号、姓名、和三门课的成绩依次是:10002、’’ZhangQi’’、93、85、87,修改后输出t中的数据应为:10004、’’LiJie’’、93、85、87。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 #include<string.h>3 struct student {4 long sno;5 char name[10];6 float score[3];7 };8 void fun(struct student *b)9 {10 /**********found**********/11 b__1__=10004;12 /**********found**********/13 strcpy(b__2__,’’LiJie’’);14 }15 main()16 { struct student t={10002,’’ZhangQi’’,93,85,87};17 int i;18 printf(’’\n\nThe original data:\n’’);19 printf(’’\nNo:%id Name:%s\nScores:’’,t.sno,t.name);20 for(i=0;i<3;i++)printf(’’%6.2f’’,t.score[i]);21 printf(’’\n’’);22 /**********found**********/23 fun( __3__);24 printf(’’\nThe data after modified:\n’’);25 printf(’’\nNo:%id Name:%s\nScores:’’,t.sno,t.name);26 for(i=0;i<3;i++) printf(’’%6.2f’’,t.score[i]);27 printf(’’\n’’);28 }

【参考答案】

正确答案:(1)->sno (2)->name(3)&t
热门 试题

问答题
学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把分数最低的学生数据放在b所指的数组中,注意:分数最低的学生可能不止一个,函数返回分数最低的学生的人数。 注意:部分源程序在文件PROG1.C文件中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。1 #include<stdio.h>2 #define N 163 typedef struct4 { char num[10];5 int s;6 } STREC;7 int fun(STREC *a,STREC *b)8 {9 }10 main()11 {STREC s[N]={{’’GA05’’,85},{’’GA03’’,76},{’’GA02’’,69},{’’GA04’’,85},{’’CA01’’,91},{’’GA07’’,72},(’’GA08’’,64},{’’GA06’’,87},{’’CA015’’,85},{’’CA013’’,91},{’’GA012’’,64},{’’GA014’’,91},{’’GA011’’,91},{’’GAO17’’,64},{’’GA018’’,64},{’’CA016’’,72}};12 STREC h[N];13 int i,n;FILE *out;14 n=fun(s,h);15 printf(’’The%d lowest score:\n’’,n);16 for(i=0;i<n;i++)17 printf(’’%s %4d\n’’,h[i].num,h[i].s);18 printf(’’\n’’);19 out=fopen(’’out.dat’’,’’w’’);20 fprintf(out,’’%d\n’’,n);21 for(i=0;i<n;i++)22 fprintf(out,’’%4d\n’’,h[i].s);23 fclose(out);}
问答题
给定程序MODI1.C是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数fun的功能是将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并且作为函数值返回。 请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 #include<stdlib.h>3 typedef struct aa4 {int data; struct aa *next;} NODE;5 int fun(NODE *h)6 { int sum=0;7 NODE *p;8 /**********found**********/9 p=h;10 while(p)11 { if(p->data%2==0)12 sum+=p->data;13 /**********found**********/14 p=h->next;15 }16 return sum;17 }18 NODE *creatlink(int n)19 (NODE *h,*p,*s;20 int i;21 h=p=(NODE*)malloc(sizeof(NODE));22 for(i=1;i<=n;i++)23 {s=(NODE *)malloc(sizeof(NODE));24 s->data=rand()%16;25 s->next=p->next;26 p->next=s;27 p=p->next;28 }29 p->next=NULL;30 return h;31 }32 outlink(NODE *h,FILE *pf)33 {NODE *p;34 p=h->next;35 fprintf(Pf,’’in\nTHE LIST:in\n HEAD’’);36 while(p)37 {fprintf(pf,’’->%d’’,p->data); p=p->next;}38 fprintf(pf,’’in’’);39 }40 outresult(int s,FILE *pf)41 { fprintf(pf,’’\nThe sum of even numbers:%d\n’’,s);}42 main()43 { NODE *head;int even;44 head=creatlink(12);45 head->data=9000;46 outlink(head,stdout);47 even=fun(head);48 printf(’’\nThe result:in’’); outresult(even,stdout);49 }