程序设计基础二试卷B2010.doc

上传人:wux****ua 文档编号:9094105 上传时间:2020-04-03 格式:DOC 页数:4 大小:79KB
返回 下载 相关 举报
程序设计基础二试卷B2010.doc_第1页
第1页 / 共4页
程序设计基础二试卷B2010.doc_第2页
第2页 / 共4页
程序设计基础二试卷B2010.doc_第3页
第3页 / 共4页
点击查看更多>>
资源描述
(附 3 页 ) 试题纸(B卷) 课程名称: 程序设计基础(二) 适用专业年级: 2009级计算机、软件、网络、电本 考生学号: 考 生 姓 名: 一、 单项选择题(每题1分,共15分)1、 在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是( )。A)派生类的对象可以赋给基类的对象 B)派生类的对象可以初始化基类的引用C)派生类的对象可以直接访问基类中的成员 D)派生类的对象的地址可以赋给指向基类的指针2、 若myclass是一个类名,且有如下语句序列myclass c1,*c2; myclass *c3=new myclass; myclass &c4=c1;上面的语句序列所定义的类对象的个数是( )。A)1 B)2 C)3 D)43、 下列关于继承方式的描述中,错误的是( )。A)如果不显式地指定继承方式,缺省的继承方式是私有(private)B)采用公有继承方式时,基类中的公有成员在派生类中仍然是公有成员C)采用保护继承方式时,基类中的保护成员在派生类中仍然是保护成员D)采用私有继承方式时,基类中的私有成员在派生类中仍然是私有成员4、 将前缀运算符“-”重载为非成员函数,下列原型中,能正确用于类中说明的是( )。A)decr& operator -(int); B)decr operator -( decr&,int);C)friend decr& operator -(decr&); D)frlend decr operator -(decr&,int);5、 下列关于虚基类的描述,错误的是( )。A)设置虚基类的目的是为了消除二义性 B)虚基类的构造函数在非虚基类之后调用C)若同一层中包含多个虚基类,这些虚基类的构造函数按它们说明的次序调用D)若虚基类由非虚基类派生而来,则仍然先调用基类构造函数,再调用派生类的构造函数6、 下列关于多态性的描述,错误的是( )。A)多态性分为编译时的多态性和运行时的多态性 B)编译时的多态性可通过函数重载实现C)运行时的多态性可通过模板和虚函数实现 D)实现运行时多态性的机制称为动态绑定7、 有如下程序段class test public: test() test(const test &t) cout1; ;test fun(test &u) test t=u; return t; int main() test x,y; x=fun(y); return 0; 运行这个程序的输出结果是( )。A)无输出 B)1 C)11 D)1118、 下列代码声明了3个类class person;class student:public person;class undergraduate:student;下列关于这些类之间关系的描述中,错误的是( )。A)类person是类undergraduate的基类 B)类undergraduate从类student公有继承C)类student是类person的派生类 D)类undergraduate是类person的派生类9、 下面是类shape的定义:class shape public: virtual void draw()=0; ;下列关于shape类的描述中,正确的是( )。A)类shape是虚基类 B)类shape是抽象类C)类shape中的draw函数声明有误 D)语句“shape s;”能够建立shape的一个对象s10、 将运算符“+”重载为非成员函数,下列原型声明中,错误的是( )。A)myclock operator + (myclock,long); B)myclock operator + (myclock,myclock);C)myclock operator + (long,long); D)myclock operator + (long,myclock);11、 下列不是描述类的成员函数的是( )。A)构造函数 B)析构函数 C)友元函数 D)拷贝构造函数12、 继承机制的作用是( )。A)信息隐藏 B)数据封装 C)定义新类 D)数据抽象13、 C+语言类体系中,不能被派生类继承的有( )。A)转换函数 B)构造函数 C)虚函数 D)静态成员函数14、 对于类定义class A public: virtual void func1() void func2( ) ;class B: public A public: void func1() coutclass B func 1endl; virtual void func2( ) coutclass B func 2endl; 下面正确的叙述是( )。A)A:func2()和B:func1()都是虚函数 B)A:func2()和B:func1()都不是虚函数C)B:func1()是虚函数,而A:func2()不是虚函数 D)B:func1()不是虚函数,而A:func2()是虚函数15、 下面关于运算符重载的描述错误的是( )。A)运算符重载不能改变操作数的个数、运算符的优先级、运算符的结合性和运算符的语法结构B)不是所有的运算符都可以进行重载C)运算符函数的调用必须使用关键字operatorD)在C+语言中不可通过运算符重载创造出新的运算符二、 填空题(每空1分,共10分)1. 友元函数虽然是在类中定义,但不是类的成员函数,而且必须以( )开头。2. 面向对象程序设计建立在结构化程序设计的基础上,它围绕被操作的数据来设计程序,而不是操作本身,且以类为构造程序的基本单位,具有( )等4个特点。3. 执行“cout43-18endl;”语句后得到的输出结果为( )。 4. 使用const语句定义一个标识符常量时,则必须对它同时进行( )。 5. 按公有继承时,基类中的保护成员在派生类中的访问属性是( )。6. 如果希望类的某个数据成员为本类所有对象所共有,则应将该数据成员的存储类型定义成( )。7. 假定AB为一个类,则执行”AB a10;”语句时,系统自动调用该类构造函数的次数为( )。 8. 若将一个二元运算符重载为类的成员函数,其形参个数应该是( )个。9. 在异常处理语句中,在try块后必须紧跟1个或多个( )块,其形参只能是( )个,它的数据类型必须与抛弃的数据类型一致。三、 阅读程序,将程序运行结果填写答题册上。(每小题5分,共25分)1、#includeusing namespace std;class Animal public: virtual char *gettype( ) const return “Animal”; virtual char *getvoice() const return “Voice”; ;class Dog: public Animal public: char *gettype( ) const return “Dog”; char *getvoice() const return “Woof”; void type(Animal &a) couta.gettype(); void speak(Animal a) couta.getvoice(); void main() Dog d; type(d); cout”speak”; speak(d); coutendl; 2、#include #includeusing namespace std;class XCF int a; Public: XCF( int aa=0 ) :a(aa) cout”1”; XCF( XCF &x) a=x.a; cout”2”; Int Geta( ) return a; Void main( ) XCF d1(5), d2(d1); XCF *pd= new XCF(8); coutGeta(); delete pd; 3、#includeclass exception private: char *ch; public: Exception(char *m) ch=m; void print( ) cerrchendl; ;void fun1( ) throw exception(“exception”); void fun2( ) try fun1( ); catch() cerrfun1:catch “; throw; void main( ) try fun2( ); catch() cerr”main:catch “; 4、#include class Sample protected: int x; public: Sample() x=0; Sample(int val) x=val; void operator+() x+; ; class Derived:public Sample int y; public: Derived():Sample() y=0; Derived(int val1,int val2):Sample(val1) y=val2; void operator-() x-;y-;void disp() coutx= x y= y endl; ; void main () Derived d(3,5); d.disp(); d+; d.disp(); d-; d-; d.disp(); 5、# include class A int a;public: A(int aa=0) a=aa; A() cout Destructor A!aendl; ;class B:public A int b;public: B(int aa=0,int bb=0):A(aa) b=bb; B() cout Destructor B!bendl; ;void main() B x(5),y(6,7); 四、 程序填空题(根据题意要求,将程序补充完整,每空2分,共20分)1、补充完整下面类的定义class XCH char *a;public: XCH( char *aa ) a= new charsrelen(aa)+1; strcpy(a,aa); XCH operator = (const XCH &x ) /重载赋值运算符 delete a; a= new char_(1)_; strcpy(a,x.a); _(2)_; XCH() _(3)_ 2、补充完整下面的模板定义:template class Xtwo _(4)_ a,b;public: Xtwo( Type aa=0, Type bb=0):a(aa),b(bb) int Compre() if(ab) return 1; else if(a=b) return 0; else return -1; Type Sum() return a+b; Type Mult( );_(5)_(6)_:Mult( ) return a*b; 3、下面的程序用来求两个点之间的距离。#include #includeclass Point double x,y; public: Point(double i, double j)x=i;y=j;double getx() return x; double gety() return y; void disp() cout(xy); (7) ; double distance( (8) ) double d,dx,dy; dxa.xb.x; dya.yb.y; d= (9) ; return d; void main() (10) p1(2,2),p2(5,5); p1.disp(); cout与; p2.disp(); cout之间距离=distance(p1,p2)endl; 五、 编程题(第1小题12分,第2小题13分,共25分)1、编写程序,设计一个点类Point,并分别用两种不同的方式求两个点之间的距离。2、定义以一个复数类,实现运算符 +,-,*,/,=,= 的重载。 注:1、教师命题时题目之间不留空白; 2、考生不得在试题纸上答题,教师只批阅答题册正面部分。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!