C++面向对象程序设计模拟试题完成

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

C++面向对象程序设计模拟试题一一、单项选择题(本大题共10小题,每小题2分,共20分1.说明虚函数的关键字是()。A.inlineB.virtualC.defineD.static2.在每个C++程序中都必须包含有这样一个函数,该函数的函数名为()。A.mainB.MAINC.nameD.function3.cout是某个类的标准对象的引用,该类是()。A.ostreamB.istreamC.stdoutD.stdin4.如果在类外有函数调用CPoint::func();则函数func()是类CPoint的()。A.私有静态成员函数B.公有非静态成员函数C.公有静态成员函数B.友元函数5.如果class类中的所有成员在定义时都没有使用关键字public、private或protected,则所有成员缺省定义为()。A.publicB.protectedC.privateD.static6.一个类的所有对象共享的是()。A.私有数据成员B.公有数据成员C.保护数据成员D.静态数据成员7.动态联编所支持的多态性称为()。A.虚函数B.继承C.编译时多态性D.运行时多态性8.定义类模板时要使用关键字()。A.constB.newC.deleteD.template9.对虚基类的定义()。A.不需要使用虚函数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.函数模板中紧随template之后尖括号内的类型参数都要寇以保留字()。3.编译时多态性可以用()函数实现。4.拷贝构造函数用它所在类的()作为参数。5.用关键字static修饰的类的成员称为()成员。6.重载运算符“+”的函数名为()。四、程序分析题(本大题共4小题,每小题5分,共20分)给出下面各程序的输出结果。1.阅读下面程序,写出输出结果。#includeiostreamusingnamespacestd;classCArray{public:CArray(intiArray[],intiSize):m_pArray(iArray),m_iSize(iSize){}intGetSize(){returnm_iSize;}int&operator[](intiIndex){returnm_pArray[iIndex-1];}private:int*m_pArray;//指向一个数组空间intm_iSize;//数组元素个数};intmain(){ints[]={3,7,2,1,5};CArrayoArray(s,5);oArray[1]=9;for(inti=1;i=5;i++){coutoArray[i];}coutendl;return0;}上面程序的输出结果为:2.阅读下面程序,写出输出结果。#includeiostreamusingnamespacestd;templateclassTypevoidPrint(Typea[],intn){for(inti=0;in;i++){couta[i];}}intmain(){inta[]={5,6,8};doubleb[]={6.8,9.6};Print(a,sizeof(a)/sizeof(int));Print(b,2);coutendl;return0;}上面程序的输出结果为:3.阅读下面程序,写出输出结果。#includeiostreamusingnamespacestd;classCTest{public:CTest(intiVar):m_iVar(iVar){m_iCount++;}~CTest(){}voidPrint()const;staticintGetCount(){returnm_iCount;}private:intm_iVar;staticintm_iCount;};intCTest::m_iCount=0;voidCTest::Print()const{coutthis-m_iVarthis-m_iCount;}intmain(){CTestoTest1(6);oTest1.Print();CTestoTest2(8);oTest2.Print();coutCTest::GetCount();coutendl;return0;}上面程序的输出结果为:4.阅读下面程序,写出输出结果。#includeiostreamusingnamespacestd;classCTest{public:CTest(intiX=0,intiY=0,intiZ=0):m_iZ(iZ){m_iX=iX;m_iY=iY;}voidPrint(){coutm_iXendl;coutm_iYendl;}voidPrint()const{coutm_iZendl;}private:intm_iX,m_iY;constintm_iZ;};intmain(){CTestoTest1;oTest1.Print();CTestoTest2(1,6,8);oTest2.Print();constCTestoTest3(6,0,18);oTest3.Print();coutendl;return0;}上面程序的输出结果为:六、编程题(本大题共2个小题,每小题8分,共16分)1.编写一个函数模板,用于求参数的绝对值,并编写测试程序进行测试。函数模板声明如下:templateclassTypeTypeAbs(TypetVar)2.定义一个复数类CComplex,定义带有2个参数(其中一个为缺省参数)的构造函数,显示复数值的函数Show(),重载“+”运算符(用成员函数实现),并编写测试程序进行测试。C++面向对象程序设计模拟试题二一、判断题(每题2分,共12×2=24分)1.按照标识符的要求,下划线是不能组成正确标识符的。()2.C++中使用了新的注释符(//),C语言中注释符(/*…*/)不能在C++中使用。()3.引用就是某个变量的别名,对引用的操作,实质上就是对被引用的变量的操作。()4.在不同类型操作数组成的表达式中,其表达式类型一定是最高类型double型。()5.For循环是只有可以确定的循环次数时才可使用,否则不能用for循环。()6.返回值类型、参数个数和参数类型都相同的函数也可以重载。()7.重新定义的标识符在定义它的区域内是可见的,而与其同名的原标识符在此区域内是不可见的但是却是存在的。()8.通常的拷贝初始化函数的参数是某个对象的成员名或对象的引用名。()9.友元函数是类的成员函数,所以可以存取或修改该类中的私有成员。()10.已知:类A中一个成员函数说明如下:voidSet(A&a);其中A&a的含意是将a的地址值赋给变量Set。()11.具有转换函数功能的构造函数,是指只能带有一个或两个参数的构造函数。()12.多继承情况下,派生类的构造函数的执行顺序取决于定义派生类时所指定的各基类的顺序,而与派生类构造函数中所定义的成员初始化列表的各项顺序无关。()二、读程题,写出程序的运行结果。(1~2题每题6分,3~4题每题8分,共28分)1、#includeiostream.hvoidmain(){inti(0);while(++i){if(i==10)break;if(i%3!=1)continue;coutiendl;}}2、#includeiostream.hinta[8]={1,2,3,4,5,6,7};voidfun(int*pa,intn);voidmain(){intm=8;fun(a,m);couta[7]endl;}voidfun(int*pa,intn){for(intI=0;In-1;I++)*(pa+7)+=*(pa+I);}3、#includeiostream.hvoidff(intx),ff(doublex);voidmain(){floata(88.18);ff(a);charb('a');ff(b);}voidff(intx){coutff(int):xendl;}voidff(doublex){coutff(double):xendl;}4、#includeiostream.hclassAA{public:AA(inti,intj){A=i;B=j;coutConstructor\n;}AA(AA&obj){A=obj.A+1;B=obj.B+2;coutCopy_Constructor\n;}~AA(){coutDestructor\n;}voidprint(){coutA=A,B=Bendl;}private:intA,B;};voidmain(){AAa1(2,3);AAa2(a1);a2.print();AA*pa=newAA(5,6);pa-print();deletepa;}三、编程题(每题10分,共10×2=20分)1、编写程序求1至100间所有素数之和,其中求素数要求用函数实现;2、编程打印如下图形:122333444455555四、综合分析应用题(共28分)1、阐述C++中函数三种调用的方式实现机制、特点及其实参、形参的格式,最好用代码说明(10分)。2、用代码举例说明如何定义指向普通常量的指针、指向一维数组的指针、指向对象的指针、指向类的数据成员的指针和指向类的成员函数的指针。(10分)3、结合自己学习C++的经历,谈谈你的学习体会(如遇到的问题、错误、解决问题的办法等等),并说说如何提高学习C++的效果?(8分)C++面向对象程序设计模拟试题三一、单项选择题(本大题共10小题,每小题2分,共20分)1.下面有关重载函数的描述中,正确的是()。A)重载函数必须具有不同的返回值类型B)重载函数形参个数必须不同C)重载函数必须具有不同的形参表D)重载函数名可以不同2.假定MyCIass为一个类,那么下列的函数说明中,()为该类的析构函数。A)void~MyClass();B)~MyClass(intn);C)MyClass();D)~MyClass();3.()是以一种完全通用的方法来设计函数或类而不必预先说明将被使用的每个对象的类型。A)模板B)类C)对象D)函数4.下面关于静态成员函数的途术中错语的是()。A.静态成员函数可以有返回值B.this指针可以指向静态成员函数C.静态成员函数可以具有指针参数D.静态成员函数可有具有返回值类型5.定义类模板时要使用关键字()。A.privateB.publicC.deleteD.template6.下列是重载乘法运算符的函数原型声明,其中错误的是()。A)MyClassoperator*(double,double);B)MyClassoperator*(double,MyClass);C)MyClassoperator*(MyClass,double);D)MyClassoperator*(MyClass,MyClass);7.以下()成员函数表示纯虚函数。A)virtualintfun(int)B)voidfun(int)=0C)virtualvoidfun()=0D)virtualvoidfun(int){}8.关于纯虚函数,下列表述中正确的是()。A)纯虚函数的声明总是以=0结束

1 / 37
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功