首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序MODll.C中函数fun的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(m≤10)g学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。 请改正函数fun中指定部位的错误,使它能得出正确的结
给定程序MODll.C中函数fun的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(m≤10)g学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。 请改正函数fun中指定部位的错误,使它能得出正确的结
admin
2013-03-29
45
问题
给定程序MODll.C中函数fun的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(m≤10)g学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。
请改正函数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*)calioc(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”,6l},
{”A09”,80},{”A10”,71}};
STU*pOrder;
int i,m;
printf(”*****The Original data
*****\n”);
outresult(a,stdout);
printf(”\nGive the number of the
stuclents who have 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
.
num,pOrder
.s);
free(pOrder);
}
选项
答案
(1)t=(STU*)calloc(sizeof(STU),m); (2)t[k]=b[j];
解析
(1)题干中要求结构体STU类型的m个学生放在动态分配的连续存储区中,“t=[STU*)callot(sizeof(STU),m)"语句没有使用分号“;"结束,因此需要在语句结尾处加分号。calloc函数是C语言的动态分配函数。分配存储空间。
(2)第二个标识下是将b数组拷贝到t数组,在C语言中,数组元素的访问使用中括号“[]"而不是元括弧“()",因此第二标识下应改成"t[k]=b[j];"
转载请注明原文地址:https://kaotiyun.com/show/pPJp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
以下函数rotate的功能是:将a所指N行N列的二维数组中的最后一行放到b所指二维数组的第0列中,把a所指二维数组中的第0行放到b所指二维数组的最后一列中,b所指二维数组中的其他数据不变。#defineN4voidrotate
以下程序的功能是计算:s=1+12+123+1234+12345。请填空。main(){intt=0,s=0,i;for(i=1;i<=5;i++){t=i+【】;s=s+t;}printf(
有以下程序: #include <string.h> struct STU (char name[10]; int num; }; void f(char *name, int num) {struct
有以下程序: #include <string.h> main() {char p[]={’a’,’b’,’c’},q[10]={’a’,’b’,’c’}; printf("%d%d\n",strlen(p),strlen(q)
若有语句char *line[5];,以下叙述中正确的是 ______。
以下程序用于判断a、b、c能否构成三角形,若能,输出YES,否贝愉出NO。当给a、b、c输入三角形三条边长时,确定a、b、c能构成三角形的条件是需同时满足三个条件;a+b>c,a+c>b,b+c>a。请填空。main(){
有以下程序 #include <stdio.h> main() {char c1,c2,c3,c4,c5,c6; scanf("%c%c%c%c",&c1,&c2,&c3,&c4); c
有以下程序段 struct st {int x;int *y;}*pt; int a[]={1,2},b[]={3,4}; struct st c[2]={10,a,20,b};
若有说明语句:double *p,a;则能通过scanf语句正确给输入项读入数据的程序段是______。
设已定义i和k为int类型变量,则以下for循环语句______。for(i=0;k=-1,k=1;i++,k++)printf("****\n");
随机试题
在土地革命战争前中期,“左”倾错误先后在中国共产党中央领导机关取得统治地位有()
下列制剂不需要重(装)量差异检查的是
下列不是柴胡疏肝散组成药物的是
双苄基异喹林生物碱莨菪烷类生物碱
清除计算机病毒前,应备份重要的数据。()
银行要正确把握个人住房贷款人的第一还款来源,从而有效控制个人住房贷款业务的()。
同一财产法定登记的抵押权与质权并存时,抵押权人优先于质权人受偿。()
非物质财富可以成为法律关系的客体,下列各项中,属于非物质财富的有()。
某房地产开发公司开发的某住宅小区,由甲物业管理公司承担前期物业管理。业主于2003年8月开始入住,2005年5月该小区召开首次业主大会会议,选举产生了业主委员会,并按照业主大会决议选聘了乙物业管理公司。业主委员会与乙物业管理公司签订了物业服务合同,合同于2
根据受权者应对授权者负责的原则,领导者只须对其上级负责。()
最新回复
(
0
)