编程题:
.已知学生的记录由学号和学习成绩构成N名学生的数据已存入a结构体数组中请编写函数fun该函数的功能是找出成绩最高的学生记录通过形参返回主函数(规定只有一个最高分)已给出函数的首部请完成该函数
注意部分源程序给出如下
请勿改动主函数main和其他函数中的任何内容仅在函数fun的花括号中填入所编写的若干语句
#include <stdioh>
#include <stringh>
#include <conioh>
#define? N?
typedef? struct? ss
{
char? num[];
int? s;
} STU;
void? fun(STU a[] STU *s)
{
}
main ( )
{
STU a[N]={ {;A;}{;A;}{;A;}{;A;}{;A;}
{;A;}{;A;}{;A;}{;A;}{;A;} } m? ;
int? i;
clrscr();
printf(;***** The original data *****\n;);
for ( i=; i<N; i++ )
printf(;N=%s? Mark=%d\n; a[i]numa[i]s);
fun ( a &m);
printf(;***** THE RESULT*****\n;);
printf(;The top? :? %s %d\n; mnum ms);
}
.学生的记录由学号和成绩组成N名学生的数据已在主函数中放入结构体数组s中请编写函数fun它的功能是把低于平均分的学生数据放在b所指的数组中低于平均分的学生人数通过形参n传回平均分通过函数值返回
注意部分源程序给出如下
请勿改动主函数main和其他函数中的任何内容仅在函数fun的花括号中填入所编写的若干语句
#include? <stdioh>
#define ? N ?
typedef struct
{
char? num[];
double s;
}? STREC;
double? fun ( STREC? *a? STREC? *b? int? *n )
{
}
main()
{
STREC s[N]={{;GA;} {;GA;} {;GA;} {;GA;}
{;GA;} {;GA;} {;GA;} {;GA; }};
STREC h[N]; t;FILE *out ;
int? i j n;
double ave;
ave=fun ( s h &n );
printf (;The %d student data which is lower than %f:\n; n ave );
for (i=; i<n; i++)
printf (;%s %f\n; h[i] num h[i] s);
printf (;\n;);
out=fopen (;outdat;;w;);
fprintf (out? ;%d\n%f\n;? n? ave);
for (i=; i<n; i++)
for(j=i+;j<n;j++)
if(h[i]s>h[j]s)
{
t=h[i] ;
h[i]=h[j];
h[j]=t;
}
for(i=;i<n; i++)
fprintf (out ;%f\n; h[i]s );
fclose (out );
}
改错题:
.下列给定程序中的函数Creatlink的功能是创建带头结点的单向链表并为各结点数据域赋到m的值
请改正函数Creatlink中的错误使它能得出正确的结果
注意不要改动main函数不得增行或删行也不得更改程序的结构!
试题程序
#include <stdioh>
#include <conioh>
#include <stdlibh>
typedef struct aa
{
int data;
struct aa *next;
} NODE;
NODE *Creatlink(int n int m)
{
NODE *h=NULL *p *s;
int i;
s=(NODE *)malloc(sizeof(NODE));
h=p;
/********found********/
p>next=NULL;
for(i=;i<n;i++)
{
s=(NODE *)malloc(sizeof(NODE));
/********found********/
s>data=rand()%m;
s>next=p>next;
p>next=s;
p=p>next;
}
/********found********/
return p;
}
outlink(NODE *h)
{
NODE *p;
p=h>next;
printf(;\n\nTHE LIST :\n\n HEAD;);
while(p)
{
printf(;>%d ;p>data);
p=p>next;
}
printf(;\n;);
}
main()
{
NODE *head;
clrscr();
head=Creatlink();
outlink(head);
}
.下列给定程序中函数fun的功能是实现两个整数的交换例如给a和b分别输
入和输出为a= b=
请改正程序中的错误使它能得出正确的结果
注意不要改动main函数不得增行或删行也不得更改程序的结构!
试题程序
#include <stdioh>
#include <conioh>
/********found********/
void fun(int aint b)
{
int t;
/********found********/
t=b;
b=a;
a=t;
}
main()
{
int ab;
clrscr();
printf(;Enter ab: ;);
scanf(;%d%d;&a&b);
fun(&a&b);
printf(;a=%d b=%d\n;ab);
}