首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下列给定程序中,函数fun()的功能是:对N名学生的学习成绩,按从低到高的顺序找出前m(m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。 请改正程序中的错误,使它能得到正确结果。 注意:不要改动ma
下列给定程序中,函数fun()的功能是:对N名学生的学习成绩,按从低到高的顺序找出前m(m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。 请改正程序中的错误,使它能得到正确结果。 注意:不要改动ma
admin
2009-02-15
91
问题
下列给定程序中,函数fun()的功能是:对N名学生的学习成绩,按从低到高的顺序找出前m(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,sizeof(STU));
for(i=0;i<N;i++)
b
=a
;
for(k=0;k<m;k++)
{
/*************found*************/
for(i=j=0;i<N;j++)
if(b
.s<b[j],s)
j=i;
/*************found*************/
t[k].s=b[j].s;
b[j].s=100;
}
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”,77},{“A02”,85},
{“A03”,96},{“A04”,65},{“A05”,75},
{“A06”,96},{“A07”,76},{“A08”,63},
{“A09”,69},{“A10”,78}};
STU *porder;
int i,m;
clrscr();
printf(“*****THE RESULT*****\n”);
outresult(a,stdout);
printf(“\nGive the number of the students who have lower score:”);
scanf(“%d”,&m);
while(m>10)
{
printf(“\nGive the number of the students who have lower score:”);
scanf(“%d”,&m);
}
porder=fun(a,m);
printf(“*****THE RESULT*****\n”);
printf(“The low:\n”);
for(i=0;i<m;i++)
printf(“%s %d\n”,porder
.num,
porder
.s);
free(porder);
}
选项
答案
(1)错误:*t=calloc(m,sizeof(STU)); 正确:t=calloc(m,sizeof(STU)); (2) 错误:for(i=j=0;i<N;j++) 正确:for(i=j=0;i<N;i++) (3) 错误:t[k].s=b[j].s; 正确:t[k]=b[j];
解析
错误1:calloc也用于分配内存空间。调用形式: (类型说明符*)calloc(n,size),功能:在内存动态存储区中分配n块长度为“size”字节的连续区域。函数的返回值为该区域的首地址,而本题中t定义为指针类型。(类型说明符*)用于强制类型转换。calloc函数与malloc函数的区别仅在于一次可以分配n块区域。例如:ps=(stmet stu*)calloc(2,sizeof(stmct stu));其中的sizeof(stmct stu)是求stu的结构长度。因此该语句的意思是:按stu的长度分配两块连续区域,强制转换为sm类型,并把其首地址赋予指针变量ps。错误2:此循环中,变量i递增。错误3:本题旨在考查对结构体概念的掌握和灵活应用程度。
转载请注明原文地址:https://jikaoti.com/ti/rxkiFFFM
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
我国现行宪法规定()。
下列选项中,有关科技词汇与出处对应关系错误的是()。
将水生植物和小鱼放入盛有水的玻璃缸中,密闭后置于光照、温度等适宜条件下。下列相关叙述,错误的是()。
下列规范性文件中不得设定行政许可的是()。
下列以平衡国际收支的暂时不平衡为主要功能的组织是()。
金融市场最基本的功能是()。
国家机构是我国宪法的主要内容之一。下列有关国家机构的说法正确的是()。
我国是统一的多民族国家,下列关于我国国家结构形式的表述,不正确的是()。
一个箱子里有四种不同颜色的小球,每次拿出2个,要保证有10次所拿的结果是一样的,至少要拿()次。
随机试题
A.磺基水杨酸溶液B.硝酸汞试液C.溴化汞试纸D.醋酸铅棉花E.草酸铵试液
血气胸患者行胸腔闭式引流术,剖胸探查的指征是
关于《房屋建筑与装饰工程工程量计算规范》的计算规则,正确的说法是()。
防雷装置引下线的间距如果设计不明确时,可按规范要求确定的有()。
证明股份有限公司股东身份的有效法律文件是()。
有下列()情形之一的证券公司不得申请注册登记为保荐机构。Ⅰ.净资本不低于人民币4000万元Ⅱ.公司治理结构存在重大缺陷,风险控制制度不健全或者未有效执行Ⅲ.最近3年内未因重大违法违规行为受到行政处罚Ⅳ.从业人员中符合保荐代表人资格条件的有
助理人员B编制了R公司制造费用各项日分析表:助理人员通过查阅相关记录和现场查看发现本年度业务增长替换了一条旧的流水线,助理人员认为本年度Y公司的制造费用合理。()2006年财务报表项目注释中披露的长期股权投资明细如下:( )
甲公司与丙公司签订一项资产置换合同,甲公司以其持有的联营企业30%的股权作为对价,另以银行存款支付补价100万元,换取丙公司生产的一大型设备,该设备的总价款为3900万元,甲公司持有的联营企业30%股权的取得成本为2200万元;取得时该联营企业可辨认净资产
用于输出汉字的编码一输出码一般用点阵实现。如果用24×24点阵表示一个汉字,则计算机中存储该汉字字型需要使用_____字节。
文化是一种个人的内在修养,一种内涵的表现,不需要别人的提醒,是一种束缚下的自由,是一种对别人的宽容。你怎么理解这句话?你认为你是个“文化”人吗?
最新回复
(
0
)