整理c++机考题目加答案.docx

上传人:b****4 文档编号:5207640 上传时间:2022-12-13 格式:DOCX 页数:34 大小:25.94KB
下载 相关 举报
整理c++机考题目加答案.docx_第1页
第1页 / 共34页
整理c++机考题目加答案.docx_第2页
第2页 / 共34页
整理c++机考题目加答案.docx_第3页
第3页 / 共34页
整理c++机考题目加答案.docx_第4页
第4页 / 共34页
整理c++机考题目加答案.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

整理c++机考题目加答案.docx

《整理c++机考题目加答案.docx》由会员分享,可在线阅读,更多相关《整理c++机考题目加答案.docx(34页珍藏版)》请在冰豆网上搜索。

整理c++机考题目加答案.docx

整理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

#include

h>

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;i

if(elems[i]==elem)

for(;i

elems[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;i

if(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

#include

constmaxCard=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;i

if(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;i

set—>elems[i]=elems[i];

set->card=card;

}

BoolSet:

:

Equal(Set*set)

if(card!

=set-〉card)

returnFalse;

for(inti=0;i

if(!

set-〉Member(elems[i]))

returnFalse;

returnTrue;

voidSet:

:

Print()

{

cout〈〈”{”;

for(inti=0;i

cout<〈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;j

if(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

〈<"数学:

"<

<<”英语:

”〈

〈〈"计算机:

”〈〈computer<〈endl

〈〈"总分:

”<〈sum()〈

〈〈”平均分:

"〈

}

};

intmain()

Studentstu[50];

inti,q,a,z,x,max=0,aver=0;//i为循环变量,q:

学号;a:

数学成绩;

//z:

英语成绩;x:

计算机成绩

intcount=0;//表示学生人数

char*we=newchar[10];

//输入学生信息

for(;;)

cout〈〈"请输入学生的学号、姓名、数学成绩、英语成绩、计算机成绩:

(若输入的学号为0则表示退出)"〈〈endl;

cin>>q〉>we>>a〉>z〉〉x;

if(q==0)

break;

stu[count++]。

set_stu_inf(q,we,a,z,x);

if(max>a+z+x);

elsemax=a+z+x;

aver+=(a+z+x);

}

//输出所有学生信息

cout<〈"学生信息为:

"<〈endl〈〈endl;

for(i=0;i〈count;i++){

stu[i]。

print();

cout<

cout<<"全班学生总成绩最高分为”<〈max<〈endl

<〈”全班学生总平均分为”〈

cout<〈”请输入要查的学生的学号:

”〈〈endl;

cin>〉q;

for(i=0;i〈count;i++){

if(q==stu[i]。

get_reg_num())

{

cout<〈"此学生信息为:

”〈〈endl;

stu[i].print();

break;

}

}

if(i==count)

cout<<”查无此人"<

return0;

}

28.定义复数类complex,使用友元函数,完成复数的加法、减法、乘数运算,以及复数的输出。

P95。

4.8

#include〈iostream。

h>

classComplex

{

doublereal;

doubleimage;

public:

Complex(doubler=0,doublei=0)

{

real=r;image=i;

friendvoidinputcomplex(Complex&comp);

friendComplexaddcomplex(Complex&c1,Complex&c2);

friendComplexsubcomplex(Complex&c1,Complex&c2);

friendComplexmulcomplex(Complex&c1,Complex&c2);

friendvoidoutputcomplex(Complex&comp);

};

voidinputcomplex(Complex&comp)

cin〉>comp。

real〉>comp。

image;

Complexaddcomplex(Complex&c1,Complex&c2)

{

Complexc;

c。

real=c1.real+c2.real;

c.image=c1。

image+c2。

image;

returnc;

Complexsubcomplex(Complex&c1,Complex&c2)

Complexc;

c.real=c1.real—c2.real;

c。

image=c1.image-c2.image;

returnc;

Complexmulcomplex(Complex&c1,Complex&c2)

Complexc;

c。

real=c1。

real*c2.real-c1.image*c2.image;

c。

image=c1。

real*c2.image+c1.image*c2.real;

returnc;

}

voidoutputcomplex(Complex&comp)

cout〈<”(”〈〈comp。

real<<”,”〈〈comp。

image〈<”)";

 

voidmain()

{

Complexc1,c2,result;

cout〈〈”请输入第一个复数的实部和虚部:

”<〈endl;

inputcomplex(c1);

cout<<”请输入第二个复数的实部和虚部:

"〈〈endl;

inputcomplex(c2);

result=addcomplex(c1,c2);

outputcomplex(c1);

cout<<"+";

outputcomplex(c2);

cout<〈"=";

outputcomplex(result);

cout〈<"\n—-———-----—--———-—-——--——"<

result=subcomplex(c1,c2);

outputcomplex(c1);

cout<<”-”;

outputcomplex(c2);

cout<〈"=";

outputcomplex(result);

cout〈<”\n----——-—————--———-———-—--"〈〈endl;

result=mulcomplex(c1,c2);

outputcomplex(c1);

cout<<”*";

outputcomplex(c2);

cout<〈”=”;

outputcomplex(result);

cout<〈endl;

29.某单位所有员工根据领取薪金的方式分为如下几类:

时薪工(hourlyworker)、计件工(pieceworker)、经理(manager)、佣金工(commissionworker).时薪工按工作的小时支付工资,对于每周超过50小时的加班时间,按照附加50%薪水支付工资.按生产的每件产品给计件工支付固定工资,假定该工人仅制造一种产品。

经理每周得到固定的工资。

佣金工每周得到少许的固定保底工资,加上该工人在一周内总销售的固定百分比。

试编制一个程序来实现该单位的所有员工类,并加以测试。

P1255.15

#include

#include〈string.h>

classemployee//雇员类

{

protected:

charname[10];//姓名

charemp_id[8];//职工号

doublesalary;//薪金数

public:

voidsetinfo(char*empname,intempsex,char*empid)//设置雇员的基本信息

{

strcpy(name,empname);

strcpy(emp_id,empid);

voidgetinfo(char*empname,char*empid)//取得雇员的基本信息

strcpy(empname,name);

strcpy(e

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1