首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下列给定程序中,函数fun的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(m≤10)名学生来,并将这些学生的数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。 请改正程序中的错误,使它能得出正确的结果。 注意:
下列给定程序中,函数fun的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(m≤10)名学生来,并将这些学生的数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。 请改正程序中的错误,使它能得出正确的结果。 注意:
admin
2021-02-25
37
问题
下列给定程序中,函数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://kaotiyun.com/show/BGtp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
若有定义intw[3][5];.则以下不能正确表示该数组元素的表达式是()。
有如下嵌套的if语句if(a<b)if(a<c)k=a;elsek=c;elseif(b<c)k=b;elsek=c;以下选项中与上述if语句等价的语句是
有以下程序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
有以下程序#include<stdio.h>yoidmain(){ints;scanf(’’%d’’,&s);while(s>0){switch(s){case1:printf(’’%d’’,s+5);case2:printf
当a=1、b=2、c=3、d=4时,执行下面程序段后,x的值是()。if(a<b)if(c<d)x=1;elseif(a<c)if(b<d)x:2;elsex=3;elsex
有以下程序(strcat函数用于连接两个字符串):#include<stdio.h>#include<string.h>main(){chara[20]=’’ABCD\0EFG\0’’,b[]=’’IJK
程序中已构成如下图所示的不带头结点的单向链表结构,指针变量s、P、q均已正确定义,并用于指向链表结点,指针变量s总是作为头指针指向链表的第一个结点。若有以下程序段:q=s;s=s->next;p=s;while(p->nex
设二叉树共有500个结点,其中叶子结点有250个。则度为2的结点个数是
C语言程序的模块化通过以下哪个选项来实现
下列说法正确的是()。
随机试题
已达到预定可使用状态,但尚未办理竣工决算手续的固定资产,应按______入账。()
患者男性,12岁。逗弄小猫后鼻痒、喷嚏,后突然出现呼吸困难,喘促气逆,喉中哮鸣。若兼见喉中痰涎壅盛,声如吹哨笛,咳痰黏腻难出,舌苔厚浊,脉滑实,其治法是
G1P0,孕38周,规律宫缩5小时入院,产科检查:宫口扩张3cm,胎心率140次/分,胎头已衔接,突发抽搐,继之意识消失,测血压170/120mmHg,尿蛋白(+++)。此病例应考虑为下列哪项
内部审计是一项独立、客观、()的约束与评价机制,在促进风险管理的过程中发挥重要作用。
甲公司为增值税一般纳税人,增值税税率为13%,所得税税率为25%,按净利润的10%计提法定盈余公积,甲公司2019年财务报告批准报出日为2020年3月31日,2019年度所得税汇缴清算于2020年4月30日完成。2019年12月20日甲公司向乙公司销售一批
在原有固定资产的基础上进行改建、扩建的,按原固定资产的账面原值,加上改、扩建过程中发生的净支出作为入账价值。()
【2014年陕西咸阳.判断】教育直接指向人们的思想观念与社会的意识形态.带有明显的政治性和阶级性。()
近20年,中国网络文学风雨兼程、大浪淘沙,至今异军突起,方兴未艾。引导并推动网络文学持续繁荣发展,既是我们党的文艺方针政策,也是我们这一代人的文学责任。需要做的工作很多,其中一件十分重要而紧迫的事,就是给网络作家们建构并营造一个“家”。习近平总书记在中国文
设确定常数A,使得f(x)在(一∞,+∞)任意阶可导,并求f(8)(0)与f(9)(0).
请根据以下各小题的要求设计VisualBasic应用程序(包括界面和代码)。(1)在名称为Form1的窗体上画出如图3—46所示的三角形。下表给出了直线Line1、Line2的坐标值,请按此表画Line1、Line2,并画出直线Line3,从而
最新回复
(
0
)