首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序MODll.C中函数fun的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(m≤10)g学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。 请改正函数fun中指定部位的错误,使它能得出正确的结
给定程序MODll.C中函数fun的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(m≤10)g学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。 请改正函数fun中指定部位的错误,使它能得出正确的结
admin
2013-03-29
39
问题
给定程序MODll.C中函数fun的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(m≤10)g学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#include
#include
#define N 10
typedef struct ss
{ char num[10];
int s;
}STU;
STU*fun(STU a[],int m)
(STU b[N],*t;
int i,j,k;
/******************found*******************/
t=(STU*)calioc(sizeof(STU),m)
for(i=0;i
=a
;
for(k=0;k
{ for(i=j=0;i
if(b
.s>b[j].s) j=i;
/******************found*******************/
t(k)=b(j);
b[j].s=0;
}
return t;
}
outresult(STU a[],FILE*pf)
{ int i;
for(i=0;i
fprintf(pf,”No=%s Nark=%d\n”,
a
.num,a
.s);
fprintf(pf,”\n\n”);
}
main()
(STU a[N]={{"A01”,81},{”A02”,89},
{”A03”,66},{”A04”,87},{”A05”,77},
{”A06”,90},{"A07”,79},{”A08”,6l},
{”A09”,80},{”A10”,71}};
STU*pOrder;
int i,m;
printf(”*****The Original data
*****\n”);
outresult(a,stdout);
printf(”\nGive the number of the
stuclents who have better score:");
scanf(”%d”,&m);
while(m>10)
{printf(”\nGive the number of the
students who have better scOre:”);
scanf(”%d”,&m);
}
pOrder=fun(a,m);
printf’”*****THE RESULT *****
\n”);
printf(”The top:\n”);
for(i=0;i
printf(”%s %d\n”,pOrder
.
num,pOrder
.s);
free(pOrder);
}
选项
答案
(1)t=(STU*)calloc(sizeof(STU),m); (2)t[k]=b[j];
解析
(1)题干中要求结构体STU类型的m个学生放在动态分配的连续存储区中,“t=[STU*)callot(sizeof(STU),m)"语句没有使用分号“;"结束,因此需要在语句结尾处加分号。calloc函数是C语言的动态分配函数。分配存储空间。
(2)第二个标识下是将b数组拷贝到t数组,在C语言中,数组元素的访问使用中括号“[]"而不是元括弧“()",因此第二标识下应改成"t[k]=b[j];"
转载请注明原文地址:https://kaotiyun.com/show/pPJp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
主程序调用findmax函数求出数组中最大元素在数组中的下标,()中需填写的内容是。#include<stdio.h>findmax(int*s,intt,int*k){i
以下函数rotate的功能是:将a所指N行N列的二维数组中的最后一行放到b所指二维数组的第0列中,把a所指二维数组中的第0行放到b所指二维数组的最后一列中,b所指二维数组中的其他数据不变。#defineN4voidrotate
数据结构分为逻辑结构和存储结构,循环队列属于【 】结构。
数据管理技术发展过程经过人工管理、文件系统和数据库系统三个阶段,其中数据独立性最高的阶段是【 】。
有以下程序: main() {int k=5,n=0; while(k>0) {switch(k) { default:break; case 1:n+=k; case 2:
有以下程序段: int n,t=1,S=0; scanf("%d",&n); do{s=s+t;t=t-2;}while(t!=n); 为使此程序段不陷入死循环,从键盘输入的数据应该是 ______。
数据库系统的核心是 ______ 。
以下程序的功能是:求出数组x中各相邻两个元素的和依次存放到a数组中,然后输出。请填空。main(){intx[10],a[9],i;for(i=0;i<10;i++)scanf("%d",&x[i]);for(【
设已有定义:float x;,则以下对指针变量p进行定义且赋初值的语句中正确的是
随机试题
物资堆码的基本要求是:合理、牢固、定量、整齐、()、方便。
由向量a=[1,0,-1),b={0,1,2)为邻边构成的平行四边形的面积为________
We______herletterlastweek.Wedon’tknowwhathashappenedtoher.
急性腹膜炎最主要的临床表现是
关于嗜酸性粒细胞增多症,正确的说法是
甲、乙签订货物买卖合同.约定由甲代办托运。甲遂与丙签订运输合同,合同中载明乙为收货人。运输途中,因丙的驾驶员丁的重大过失发生交通事故,致货物受损,无法向乙按约交货。下列哪种说法是正确的?(2006年卷三第10题)
流动负债以未来应付金额入账,从货币的时间价值观点讲,虽然低估了负债,但符合重要性原则。()
生理自我基本成熟的时间在【】
公安工作鲜明特点是公安机关及人民警察在履行职责、行使职能、完成安全保卫任务过程中形成的。()
1918年,美国中等教育改组委员会提出了()的报告,指出美国教育的指导原则是民主观念的原则,中等教育的目标改组学制,建立一个中等教育与初等教育相衔接的学校系统。它奠定了“六三三学制”和“综合中学”的地位。
最新回复
(
0
)