整理c++机考题目加答案.docx
《整理c++机考题目加答案.docx》由会员分享,可在线阅读,更多相关《整理c++机考题目加答案.docx(34页珍藏版)》请在冰豆网上搜索。
整理c++机考题目加答案
1.c++机考题目加答案(推荐完整)
2.
3.
4.编辑整理:
5.
6.
7.
8.
9.尊敬的读者朋友们:
10.这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望(c++机考题目加答案(推荐完整))的内容能够给您的工作和学习带来便利。
同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。
11.本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为c++机考题目加答案(推荐完整)的全部内容。
12.
13.c++机考题目加答案(推荐完整)
14.
15.
16.编辑整理:
张嬗雒老师
17.
18.
19.
20.
21.尊敬的读者朋友们:
22.这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布到文库,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是我们任然希望c++机考题目加答案(推荐完整)这篇文档能够给您的工作和学习带来便利.同时我们也真诚的希望收到您的建议和反馈到下面的留言区,这将是我们进步的源泉,前进的动力。
23.本文可编辑可修改,如果觉得对您有帮助请下载收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为24.
25.实现一个大小固定的整型数据元素集合及其相应操作(元素的添加、删除;判断两个集合是否相等;判断一个数是否为集合中的元素;交集;并集).P76。
列3.24
#includeh>
constmaxCard=16;//集合中元素个数的最大值,默认为int型
enumErrCode{noErr,overflow};//错误代码
enumBool{False,True};//Bool类型定义
classSet//定义集合类
{
intelems[maxCard];//存储元素的数组
intcard;//集合中元素的个数
public:
voidEmptySet(){card=0;}
BoolMember(int);//判断一个数是否为集合中的元素
ErrCodeAddElem(int);//向集合中添加元素
voidRmvElem(int);//删除集合中的元素
voidCopy(Set*);//把当前集合拷贝到形参指针指向的集合中
BoolEqual(Set*);//判断两个集合是否相等
voidPrint();
voidIntersect(Set*,Set*);//交集
ErrCodeUnion(Set*,Set*);//并集
};
BoolSet:
:
Member(intelem)
{
for(inti=0;i〈card;++i)
if(elems[i]==elem)
returnTrue;
returnFalse;
}
ErrCodeSet:
:
AddElem(intelem)
{
if(Member(elem))
returnnoErr;
if(card〈maxCard)
{
elems[card++]=elem;
returnnoErr;
}
returnoverflow;
}
voidSet:
:
RmvElem(intelem)
{
for(inti=0;iif(elems[i]==elem)
{
for(;ielems[i]=elems[i+1];
--card;
return;
}
}
voidSet:
:
Copy(Set*set)
{
for(inti=0;i〈card;++i)
set->elems[i]=elems[i];
set—〉card=card;
}
BoolSet:
:
Equal(Set*set)
{
if(card!
=set—>card)
returnFalse;
for(inti=0;i〈card;++i)
//判断当前集合的某元素是否是set所指集合中的元素
if(!
set—>Member(elems[i]))
returnFalse;
returnTrue;
}
voidSet:
:
Print()
{
cout〈〈”{”;
for(inti=0;i〈card;++i)
cout<〈elems[i]〈<";”;
cout〈〈"}\n”;
}
voidSet:
:
Intersect(Set*set,Set*res)//交集:
*this∩*set—>*res
{
res—>card=0;
for(inti=0;i〈card;++i)
for(intj=0;j〈set->card;++j)
if(elems[i]==set->elems[j]){
res—>elems[res->card++]=elems[i];
break;
}
}
ErrCodeSet:
:
Union(Set*set,Set*res)//并集:
*set∪*this—>*res
{
set->Copy(res);
for(inti=0;iif(res->AddElem(elems[i])==overflow)
returnoverflow;
returnnoErr;
}
//下面是测试用的主程序
voidmain()
{
Sets1,s2,s3;
s1。
EmptySet();
s2.EmptySet();
s3。
EmptySet();
s1。
AddElem(10);
s1。
AddElem(20);
s1。
AddElem(30);
s1。
AddElem(40);
s2。
AddElem(30);
s2.AddElem(50);
s2.AddElem(10);
s2.AddElem(60);
cout〈〈”s1=”;s1.Print();
cout<<"s2=”;s2。
Print();
s2。
RmvElem(50);
cout<<"s2—{50}=";s2.Print();
if(s1。
Member(20))
cout<〈"20isins1\n”;
s1.Intersect(&s2,&s3);
cout<<”s1intsecs2=”;s3。
Print();
s1。
Union(&s2,&s3);
cout〈<"s1unions2=”;s3。
Print();
if(!
s1.Equal(&s2))
cout<<”s1!
=s2\n";
}
26.实现一个大小可变的整型数据元素集合,集合可存储的数据元素个数在对象构造时给定,由构造函数为数据元素分配存储空间,在对象被释放时由析构函数释放存储空间。
P78.3。
25
#includeconstmaxCard=16;//集合中元素个数的缺省最大值
enumErrCode{noErr,overflow};//错误代码
enumBool{False,True};//Bool类型定义
classSet
{intsize;//元素的最大个数
int*elems;//存储元素的数组
intcard;//集合中元素的个数
public:
Set(intsz=maxCard)
{card=0;size=sz;elems=newint[size];}
~Set(){delete[]elems;}
BoolMember(int);
ErrCodeAddElem(int);
voidRmvElem(int);
voidCopy(Set*);
BoolEqual(Set*);
voidPrint();
voidIntersect(Set*,Set*);
ErrCodeUnion(Set*,Set*);
};
BoolSet:
:
Member(intelem)
{
for(inti=0;iif(elems[i]==elem)
returnTrue;
returnFalse;
}
ErrCodeSet:
:
AddElem(intelem)
{
if(Member(elem))
returnnoErr;
if(card{
elems[card++]=elem;
returnnoErr;
}
returnoverflow;
}
voidSet:
:
RmvElem(intelem)
{
for(inti=0;i〈card;++i)
if(elems[i]==elem)
{
for(;i〈card—1;++i)
elems[i]=elems[i+1];
—-card;
return;
}
}
voidSet:
:
Copy(Set*set)
{
if(set—〉size{
delete[]set->elems;
set-〉elems=newint[size];
set->size=size;
}
for(inti=0;iset—>elems[i]=elems[i];
set->card=card;
}
BoolSet:
:
Equal(Set*set)
{
if(card!
=set-〉card)
returnFalse;
for(inti=0;iif(!
set-〉Member(elems[i]))
returnFalse;
returnTrue;
}
voidSet:
:
Print()
{
cout〈〈”{”;
for(inti=0;icout<〈elems[i]〈<";";
if(card>0)
cout<cout〈〈"}\n";
}
voidSet:
:
Intersect(Set*set,Set*res)
{
if(res—〉size〈size)
{
delete[]res-〉elems;
res—〉elems=newint[size];
res->size=size;
}
res->card=0;
for(inti=0;i〈card;++i)
for(intj=0;jif(elems[i]==set->elems[j])
{
res->elems[res-〉card++]=elems[i];
break;
}
}
ErrCodeSet:
:
Union(Set*set,Set*res)
{
if(res—>size{
delete[]res-〉elems;
res->elems=newint[size+set-〉size];
res—>size=size+set-〉size;
}
set—〉Copy(res);
for(inti=0;i〈card;++i)
if(res—>AddElem(elems[i])==overflow)
returnoverflow;
returnnoErr;
}
voidmain()
{
Sets1,s2,s3;
s1.AddElem(10);
s1。
AddElem(20);
s1。
AddElem(30);
s1.AddElem(40);
s2。
AddElem(30);
s2。
AddElem(50);
s2.AddElem(10);
s2.AddElem(60);
cout〈〈"s1=”;s1.Print();
cout<<”s2=";s2.Print();
s2。
RmvElem(50);
cout<<”s2—{50}=”;s2.Print();
if(s1。
Member(20))
cout〈<"20isins1\n”;
s1.Intersect(&s2,&s3);
cout<〈"s1intsecs2=”;s3.Print();
s1。
Union(&s2,&s3);
cout<<"s1unions2=";s3。
Print();
if(!
s1。
Equal(&s2))
cout<〈"s1!
=s2\n”;
}
27.设计一个学生类student,它具有的私有数据成员是:
注册号、姓名、数学成绩、英语成绩、计算机成绩;具有的公有成员函数是:
求三门课程总成绩的函数sum();求三门课平均成绩average();显示学生数据信息的函数print();获取学生注册号的函数get_reg_num;设置学生数据信息的函数set_stu_inf()。
P81。
6
编制主函数,说明一个student类对象的数组并进行全班学生信息的输入与设置,而后求出每一个学生的总成绩、平均成绩、全班学生总成绩最高分、全班学生总平均分,并在输入一个注册号后,输出该学生有关的全部数据信息。
#include
#include
usingnamespacestd;
classStudent{
private:
intnum;
charname[10];
floatmath;
floatenglish;
floatcomputer;
public:
voidset_stu_inf(intn,char*ch,floatm,floate,floatc)
{
num=n;strcpy(name,ch);math=m;english=e;computer=c;
}
floatsum()
{
return(math+english+computer);
}
floataverage()
{
return(math+english+computer)/3;
}
intget_reg_num()
{
returnnum;
}
voidprint()
{
cout<〈”学号:
”〈〈num<〈endl
〈〈”姓名:
"<〈name〈〈endl
〈<"数学:
"<