首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序MODI1.C中函数fun的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。 请改正函数fun中指定部位的错误,使它能得出正确的结
给定程序MODI1.C中函数fun的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。 请改正函数fun中指定部位的错误,使它能得出正确的结
admin
2017-07-27
65
问题
给定程序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 ss
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 scanf(’’%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];
解析
(1)题干中要求结构体STU类型的m个学生放在动态分配的连续存储区中,“t==(STU *)calloc(sizeof( STU),m)”语句没有使用分号“;”结束,因此需要在语句结尾处加分号。calloc函数是C语言的动态分配函数,分配存储空间。
(2)第二个标识下是将b数组拷贝到t数组,在C语言中,数组元素的访问使用中括号“[]”而不是元括弧“()”,因此第二标识下应改成“t[k]=b[j];”。
转载请注明原文地址:https://kaotiyun.com/show/uKDp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
C语言规定,在一个C程序中,main()函数的位置()。
队列是限定在表的一端进行插入和在另一端进行删除操作的线性表。允许删除的一端称作()。
若a、b、c、d都是int型变量且都已经正确赋初值,则以下不正确的赋值语句是()。
在数据库管理技术的发展中,数据独立性最高的是()。
定义结构体数组structstu{intnum;charname[20];}x[5]={1,"ZHAO",2,"QIAN",3,"SUN",4,"LEE",5,"ZHOU"};for(i=1;i<5;i++)
在结构化方法中,用数据流程图(DFd)作为描述工具的软件开发阶段是()。
设函数中有整型变量a,为保证其在未赋初值的情况下初值为0,应选择的存储类别是()。
对下列二叉树进行中序遍历的结果是()。
已有定义:“double*p;”,请写出完整的语句,利用malloc函数使p指出一个双精度型的动态存储单位_________。
若要使指针p指向一个double类型的动态存储单元,请填空。p=__________malloe(sizeof(double));
随机试题
A.胸骨左缘3~4肋间可闻及Ⅲ~Ⅳ级全收缩期反流性杂音B.胸骨左缘2~3肋间可闻及Ⅱ~Ⅲ级收缩期喷射性杂音C.胸骨左缘第2肋间可闻及响亮的连续性机器样杂音D.胸骨左缘第2~4肋间可闻及Ⅱ~Ⅲ级收缩期喷射性杂音E.胸骨左缘第4肋间可闻及Ⅱ~Ⅴ级舒张期
tRNA分子中携带氨基酸的部位是
关于受体部分激动剂的论述正确的是
为减少支气管扩张患者肺部继发感染和全身中毒症状,最关键的措施是()
由于风险的起因不同,证券公司从事证券自营买卖的风险一般可分为()
《公安机关人民警察辞退办法》第六条专门规定了人民警察不得辞退的条件,即:(1)();(2)患严重疾病或者负伤正在进行治疗的;(3)在孕期、产期或者哺乳期内的。
农村住户抽样调查资料显示:2010年一季度,江苏省全省农民人均现金收入为3775元,比上年同期(下同)增长12.4%,增速比上年同期提高2个百分点。一季度农民人均工资性收入为2359元,增加250元,增长11.9%,比上年同期提高1.8个百分点。
Weconsider________heshouldhaveleftwithouttellinganyonebeforehand.
在WWW服务中,统一资源定位器URL可以由3部分组成,即协议类型、【 】与文件名。
以下关于报表数据源设置的叙述中,正确的是()。
最新回复
(
0
)