首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下列给定程序中,函数fun的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(m≤10)名学生来,并将这些学生的数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。 请改正程序中的错误,使它能得出正确的结果。 注意:
下列给定程序中,函数fun的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(m≤10)名学生来,并将这些学生的数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。 请改正程序中的错误,使它能得出正确的结果。 注意:
admin
2021-02-25
29
问题
下列给定程序中,函数fun的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(m≤10)名学生来,并将这些学生的数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
1 #include<stdlib.h>
2 #include<conio.h>
3 #include<string.h>
4 #include<stdio.h>
5 #include<malloc.h>
6 #define N 10
7 typedef struct ss
8 {
9 char num[10];
10 int s;
11 }STU;
12 STU*fun(STU a[],int m)
13 {
14 STU b[N],*t;
15 int i,j,k;
16 /*********found*********/
17 *t=calloc(m,sizeof(STU))
18 for(i=0;i
19 b
=a
;
20 for(k=0;k
21 {
22 for(i=j=0;i
23 if(b
.s>b[j].s)
24 j=i;
25 /*********found*********/
26 t[k].num=b[j].num;
27 b[j].s=0;
28 }
29 return t;
30 }
31 outresult(STU a[],FILE * pf)
32 {
33 int i;
34 for(i=0;i
35 fprintf(pf,’’No=%s Mark=%d\n’’,a
.num,a
.s);
36 fprintf(pf,’’\n\n’’);
37 }
38 void main()
39 {
40 STU a[N]={{’’A01’’,81},{’’A02’’,89),{’’A03’’,66},{’’A04’’,87},{’’A05’’,77},{’’A06’’,90},{’’A07’’,79},{’’A08’’,61},{’’A09’’,80},{’’A10’’,71}};
41 STU * pOrder;
42 int i,m;
43 system(’’CLS’’);
44 printf (’’****THE Original data****\n’’);
45 outresult(a,stdout);
46 printf(’’\nGive the number of the students who have better score:’’);
47 scanf(’’%d’’,&m);
48 while(m>10)
49 {
50 printf(’’\nGive the num-ber of the srudents who have better sCOre:’’);
51 scanf(’’%d’’,&m);}
52 pOrder=fun(a,m);
53 printf(’’****THE RESULT****\n’’);
54 printf(’’The top:\n’’);
55 for(i=0;i
56 printf(’’%s%d\n’’,pOrder
.num,pOrder
.s);
57 free(pOrder);
58 }
选项
答案
(1)t=calloc(m,sizeof(STU)); (2)t[k]=b[j];
解析
(1)calloc应用于分配内存空间。调用形式为(类型说明符*)calloc(n,size),功能:在内存动态存储区中分配n块长度为“size”字节的连续区域,函数的返回值为该区域的首地址,(类型说明符*)用于强制类型转换。calloc函数与malloc函数的区别在于calloc函数一次可以分配n块区域。例如,ps=(struct stu*)calloc(2,sizeof(struct stu));,其中的sizeof(struct stu)是求stu的结构长度。该语句的意思是:按stu的长度分配两块连续区域,强制转换为stu类型,并把其首地址赋予指针变量ps。在本题中不用考虑那么复杂,根据定义类型STU [b[N],*t;就可以看出*t=calloc(m,sizeof(STU))中的错误,变量t少*号。
(2)t[k].num=b[j].num;的错误旨在考查对结构体概念的掌握和灵活应用程度。
转载请注明原文地址:https://jikaoti.com/ti/Xyz0FFFM
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
有以下程序#includevoidfun(char*c){while(*c){if(*c>=’a’&&*c<=’z’)*c=*c-(’a’-’A’);c++;}}main(){chars[81];gets(s);fun(s);
软件集成测试不采用
交换两个变量的值,不允许用临时变量,应该使用下列()位运算符。
程序流程图中带有箭头的线段表示的是()。
有以下程序main(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;cas
下列叙述中错误的是()。
下列关于二叉树的叙述中正确的是()。
T列数据结构中,不能采用顺序存储结构的是
数据结构主要研究的是数据的逻辑结构、数据的运算和()。
随机试题
下列关于骨巨细胞瘤说法错误的是
患者,男性,25岁,口唇闭合时呈现口腔周围肌肉有紧张感。面中1/3前突,面下1/3高度偏大。Ⅲ度深覆颌,覆盖6mm,磨牙呈远中关系。∠ANB=6°,∠FMA=35°,上颌拥挤6mm,下颌元拥挤。根据错颌的病因分类,此患者可能为
背景A公司中标北方地区某郊野公园施工项目,内容包括绿化栽植、园林给水排水、夜景照明、土方工程、园路及广场铺装,合同期为4月1日~12月31日。A公司项目部拟定施工顺序:土方工程→给排水→园路、广场铺装→绿化栽植→夜景照明。因拆迁等因素影
世界卫生组织提出21世纪健康新概念,认为健康不仅是身体没有疾病,还要具备心理健康、社会适应良好和()。
一位著名企业家从百折不挠的拼搏经历中总结出了“冰淇淋哲学”,即卖冰淇淋必须从冬天开始,因为冬天顾客少,会逼迫你降低成本,改善服务。如果能在冬天生存,就再也不会害怕夏天的竞争。根据本段文字,“冰淇淋哲学”主要强调了:
以下哪项最为确切地评价了反方的言论?正方论证预设了以下哪项?Ⅰ.实施安乐死带来的收益比可能产生的风险损失总体上说要大。Ⅱ.尽可能地延长病人的生命并不是医疗事业的绝对宗旨。Ⅲ.总有一天医疗方面可以准确无误地把握何时方可实施安乐死的标准。
随机向区域D:0<y<(a>0)内扔一点,该点落在半圆内任何区域的概率与该区域的面积成正比,则落点与原点的连线与x轴的夹角小于的概率为________.
(2012年)微分方程ydχ+(χ-3y2)dy=0满足条件y|χ=1=1的解为y=_______.
计算机中存放当前指令地址的寄存器称为(11),在顺序执行程序时,当指令长度为32位,存储器按字节编址,每执行一条指令该寄存器自动加(12)。在数据传输过程中经常增加一位来检验传送的正确性,该位称为(13)位。
Thispoliticaldilemma______him,changinghimfromacharming,smartandsociablepersonalitytoagloomy,nervouswreck.
最新回复
(
0
)