首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序MODll.C中函数fun的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(m≤10)g学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。 请改正函数fun中指定部位的错误,使它能得出正确的结
给定程序MODll.C中函数fun的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(m≤10)g学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。 请改正函数fun中指定部位的错误,使它能得出正确的结
admin
2013-03-29
57
问题
给定程序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全国计算机二级
相关试题推荐
下面程序的运行结果是()。#include<stdio.h>voiddelch(char*s){inti,j;char*a;a=s;for(i=0,j=0;a[i]!=’\0’;
下面关于完全二叉树的叙述中,错误的是______。
以下程序运行后的输出结果是【 】。structNODE{intnum;structNODE*next;};main(){structNODEs[3]={{1,’\0’},{2,’\0’},{3,’0’}},*
已知字符A的ASCII码为65,以下程序运行后的输出结果是【 】。main(){chara,b;a=’A’+’5’-’3’;b=a+’6’-’2’;printf("%d%c\n",a,b);}
以下程序的功能是:给r输入数据后计算半径为r的圆面积s,程序在编译时出错。 main() /* Beginning */ {int r;float s; scanf("%d",&r); s=*I*r*r; printf(
以下程序的功能是输入任意整数给n后,输出n行由大写字母A开始构成的三角形字符阵列图形。例如,输入整数5时(注意:n不得大于10),程序运行结果如下:ABCDEFGHIJKLMNO
以下程序用于判断a、b、c能否构成三角形,若能,输出YES,否贝愉出NO。当给a、b、c输入三角形三条边长时,确定a、b、c能构成三角形的条件是需同时满足三个条件;a+b>c,a+c>b,b+c>a。请填空。main(){
在关系模型中,把数据看成是二维表,每—个二维表称为—个[]。
下面程序的功能是建立一个有3个结点的单循环链表,然后求各个结点数值域data中数据的和,请填空。#include<stdio.h>#include<stdlib.h>struc
若有以下函数首部 int fun(double x[lO],int *n) 则下面针对此函数的函数声明语句中正确的是______。
随机试题
假性牙周袋与真性牙周袋的区别是
在药物不良反应监测中占有极重要地位的监测方法是
期间费用包括()。
境内上市外资股的投资主体有()
遗传对儿童发展有重要的作用,但影响儿童发展的后天因素主要是营养、睡眠和适宜的运动。()
在网站设计中所有的站点结构都可以归结为()。
【2013陕西NO.37】罗马是一座古色古香、历史悠久、充满__________和艺术气息的城市,是用艺术品装饰得最多的地方,是__________的露天开放博物馆,具有独特风格,万般诱人。但也有人说,罗马__________,小偷多,骗子多,不如其他欧洲
《中华民国临时约法》确立的政体是()(2011年一法综一第16题)
Transport gateways connect byte streams in the transport layer. Application gateways allow interworking above(72).
A、reticentB、positiveC、well-informedD、optimisticB
最新回复
(
0
)