首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序MODI1.C中函数fun的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。 请改正函数fun中指定部位的错误,使它能得出正确的结
给定程序MODI1.C中函数fun的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。 请改正函数fun中指定部位的错误,使它能得出正确的结
admin
2018-09-27
38
问题
给定程序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全国计算机二级
相关试题推荐
以下关于C语言数据类型的叙述中正确的是()。
源程序文档化要求程序应加注释。注释一般分为序言性注释和【】注释。
若各选项中所用变量已正确定义,fun()函数中通过return语句返回一个函数值,下列选项中错误的程序是()。
编制一个好的程序,首先要保证它的正确性和可靠性,还应强调良好的编程风格,在书写功能性注释时应考虑
在深度为5的满二叉树中,叶子结点的个数为______。
在面向对象方法中,类之间共享属性和操作的机制称为【】。
下面程序将二维数a的行和列元素互换后存放另一个二维数组b中。请填空。main(){inta[2][3]={{1,2,3},{4,5,6}};intb[3][2],i,j;
设有下列二叉树:对此二叉树前序遍历的结果为()
数据存储和数据流都是__________,仅仅是所处的状态不同。
随机试题
哪项不符合腺泡中央型肺气肿
A、放射后行全子宫切除术B、子宫广泛切除及盆腔淋巴切除术C、全子宫切除D、次子宫及双附件切除E、孕酮类药物治疗子宫内膜癌Ⅱ期病人首选的治疗方法是()
在完全竞争市场上,厂商对生产要素的需求量取决于()。
如果股票市场处于上升趋势中,公司的股票价格被高估,根据资本结构理论中的信号传递理论,公司应选择()的方式筹资。
李某因所乘飞机失事自2011年6月1日至今下落不明。根据民法通则及相关规定,下列哪些说法是正确的?
据报载,著名物理学家、英国剑桥大学教授斯蒂芬.霍金宣布他已放弃对“万有理论”(TheoryofEverything)的追求,过去他认为人们很快就能找到一个至少能在原则上描述、预测宇宙中所有事物的终极“万有理论”,而现在他认为,人们永远都获得不了这样的
甲袋中有2个白球,乙袋中有2个黑球,每次从各袋中任取一球交换后放人另一袋中,共交换3次,用X表示3次交换后甲袋中的白球数,求X的概率分布.
一般来说,光盘盘片的格式化容量()用户容量。
围绕山顶一圈有N个山洞,编号为0、1、2、3、……、N一1,有一只狐狸和一只兔子在洞中居住。狐狸总想找到兔子并吃掉它,它的寻找方法是先到第一个洞(即编号为0的洞)中找;再隔1个洞,即到编号为2的个洞中找;再隔2个洞,即到编号为5的洞中找;下次再隔3个洞;即
IwasaddressingasmallgatheringinasuburbanVirginialivingroom—awomen’sgroupthathadinvitedmentojointhem.Through
最新回复
(
0
)