首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC++2010打开考生文件夹下modil中的解决方案。此解决方案的项目中包含一个源程序文件modil.C。在此程序中,函数fun()的功能是对N名学生的学习成绩,按从高到低的顺序排列并找出前m(m≤10)名学生,将这些学生的数据存放在一个动态分配的连
使用VC++2010打开考生文件夹下modil中的解决方案。此解决方案的项目中包含一个源程序文件modil.C。在此程序中,函数fun()的功能是对N名学生的学习成绩,按从高到低的顺序排列并找出前m(m≤10)名学生,将这些学生的数据存放在一个动态分配的连
admin
2023-02-27
43
问题
使用VC++2010打开考生文件夹下modil中的解决方案。此解决方案的项目中包含一个源程序文件modil.C。在此程序中,函数fun()的功能是对N名学生的学习成绩,按从高到低的顺序排列并找出前m(m≤10)名学生,将这些学生的数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构!
试题程序:
1 #include<stdlib.h>
2 #include<conio.h>
3 #include<string.h>
4 #include<stdio.h>
5 #include<malloc.h>
6 #define N 10
7 typedef struct ss
8 {
9 char num[10];
10 int s;
11 }STU;
12 STU*fun(STU a[],int m)
13 {
14 STU b[N],*t;
15 int i,j,k;
16 /*********found*********/
17 *t=calloc(m,sizeof(STU))
18 for{i=0;i<N;i++)
19 b
=a
;
20 for(k=0;k<m;k++)
21 {
22 for(i=j=0;i<N;i++)
23 if(b
.s>b[j].s)
24 j=i;
25 /*********found*********/
26 t[k].num=b[j].num;
27 t[k].s=b[j].s;
28 b[j].s=0;
29 }
30 return t;
31 }
32 outresult(STU a[],FILE*pf)
33 {
34 int i;
35 for(i=0;i<N;i++)
36 fprintf(pf,"No=%s Mark=%d\n",a
.num,a
.s);
37 fprintf(pf,"\n\n");
38 }
39 void main()
40 {
41 STU a[N]={{"A01",81),{"A02",
89},{"A03",66),{"A04",87},{"A05",77},{"A06",90},{"A07",
79},{"A08",61},{"A09",
80},{"A10",71}};
42 STU*pOrder;
43 int i,m;
44 system("CLS");
45 printf ("****The original data****\n");
46 outresult(a,stdout);
47 printf("\nGive the number of the students who have better score:");
48 scanf("%d",&m);
49 while(m>10)
50 {
51 printf("\nGive the number of the students who have better score:");
52 scanf("%d",&m);}
53 pOrder=fun(a,m);
54 printf ("****The Result****\n");
55 printf("The top:\n");
56 for(i=0;i<m;i++)
57 printf("%s%d\n",pOrder
.num,pOrder
.s);
58 free(pOrder);
59 }
选项
答案
(1)t=(STU*)calloc(m,sizeof(STU)); (2)strepy(t[k].num,b[j].num);
解析
(1)函数calloc()用于分配内存空间。调用形式为(类型说明符*)callot(n,size)。在内存动态存储区中分配n块长度为"size"字节的连续区域,函数的返回值为该区域的首地址;(类型说明符*)用于强制类型转换。calloc()函数与malloc()函数的区别在于calloc()函数一次可以分配n块区域。如ps=(struct stu*)calloc(2,sizeof(struct stu));,其中sizeof(struct stu)是求stu的结构长度。该语句的意思是按stu的长度分配两块连续区域,将指针变量强制转换为stu类型,并把其首地址赋予指针变量ps。在本题中,根据定义类型STU b[N],*t;可知代码*t=calloc(m,sizeof(STU))中的错误。*表示指针类型可以直接赋地址值。再强制转换为STU*类型。
(2)因为num为字符串,不能直接赋值,需要使用字符串复制函数strcpy()。
转载请注明原文地址:https://kaotiyun.com/show/kP0D777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
设二次函数f(x)=ax2+bx+c图像的对称轴为x=1,且经过点(2,0),则=()。
设的整数部分为a,小数部分为b,则ab-=()。
已知a、b为两圆的半径,且a、b不相等,c为两圆的圆心距,若方程x2-2ax+b2-(b-a)c=0有相等的实数根,则两圆()。
某人射击一次击中的概率是0.6,经过3次射击,此人至少有两次击中目标的概率为()。
从5位男教师和4位女教师中选出3位教师,派到3个班担任班主任(每班1位班主任),要求这3位班主任中男、女教师都要有,则不同的选派方案共有()。
从0,1,2,3,4每次取出不同的三个数字组成三位数,那么这些三位数的个位数字之和为()。
等差数列{an}前n项和Sn,等差数列{bn}前n项和Tn,已知Sn/Tn=2n/(3n+1),则a7/b7=()。
结合材料回答问题:材料1在延安时期,中国共产党及其领导的八路军和新四军与日本帝国主义血战到底的气概,全心全意为人民服务的精神,理论联系实际、密切联系群众、艰苦奋斗、谦虚谨慎的作风,极大地引导和影响了抗日根据地的政风和民风,形成了党风政风民风的统
20世纪50年代,在探索社会主义建设道路过程中,陈云在党的八大上提出了著名的“三个主体、三个补充”的设想。“三个主体、三个补充”的主要内容包括()
讨论函数的导数.
随机试题
在X6132型铣床上用横向移距法铣削直齿条,已知m=3mm,α=20°,z=30。试求(1)若用量块控制移距,量规尺寸是多少?(2)若m=1.5mm,z=20,量块尺寸又为多少?(3)用分度盘移距,分度手柄转数分别是多少?
当自由度df=1、显著性水平α=0.05时,χ2值等于()
女,50岁。高热、寒战5天,意识模糊1天,既往体健。查体:T39℃,P1207欠/分,BP80/50mmHg,皮肤散在出血点和瘀斑,双肺未见异常,心率120次/分,律齐,腹软,肝肋下0.5cm,脾肋下及边。检查:Hh100g/L,WBC25.3×109/L
按照《建筑安装工程费用项目组成》的规定,对建筑材料、构件和建筑安装物进行一般鉴定、检查所发生的费用列入()。
下列说法中,正确的有()。Ⅰ.根据《证券法》规定,注册资本在人民币1亿元以上的证券公司方可进行自营业务Ⅱ.从事自营业务时,证券公司必须先同时拥有资金和证券Ⅲ.自营业务是具备资格的证券公司以盈利为目的,为自己投资证券的经营行为Ⅳ.证券公司自营
某市肉制品加工企业2012年占地60000平方米,其中办公楼占地5000平方米,生猪养殖基地占地28000平方米,肉制品加工车间占地16000平方米,企业内部道路及绿化占地11000平方米。企业所在地的城镇土地使用税单位年税额为每平方米0.8元。该企业全年
酒中含有酒精,饮酒过多或经常饮酒,会造成酒精中毒,使身体受损。饮酒对人体的()器官最为有害。
市民周某给有关部门写信,反映自己关于推进建设卫生社区的意见,体现了公民依法行使()。
我国社会主义改造完成以后。毛泽东以中国的实践经验为基础,运用马克思主义基本原理,全面阐述了社会主义社会的矛盾问题,并形成了比较系统的理论。下列关于社会主义社会基本矛盾的论述,正确的是()。
以下关于质量计划编制的描述中,正确的是(56)。
最新回复
(
0
)