编程题:
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);
}