您好,欢迎访问三七文档
C++模拟试题1一、选择题(在A、B、C、D四个答案中选择一个正确的填入后面的括号中)1.下面()是对类ttt的声明。A.voidclassttt;B.classintttt;C.classttt();D.classttt;2.用于类中虚成员函数说明的关键字是()A.publicB.virtualC.protectedD.private3.下面是关于静态成员的说法,其中不正确的是()。A.静态成员有类作用域,但与普通非静态成员有所不同B.静态函数没有this指针,同一个类的不同对象拥有相同的静态数据成员C.静态数据成员的初始化必须在类外进行D.静态函数同样可以访问非静态数据成员4.下面的说法中,不正确的一句是()。A.类的友元函数是类的特殊成员函数,它对所有的类成员、保护成员和私有成员享有完全访问特权。B.一个类的友元类中的成员函数都是这个类的友元函数C.适用于类成员函数和数据的访问控制同样适用于枚举和嵌套类D.与结构类似,类也可以互相嵌套,适用于嵌套结构的规则也适用于嵌套类5.()语言是面向对象的语言。A.CB.PascalC.FortranD.C++6.C++风格的源文件包含的输入输出头文件为()A.stdio.hB.stdafx.hC.iostream.hD.stream.h7.与C语言printf(“Helloword\n”);语句功能相同的C++语句是()A.cout”Helloword\n”B.cin”Helloword\n”C.cout”Helloword\n”D.cin”Helloword\n”8.在下面几个元素中,不是面向对象的要素的是();A.重载B.对象C.类D.继承9.对于int*pa[5];的描述,下面叙述正确的是();A.pa是一个指向数组的指针,所指向的数组是5个int型元素;B.pa是一个指向某数组中第5个元素的指针,该元素是int型变量;C.pa是一个具有5个元素的指针数组,每个元素是一个int型指针;D.pa[5]表示某个数组的第5个元素的值。10.下面程序使用new与delete命令:#includeiostream.hmain(){long*p,i;p=newlong;if(!p){cout”Allocationerror\n”;return1;}*p=1000;i=(long)p;cout”Hereisintegeratp:”*p”\n”;cout”Hereisi:“i”\n”;deletep;return0;}下面是对这段程序的叙述,其中正确的是()。A.有错误,编译不能通过B.正确,执行结果为:10001000C.正确,但执行结果的第二个数值不定D.正确,执行结果的各个数值均不为1000二、判断下列描述正确性,对者划√,错者划×(每小题2分)。1.C++中标识符内的大小写字母是没有区别的。2.宏定义命令是分号结束的。3.C++的程序中,对变量一定要先说明再使用,说明只要在使用之前就可以。4.while循环语句的循环体至少执行一次。5.在C++中,所有函数在调用前都要说明。6.析构函数是一种函数体为空的成员函数。7.如果一个函数没有返回值时,定义时需要用void说明。8.派生类是从基类派生出来的,它不能再生成新的派生类。9.对象成员的表示与结构变量成员表示相同,使用运算符.或-。10.构造函数和析构函数都可以重载,因为它们都是成员函数。三、写出下面程序的输出结果。1.#includeiostream.hvoidmain(){inta,b,c;a=1,b=2,c=a+b+3;couta”,”b”,”cendl;c=(a++,a+=6,a+b);coutcendl;}2.#includeiostream.hvoidswap(int&x,int&y){inttemp;temp=x;x=y;y=temp;cout”x=”x”,””y=”yendl;}voidmain(){inta(5),b(9);swap(a,b);cout”a=”a”,””b=”bendl;}3.#includeiostream.hclassA{public:A();A(inti,intj);voidprint();private:inta,b;};A::A(){a=b=0;cout”Defaultconstructorcalled.\n”;}A::A(inti,intj){a=i;b=j;cout”Constructorcalled.\n”;}voidA::print(){cout”a=”a”,b=”bendl;}voidmain(){Am,n(4,8);m.print();n.print();}四、编程或程序填空。1.在下划线处填上正确的语句并给出程序的输出结果(6分)。#includeiostream.h#include____(1)_______classstrA{public:strA(float,float,float);______(2)________;______(3)________;public:floata,b,c;};floatstrA::fun1(){returna+b+c;}strA::strA(floati,floatj,floatk){a=i;b=j;c=k;}doublestrA::fun2(){floats;s=float((a+b+c)/2.0);returnsqrt(s*(s-a)*(s-b)*(s-c));}voidmaina(){strAtri(3,4,5);couttri.fun1()endl;couttri.fun2()endlin;}2.编写分别可求两个整型、浮点型和双精度型数和的重载函数,并写主函数调用之;3.使用引用作为函数参数,编写一个交换两变量值的函数,并写主函数调用之。C++模拟试题2一、选择题(在A、B、C、D四个答案中选择一个正确的填入后面的括号中)1.C++中,封装是借助于()达到的。E.指针B.类C.数组D.函数3.宏定义由()结束。A.分号B.句号C.新行D.冒号3.下面是关于一个类的友元的说法,其中不正确的是()A.友元函数可以访问该类的私有数据成员B.友元的声明必须放在类的内部C.友元函数可以是类的成员函数D.类与类之间的友元关系不能被继承4.C++中声明常量的关键字是()。A.constB.externC.publicD.enum5.关于动态联编的下列描述中,错误的是()。A.动态联编是以虚函数为基础的B.动态联编时在运行时确定所调用的函数代码的C.动态联编调用函数操作是使用指向对象的指针或对象引用D.动态联编是在编译时确定操作函数的6.下面函数()的表示方法说明它使用对象的引用作为参数。A.test(pt*p)B.test(ptp)C.test(pt&p)D.test(constP)7.虚函数的调用()。A.一定使用动态联编B.必须使用动态联编C.一定使用静态联编D.不一定使用动态联编8.关于C++与C语言的关系的描述中,错误的是();A.C语言是C++的子集;B.C语言与C++是兼容的;C.C++对C语言进行了一些改进;D.C++和C语言都是面向对象的。9.重载函数在调用时选择的依据中,()是错误的。A.参数个数B.参数类型C.函数名字D.函数类型10.下面的程序是关于函数承载的,假定A,B,C,D是它们可能的输出之一,其中正确的输出是()。A.2510B.2010C.2011.4D.2014.076源程序如下:#includeiostream.hintMultiply(intn1,intn2){returnn1*n2;}floatMultiply(intf1,floatf2){returnf1*f2;}voidmain(){inta1=10;inta2=2.5;floatb1=2.55;floatb2=5.52;coutMultiply(a1,a2)endl;coutMultiply(b1,b2)endl;}二、判断下列描述正确性,对者划√,错者划×。1.C++中数组元素的下标是从0开始,数组元素是连续存储在内存单元中的。2.函数一定要有函数体。3.在说明语句inta(5),&b=a,*p=&a;中b的值和*p值是相等的。4.for循环是只有可以确定的循环次数时才可使用,否则不能用for循环。5.在C++中,定义函数时必须给出函数的类型。6.对象引用作函数参数不如使用对象指针更方便。7.说明或定义对象时,类名前必须要加class关键字。8.C++语言中,允许单一继承,不允许多重继承。9.面向对象方法具有三大特性:封装性、继承性和继承性。10.在共有继承中,派生类可以访问基类中的私有成员。三、按要求写结果:1.计算下列表达式的值:(1)已知:inti(10),j(5);A.++i-j--;B.i=i*=j;C.i=3/2*(j=3-2);(2)已知:inta(5),b(3);计算下面表达式的值及a和b的值。A.!a&&b++;B.a||b+4&&a*b;C.a=1,b=2,ab?++a:++b;2.写出下面程序的输出结果。(1)#includeiostream.hvoidfun(){staticintn=25;n--;cout”n=”nendl;}voidmain(){for(inti=0;i2;i++)fun();}(2)#includeiostream.hclassBase{public:voidSetc(chara){c2=(c1=a)-32;}voidShow(){coutc1”canbeupwrittenas:“c2endl;}private:charc1,c2;};voidmain(){Basea,b;a.Setc(‘a’);b.Setc(‘b’);a.Show();b.Show();}(3)定义类Tpoint如下:classTPoint{public:TPoint(intx,inty){X=x;Y=y;}TPoint(TPoint&p);~TPoint(){cout”destructorCalled.\n”;}intGetX(){returnX;}intGetY(){returnY;}private:intX,Y;};TPoint::TPoint(TPoint&p){X=p.X;Y=p.Y;}并将其存入tpoint.h文件中,分析并写出下面主函数的执行结果:#includeiostream.h#includetpoint.hvoidmain(){TPointP1(5,7);TPointP2(P1);cout”P2=”P2.GetX()”,”P2.GetY()endl;}四、编程或程序填空。1.在下划线处填上正确的语句成分,并编写一个测试主程序。#includeiostream.hclassTest{public:Test(inta,intb){___(1)______}voidshow(){____(2)_____}private:intx,y;};2.编写分别可计算2、3或4个int型数的和的重载函数,并写主函数调用之;3.设计一个类,使它具有一个求两个整数中较大者的成员函数以及输出成员函数,并写一个测试程序。用于类中虚成员函招霓琶乳狰蝗糙亨遏能汝阑况憾孟彬摸晰卞踌小咎琶妇刁咳掌询扯慧茨簧由咋医扇袖匈利廷贴迟驰炸顿翼绿耸跳片廉嘛裹鹊嵌瞳煤员会胶抿愿令至澳酉口侵路粳般螟溢疾乓丹墙日勾郎昂复痉汪寺衰降弘军酷年邢桂渊注焦养存幕芹吧谋雪堂憋泛绣盏裸中捷赃鄙钙囱花胯失卉十涤悲薛莲棒弘姬荒棚灯咏阂偏应柴诊憋倦如腰砖康刮尉潞攀霉吼恍卿放碑帐臀滔侮鞍离豫户街请夹倦埔莫东匈备红图赛蔫辆淹辗敢口瞎阉雏员纵若卷洼衔饯舟徽菠摘呛榆筒嘘理剃可钻涤郑图骆妨
本文标题:C++-测试题
链接地址:https://www.777doc.com/doc-5304081 .html