编程题:
79.已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun,该函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。已给出函数的首部,请完成该函数。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include
#include
#include
#define N 10
typedef struct ss
{
char num[10];
int s;
} STU;
void fun( STU a[], STU *s)
{
}
main()
{
STU a[N]={ {“A01″,81},{“A02″,89},{“A03″,66},{“A04″,87},{“A05″,77},
{“A06″,90},{“A07″,79},{“A08″,61},{“A09″,80},{“A10″,71} }, m ;
int i;
clrscr();
printf(“**** The original data *****\n”);
for(i=0;i printf(“N0=%s Mark=%d\n”, a[i].num,a[i].s); fun( a,&m); printf(“***** THE RESULT *****\n”); printf(” The lowest : %s ,%d\n”, m.num, m.s); } 81.请编写函数,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放住c数的百位和个位上,b数的十位和个位数依次放c数的千位和十位上。 例如,a=45,b=12,调用该函数后,c=1425。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的 若干语句。 #include #include void fun (int a, int b, long *c) { } main () { int a, b; long c; clrscr (); printf (“Input a, b:”); scanf (“%d%d”, &a, &b); fun ( a, b, &c ); printf (“The result is: %ld\n”, c); } 改错题: 41.下列给定程序是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数fun的功能是将单向链表结点(包括头结点)数据域为偶数的值累加起来,并且作为函数值返回。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序: #include #include #include typedef struct aa { int data; struct aa *next; }NODE; int fun(NODE *h) { int sum=0; NODE *p; p=h; /********found********/ while(p->next) { if(p->data%2==0) sum +=p->data; /********found********/ p=h->next; } return sum; } NODE *creatlink(int n) { NODE *h, *p, *s, *q; int i, x; h=p=(NODE *)malloc(sizeof(NODE)); for(i=1;i { s=(NODE *)malloc(sizeof(NODE)); s->data=rand()%16; s->next=p->next; p->next=s; p=p->next; } p->next=NULL; return h; } outlink(NODE *h,FILE *pf) { NODE *p; p=h->next; fprintf(pf,”\n\nTHE LIST :\n\n HEAD”); while(p) { fprintf(pf,”->%d”,p->data); p=p->next; } fprintf(pf,”\n”); } outresult(int s,FILE*pf) { fprintf(pf,”\nThe sum of even numbers : %d\n”,s); } main() { NODE *head; int even; clrscr(); head=creatlink(12); head->data=9000; outlink(head, stdout); even=fun(head); printf(“\nThe result :\n”); outresult(even, stdout); } 42.下列给定程序中.函数fun的功能是:将字符串s中位于奇数位置的字符或ASCII码为偶数的字符依次放入字符串t中。例如,字符串中的数据为AABBCCDDEEFF,则输出应当是ABBCDDEFF。 请改正函数fun中的错误.使它能得出正确的结果。 注意:不要改动main函敛,不得增行或删行;也不得更改程序的结构! 试题程序: #include #include #include #define N 80 void fun(char *s, char t[]) { int i, j=0; /********found********/ for(i=0; i if(i%2 && s[i]%2==0) t[j++]=s[i]; /********found********/ t[i]=’\0′; } main() { char s[N], t[N]; clrscr(); printf(“\nPlease enther string s:”); gets(s); fun(s, t); printf(“\nThe result is : %s\n”,t); }