c++面向对象的程序

上传人:第*** 文档编号:32683355 上传时间:2018-02-12 格式:DOC 页数:16 大小:71.50KB
返回 下载 相关 举报
c++面向对象的程序_第1页
第1页 / 共16页
c++面向对象的程序_第2页
第2页 / 共16页
c++面向对象的程序_第3页
第3页 / 共16页
c++面向对象的程序_第4页
第4页 / 共16页
c++面向对象的程序_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《c++面向对象的程序》由会员分享,可在线阅读,更多相关《c++面向对象的程序(16页珍藏版)》请在金锄头文库上搜索。

1、面向对象编程技术试卷(A)一、单项选择题(130=30 分)1结构化的程序设计方法描述不正确的是()A 设计思路是自顶向下、逐步求精B 程序结构:按功能划分为若干个基本模块,形成一个树状结构C 能够有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护D 可重用性好2在函数定义前加上关键字 inline,表示该函数被定义为_。 A 重载函数 B 内联函数 C 成员函数 D 普通函数 3下列标示符, ( )是合法的A -page; B _lock; C 3in1; D mail。4设 void f1(int &x,char * p);int m;char s =c+

2、;以下调用合法的是( ) 。A f1(&m,&s) B f1(&m,s) C f1(m,s) D f1(m,&s)5. 数组定义为 int a23 = 1,2,3,4,5,6;, 则表达式*(a1+2)值为( ) 。A、3 B、4 C、5 D、66、 假定 Person 为一个类,则执行 Person p1, p2(“tom”),*p3;语句时,自动调用该类构造函数_次。 A 2 B 3 C 4 D 5 7 对类的构造函数和析构函数描述正确的是_。 A 构造函数可以重载,析构函数不能重载 B 构造函数不能重载,析构函数可以重载 C 构造函数可以重载,析构函数也可以重载 D 构造函数不能重载,析

3、构函数也不能重载 8关于抽象描述不正确的是_。 A 数据抽象描述某类对象的属性或状态。B 代码抽象描述某类对象的共有的行为特征或具有的功能。C 抽象说明 OOP 方法更注重问题的实现过程而不注重问题的本质描述。D 抽象最终通过类的声明来实现9不能实现函数之间数据传递的是_。 A 全局变量 B 局部变量 C 静态变量 D 函数返回值10 假定 Cat 为一个类,则该类的拷贝初始化构造函数的声明语句为_。 A Cat B Cat (Cat &x) C Cat (Cat x); D Cat (Cat *x)11 为了使类中的某个成员不能被类的对象通过成员操作符访问 , 则不能把该成员的访问权限定义为

4、_。 A public B protected C private D static12 类的析构函数的作用是_。 A 一般成员函数 B 类的初始化 C 对象的初始化 D 对象被删除时的清理工作13对于常数据成员,下面描述正确的是 _。 A 常数据成员可以不初始化, 并且不能更新 B 常数据成员必须被初始化,并且不能更新 C 常数据成员可以不初始化, 并且可以被更新 D 常数据成员必须被初始化,并且可以被更新14 对于下面定义的类 Point,在函数 f()中将对象成员 x,y 的值修改为 5,6 的语句应该是_。Class Pointpublic:Point(int x1=0, int y1

5、=0) x = x1; y = y1void SetPosition (int x1, int y1) x = x1; y = y1private:int x;int y ;voidf()Point *ptr = new Point(4,5);_ A Point(5,6) B ptr- Point (5,6) C ptr- SetPosition (5,6) D ABC 都可以。15对下列语句正确的描述是_。Const int *x;_/int *const x;_/ A 语句的含义是指针变量 x 不能更改 B 语句的含义是指针变量 x 所指向的值不能更改 C 语句的含义是指针变量 x 不能更

6、改 D 语句和是相同含义的不同定义方式16对于常成员函数,下面描述正确的是 _。 A 类的成员函数可以操作常对象 B 类的成员函数不能操作常对象 C 只有常成员函数可以操作常对象 D 在常成员函数中,常对象可以被更新17关于 new 运算符的错误的描述是 _。 A)使用运算符 new 创建对象数组时必须定义初始值 B)使用运算符 new 创建对象时,会调用类的构造函数 C)运算符 new 可以用来动态创建对象和对象数组 D)使用 new 运算符创建的对象可以使用运算符 delete 删除18下面_的叙述不符合赋值兼容规则。 A)派生类的对象可以赋值给基类的对象 B)基类的对象可以赋值给派生类的

7、对象 C)派生类的对象可以初始化基类的引用 D)派生类的对象的地址可以赋值给指向基类的指针19一个类的友元函数或友元类能够通过成员操作符访问该类的_。 A)私有成员 B)保护成员 C)公用成员 D)所有成员20下列关于友元的描述中,错误的是_A.友元函数可以访问该类的私有数据成员 B.一个类的友元类的成员函数都是这个类的友元函数C.友元可以提高程序的运行效率 D.类与类之间的友元关系可以继承21下面对静态数据成员的描述中, 正确的是_ 。 A)静态数据成员可以在类体内进行初始化 B)静态数据成员不可以被类的对象调用 C)静态数据成员不能受 private 控制符的作用 D)静态数据成员可以直接

8、用类名调用22使用指针动态申请数组 float10259语句应是A. float (*fp)1025=new float259; B. float *fp=new float10259;C. float (*fp)259=new float10259; D. float *fp=new float259;23下列说法中错误的是_。 A.公有继承时基类中的 public 成员在派生类中仍是 public 的 B.公有继承时基类中的 private 成员在派生类中仍是 private 的 C.私有继承时基类中的 public 成员在派生类中是 private 的 D.保护继承时基类中的 publi

9、c 成员在派生类中是 protected 的 24. 下列运算中, _运算符在 C+中不能重载。A. ?: B. + C. D. #include string.hclass studentpublic:student(char *sno1=000,char * sname1=NoName,int sage1=0) /形参不对扣一分,没有默认形参值扣一分sno = new char8;sname = new char8;strcpy(sno,sno1);strcpy(sname,sname1);sno = sno1;sname = sname1;sage = sage1;SNum +; /没有

10、 SNum +;扣一分student(student & s) /拷贝构造函数格式不正确扣一分sno = new char; /没有实现深拷贝扣两分sname = new char;strcpy(sno,s.sno);strcpy(sname,s.sname);sage = s.sage;SNum +; /没有 SNum +;扣一分student() /析构函数不正确扣一分SNum-; /没有 SNum -;扣一分delete sno;delete sname;char *GetSno() / 函数不正确扣一分 return sno; char *GetSname() / 函数不正确扣一分 return sname; int GetSage() / 函数不正确扣一分return sage;void Set(char *sno1,char * sname1,int sage1) / 函数不正确扣一分sno = new char8;sname = new char8;strcpy(sno,sno1);strcpy(sname,sname1);sno = sno1;sname = sname1;sage = sage1;void show() / 函数不正确扣一分coutc

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 职业教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号