首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下列给定程序中,函数fun()的功能是:对N名学生的学习成绩,按从高到低的顺序找出前叫m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。 请改正程序中的错误,使它能得出正确的结果。 注意:不要
下列给定程序中,函数fun()的功能是:对N名学生的学习成绩,按从高到低的顺序找出前叫m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。 请改正程序中的错误,使它能得出正确的结果。 注意:不要
admin
2010-05-05
31
问题
下列给定程序中,函数fun()的功能是:对N名学生的学习成绩,按从高到低的顺序找出前叫m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构.
试题程序:
#include <conio.h>
#include <string.h>
#include <stdio.h>
#include <alloc.h>
#define N 10
typedef struct ss
{char num[10];
int s;
} STU;
STU *fun{STU a[], int m)
{ STU b[N] ,*t;
int i, j,k;
/*************found**************/
*t=calloc (m, slzeof (STU));
for(i=0;i<N;i++) b
=a
;
for(k=0; k<m; k++)
{ for (i=j=0;i<N;i++)
if (b
.s>b[j].s) j=i;
/*************found**************/
t[k].num=b [j].num;
t[k].s=b[j] s;
b[j].s=0;
}
return t;
}
outresult(STU a[],FILE *pf)
{ int i;
for (i=0; i<N; i++)
fprintf(pf, "No=%s Mark-%d\n ",
a
.num, a
.s);
fprintf(pf, "\n\n ");
}
main ( )
{ STU a[N]={{ "A01 ",81},{ "A02 ",89},
{ "A03 ",66},{ "A04 ",87},{ "A05 ",77},
{ "A06 ",90},{ "A07 ",79},{ "A08 ",61},
{ "A09 ",80},{ "Al0 ",71}};
STU *pOrder;
int i, m;
clrscr ();
printf ("*****THE RESULT***** \n");
outresult (a, stdout);
printf ("\nGive the number of the students
who have better score: ");
scanf ("%d", &m);
while (m>10)
{ printf("lnGive the number of the
students who have better score: ");
scanf ("%d", %m);
pOrder=fun (a,m);
printf("***** THE RESULT*****kn");
printf("The top :\n");
for (i=0; i<m; i++)
printf("%s %d\n",pOrder
.num,
p0rder
. s);
free (pOrder);
}
选项
答案
(1)错误: *t=calloc(m,sizcof(STU)); 正确: t=calloc(m,sizeof(STU)); (2)错误: t[k].num=b[j].num; 正确: t[k]=b[j];
解析
calloc也用于分配内存空间。调用形式:(类型说明符*)calloc(n,size),功能:在内存动态存储区中分配n块长度为“size”字节的连续区域。函数的返回值为该区域的首地址。(类型说明符*)用于强制类型转换。calloc函数与malloc函数的区别仅在于一次可以分配n块区域。例如: ps=(struet stu*)calloc(2,sizeof(struct stu));,其中的sizeof(struct stu)是求stu的结构长度。因此该语句的意思是:按stu的长度分配两块连续区域,强制转换为stu类型,并把其首地址赋予指针变量ps。在本例中我们可别考虑那么复杂厂,根据定义类型STUb[N],*t;就可以看出*t=calloc(m,sizeof(STU));中的错误,t[k].num=b[j].num;的错误旨在考查对结构体概念的掌握和灵活应用程度。
转载请注明原文地址:https://jikaoti.com/ti/hKkiFFFM
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
国家机关、国有公司、企业、事业单位、人民团体,违反国家规定,将应当上交国家的罚没财物或者其他国有资产,以单位名义集体私分给个人,数额较大的行为,应判为()。
2015年政府工作报告中,李克强总理针对产业发展提到了一个新概念:要实施“中国制造2025”。下列对此理解错误的是()。
甲(男,22周岁)为达到与乙(女,19周岁)结婚的目的,故意隐瞒乙的真实年龄办理了结婚登记。两年后,因双方经常吵架,乙以办理结婚登记时未达到法定婚龄为由向法院起诉,请求宣告婚姻无效。人民法院应如何处理?()
法院审理一起受贿案时,被告人甲称因侦查人员刑讯不得已承认犯罪事实,并讲述受到刑讯的具体时间。检察机关为证明侦查讯问程序合法,当庭播放了有关讯问的录音录像,并提交了书面说明。关于该录音录像的证据种类,下列哪一选项是正确的?()
下面的文学形象中不属于吝啬鬼典型的是()。
能源是人类生存和发展的重要物质基础.攸关国计民生和国家安全。推动能源生产和利用方式变革,调整优化能源结构,构建安全、稳定、经济、清洁的现代能源产业体系,对于保障我国经济社会可持续发展具有重要战略意义。下列关于我国能源的现状表述有误的是()。
推进物联网的应用和发展,对于提高国民经济和社会生活信息化水平,提升社会管理和公共服务水平。带动相关学科发展和技术创新能力增强,推动产业结构调整和发展方式转变具有重要意义,为此我国制定了推进物联网有序健康发展的基本原则。下列不属于此原则的是()。
能够根据样本结果推断总体数量特征的调查方式是()。
华氏度和摄氏度均是测量温度的单位,摄氏度规定水的冰点温度为0度,沸水温度为100度:华氏度规定水的冰点为32度,沸点为212度。某时刻华氏度比摄氏度数值上高60度,则该时刻为:
①在无意义面前,大脑由于寻找不到答案而引发焦虑,当然这是积累到固定阈值之后的事情②权利是伴随选择而产生的,譬如电视机的频道转换器就给了观众看与不看的权利③人的大脑有一种无法改变的功能,即不断地追索词语以及所有事情的意义④如果在
随机试题
A.启膈散B.通幽汤C.血府逐瘀汤D.沙参麦冬汤E.补气运脾汤
药用盐酸麻黄碱的立体结构为
此病人休克属于估计此病人失血量约占全身血容量的多少
女性,26岁,l周来无明显原因出现皮肤散在出血点,伴牙龈出血。1天来出血加重。急诊化验:Plt8×109/L。临床诊断为特发性血小板减少性紫癜(ITP)。该患者可能出现的实验室检查结果是
患者,女,65岁。因高血压病情严重入院治疗,主管医生进行常规检查后,给予降压、保持体内电解质平衡的先期治疗。由于该患者年龄较大,在用药时应考虑患者的特殊体质,防止发生药品的不良反应。副作用、毒性反应、继发反应、后遗效应等均属
A、红色色标B、黄色色标C、蓝色色标D、绿色色标E、紫色色标;根据《药品经营质量管理规范实施细则》退货药品库(区)应标示
按照国家《建筑工程施工质量验收统一标准》的规定,工程建设项目可分为()。
向特定的少数投资者发行债券称为公募。()
个体倾向于利用自己身体或内部参照作为信息加工依据的学习风格是()。
在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:PrivateSubCommand1Click()n=5f=1s=0Fori=1Tonf
最新回复
(
0
)