简答题:下列给定程序中,函数proc()的功能是:对M名学生的学习成绩,按从高到低的顺序找出前m(m≤10)名学生来,并将这些学

  • 题目分类:C语言
  • 题目类型:简答题
  • 查看权限:VIP
题目内容:
下列给定程序中,函数proc()的功能是:对M名学生的学习成绩,按从高到低的顺序找出前m(m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动,nain()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdltb.h>
#include<conio.h>
#include<string.h>
#include<stdio.h>
#include<malloc.h>
#define M 10
typedef struct SS
{
char num[10];
int S;
}
STU:
STU*proc(STU a[],int m)
{
STU b[M],*t;
int i,j,k;
//****found****
*t=calloc(m,sizeof(STU));
for(i=0;i<M;i++)b[i]=a[i];
for(k=0;k<m;k++)
{
for(i=j=0;i<M;i++)
if(b[i].s>b[j].s)j=i;
//****found****
t[k].num=b[j].num
t[k].s=b[j].S;
b[j].s=0;
}
return t;
}
void outresult(STU a[],FILE*pf)
{
int i;
for(i=0;i<M;i++)
fprintf(pf,"No=s Mark=%d\n",
a[i].num,a[i].s);
fprintf(pf,"\n\n");
}
void main()
{STU stu[M]={{"A01",81},{"A02",89),{"A03",66),{"A04",87},{"A05",77},
{"A06",90),{"A07",79},{"A08",61),
{"A09",80),{"A10",71));
STU*pOrder;
int i,m;
system("CLS");
printf("****THE RESULT****\n");outresult(stu,stdout);
printf("\nGive the number of the students
who have better score:");
scanf("%d",8Lm);
while(m>10)
{
printf("\nGive the number of the
students who have better score:");
scanf("%d",&m);
}
pOrder=proc(stu,m);
printf("****THE RESULT****\n");printf("The top:\n");
printf("The top:\n");
for(1=0;i<m;i++)
printf("%S%d\n",pOrder[i].num,
pOrder[i].s):
free(pOrder);
参考答案:
答案解析:

设有定义:char p[]={'1','2','3'),*q=p;,以下不能计算出一个char型数据所占字节数的表达式是

设有定义:char p[]={'1','2','3'),*q=p;,以下不能计算出一个char型数据所占字节数的表达式是( )。A.sizeof(p) B.s

查看答案

已有定义:char c;,程序前面已在命令行中包含ctype.h文件,不能用于判断c中的字符是否为大写字堪的表达式是(

已有定义:char c;,程序前面已在命令行中包含ctype.h文件,不能用于判断c中的字符是否为大写字堪的表达式是( )。A.isupper(c) B.'A

查看答案

下列链表中,其逻辑结构属于非线性结构的是(  )。

下列链表中,其逻辑结构属于非线性结构的是(  )。 A.二叉链表 B.循环链表 C.双向链表 D.带链的栈

查看答案

Which of the following is NOT true?

Which of the following is NOT true?A.People call visit Ellis Isalnd free of ch

查看答案

在“Ace1.mdb”数据库中有“部门”、“基本情况”和“职务”3张表。 (1)将“基本情况”表中的“职务”字段移动到“

在“Ace1.mdb”数据库中有“部门”、“基本情况”和“职务”3张表。 (1)将“基本情况”表中的“职务”字段移动到“姓名”和“调入日期”字段之间。如图1所

查看答案