首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下列给定程序中,函数fun()的功能是:对N名学生的学习成绩,按从低到高的顺序找出前m(m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。 请改正程序中的错误,使它能得到正确结果。 注意:不要改动ma
下列给定程序中,函数fun()的功能是:对N名学生的学习成绩,按从低到高的顺序找出前m(m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。 请改正程序中的错误,使它能得到正确结果。 注意:不要改动ma
admin
2009-02-15
87
问题
下列给定程序中,函数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全国计算机二级
相关试题推荐
党的十八大提出的“四个监督”的内容是()。
在西柏坡时期,党中央:①领导了解放区的土改运动;②召开了党的七届二中全会;③组织指挥了辽沈、淮海、平津三大战役。上述历史事件出现的先后顺序是()。
下列选项中,有关科技词汇与出处对应关系错误的是()。
剧烈运动后,人们常常满脸通红,大汗淋漓,这主要是因为皮肤的()功能。
假定其他条件不变,下列因素中不会导致货币升值的是()。
某县人民法院审理一民事案件过程中,要求县移动通信营业部提供某通信用户的电话详单。根据我国宪法规定,下列说法正确的是()。
近些年.我国取得了一批重大科技创新成果,实现部分领域由“跟随”到“领跑”的跨越。以下说法不正确的是()。
有一位百岁老人出生于二十世纪,2015年他的年龄各数字之和正好是他在2012年的年龄的各数字之和的三分之一,问该老人出生的年份各数字之和是多少(出生当年算作0岁)?
某车间加工一批零件,原计划每天加工100个,刚好如期完成,后改进技术,每天多加工10个,结果提前2天完成,这批零件有()个。
将1、2、3、4、5、6、7、8、9九个数排成一行,使得第二个数整除第一个数,第三个数整除前两个数的和,第四个数整除前三个数的和,……,第九个数整除前八个数的和。如果第一个数是6,第四个数是2,第五个数是1。排在最后的数是几?
随机试题
患者,男,46岁,近中邻面龋坏,不松动,已做根管治疗,曾做银汞合金充填,近中邻面食物嵌塞无法解决,现要求嵌体修复下述哪一项不属于嵌体牙体制备的基本要求
雷头风发作的病机多是
(2007)居住建筑日照标准的确定因素中,以下哪一条不符合规定?
背景材料:某隧道施工完成后,进行了供配电、照明系统设施的安装,其中变压器为油浸变压器,由于工期延误,变压器运到现场100d后才进行安装。电缆敷设在沟内时遵循了低压在上、高压在下的原则,敷设时还要求金属支架、导管必须接地(PE)或接零(PEN)可靠。在交
应当先履行债务的当事人所持有的另一方不能履行合同的证据被证明是不确实的,中止履行合同的一方应当()。
目前上班每天8小时,中间吃一顿饭,因为吃这顿饭至少浪费一小时时间,得不偿失。如果吃两顿,上午10点上班,下午4点下班,两头吃饭时间都宽裕,对身体也好,符合早吃饱、晚吃早的养生理念。每天6小时上班效率高,精力集中,不间断就不浪费时间,晚上还能拉动社会消费,第
投资银行在各国的称谓不同,在英国称为()。
A"LOSTTRIBE"thatreachedAmericafromAustraliamayhavebeen.thefirstNativeAmericans,accordingtoanewtheory.(46
"VisualMusic"isafine-tuned,highlydiverting,deceptivelyradicalexhibitionabouttherelationshipofmusicandmodernart,
NewresearchfromtheUnitedStatessuggeststhatthemillennia-oldtherapyofyogacouldbenefitmillionsofpeoplewhosuffe
最新回复
(
0
)