首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序MODI1.C中函数fun的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。 请改正函数fun中指定部位的错误,使它能得出正确的结
给定程序MODI1.C中函数fun的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。 请改正函数fun中指定部位的错误,使它能得出正确的结
admin
2015-12-22
25
问题
给定程序MODI1.C中函数fun的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#include
#include
#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=(STU*)calloc(sizeof(STU),m)
for(i=0; i
=a
;
for(k=0;k
{ for(i=j=0;i
if(b
.s>b[j].S)j=i;
/**********found**********/
t(k)=b(j);
b[j].s=0;
}
return t;
}
outresult(STU a[],FILE *pf)
{ int i;
for(i=0; i
fprintf(pf,"No=%s Nark=%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},{"A10",71};
STU *pOrder;
int i,m;
printf("*****The Original data*****\n"),
outresult(a,stdout);
printf f"\nGive the number of the
students who haye better score:");
scanf("%d",&m);
while(m>10)
{printf("\nGive the number of the
students who have better score:");
scanf("%d",&m);
}
porder=fun(a,m);
printf("*****THE RESULT *****\n");
printf("The top:\n");
for(i=0; i
printf("%s %d\n",porder
.
hum,porder
.s);
free(porder);
}
选项
答案
(1)t=(STU *)calloc(si zeof(STU),m); (2)t[k]=b[j];
解析
(1)题干中要求结构体STU类型的m个学生放在动态分配的连续存储区中,“t=(STU*)calloe(sizeof(STU),m)”语句没有使用分号“;”结束,因此需要在语句结尾处加分号。calloc函数是C语言的动态分配函数,分配存储空间。
(2)第二个标识下是将b数组拷贝到t数组,在C语言中,数组元素的访问使用中括号“[]”而不是元括弧“()”,因此第二标识下应改成“t[k]=b[j];”。
转载请注明原文地址:https://jikaoti.com/ti/fKi0FFFM
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
以下程序运行后的输出结果是【】。fun(inta){intb=0;staticintc=3;b++;c++;return(a+b+c);}main(){
已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:B33<回车>,则输出结果是【】。#includemain(){chara,b;
下面程序的运行结果:【】。intf(inta[],intn){if(n>1)returna[0]+f(&a[1],n-1);elsereturna[o];}main(){inta
有以下程序:#include<string.h>main(){charstr[][20]={"Hello","Beijing"},*p=str;printf("%d\n",strlen(p+20)
有以下程序:main(){chars[]="ABCD",*p;for(p=s+1;p<s+4;p++)printf("%s\n",p);}程序运行后的输出结果是______。
数据库设计包括两个方面的设计内容,它们是
数据结构分为线性结构和非线性结构,带链的队列属于【】。
已有定义:charc;,程序前面已在命令行中包含ctype.h文件,不能用于判断c中的字符是否为大写字母的表达式是
随机试题
当车辆驶出隧道时,驾驶人易出现图中所示的“明适应”现象,以下做法正确的是哪一项?
实施姑息性放射治疗的作用不包括
属于影响行为的倾向因素的是
提出“城市设计必须和城市管理密切结合理论”的是()。
某大厦工程项目,建设单位与施工单位根据《建设工程施工合同文本》签订了工程的总承包施工合同,总承包商将该大厦工程项目的装饰装修工程分包给一家具有相应资质条件的装饰装修工程公司。该装饰装修工程合同与该工程项目建设单位签订了该大厦工程项目的装饰装修施工合同。
对金融机构的专项检查应至少一年或一年半进行一次。()
当事人对旅游质监所作出的赔偿决定不服的,可以在接到决定书之日起()天向上一级质监所提出申诉。
教师应当尊重学生的人格,不得歧视学生,不得对学生实施()的行为,不得侵犯学生合法权益。
若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是()。
—Wouldyoumindholdingthedooropenforme,please?—______.
最新回复
(
0
)