C++面向对象程序设计模拟试题打印.doc
《C++面向对象程序设计模拟试题打印.doc》由会员分享,可在线阅读,更多相关《C++面向对象程序设计模拟试题打印.doc(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C+面向对象程序设计模拟试题一一、单项选择题(本大题共10小题,每小题2分,共20分1说明虚函数的关键字是( )。A. inlineB. virtualC. defineD. static2在每个C+程序中都必须包含有这样一个函数,该函数的函数名为( )。A. main B. MAIN C. name D. function3cout是某个类的标准对象的引用,该类是( )。A. ostream B. istream C. stdout D. stdin4如果在类外有函数调用CPoint:func();则函数func()是类CPoint的( )。A. 私有静态成员函数 B. 公有非静态成员函数
2、C. 公有静态成员函数D. 友元函数5. 如果class类中的所有成员在定义时都没有使用关键字public、private或protected,则所有成员缺省定义为( )。A. public B. protected C. private Dstatic 6一个类的所有对象共享的是( )。A. 私有数据成员B. 公有数据成员C. 保护数据成员D. 静态数据成员7动态联编所支持的多态性称为( )A. 虚函数B. 继承C. 编译时多态性D. 运行时多态性8定义类模板时要使用关键字( )。A. constB. newC. deleteD. template9对虚基类的定义( )。A. 不需要使用虚函
3、数B. 必须使用虚函数C. 必须使用privatD. 必须使用public10类型转换函数( )。 A. 不能带有参数B. 只能带一个参数C. 只能带2个参数D. 只能带3个参数二、判断正误题(本大题共6小题,每小题2分,共12分)1虚函数在基类和派生类之间定义,且要求函数原型完全一致。2抽象类可以用来直接创建对象。3内联函数中可以出现递归语句。4模板类与类模板的意义完全相同。5常对象只能调用常成员函数。6重载函数要求函数有相同的函数名,但具有不同的参数序列。三、填空题(本大题共6小题,每小题2分,共12分)1在用C+进行程序设计时,最好用( )代替malloc。2函数模板中紧随templat
4、e之后尖括号内的类型参数都要寇以保留字( )。3编译时多态性可以用( )函数实现。4拷贝构造函数用它所在类的( )作为参数。5用关键字static修饰的类的成员称为( )成员。6重载运算符“+”的函数名为( )。四、程序分析题(本大题共4小题,每小题5分,共20分)给出下面各程序的输出结果。1阅读下面程序,写出输出结果。#include using namespace std;class CArraypublic:CArray(int iArray, int iSize):m_pArray(iArray), m_iSize(iSize)int GetSize()return m_iSize;i
5、nt &operator(int iIndex)return m_pArrayiIndex - 1;private:int *m_pArray;/ 指向一个数组空间int m_iSize;/ 数组元素个数;int main()int s=3, 7, 2, 1, 5;CArray oArray(s, 5);oArray1 = 9;for (int i = 1; i = 5; i+)cout oArrayi ;cout endl;return 0;上面程序的输出结果为:2阅读下面程序,写出输出结果。#include using namespace std;template void Print(T
6、ype a, int n)for (int i = 0; i n; i+)cout ai ;int main()int a = 5, 6, 8;double b = 6.8, 9.6;Print(a, sizeof(a) / sizeof(int);Print(b, 2);cout endl;return 0;上面程序的输出结果为:3阅读下面程序,写出输出结果。#include using namespace std;class CTestpublic:CTest(int iVar):m_iVar(iVar)m_iCount+;CTest()void Print() const;static
7、int GetCount()return m_iCount;private:int m_iVar;static int m_iCount;int CTest:m_iCount = 0;void CTest:Print() constcout m_iVar m_iCount ;int main()CTest oTest1(6);oTest1.Print();CTest oTest2(8);oTest2.Print();cout CTest:GetCount();cout endl;return 0;上面程序的输出结果为:4阅读下面程序,写出输出结果。#include using namespac
8、e std;class CTestpublic:CTest(int iX = 0, int iY = 0, int iZ = 0):m_iZ(iZ)m_iX = iX;m_iY = iY;void Print()cout m_iX endl;cout m_iY endl;void Print() constcout m_iZ endl;private:int m_iX, m_iY;const int m_iZ;int main()CTest oTest1;oTest1.Print();CTest oTest2(1, 6, 8);oTest2.Print();const CTest oTest3
9、(6, 0, 18);oTest3.Print();cout endl;return 0;上面程序的输出结果为:六、编程题(本大题共2个小题,每小题8分,共16分)1编写一个函数模板,用于求参数的绝对值,并编写测试程序进行测试。函数模板声明如下:template Type Abs(Type tVar)2定义一个复数类CComplex,定义带有2个参数(其中一个为缺省参数)的构造函数,显示复数值的函数Show(), 重载“+”运算符(用成员函数实现),并编写测试程序进行测试。C+面向对象程序设计模拟试题二一、判断题(每题2分,共122=24分)1. 按照标识符的要求,下划线是不能组成正确标识符的
10、。()2. C+中使用了新的注释符(/),C语言中注释符(/*/)不能在C+中使用。()3. 引用就是某个变量的别名,对引用的操作,实质上就是对被引用的变量的操作。()4. 在不同类型操作数组成的表达式中,其表达式类型一定是最高类型double型。()5. For循环是只有可以确定的循环次数时才可使用,否则不能用for循环。()6. 返回值类型、参数个数和参数类型都相同的函数也可以重载。()7. 重新定义的标识符在定义它的区域内是可见的,而与其同名的原标识符在此区域内是不可见的但是却是存在的。()8. 通常的拷贝初始化函数的参数是某个对象的成员名或对象的引用名。()9. 友元函数是类的成员函数
11、,所以可以存取或修改该类中的私有成员。()10. 已知:类A中一个成员函数说明如下:void Set(A&a);其中A &a的含意是将a的地址值赋给变量Set。()11. 具有转换函数功能的构造函数,是指只能带有一个或两个参数的构造函数。()12. 多继承情况下,派生类的构造函数的执行顺序取决于定义派生类时所指定的各基类的顺序,而与派生类构造函数中所定义的成员初始化列表的各项顺序无关。()二、读程题,写出程序的运行结果。(12题每题6分,34题每题8分,共28分)1、#includevoid main()int i(0);while(+i)if(i= =10) break;if(i%3!=1)
12、 continue;coutiendl;2、#include int a8=1,2,3,4,5,6,7;void fun(int *pa,int n);void main( ) int m=8; fun(a,m); couta7endl; void fun(int *pa,int n)for (int I=0;In-1;I+) *(pa+7)+= *(pa+I);3、#includevoid ff(int x),ff(double x);void main() float a(88.18);ff(a);char b(a);ff(b); void ff(int x)coutff(int): xe
13、ndl; void ff(double x)coutff(double): xendl;4、#include class AA public: AA(int i,int j) A=i;B=j;coutConstructorn; AA(AA &obj) A=obj.A+1;B=obj.B+2;coutCopy_Constructorn; AA() coutDestructorn; void print() coutA=A,B=Bprint(); delete pa; 三、编程题(每题10分,共102=20分)1、编写程序求1至100间所有素数之和,其中求素数要求用函数实现;2、编程打印如下图形:
14、122333444455555四、综合分析应用题(共28分)1、阐述C中函数三种调用的方式实现机制、特点及其实参、形参的格式,最好用代码说明(10分)。2、用代码举例说明如何定义指向普通常量的指针、指向一维数组的指针、指向对象的指针、指向类的数据成员的指针和指向类的成员函数的指针。(10分)C+面向对象程序设计模拟试题三一、单项选择题(本大题共10小题,每小题2分,共20分)1下面有关重载函数的描述中,正确的是( )。A)重载函数必须具有不同的返回值类型 B)重载函数形参个数必须不同C)重载函数必须具有不同的形参表D)重载函数名可以不同2假定MyCIass为一个类,那么下列的函数说明中,( )
15、为该类的析构函数。A)voidMyClass();B)MyClass(int n);C)MyClass( );D)MyClass( );3( )是以一种完全通用的方法来设计函数或类而不必预先说明将被使用的每个对象的类型。 A)模板B)类C)对象D)函数4下面关于静态成员函数的途术中错语的是( )。A静态成员函数可以有返回值 B this指针可以指向静态成员函数C.静态成员函数可以具有指针参数D.静态成员函数可有具有返回值类型5定义类模板时要使用关键字( )。A. private B. public C. delete D. template6下列是重载乘法运算符的函数原型声明,其中错误的是(
16、)。A)MyClass operator*(double,double);B)MyClass operator*(double,MyClass);C)MyClass operator*(MyClass,double);D)MyClass operator*(MyClass,MyClass);7以下( )成员函数表示纯虚函数。A)virtual int fun(int) B)void fun(int)=0C)virtual void fun()=0D)virtual void fun(int)8关于纯虚函数,下列表述中正确的是( )。A)纯虚函数的声明总是以=0结束B)含有纯虚函数的类可以定义对
17、象C)含有纯虚函数的类是抽象类 D)上面都是错误的 9( )解决二义性问题。A. 只能使用作用域分辨操作符B. 只能使用虚基类C. 使用作用域分辨操作符或虚基类D. 上面都不能10实现编译时的多态性要使用( )。A)重载函数B)析构函数C)构造函数D)虚函数二、填空题(本大题共5小题,每小题2分,共10分)1定义一个函数名为fun,返回值为int,没有参数的纯虚函数的声明是( )。2定义静态成员函数应使用关键字( )。3在C+中,如果类的名称是CTest,则此类的构造函数名称为( )。4在类的对象被创建时,( )函数会被自动调用。5类中数据成员和成员函数的默认访问级( )。三、完成程序填题(本
18、大题共3个小题,每小题3分,共9分) 1请完成下面的程序#include / 预处理命令using namespace std;/ 使用标准命名空间std/ 测试静态成员类class Testprivate: 1 Test int count;/ 对象数public:Test() count+; / 构造函数, 实现对对象进行计数static void Show() cout 共有 count 个对象! endl; / 显示对象数;int Test:count = 0;/ 初始化静态数据成员赋初值int main(void)/ 主函数main(void)Test obj1, obj2, obj
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 面向 对象 程序设计 模拟 试题 打印
限制150内