C++与数据结构 哈理工习题集.docx
《C++与数据结构 哈理工习题集.docx》由会员分享,可在线阅读,更多相关《C++与数据结构 哈理工习题集.docx(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C+第一章整型int字符型char浮点型float double布尔型bool空类型void/取整取余&与|或+i前置自增i+后置自增-i前置自减i后置自减 el?e2:e3 el 为 1 时取 e2 , el 为 0 时取 e3练习11 .开发一个C+程序需要哪几个阶段?编辑,编译,预处理,链接,装入,执行.关系运算符和赋值运算符哪个优先级高?关系运算符.选择题1 .设有定义:int x=0,y=5;表达式y+=x/5+4;的值是DA.O B.5 C.4 D.92 .设有定义:int m=8,i,j;double x=1.42,y=5.2;以下符合C+语法的表达式是D A.x+y%=m B.
2、(m-2)+ C.i=j*5=3 D.m+=m-=2*(j=3)3 .设有定义:inta=5,b=2;以下值为1的表达式是BA.!(b=a B.b!=a C.a!=b II a=b D.a0&b24 .设有定义:int x=2,y=3,z=4;以下能正确表示1/xyz的表达式是CA.l/x*y*z B.l/(x*y*z) C.1.0/x/y/z D.l/x/y/(float)z5 .设有定义:int a,b;表达式(a=3,b=5,ab)?a+:b+,a+b 的值是 CA.3 B.8 C.9 D.106 .设有定义:charcl=a,c2=A;表达式 clc2?cl:c2+32 的值是 CA.
3、O B.l CH DJA4 .写出下类程序运行结果3. #include using namespace std; int main() float x=12.345;int y=100;coutxyendl;y=x*y;coutyendl; return 0;)1234.5 12341. #include using namespace std; void main() int m,n(2),k;k=+m;coutnk=nkendl;k=m+n+;coutmnkendl; k=n-m;coutmnkendl;k=(m=n); coutkendl;)k=2 234 220 12. #inclu
4、de#include using namespace std;void main() int a(2),b(3);double c,d;c=-0.5;d=8.123456;coutsetw(3)a+bendl; coutsetw(10)setfill(*) abendl;coutsetprecision(5)d endl;coutsctprccision(4)c:lcd endl;5 *6 8.1235 -4.062coutvvcTvv是素数 vvendl;););void main()(Integer a(15); 类的实例化的名称不能是一样的。就像变量名,不同的变 量不能用相同的变量名a.
5、lsOdd();coutendl;a.lsPrime();coutendl;Integer b(31);b.lsOdd();coutendl;b.lsPrime();coutendl;第6章练习1 .以下表达中不正确的选项是BA.在公有继承这种,基类的public和protected成员的访问属性在派生类中不变,而基类的 private成员不可访问B.对于保护继承,基类的public,protec ted和private成员在派生类中的访问属性同AC.对于私有继承,基类的public,protected成员都以private成员的身份出现在派生类中,而 基类的private成员为不可访问成员D
6、.对于保护继承,基类的public,protected成员在类外通过派生类的对象都不能访问.如果一个函数说明为一个类的友元,那么DA.该类可以使用该函数的局部变量B.该函数可以使用该类中成员函数的局部变量C.该函数只能使用该类的数据成员D.该函数可以使用该类的任意成员2 .在派生类的构造函数的成员初始化列表中,不能包含BA.基类的构造函数B.派生类中子对象的初始化C.基类的子对象的初始化D.派生类中数据成员的初始化4,设类B是由类A继承的。当创立一个类B的对象时,构造函数的调用顺序是AA.先调用类A的构造函数,然后调用类B的构造函数B.先调用类B的构造函数,然后再调用类A的构造函数C不调用类A
7、的构造函数D.是定义时类A和类B出现的位置5如果某类是从另一个类继承来的,那么析构函数的调用顺序是DA.鱼类的继承关系无关B.先调用基类的析构函数,在调用本类的析构函数C.不调用基类的析构函数D.先调用本类的析构函数,在调用基类的析构函数2 ,写出程序运行结果1 .#includeclass Basepublic:void seti(int x)i=x;int geti()return i; protected:int i;class Derived:Basepublic:Base:seti;void setj(int x)j=x;int getij() retum(j)*(+i); prot
8、ected:intj;);int main() Derived obj;obj.seti(5);obj.setj(7);coutobj.getij()endl;return 1;423 .程序填空2.#includeclass Apublic:A(int i,int j)a=i,b=j;void Move(int x,int y)a+=x;b+=y; voidShow()coutv(avJb)n”; private:int a,b;);class B:public Apublic:B(int i,int j,int k,int l):A(i,j),x(k),y(l) void Show()co
9、utxH,nyendl; void fun()Move(3,5);void fl() A:Show();private:int x,y;);void main()A e(l,2);e.Show();B d(3,4,5,6);d.fun();d.A:Show(); d.B:Show(); d.fl();)5,61 ,线面成包含一个人员类person(包括编号和姓名),由此派生出学生类student和教师类teacher。类student包括学号姓名班级和成绩,类teacher包括编号姓名部门和职责。 根据不同的对象显示不同的内容#include #includeclass person int
10、no;char namc10;public:person(int n,char*p) no=n; strcpy(name,p); void display()coutnon nnameendl; );class student:public personchar depart10;int degree;public:student(int n,charts,charM,int c):person(n,s) strcpy(depart,d);degree=c; void displayO cout ”学号和姓名:;person: display。;coutv班级:departv成绩:vdegre
11、eendl;);class teacher:public person char depart10,prof10;public:teacher(int n,charts,chared,char*p):person(n,s) strcpy(depart,d);strcpy(prof,p);void displayO coutvv”编号和姓名:n ;person: :display();coutv部门:departvv 职称:vprofvvendl;);void main() student al(025J张三“,“电子技术班”,85);al.displayO;teachertl(316,“刘强,
12、r计算机系教授)tl.displayO;)person (n,s) person (n,s)2,下面的程序中包括一个圆类circle, 一个桌子类table和一个圆桌类roundtable的定义 其中,类roundtable继承了类circle和类table。该程序能输出一个圆桌的高度桌面面积和颜 色。#include#includeclass circle(double radius;public:circle(double r=0)radius=r;double gctarca()return radius*radius*3.14159;);class table double heigh
13、t;public:table(double h=O)height=h;double getheight()return height;);class roundtable:public table,public circle char *color;public:roundtable(double h=0,double r=O,char*c=O):table(h),circle(r)(color=new charstrlen(c)+l;strcpy (color,c);)char*getcolor()return color;);void main() (roundtable rt(l .25
14、,2.3 J橙黄色”);coutv如圆桌属性数据:“ vvendl;coutn 高度:n rt. getheight()n 米 nendl;coutvv面积:“vrt.getarea()vv平方米”vvendl;cout颜色:rt.getcolor()vendl;)cirde table char20 strcpy getheight getarea getcolor4.设id个father类,一个mother类和一个child类。其中child类继承father类和mother 类。Father类和mother类都包含星河明两个数据成员。Child类仅包含名数据成员。要求 一个child类的
15、对象能够输出父母和自己的姓名#includeclass fatherchar a100;public:father()coutvv”输入父亲姓名:“vvendl;cina;void outputName()coutvv”父亲姓名:vvavvendl; ;class motherchar b100;public:mother()coutvv”输入母亲姓名:“ vvendl;cinb;void outputName()coutvv”母亲姓名:vvbvvendl;;class child:public father,public mother char c100;public:child()cout
16、vv”输入孩子姓名:“vvendl;cinc;void outputName() father:outputName(); mother:outputName();coutvv孩子姓 名:“vvcvvendl;);void main()child d1;d1.outputName();第7章1.选择题1在以下运算符重载的描述中,D是正确的A.可改变操作个数B.可改变优先级C.可改变结合性D.不可改变语法结构2.o在以下纯虚函数和抽象类的描述中,C是错误的A.纯虚函数么有具体实现B.抽象类是具有纯虚函数的类C抽象类的派生类一定不再是抽象类 D.抽象类不能建立对象3.在以下动态联编的描述中,A是错
17、误的A.动态联编是在编译时确定操作函数的B.动态联编是以虚函数为基础的C.动态联编必须通过指针或引用来调用虚函数D.动态联编是在运行时确定操作函数的4.C是一个在积累中至少有一个纯虚函数,他在该基类中没有具体的实现,但要求派生类必 须有自己的版本A.虚构造函数B.虚析构函数C.纯虚函数D.静态成员函数5,假设在一个类中至少有一个纯虚函数,那么称该类为CA.虚基类B.多重派生类C抽象类D.友元类2 .写出程序运行结果1 .#includevirtual void fun(int x)coutnBaseclass Baseclass x=nxendl;public:;class subclass:
18、public Basevirtualvoidfun(intx)coutHsubclass x=nxendl; ); void Test(Base *p)int a=2;p-fun(a); void main() Base objl;subclass obj2;Test(&obj l);Test(&obj2);)Base class x=2subclass x=22.#include#includeclass baseprotected:int a,n;public:virtual void setab(int i,int j=0)a=i;n=j;virtual void disp()=0;cl
19、ass subclass:public Basevirtualvoidfun(intx)coutHsubclass x=nxendl; ); void Test(Base *p)int a=2;p-fun(a); void main() Base objl;subclass obj2;Test(&obj l);Test(&obj2);)Base class x=2subclass x=22.#include#includeclass baseprotected:int a,n;public:virtual void setab(int i,int j=0)a=i;n=j;virtual voi
20、d disp()=0;;class pal:public basepublic:voiddisp()couta:icaendl;class pa2:public basepublic:voiddisp() couta*a*aendl;class pan:public basepublic:voiddisp() coutpow(double(a),double(n)end 1;void main() base *pa;pal obi; pa2 ob2;pan ob3;pa=&ob 1 ;pa-setab( 10);pa-disp();pa=&ob2;pa-setab(5);pa-disp();p
21、a=&ob3;pa-setab(5,4);pa-disp();)100 125 625.程序填空以下程序对电雷用成员函数进行运算符“ + ”重载,用友元函数进行运算符重载,以 实现两点坐标的相加相减运算#includeclass pointprivate: int x,y;public:point(int i=0,int j=0) x=i;y=j;void display() coutn(,x,yn),endl;point operator+(point)return point(x+p.x,y+p.y);friend point operator-(point &,point &););po
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+与数据结构 哈理工习题集 C+ 数据结构 理工 习题集
限制150内