您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 数据通信与网络 > 计算机二级c++练习题
一、选择题(每小题1分,共40小题,共40分)1.数据的存储结构是指()。A.数据所占的存储空间B.数据的逻辑结构在计算机中的存放形式C.数据在计算机中的顺序存储方式D.存储在计算机外存中的数据2.将E-R图转换到关系模式时,实体与实体间的联系可以表示成()。A.属性B.关系C.键D.域3.对长度为n的线性表进行顺序查找,在最坏情况下需要比较的次数为()。A.125B.n/ZC.nD.n+14.树是结点的集合,它的根结点的数目是()。A.有且只有1个B.1或多于1C.0或1D.至少有2个5.设R是一个二元关系,S是一个三元关系,则下列运算中正确的是()。A.R-SB.R×SC.R∩SD.R∪S6.关于结构化程序设计原则和方法的描述错误的是()。A.选用的结构只允许有一个入口和一个出口B.复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现C.不允许使用GOTO语句D.语言中所没有的控制结构,应该采用前后一致的方法来模拟7.对关系S和R进行集合运算,结果中既包含S中的所有元组也包含R中的所有元组,这样的集合运算称为()。A.并运算B.交运算C.差运算D.积运算8.下列叙述中正确的是()。A.在面向对象的程序设计中,各个对象之间具有密切的关系B.在面向对象的程序设计中,各个对象都是公用的C.在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小D.上述三种说法都不对9.结构化程序设计的三种基本结构是()。A.过程、子程序和分程序B.顺序、选择和重复C.递归、堆栈和队列D.调用、返回和转移10.在数据库设计中,将E-R图转换为关系模式的过程属于()。A.需求分析阶段B.逻辑设计阶段C.概念设计阶段D.物理设计阶段11.在C++语言中函数返回值的类型是由()决定的。A.调用该函数时系统临时B.return语句中的表达式类型C.定义该函数时所指定的函数类型D.调用该函数时的主调函数类型12.下列描述正确的是()。A.表示mn为true或mn&&mB.switch语句结构中必须有default语句C.if语句结构中必须有else语句D.如果至少有一个操作数为true,则包含‖运算符的表达式为true13.使用ifstream流类定义流对象并打开磁盘文件时,文件的隐含打开方式为()。A.ios::inB.ios::outC.ios::inlios::outD.没有默认14.下列各类函数中,不是类的成员函数的是()。A.构造函数B.抽象类C.派生类D.以上都不对15.下面关于数组的初始化正确的是()。A.charstr[]={’a’,’b’,’e’}B.charstr[2]={’a’,’b’,’e’)C.charstr[2][3]={{’a’,’b’},{’C’,’d’},{’e’,’f’}}D.charstr()={’a’,’b’,’C’}16.类模板templateclassX{…},其中友元函数f对特定类型T(如int),使函数f(x)成为x模板类的友元,则其说明为()。A.friendvoidf();B.friendvoidf(x);C.friendvoidA::f();D.friendvoidC::f(x);17.类MyClass的定义如下:classMyClass{public:MyClass(){value=0;}SetVariable(inti){valtic=i;}private:intvalue;};MyClass*P,my;p=&my;则对下列语句序列正确的描述是()。A.语句p=&my;是把对象my赋值给指针变量PB.语句MyClass*P,my;会调用两次类MyClass的构造函数C.对语句*P.SetVariable(5)的调用是正确的D.语句P-SetVariable(5)与语句my.SetVariable(5)等价18.下面关于break语句的描述中,不正确的是()。A.break可以用于循环体内B.break语句可以在for循环语句中出现多次C.break语句可以在switch语句中出现多次D.break语句可用于if条件判断语句内19.如果表达式-x/y中的“--”和“/”是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可表示为()。A.operator/(x.operator--(),y);B.operator/(operator--(x),y);C.X.operator--().operator/(y);D.y.operator/(operator--(x));20.已知类A有公用数据成员a,并重载了=运算符,且有Aobj2;constA*ptr=newA;,则下列语句错误的是()。A.ptr-a=100;B.ptr=&obj2;C.ptr++;D.obj2=*ptr;21.可以用P.a的形式访问派生类对象P的基类成员a,其中a是()。A.私有继承的公有成员B.公有继承的私有成员C.公有继承的保护成员D.公有继承的公有成员22.下面程序的运行结果为()。#includeclassA{intnum;public:A(inti){num=i;)A(A&a){num=a.num++;}voidprint(){cout};voidmain(){Aa(1),b(a);a.print();b.print();}A.11B.12C.21D.2223.设有定义charstr[80];以下不能将输入数据first\nsecond\n读取到数组str中的语句是()。A.cin.get(str,strlen(str));B.cin.getline(str,strlen(str));C.cinstr;D.cin.read(str,strlen(str));24.下列程序的输出结果为()。#includeclassTestClass{public:TestClass(){val++;}static,intval;};intTestClass::val=0;voidmain(){TestClasscsl;coutTestClasscs2;TestClasscs3,cs4;cout}A.O3B.13C.14D.2425.有以下类定义:classMyClass{private:intid;chargender;char*phone;public:MyClass():id(0),gender(’#’),phone(NULl){}MyClass(intn0,charge=’#’,char*ph=NULL){id=no;gender=ge;phone=ph;}};下列类对象定义语句中错误的是()。A.MyClassmyObj;B.MyClassmyObj(11,13301111155);C.MyClassmyObj(12,’m’);D.MyClassmyObj(12);26.下列是关于派生类声明的开始部分,其中正确的是()。A.classvirtualB:publicAB.virtualclassB:publicAC.classB:publicAvirtualD.classB:virtualpublicA27.如果类A被说明成类B的友元,则()。A.类A的成员即类B的成员B.类B的成员即类A的成员C.类A的成员函数不得访问类B的成员D.类B不一定是类A的友元28.下列关于虚基类的描述,错误的是()。A.设置虚基类的目的是为了消除二义性B.虚基类的构造函数在非虚基类之后调用C.若同一层中包含多个虚基类,这些虚基类的构造函数按它们说明的次序调用D.若虚基类由非虚基类派生而来,则仍然先调用基类构造函数,再调用派生类的构造函数29.下列关于多态性的描述,错误的是()。A.C++语言中的多态性分为编译时的多态性和运行时的多态性B.编译时的多态性可通过函数重载实现C.运行时的多态性可通过模板和虚函数实现D.实现运行时多态性的机制称为动态绑定30.若有如下程序:#includeusingnamespacestd;classTestClassl{private:inta;public:TestClassl(inti){a=i:}voiddisp(){cout}};classTestClass2{private:intb:public:TestClass2(intj){b=j;}voiddisp(){cout}};classTestClass3:publicTestClass2,publicTestClassl{private:intc;public:TestClass3(intk):TestClass1(k-2),TestClass2(k+2){c=k:}voiddisp(){TestClasssl::disp();TestClasss2::disp();cout}};intmain(){TestClass30bj(10);obj.disp();return0;}程序执行后的输出结果是()。A.10,10,10B.10,12,14C.8,10,12D.8,12,1031.在下列程序的横线处填上适当的内容,使程序执行后的输出结果为ABCD()。#includeusingnamespacestd;classA{public:A(){cout’A’;}};classB:{public:B(){cout’B’;}};classC:virtualpublicA{public:C(){cout’C’;}};classD:publicB,publicD{public:D(){cout’D’;}};voidmain(){D04;}A.publicAB.privateAC.protectedAD.virtualpublicA32.有如下程序:#includeusingnamespacestd;classAA{intn;public:AA(intk):n(k){}intget(){returnn;}intget()const{returnn+1;}};intmain(){AAa(5);constAAb(6);coutreturn0;}执行后的输出结果是()。A.55B.57C.75D.7733.有如下程序:#includeusingnamespacestd;classDemo{public:Demo(){coutdefaultconstructor\n;}Demo(constDemo&x){contcopyconstruc-tor\n;}};DemouserCode(Demob){Democ(b);returnC;}intmain(){Demoa;d;coutcallinguserCode()\n;d=userCode(a):return0;}执行上面程序的过程中,构造函数Demo()和Demo(constDem0&x)被调用的次数分别是()。A.1和1B.1和2C.2和3D.2和434.有如下程序:#includeusingnamespacestd;classDA{intk;public:DA(intx=1):k(x){}~DA(){cout};intmain(){DAd[]={DA(3),DA(3),DA(3));DA+p=newDA[2];delete[]p;return();}这个程序的输出结果是()。A.111B.333C.11333D.1113335.有如下程序:#includeusingnamespacestd;classMyClass{public:MyClass(intx):val(x){}voidPrint()const{coutconst:val=voidPrint(){coutval=private:intval;};intmain(){constMyClassobj1(10);MyClassobj2(20);obj1.Print();obj2.Print();return0;}程序的输出结果是()。A.va1=10const:va1=20B.cons
本文标题:计算机二级c++练习题
链接地址:https://www.777doc.com/doc-2097884 .html