c机考题目加复习资料.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《c机考题目加复习资料.docx》由会员分享,可在线阅读,更多相关《c机考题目加复习资料.docx(31页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1. 实现一个大小固定的整型数据元素集合及其相应操作(元素的添加、删除;判断两个集合是否相等;判断一个数是否为集合中的元素;交集;并集)。P#include const maxCard = 16; / 集合中元素个数的最大值,默认为int型enum ErrCode noErr, overflow; / 错误代码enum Bool False, True; / Bool类型定义class Set / 定义集合类 int elemsmaxCard; / 存储元素的数组 int card; / 集合中元素的个数public: void EmptySet( )card = 0; Bool Member
2、(int); / 判断一个数是否为集合中的元素 ErrCode AddElem(int); / 向集合中添加元素 void RmvElem(int); / 删除集合中的元素 void Copy(Set *); / 把当前集合拷贝到形参指针指向的集合中 Bool Equal(Set *); / 判断两个集合是否相等 void Print( ); void Intersect(Set *, Set *); / 交集 ErrCode Union(Set *, Set *); / 并集;Bool Set:Member(int elem)for(int i=0;icard;+i)if(elemsi =
3、elem)return True;return False;ErrCode Set:AddElem(int elem)if(Member(elem)return noErr;if(card maxCard)elemscard+ = elem;return noErr; return overflow;void Set:RmvElem(int elem)for(int i = 0; icard; +i)if(elemsi = elem)for(;icard-1;+i)elemsi = elemsi+1;-card; return;void Set:Copy(Set *set)for(int i
4、= 0; i elemsi = elemsi;set-card = card;Bool Set:Equal(Set *set)if(card != set-card)return False; for(int i = 0; i Member(elemsi) return False;return True;void Set:Print( )cout;for(int i = 0; i card; +i)cout elemsi ;cout*resres-card = 0;for(int i = 0; i card; +i)for(int j = 0; j card; +j)if(elemsi =
5、set-elemsj)res-elemsres-card+ = elemsi;break;ErrCode Set:Union(Set *set,Set *res) / 并集:*set*this-*resset-Copy(res);for(int i = 0; i AddElem(elemsi) = overflow)return overflow; return noErr;/ 下面是测试用的主程序void main( )Set s1, s2, s3;s1.EmptySet( );s2.EmptySet( );s3.EmptySet( );s1.AddElem(10);s1.AddElem(2
6、0);s1.AddElem(30); s1.AddElem(40);s2.AddElem(30);s2.AddElem(50);s2.AddElem(10); s2.AddElem(60);couts1=; s1.Print( );couts2=;s2.Print( );s2.RmvElem(50);couts2-50=;s2.Print( );if(s1.Member(20)cout20 is in s1n;s1.Intersect(&s2,&s3);couts1 intsec s2 =;s3.Print( );s1.Union(&s2,&s3);couts1 union s2 =;s3.P
7、rint( );if(!s1.Equal(&s2)couts1!=s2n;2. 实现一个大小可变的整型数据元素集合,集合可存储的数据元素个数在对象构造时给定,由构造函数为数据元素分配存储空间,在对象被释放时由析构函数释放存储空间。P#include const maxCard=16; / 集合中元素个数的缺省最大值enum ErrCode noErr, overflow; / 错误代码enum Bool False, True; / Bool类型定义class Set int size; / 元素的最大个数 int *elems; / 存储元素的数组 int card; / 集合中元素的个数
8、public:Set(int sz=maxCard)card=0;size=sz;elems=new intsize;Set( )delete elems;Bool Member(int);ErrCode AddElem(int);void RmvElem(int);void Copy(Set *);Bool Equal(Set *);void Print( );void Intersect(Set *, Set *);ErrCode Union(Set *, Set *);Bool Set:Member(int elem)for(int i=0;icard;+i)if(elemsi=elem
9、)return True;return False;ErrCode Set:AddElem(int elem)if(Member(elem)return noErr;if(cardsize)elemscard+=elem; return noErr; return overflow;void Set:RmvElem(int elem)for(int i=0;icard;+i)if(elemsi=elem)for(;isizeelems;set-elems = new intsize;set-size = size;for(int i=0;ielemsi=elemsi;set-card=card
10、;Bool Set:Equal(Set *set)if(card!=set-card)return False; for(int i=0;iMember(elemsi)return False;return True;void Set:Print( )cout;for(int i=0;icard-1;+i)coutelemsi0)coutelemscard-1;coutsizeelems; res-elems = new intsize; res-size = size;res-card=0;for(int i=0;icard;+i)for(int j=0;jcard;+j)if(elemsi
11、=set-elemsj)res-elemsres-card+=elemsi;break;ErrCode Set:Union(Set *set, Set *res)if(res-sizesize)delete res-elems;res-elems = new intsize+set-size;res-size = size+set-size;set-Copy(res);for(int i=0;iAddElem(elemsi)=overflow)return overflow;return noErr;void main( )Set s1, s2, s3;s1.AddElem(10);s1.Ad
12、dElem(20);s1.AddElem(30); s1.AddElem(40);s2.AddElem(30);s2.AddElem(50);s2.AddElem(10); s2.AddElem(60);couts1=; s1.Print( );couts2=;s2.Print( );s2.RmvElem(50);couts2-50=;s2.Print( );if(s1.Member(20)cout20 is in s1n;s1.Intersect(&s2,&s3);couts1 intsec s2 =;s3.Print( );s1.Union(&s2,&s3);couts1 union s2
13、 =;s3.Print( );if(!s1.Equal(&s2)couts1!=s2n;3. 设计一个学生类student,它具有的私有数据成员是:注册号、姓名、数学成绩、英语成绩、计算机成绩;具有的公有成员函数是:求三门课程总成绩的函数sum();求三门课平均成绩average();显示学生数据信息的函数print();获取学生注册号的函数get_reg_num;设置学生数据信息的函数set_stu_inf()。P81。6编制主函数,说明一个student类对象的数组并进行全班学生信息的输入及设置,而后求出每一个学生的总成绩、平均成绩、全班学生总成绩最高分、全班学生总平均分,并在输入一个注册
14、号后,输出该学生有关的全部数据信息。#include#includeusing namespace std;class Student private: int num; char name10; float math; float english; float computer;public:void set_stu_inf(int n,char *ch,float m,float e,float c)num=n; strcpy(name,ch); math=m; english=e; computer=c; float sum()return (math+english+computer)
15、;float average()return (math+english+computer)/3;int get_reg_num()return num;void print()cout学号:numendl姓名:nameendl数学:mathendl英语:englishendl计算机:computerendl总分:sum()endl平均分:average()endl; int main() Student stu50;int i,q,a,z,x,max=0,aver=0; / i为循环变量,q:学号;a:数学成绩;/ z:英语成绩;x:计算机成绩int count = 0; /表示学生人数ch
16、ar* we=new char10;/ 输入学生信息for(;)cout请输入学生的学号、姓名、数学成绩、英语成绩、计算机成绩:(若输入的学号为0则表示退出) qweazx;if (q =0 )break;stucount+.set_stu_inf(q,we,a,z,x);if(maxa+z+x);else max=a+z+x;aver+=(a+z+x);/ 输出所有学生信息cout学生信息为:endlendl;for( i = 0; i count; i+)stui.print();coutendl;cout全班学生总成绩最高分为maxendl全班学生总平均分为aver/3endlendl;
17、cout请输入要查的学生的学号:q;for( i = 0; i count; i+)if (q=stui.get_reg_num()cout此学生信息为:endl;stui.print();break;if (i=count)cout查无此人endl;return 0;4. 定义复数类complex,使用友元函数,完成复数的加法、减法、乘数运算,以及复数的输出。P#includeclass Complexdouble real;double image;public:Complex(double r = 0, double i = 0)real = r; image = i;friend vo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 题目 复习资料
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内