首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程proj3,其中声明的DataList类,是一个用于表示数据表的类。sort成员函数的功能是将当前数据表中的元素升序排列。请编写这个sort函数。程序的正确输出应为: 排序前:7,1,3,11,
请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程proj3,其中声明的DataList类,是一个用于表示数据表的类。sort成员函数的功能是将当前数据表中的元素升序排列。请编写这个sort函数。程序的正确输出应为: 排序前:7,1,3,11,
admin
2019-05-22
58
问题
请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程proj3,其中声明的DataList类,是一个用于表示数据表的类。sort成员函数的功能是将当前数据表中的元素升序排列。请编写这个sort函数。程序的正确输出应为:
排序前:7,1,3,11,6,9,12,10,8,4,5,2
排序后:1,2,3,4,5,6,7,8,9,10,11,12
要求:
补充编制的内容写在“**********333**********”与“//**********666**********”两行之间。不得修改程序的其他部分。
注意:程序最后将结果输出到文件out.dat中。输出函数writeToFile已经编译为obj文件,并且在本程序调用。
//DataList.h
#include<iostream>
using namespace std;
class DataList{//数据表类
int len;
double*d;
public:
DataList(int len,double data[]=NULL);
~DataList(){delete[]d;}
int length()const{return len;}//数据表长度(即数据元素的个数)
double getElement(int i)const{return d
;}
void sort();//数据表排序
void show()const;//显示数据表
};
void writeToFile(char*,const DataList&);
//main.cpp
#include"DataList.h"
DataList::DataList(int len,double data[]):len(len){
d=new double[len];
for(int i=0;i<len;i++)
d
=(data=NULL?0.0:data
);
}
void DataList::sort(){//数据表排序
//**********333**********
//**********666**********
}
void DataList::show()const{//显示数据表
for(int i=0;i<len-1;i++)cout<<d
<<",";
cout<<d[len-1]<<endl;
}
int main(){
double s[]={7,1,3,11,6,9,12,10,8,4,5,2};
DataList list(12,s);
cout<<"排序前:";
list.show();
list.sort();
cout<<endl<<"排序后:";
list.show();
writeToFile(" ",list);
return0;
}
选项
答案
for(int i=0;i<len;++i)//从头遍历数组d for(int j=i;j<len;++j) //从i+1处遍历数组d if(d[i]>d[j]) //d[i]和d[j]比较人,如果大于,就d[i]和d[j]值交换 { int temp=d[i]; //把临时整型变量temp赋值为d[i] d[i]=d[j];//把d[j]赋值给d[i] d[j]=temp;//把temp值赋给d[j] }
解析
主要考查的是DataList类,其中涉及动态数组、构造函数、析构函数、const函数和排序算法。Sort函数是一个排序函数,对于排序可以使用的方法很多,考生只需要使用自己最擅长的方法即可,题目并没有指定考生使用哪种方法。
本题使用最简单的冒泡排序算法,首先明确要排序的动态数组d,其长度为len,在此可以使用两个下标i和j相比较,当d
>d[j]时,数组内的值利用中间变量temp进行交换。
转载请注明原文地址:https://www.kaotiyun.com/show/QI8p777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
已知枚举类型声明语句为:enumCOLOR{WHITE,YELLOW,GREEN=5,RED,BLACK=10};则下列说法中错误的是
A、 B、 C、 D、 C如果在类以外的其他地方定义了一个函数,在类体中用friend对该函数进行声明,此函数就称为本类的友元函数。因为函数为voidfun(),根据友元定义补全语句为“friendvoi
A、 B、 C、 D、 D由主函数main入手,定义了类D对象obj。其中D为类B和C的公有继承,A是C的虚基类。题目中要求的输出结果为“ABCD”,依次为类A,类B,类c.类D中构造函数的输出语句。为了保证
A、 B、 C、 D、 C因为staticvoidchange()为静态函数,静态函数主要访问静态数据,不访问非静态数据。所以函数中访问了数据y,所以下划线的数据类型应对应为static。
A、 B、 C、 D、 D因题目中定义的指针value是指向变量i的,所以直接利用语句MyClass(inti){valuei,newint(i);}对value进行赋值即可。
A、 B、 C、 D、 Asetfill(’>’)对当前输出整行有效,setw(5)设置紧跟其后的输出宽度为5,当输出宽度不超过5时用“<”来填充;如果宽度超过5则不填充,原样输出所有数据;在没有设置左右对齐
>=此题考查的是while循环语句和for循环语句。题中函数的功能是判断字符串是否对称。从字符串两端依次比较各个字符是否相同,for循环结束后,当i>-j表明字符串对称,否则说明不对称。
有如下程序:#include<iostream>usingnamespacestd;intmain(){charstr[100],*P;cout<<"pleaseinputastring:
下列对列的叙述中,正确的是A)队列属于非线性表B)队列按“先进后出”的原则组织数据C)队列在队尾删除数据D)队列按“先进先出”原则组织数据
下列有关函数重载的叙述中,错误的是()。
随机试题
Anyonewhohasriddenonarailroadtrainknowshowrapidlyanothertrain【C1】______bywhenitistravellinginthe【C2】______dire
Now,sheisupstairs_______alongspeechforthepresident.
Myfriend,EmmaDaniels,spentthesummerof1974travelinginIsrael.Duringhermonth-longstayinJerusalem,sheoftenwentt
红细胞膜缺陷性贫血
A.铸圈加热过快,造成铸膜腔发生龟裂B.由于包埋料的膨胀,不能代偿高熔合金的凝固收缩C.铸圈温度太低,没有加热到高熔合金的温度D.储金球无法补偿铸件的凝固收缩E.包埋蜡型时,包埋料里混有气泡有可能引起铸件表面出现鳍状物(菲边)的是
男性患者,36岁,昨天打球时不慎跌倒,右上肢外展外旋,手掌着地致伤,右肩部肿胀,前下方压痛,肩峰下空虚,右侧搭肩试验阳性,应诊断为何病
施工现场禁止露天熔融沥青,主要是为了防治()污染。
马克思主义的理论来源是()。
研究显示,大多数有创造性的工程师,都有在纸上乱涂乱画,并记下一些看来稀奇古怪想法的习惯,他们的大多数最有价值的设计,都直接与这种习惯有关,而现在的许多工程师都用计算机工作,在纸上乱涂乱画不再是一种普遍的习惯,一些专家担心,这会影响工程师的创造性思维,建议在
在宏设计窗口中有“宏名”“条件”“操作”和“备注”等列,其中不能省略的是
最新回复
(
0
)