C++面向对象程序设计模拟试题五
C 面向对象程序设计试题集

C++面向对象程序设计试题集一、填空题(每空2分,共20分)1.2.3. 设a、b、c都是int型变量,则a=(b=4)+(c=2)后,a值为_,b值为。
在派生类的成员中有公有成员、四类成员。
类Sample的构造函数将形参data赋值给数据成员data。
请将类定义补充完整。
class Sample{public: Sample(int data=0);Private: int data;};Sample::Sample(int data){4. 面向对象程序设计的5. 继承发生在利用现有类派生新类时,其中现有类称为,或父类;派生的新类称为,或。
6.7. 若表达式(x+(y-z)*(m/n))+3中的变量均为double型,则表达式值的类型为。
已知数组a 中的元素个数为n,下列语句的作用是将下标为i 的元素移动到下标为i -1 的单元,其中1≤i<n。
例如,当n=4,a 中原有数据为1,2,3,4 时,则移动后a 中元素为2,3,4,4。
请将语句补充完整:for(int i=0;i<n-1;i++) a[i]= 。
8. 类是对具有共同属性和行为的一类事物的抽象描述,共同属性被描述为类中的,共同行为被描述为类中的。
9. 类Sample的构造函数将形参data赋值给数据成员data。
请将类定义补充完整。
class Sample{public:Sample(int data=0);Private:int data; };Sample::Sample(int data){}10. 实现运行时多态,要使用函数。
11. 设A为test类的对象且赋有初值,则语句test B(A); 。
12. 在MyClass 类的定义中,对赋值运算符=进行重载。
请将画线处缺失的部分补充完整。
MyClass::operator=(const MyClass rhs){if(this=&rhs) return *this;value=rhs. value;return *this; }13. C++语言中的每条基本语句以 ________作为结束符,每条复合语句以________ 作为结束符。
c面向对象考试题及答案

c面向对象考试题及答案一、选择题(每题2分,共10分)1. 在C++中,以下哪个关键字用于定义类的成员函数?A. staticB. virtualC. friendD. public答案:B2. 以下哪个选项不是C++中的访问修饰符?A. privateB. protectedC. publicD. global答案:D3. 在C++中,哪个关键字用于创建类的实例?A. classB. newC. structD. enum答案:B4. C++中的继承默认使用的是哪种继承方式?A. 公有继承B. 私有继承C. 保护继承D. 无继承答案:A5. 以下哪个不是C++中的多态性实现方式?A. 函数重载B. 函数覆盖C. 运算符重载D. 模板答案:D二、填空题(每题2分,共10分)1. 在C++中,类的构造函数可以有参数,也可以没有参数,没有参数的构造函数称为_________构造函数。
答案:默认2. C++中,析构函数的名称是在类名前加上一个_________符号。
答案:~3. 当一个类的对象被销毁时,会自动调用该对象的_________函数。
答案:析构4. 在C++中,如果一个类继承自另一个类,那么被继承的类称为_________类。
答案:基类5. C++中,如果一个类继承自多个类,这种继承方式称为_________继承。
答案:多重三、简答题(每题5分,共20分)1. 简述C++中类的封装性。
答案:类的封装性是指将数据(属性)和行为(方法)捆绑在一起,并对外部隐藏其内部实现细节,只提供有限的接口与外部交互。
2. 描述C++中类的继承机制及其作用。
答案:C++中的继承机制允许一个类(派生类)继承另一个类(基类)的属性和方法,从而实现代码的重用和扩展。
继承可以是公有的、保护的或私有的,分别对应不同的访问权限。
3. 解释C++中的多态性及其应用场景。
答案:多态性是指允许不同类的对象对同一消息做出响应的能力,即同一个接口可以被不同的实例以不同的方式实现。
c 面向对象程序设计试题和答案

一、填空题(每空1 分,共14 分)1、观看以下程序:class point{public:void show() {cout<< ”point ”<<endl;}};void main(){系point p1;名point *p;___ ___ ___ p=&p1;_p1.show()_// 通过对象p1 访问show 函数_____ p->show() _// 通过指针p 访问show函数班密}级封2、在C++类中可以包含_public_ 、__protected__ 和__private_ 三种具有不同访问控制权的成员。
___线3、定义类时,在类头中将使用关键字_class__来表示类定义的开始。
______ ___ 姓名___ ___ 内不答题4、如果一个类中至少有一个纯虚函数,则该类称为___抽象类___。
5、C++类的组成包括数据成员和___成员函数__,友元__不是___(是、不是)该类的成员函数。
6、友员函数是用关键字__friend__ 修饰的非成员函数。
7、若有:int i;______int &j=i;i=10;学j=i+1;号则i=___11__ ,j=__11__ 。
____________8、new 的功能是___申请内存空间__,delete 的功能是_释放内存空间___。
编程题( 每题10 分、共30 分)8、测试一个名为rectangle 的矩形类,其属性为矩形的左下角与右上角两个点的坐标,能计算矩形的面积。
(10 分)9、定义一boat 与car 两个类,二者都有weight 属性,定义二者的一个友元函数totalweight() ,计算二者的重量和。
(10 分)10、设计一个汽车类vehicle ,包含的数据成员有车轮个数wheels 和车重weight 。
小车类car 是它的派生类,其中包含载人数passenger_load 。
c -面向对象程序设计考试试题

大学考试试题纸(A 卷)(2007 -2008 学年第1 学期)《面向对象程序设计》课程计算机院(系)班级考试时量 100分钟学生人数命题教师系主任交题时间:年月日考试时间:年月日A1 23考试试题纸(A 卷)(2007 -2008 学年第1 学期)《面向对象程序设计》课程计算机、网络专业班级考试时量 100分钟学生人数命题教师系主任交题时间:年月日考试时间:年月日B2试题参考答案及评分细则(2007 -2008 学年第1 学期)《面向对象程序设计》课程(A卷)计算机院(系)班级应试学生人数实际考试学生人数考试时量 100分钟命题教师审核人:考试时间:年月日注:请用炭素墨水书写、字迹要求工整、并抄写在方框线内共页,第页,考试试题参考答案及评分细则(2007 -2008 学年第1 学期)《面向对象程序设计》课程(A卷)计算机、网络专业班级应试学生人数实际考试学生人数考试时量100 分钟命题教师审核人:考试时间:年月日注:请用炭素墨水书写、字迹要求工整、并抄写在方框线内共页,第页,4、分别写出下列语句执行的结果。
1) Console.WriteLine("{0}--{0:p}good",);2) Console.WriteLine("{0}--{0:####}good",0);3) Console.WriteLine("{0}--{0:00000}good",456);【解答】12.34--1,234.00%good0--good456--00456good5、编写一个控制台应用程序,输出1到5的平方值,要求:1) 用for语句实现。
2) 用while语句实现。
3) 用do-while语句实现。
【解答】using System;using System.Collections.Generic;using System.Text;namespace outputSquareValue{class Program{static void Main(){//用for语句实现for (int i = 1; i <= 5; i++){Console.WriteLine("{0}的平方值为{1}", i, i * i);}//用while语句实现int j = 0;while (j++ < 5){Console.WriteLine("{0}的平方值为{1}", j, j * j);}//用do-while语句实现int k = 1;do{Console.WriteLine("{0}的平方值为{1}", k, k * k);} while (k++ < 5);Console.ReadLine();}}}6、编写一个控制台应用程序,要求用户输入5个大写字母,如果用户输入的信息不满足要求,提示帮助信息并要求重新输入。
面向对象程序设计模拟试题

计算机技术与软件水平考试面对对象程序设计试题(6)一、单项选择题( 在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。
每小题2 分,共40 分)1.C++ 对C 语言作了许多改进,即从面对过程变成为面对对象的主要缘由是( )A. 增加了一些新的运算符B. 允许函数重载,并允许设置缺省参数C. 规定函数说明符必需用原型D. 引进了类和对象的概念2. 下列符号不能组成标识符的是( )A. 连接符B. 下划线C. 大小写字母D. 数字字符3. 类型修饰符unsigned 不能修饰( )A. charB. intC. long intD. float4. 在int a=3,int *p=&a ;中,*p 的值是( )A. 变量a 的地址值B. 无意义C. 变量p 的地址值D.35. 下列关于指针的操作中,错误的是( )A. 两个同类型的指针可以进行比较运算B. 可以用一个空指针赋给某个指针C. 一个指针可以加上两个整数之差D. 两个同类型的指针可以相加6. 重载函数在调用时选择的依据中,错误的是( )A. 函数的参数B. 参数的类型C. 函数的名字D. 函数的类型7. 一个函数功能不太困难,但要求被频繁调用,选用( )A. 内联函数B. 重载函数C. 递归函数D. 嵌套函数8. 下列不是描述类的成员函数的是( )A. 构造函数B. 析构函数C. 友元函数D. 拷贝构造函数9. 构造函数不具备的特征的是( )A. 构造函数的函数名与类名相同B. 构造函数可以重载C. 构造函数可以设置默认参数D. 构造函数必需指定类型说明10. 通常,拷贝构造函数的参数是( )A. 某个对象名B. 某个对象的成员名C. 某个对象的引用名D. 某个对象的指针名11. 继承机制的作用是( )A. 信息隐藏B. 数据封装C. 定义新类D. 数据抽象12. 类的析构函数的作用是( )A. 一般成员函数B. 类的初始化C. 对象的初始化D. 删除对象创建的全部对象13. 类的析构函数是在( ) 调用的。
面向对象程序设计模拟题

《面向对象程序设计》模拟题一.单项选择题1.以下有关析构函数的叙述,选择正确的填入括号内。
(B)A.可以进行重载可以定义为虚函数B.不能进行重载可以概念为虚函数C.可以进行重载不能定义为虚函数D.不能进行重载不能概念为虚函数2.以下有关函数缺省参数的出现位置,选择正确的叙述填入括号内。
(B)A.必须全部出现在函数参数表的左部B.必需全数出此刻函数参数表的右部C.必须全部出现在函数参数表的中间D.都不对3.若派生类函数不是基类的友元,关于该函数访问基类成员(C)正确:A.公有的可被派生类函数访问B.都可以被派生类函数访问C.公有和保护的可被派生类函数访问D.都不对4.关于函数的所有缺省参数的叙述(B)正确:A.只能出现在参数表的最左边B.只能出此刻参数表的最右边C.必须用非缺省的参数隔开D.都不对5.关于inline保留字的用途,选择正确的叙述填入括号内。
(C)A.只能用于定义成员函数B.只能用于概念非成员函数C.可以定义成员函数及非成员函数D.都不对6.关于类的构造函数的概念位置,将最为正确的叙述填入括号内。
(D)A.只能在private下定义B.只能在protected下概念C.只能在public下定义D.概念位置没有限制7.关于静态数据成员的叙述(D)正确:A.公有的可在类体外初始化B.私有的不能在类体外初始化C.私有和保护的不能在类体外初始化D.都可以且必须在体外初始化8.利用friend、virtual、static说明函数的叙述(C)正确:A.必须同时使用三个B.只能同时用其中两个C.只能独立单个地使用D.都不对9.如下修饰类体中函数的返回类型,将正确的用法填入括号内。
(D)A.同时使用static和friendB.同时利用static和virtualC.同时使用friend和virtualD.不同时利用上述三个保留字中的任意两个10.关于构造的叙述(A)正确:A.最先构造虚基类B.最先构造基类C.最先构造派生类的对象成员D.都不对11.在如下关于继承的叙述中,选择正确的填入括号内。
C++试题及答案 (五)
C++程序设计模拟试卷(五)一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1。
静态成员函数没有()A。
返回值B. this指针C. 指针参数D。
返回类型答案:B解析:静态成员函数是普通的函数前加入static,它具有函数的所有的特征:返回类型、形参,所以使用静态成员函数,指针可以作为形参,也具有返回值。
静态成员是类具有的属性,不是对象的特征,而this表示的是隐藏的对象的指针,因此静态成员函数没有this 指针。
静态成员函数当在类外定义时,要注意不能使用static关键字作为前缀.由于静态成员函数在类中只有一个拷贝(副本),因此它访问对象的成员时要受到一些限制:静态成员函数可以直接访问类中说明的静态成员,但不能直接访问类中说明的非静态成员;若要访问非静态成员时,必须通过参数传递的方式得到相应的对象,再通过对象来访问.2. 在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是()A. 友元函数B。
虚函数C. 构造函数D. 析构函数答案:C解析:定义构造函数作用就是初始化对象,而析构函数释放对象空间。
虚函数用于完成多态性,友元增加访问方便性。
3。
所有在函数中定义的变量,都是()A. 全局变量B. 局部变量C。
静态变量D. 寄存器变量答案:B解析:变量存储类可分为两类:全局变量和局部变量.(1)全局变量:在函数外部定义的变量称为全局变量,其作用域为:从定义变量的位置开始到源程序结束。
全局变量增加了函数之间数据联系的渠道,全局变量作用域内的函数,均可使用、修改该全局变量的值,但是使用全局变量降低了程序的可理解性,软件工程学提倡尽量避免使用全局变量。
(2)局部变量:在函数内部定义的变量称为局部变量,其作用域为:从定义变量的位置开始到函数结束。
局部变量包含自动变量(auto)静态变量(static)以及函数参数.auto变量意味着变量的存储空间的分配与释放是自动进行的.说明符auto可以省略。
(完整版)c++面向对象程序设计试题和答案
};
多种
(D)不受保护
void fun (){cout<<"Base::fu n"< <ENDL;}
class Derived:public Base
{ void fun()
//显示调用基类的函数
cout<<"Derived::fu n"< <ENDL;
fun()
};
(A)fun();(B)Base.fun();
(C)构造函数无任何函数返回类型
(D)构造函数有且只有一个
5、派生类可以访问其基类的(
(A)公有成员
(C)私有派生
6、下列关于运算符重载的描述中,错误的是(
运算符重载不可以改变操作数的个数 运算符重载不可以改变运算符的功能 运算符重载不可以改变结合方向 运算符重载不可以改变运算优先级
(A)
(B)
(C)
(D)
7、C++语言是从早期的
进行的最大改进是(
(A)面向过程
8对于类中定义的成员,
A.public
C.private
(D) protected
)。
(B)保护成员
(D)公有和保护成员
)。
C语言逐渐发展演变而来的
.与C语言相比,它在求解问题方法上
)
(B)面向对象(C)
其隐含访问权限为(
B.protected
20、C+冲声明常量的关键字是()。
A. const B. exter n C. public D. enum
三、改错题(每处2分,共6分)
1、使用VC6打开考生文件夹下的工程proj1,此工程包含一个源程序文件main.cpp,但
5、面向对象的程序设计基础
封面作者:PanHongliang仅供个人学习知识模块五面向对程序设计基础一、选择题1. ()不是构造函数的特征。
A、构造函数的函数名与类名相同;B、构造函数可以重载;C、构造函数可以设置缺省参数;D、构造函数必须指定类型说明。
2. ()是析构函数的特征。
A、析构函数可以有一个或多个参数;B、析构函数名与类名不同;C、析构函数的定义只能在类体内;D、一个类中只能定义一个析构函数; 3.要运行一个C语言编写的应用程序如下:main() {printf("hello world")。
}在VC6的开发环境中,应该建立哪种类型的工程?A, Win32 ApplicationB, Win32 Console ApplicationC, MFC AppWizard (exe)D, Utility Project4. 关于VC6建立的工程的说法,正确的是:A,工程只能包含.cpp和.h类型的文件B,工作区文件的后缀是.dspC, 用鼠标双击工作区文件可以打开整个工程D,在VC的FileView中可以看到工程中所有的文件,包括工作区文件,工程文件等5. 在VC6中提供了成员方法的自动列表和方法参数的自动提示功能,但有时不能正常显示,这是应该删除该工程目录下那种后缀类型的文件后,再次打开工程,就可以正常提示了。
A, clwB, ncbC, optD, aps6. 有关句柄(handle)的说法,下列不正确的是:A 句柄是一个4字节长的整数值B 句柄用来标识应用程序中不同的对象或同类对象中的不同实例C 消息是句柄的一种D 画笔的句柄类型是HPEN,画刷的句柄类型是HBRUSH7. C++对C语言作了很多改进,下列描述中()使得C语言发生了质变,从面向过程变成了面向对象。
A、增加了一些新的运算符;B、允许函数重载,并允许设置缺省参数;C、规定函数说明必须用原型;D、引进了类和对象的概念;8. 下列描述中,()是错误的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C++面向对象程序设计模拟试题五 一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中,只有一个是苻合题目要求的。请将其代码填写在题后的括号内。错选,多选或未选均无分。 1.下列对类的构造函数和析构函数描述正确的是( )。 A)构造函数可以重载,析构函数不能重载 B)构造函数不能重载,析构函数可以重载 C)构造函数可以重载,析构函数可以重载 D)构造函数不能重载,析构函数不能重载 2.在函数定义前加上关键字“inline”,表示该函数被定义为( )。 A)重载函数 B)内联函数 C)成员函数 D)普通函数 3.下面有关重载函数的说明中, ( )是正确的。 A) 重载函数必须具有不同的返回值类型 B) 重载函数形参个数必须不同 C) 重载函数必须具有不同的形参列表 D) 重载函数名可以不同 4.下列有关类与对象的说法中,( ) 是不正确的。 A) 对象是类的一个实列 B) 任何一个对象只能属于一个具体的类 C) 一个类只能有一个对象 D) 类和对象的关糸和数椐类型与变量的关糸类似 5.已知: Print( )函数是一个类的常成员函数,它无返回值,下列表示中,正确的是 ( )。 A)void Print( ) const; B) const void Print( ); C) void const Print( ); D) void Print(const) 6.假定Myclass为一个类,那么下列的函数说明中( )为该类的析构函数。 A) void ~Myclass( ); B) ~Myclass( int n); C) Myclass( ); D) ~Myclass( ) 7.下面类的定义中有( ) 处错误。 class myclass { int i=0; public: void myclass( ); ~myclass(value); } A) 1 B)2 C)3 D)4 8.说明虚函数的关键字是( )。 A. inline B. virtual C. define D. static 9.cout是某个类的标准对象的引用,该类是( )。 A. ostream B. istream C. stdout D. stdin 10.如果class类中的所有成员在定义时都没有使用关键字public、private或protected,则所有成员缺省定义为( )。 A. public B. protected C. private D.static 11.定义类模板时要使用关键字( )。 A. const B. new C. delete D. template 12一个类的所有对象共享的是( )。 A. 私有数据成员 B. 公有数据成员 C. 保护数据成员 D. 静态数据成员 13.静态成员函数没有( )。 A. 返回值 B. this指针 C. 指针参数 D. 返回类型 14.解决多重继承中二义性问题的方法有( )。 A. 只能使用作用域分辨操作符 B. 使用作用域分辨操作符或赋值兼容规则 C. 使用作用域分辨操作符或虚基类 D. 使用虚基类或赋值兼容规则 15.如果在类CTest的外面函数调用CTest::f( );则函数f( )是类CTest的( )。 A. 静态成员函数 B. 非静态成员函数 C. 友元函数 D. 前面都不正确 二、判断正误题(本大题共5小题,每小题2分,共10分)判断正误,在题后的括号内,正确的划上“√”错误的划上”×”。 1.构造函数可以设置默认参数 2.类的析构函数的作用是对象的初始化 3.cout的默认输出对象是键盘, cin的默认输入对象是屏幕 4.抽象类可以用来直接创建对象。
5.常对象可以调用任意成员函数。 三、 填空题(本大题共5小题,每小题2分,共10分)不写解题过程, 将正确的答案写在每小题的空格内,错填或不填均无分。 1.重载运算苻”-” 的函数名为( operator- )。 2.C++中类的用途有两种, 一种是类的实例化, 即生成类的对象, 另一种是通过 ( 类的继承 ),派生出新的类。 3.在下面程序的横线处填上正确的语句, 以实现动态多态。 #include class Base { public: virtual void Fun() { cout << "Base::Fun" << endl; } };
class Derived: public Base { public: void Fun() { cout << "Derived::Fun" << endl; } }; int main() { Base a, *pb; Derived b; pb=&b ; pb->Fun( ); //调派生类的成员函数Fun( ),以实现动态多态 return 0; }
4.编译时多态性可以用( 重载 )函数实现。
5.使用new建立的动态对象在不用时必须用( deleate )删除,以便释放所占用空间。 四、程序分析题(本大题共8小题,每小题3分,共24分)给出下面各程序的输出结果。 1.若有以下程序: #include
class A { int a;
public: A(int aa = 0 ){ a = aa; } ~A( ) {cout << "Destructor A! " << a << endl; } };
class B: public A { int b;
public: B(int aa = 0, int bb = 0): A(aa) { b = bb; } ~B() { cout << "Destructor B! " << b << endl; } }; int main() { B x(5), y(6,7); return 0; } 上面程序的输出结果为:
2.若有以下程序: #include
class Point { int x, y; public: Point() { x = 0; y = 0; } void SetPoint(int x1, int y1) { x = x1; y = y1; } void DisPoint() { cout << "x=" << x <<"," << "y=" << y << endl; } }; int main() { Point *p = new Point; p->SetPoint(5, 12); p->DisPoint(); delete p; return 0; } 上面程序的输出结果为:
3.若有以下程序: #include
class Sample { int n;
public: Sample (int i) { n =i; } void Add() { s += n; } static int s; void Dis() { cout << s << endl; } };
int Sample::s = 0; int main() { Sample a(2), b(5), c(8); a.Add( ); b.Add( ); c.Dis( ); return 0; } 上面程序的输出结果为:
4.若有以下程序: #include class Base { public: void Fun() { cout << "1" << endl;} };
class Derived:public Base { public: void Fun() { cout << "2" << endl; } };
int main() { Derived a; Base *p; p=&a; p->Fun(); a.Fun(); return 0; } 上面程序的输出结果为: 5.若有以下程序: #include
template void Fun(T1 &x, T2 &y) { if (sizeof(T1) > sizeof(T2) ) x = (T1)y; else y = (T2)x; }
int main() { double d; int i ; d = 99.99; i = 88; Fun(d,i); cout << "d=" << d << "i=" << i