首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下列给定程序中,函数fun()的功能是:对N名学生的学习成绩,按从低到高的顺序找出前m(m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。 请改正程序中的错误,使它能得到正确结果。 注意:不要改动ma
下列给定程序中,函数fun()的功能是:对N名学生的学习成绩,按从低到高的顺序找出前m(m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。 请改正程序中的错误,使它能得到正确结果。 注意:不要改动ma
admin
2009-02-15
118
问题
下列给定程序中,函数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://kaotiyun.com/show/bTID777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
研究表明,糟糕的空气质量有可能导致疲劳、头痛等不适反应和更严重的各类疾病,而室内空气污染平均高于室外10倍。下列属于造成室内空气质量不佳的因素是()。①空调②复印机、静电除尘器③生理代谢④尘螨
下面关于蛋白质分子结构与功能的叙述。错误的是()。
下列说法错误的是()。
在市场经济条件下,能够自发地调节劳动力和生产资料在社会生产各部门之间的分配,使之大体保持平衡的信号是()。
亚太经合组织逐步形成了自己独特的合作方式,即“APEC”方式,这一合作方式的内容是()。①承认多样性②强调协商一致③强调互惠互利④强调自主自愿⑤强调灵活性⑥提倡自由贸易
“榨菜指数”反映的是榨菜销售量与农民工的流动趋势存在巨大的相关性。如从2007年到2011年,涪陵榨菜在珠三角地区的市场份额从49%一路跌破30%,与此对应的是珠三角地区劳动密集型企业转移和农民工的快速流出。珠三角“榨菜指数”下跌的深层次原因是()。
能直接证明门捷列夫元素周期表理论正确的是(,)。
甲、乙两人轮流投篮,每人每次投一球。约定甲先投且先投中者获胜,一直到有人获胜或每人都已投球3次时投篮结束。设甲每次投篮投中的概率为,乙每次投篮投中的概率为,且各次投篮互不影响。则投篮结束时乙只投了两个球的概率为:
100人参加7项活动,已知每个人只参加一项活动,而且每项活动参加的人数都不一样。那么,参加入数第四多的活动最多有几人参加?
某次数学比赛,参赛的男生中有得奖,女生有8人得奖,已知共有214人参加比赛,没有得奖的男生人数比没有得奖的女生人数的两倍多8人,那么参加比赛的男生有多少人?
随机试题
某方案的静态回收期是()。
行政复议申请可以自知道该具体行政行为之日起60天内提出,但是法律规定的申请期限超过60天的除外。()
Readingtooneselfisamodernactivitywhichwasalmostunknowntothescholarsoftheclassicalandmedievalworlds,whiledur
脊髓灰质炎诊断主要表现为
A.LeFortⅠ型骨折B.LeFortⅡ型骨折C.LeFortⅢ型骨折D.不对称型骨折E.纵行骨折自鼻额缝向两侧横过鼻梁,眶内壁,眶底颧上颌缝沿上颌骨侧壁达翼突()
不符合病毒性心肌炎体征的是
下列离子中,属于18+2电子构型的是()。
广州某美容化妆品公司进口一批护肤品,经海关审定后CIF成交价格为5,000.00美元(外汇折算率:1美元=人民币8.2元),该批货物的关税税率为12.8%,增值税税率17%,消费税税率为8%,请问该批护肤品增值税税额应为人民币多少元?()
()是夏代刑法的总称,也是我国历史上最早的刑法。
A、 B、 C、 D、 B
最新回复
(
0
)