首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序MODI1.C中函数fun的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。 请改正函数fun中指定部位的错误,使它能得出正确的结
给定程序MODI1.C中函数fun的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。 请改正函数fun中指定部位的错误,使它能得出正确的结
admin
2018-09-27
50
问题
给定程序MODI1.C中函数fun的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。
请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
1 #include<stdio.h>
2 #include<stdlib.h>
3 #include<string.h>
4 #define N 10
5 typedef struct S S
6{ char num[10];
7 int s;
8 } STU;
9 STU *fun(STU a[],int m)
10 {STU b[N],*t;
11 int i,j,k;
12 /**********found**********/
13 t=(STU *)calloc(sizeof(STU),m)
14 for(i=0;i<N;i++)b
=a
;
15 for(k=0;k<m;k++)
16 { for(i=j=0;i<N;i++)
17 if(b
.s>b[J].s)j=i,
18 /**********found**********/
19 t(k)=b(j);
20 b[j].s=0;
21 }
22 return t;
23 }
24 outresult(STU a[],FILE *pf
25 { int i;
26 for(i=0;i<n;i++)
27 fprintf(pf,’’No=%s Mark=%d\n’’,a
.num,a
.s);
28 fprintf(pf,’’\n\n’’);
29 }
30 main()
31 {STU a[N]={{’’A01’’,81},{’’A02”,89},{’’A03’’,66},{’’A04’’,87},{’’A05’’,77},{’’A06’’,90},{’’A07’’,79},{’’A08’’,61},{’’A09’’,80},{’’A10’’,71}};
32 STU *pOrder;
33 int i,m;
34 printf(’’’’’ The Original data *****\n");
35 outresult(a, stdout);
36 printf(’’\nGive the number of the students who have better score:’’),
37 scarlf(’’%d’’,&m);
38 while(m>10)
39 {printf(’’\nGive the number of the students who have better score:’’);
40 scanf(’’%d’’,&m);
41 }
42 porder=fun(a,m);
43 printf(’’*****THE RESULT ***** \n");
44 printf(’’The top:\n’’);
45 for(i=0;i<m;i++)
46 printf(’’%s%d\n’’,pOrder
.num,pOrder
.s);
47 free(pOrder);
48 }
选项
答案
(1)t=(STU*)calloc(sizeof(STU),m); (2)t[k]=b[j];
解析
本题中函数的功能是按学习成绩从高到低的顺序找出前m(m≤10)名学生。利用循环结构实现对定义的结构体中的成绩域进行排序。
(1)题干中要求结构体STU类型的m个学生放在动态分配的连续存储区中,“t=(STU*)calloc(sizeof(STU),m)”语句没有使用分号“;”结束,因此,需要在语句结尾处加分号。calloc函数是C语言的动态分配函数,分配存储空间。
(2)第二个标识下是将b数组拷贝到t数组,在C语言中,数组元素的访问使用中括号“[]”而不是圆括弧“()”,因此,第二标识下应改成“t[k]=b[j];”。
转载请注明原文地址:https://kaotiyun.com/show/Iyxp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
结构化程序设计所规定的三种基本控制结构是()
数据库系统在其内部具有3级模式,用来描述数据库中全体数据的全局逻辑结构和特性的是()。
在关系模型中,把数据看成是二维表,每一个二维表称为一个()。
若想通过以下输入语句使a=5.0,b=4,c=3,则输入数据的形式应该是【】。intb,c;floata;scanf("%f,%d,c=%d",&a,&b,&C)
以下程序的运行结果是【】。#includemain(){FILE*fp;inta[10]={1,2,3,0,0},i;fp=fopen("d2.dat","wb");fwtite(a,sizeof(int),5
以下关于C语言的叙述中正确的是
待排序的关键码序列为(33,18,9,25,67,82,53,95,12,70),要按关键码值递增的顺序排序,采取以第一个关键码为基准元素的快速排序法,第一趟排序后关键码33被放到第()个位置。
在数据库设计中,将E-R图转换为关系模式的过程属于()。
软件危机出现于20时纪60年代末,为了解决软件危机,人们提出了()的原理来设计软件,这就是软件工程诞生的基础。
在下列关于二叉树的叙述中,正确的一条是______。
随机试题
Irradiating(照射)fruits,vegetables,porkandchickentokillinsectsandbacteriahasbeenapprovedbytheFoodandDrugAdmini
圆柱销经过多次拆装,其定位精度不会降低。()
患儿,4岁,突然出现持续性腹痛,伴腹泻,初为黄色水样便,次数不定,后转为红色果酱样血便,伴有特殊的腥臭味,同时患儿腹胀、呕吐。查体:T38.8℃,精神萎靡,腹胀,固定压痛。临床诊断为坏死性小肠结肠炎。该患儿首先应采取的治疗措施是
根据《母婴保健法》规定,经产前诊断,下列哪项医师应当向夫妻双方说明情况,并提出终止妊娠的医学意见
A.降气祛痰B.敛肺平喘C.清热滑痰D.和胃降逆E.软坚消痰竹沥的功效是
下列属于水利工程合同工程完工验收应具备的基本条件的有()。
下列记账凭证中,可以不附原始凭证的是( )。
被西方称为“物理学之父”,曾说过这样一句话“给我一个支点,我就能撬动地球”的物理学家是()。
在某工地上有一批废旧建筑材料和垃圾需要清理并运离现场,由两位货车司机小王和小李负责。两人同时清理废旧建筑材料需2小时,两人同时清理垃圾需0.5小时,货车将垃圾运至郊区往返需3小时,货车将废旧建筑材料运至收购站往返需1小时。小王和小李完成这项清理、运输工作返
20世纪初出现的法西斯主义实质上也是一种恐怖主义。它与传统的资本主义政治制度的不同主要体现在()。①实行一党专政②抛弃了议会民主制③对外争夺殖民地④强化思想文化的控制
最新回复
(
0
)