设为首页 加入收藏

TOP

2018年9月计算机二级C语言考试巩固强化题(9)(一)
2018-07-31 09:13:14 】 浏览:78
Tags:2018年 9月 计算机 二级 语言考试 巩固 强化

1.可以用P.a的形式访问派生类对象P的基类成员a,其中a是(  )。


A.私有继承的公有成员


B.公有继承的私有成员


C.公有继承的保护成员


D.公有继承的公有成员


2.下面程序的运行结果为(  )。


#include


classA


{


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.12


C.21D.22


3.设有定义charstr[80];以下不能将输入数据first\nsecond\n读取到数组str中的语句是(  )。


A.cin.get(str,strlen(str));


B.cin.getline(str,strlen(str));


C.cin>>str;


D.cin.read(str,strlen(str));


4.下列程序的输出结果为(  )。


#include


classTestClass


{


public:


TestClass(){val++;}


static,intval;


};


intTestClass::val=0;


voidmain()


{


TestClasscsl;


cout<  TestClasscs2;


TestClasscs3,cs4;


cout<  }


A.O3


B.13


C.14


D.24


5.有以下类定义:


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);


6.下列是关于派生类声明的开始部分,其中正确的是(  )。


A.classvirtualB:publicA


B.virtualclassB:publicA


C.classB:publicAvirtual


D.classB:virtualpublicA


7.如果类A被说明成类B的友元,则(  )。


A.类A的成员即类B的成员


B.类B的成员即类A的成员


C.类A的成员函数不得访问类B的成员


D.类B不一定是类A的友元


8.下列关于虚基类的描述,错误的是(  )。


A.设置虚基类的目的是为了消除二义性


B.虚基类的构造函数在非虚基类之后调用


C.若同一层中包含多个虚基类,这些虚基类的构造函数按它们说明的次序调用


D.若虚基类由非虚基类派生而来,则仍然先调用基类构造函数,再调用派生类的构造函数


9.下列关于多态性的描述,错误的是(  )。


A.C++语言中的多态性分为编译时的多态性和运行时的多态性


B.编译时的多态性可通过函数重载实现


C.运行时的多态性可通过模板和虚函数实现


D.实现运行时多态性的机制称为动态绑定


10.若有如下程序:


#include


usingnamespacestd;


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,10


B.10,12,14


C.8,10,12


D.8,12,10


11.在下列程序的横线处填上适当的内容,使程序执行后的输出结果为ABCD(  )。


#include


usingnamespacestd;


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.publicA


B.privateA


C.protectedA


D.virtualpublicA


12.有如下程序:


#include


usingnamespacestd;


classAA{


intn;


public:


AA(intk):n(k){}


intget(){returnn;}


intget()const{returnn+1;}


};


intmain()


{


AAa(5);


constAAb(6);


cout<  return0;


}


执行后的输出结果是()。


A.55


B.57


C.75


D.77


13.有如下程序:


#include


usingnamespacestd;


classDemo


{


public:


Demo(){cout<<"defaultconstructor\n";}


Demo(constDemo&x){cont<<"copyconstruc-


tor\n";}


};


DemouserCode(Demob){Democ(b);returnC;}


intmain()


{


Demoa;d;


cout<<"callinguserCode()\n";


d=userCode(a):


return0;


}


执行上面程序的过程中,构造函数Demo(  )和Demo(constDem0&x)被调用的次数分别是(  )。


A.1和1


B.1和2


C.2和3


D.2和4


14.有如下程序:


#include


usingnamespacestd;


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.111


B.333


C.11333


D.11133


15.有如下程序:


#include


usingnamespacestd;


classMyClass{


public:


MyClass(intx):val(x){}


voidPrint()const{cout<<"const:val="<<  voidPr
编程开发网

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇2018年9月计算机二级C语言考试巩.. 下一篇2018年9月计算机二级C语言考试巩..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

最新文章

热门文章

C 语言

C++基础

windows编程基础

linux编程基础

C/C++面试题目