主观

●试题四

下列给定程序中,函数fun()的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。

试题程序:

#include

#include

   C.h>

#include

#include

#define N 10

typedef struct ss

{

char num[10];

int order;

}STU;

STU *fun(STU a[], int m)

{

STU b[N],*tt;

int i,j,k;

 (1) ;

for(i=0; i

b[i]=a[i];

for (k=0;k

{

for(i=j=0;i

if ( (2) ) 

j=i;

tt[k]=b[j];

b[j].order=0;

}

return (3) ;

}

outresult(STU a[],FILE *pf)

{

int i;

for(i=0;i

fprintf(pf,"No=%s Mark=%d\n",

a[i].num,a[i].order);

fprintf(pf,"\n\n");

}

main()

{

STU[N]={{"A01",80},{"A02",79},

{"A03",66},{"A04",82},{"A05",87},

{"A06",93},{"A07",78},{"A08",60},

{"A09",85},{"A10",73}};

STU *p_order;

int i,m;

clrscr();

printf("*** The Origial data ***\n");

outresult(a, stdout);

printf("\nGive the numeber of the

students who have better score:");

scanf("%d",&m);

while (m>10)

{

printf("\nGive the number of the

studets who have better score:");

scanf("%d",&m);

}

p_order=fun(a,m);

printf("*** THE RESULT ***\n");

printf("*** The top students ***\n");

for(i=0; i

printf(" %s  %d\n",

p_order[i].num,p_order[i].order);

free(p_order);

}

参考答案
您可能感兴趣的试题

●试题六

阅读下列程序说明和C++代码,将应填入(n)处的字句写在答卷的对应栏内。

【说明】

源程序中定义了Circle类与Money类,Circle类可对半径为r的圆进行周长与面积的计算,而Money类用于计算一圆形游泳池的造价。游泳池四周有原形过道,过道外围上栅栏,过道宽度为3米,根据键入的游泳池半径,每米栅栏价格及每平方米过道价格,即可计算出游泳池的造价。请按要求完成下列操作,将程序补充完整。

①定义符号常量PI(值为3.14159f)与WIDTH(值为3.00f),分别用于表示圆周率与过道的固定宽度。

②定义Circle类默认构造函数,把私有成员radius初始化为参数r的值。

③完成Money类默认构造函数的定义,把私有成员FencePrice(每米栅栏的价格)、ConcretePrice(每平方米过道的价格)初始化为参数f,c的值。

④完成Money类成员函数float Money::TotalMoney(float fencelen, float conarea)的定义,根据参数fencelen(栅栏的长度)和conarea(过道的面积),返回栅栏与过道的总造价。

注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。

源程序文件test4.cpp清单如下:

#include

 (1) 

class Circle

{

private:

float radius;

public:

 (2) 

float Circumference(){return 2 * PI * radius;}

float Area(){return PI * radius * radius;}

};

class Money

{

private:

float FencePrice;

float ConcretePrice;

public:

Money(float f,float c);

float TotalMoney(float fencelen, float conarea);

};

Money::Money(float f,float c)

{

 (3) 

}

float Money::TotalMoney(float fencelen, float conarea)

{

 (4) 

}

void main()

{

float radius,fence,concrete;

cout.setf(ios::fixed);

cout.setf(ios::showpoint);

cout.precision (2) ;

cout<< "Enter the radius of the pool: ";

cin >>radius;

cout<< "Enter the FencePrice: ";

cin >>fence; 

cout<< "Enter the ConcretePrice: ";

cin >>concrete;    

Circle Pool(radius);

Circle PoolRim(radius + WIDTH);

Money mon(fence,concrete);

float totalmoney=mon.TotalMoney(PoolRim.Circumference(),(PoolRim.Area() - Pool.Area()));

cout<< "The total money is RMB "<< totalmoney<< endl;

}

¥

订单号:

遇到问题请联系在线客服

订单号:

遇到问题请联系在线客服