【计算机类职业资格】二级C++分类模拟281及答案解析.doc
《【计算机类职业资格】二级C++分类模拟281及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++分类模拟281及答案解析.doc(20页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+分类模拟 281 及答案解析(总分:73.00,做题时间:90 分钟)一、选择题(总题数:40,分数:73.00)1.有如下程序: #includeiostream using namespace std; class A public: A(int i) x=i; void dispa() coutx“,“; private: int x; ; class B: public A public: B(int i): A(i+10) x=i; void dispb() dispa(); coutxendl; private: int x; ; int main() B b(2); b
2、. dispb(); return 0; 执行这个程序的输出结果是_。(分数:1.00)A.10, 2B.12, 10C.12,2D.2, 22.若有以下程序: #include iostream using namespace std; class point private: int x, y; public: point ( ) x=0; y=0; void setpoint(int x1,int y1) x=x1; y=y1; void dispoint () cout“x=“x“ , “y=“yend1; ; int main ( ) point *p=new point; p-se
3、tpoint (5, 12); p-dispoint (); return 0; 程序运行后的输出结果是( )。(分数:1.00)A.x=12,y=12B.x=5,y=5C.x=12,y=5D.x=5,y=123.下面程序的运行结果是_。 #includeiostream.h class base protected: int a: public: base()cout“0“; ; class base1:virtual base public: base1()cout“1“; ; class base2:virtual basc public: base2()cout“2“; ; class
4、 derived: public base1,public base2 public: derived()cout“3“; ; void main() derived obj; coutendl; (分数:1.00)A.0123B.3120C.0312D.30124.下列叙述中正确的是_。(分数:2.50)A.线性表是线性结构B.栈与队列是非线性结构C.线性链表是非线性结构D.二叉树是线性结构5.下列关于模板的叙述中,错误的是_。(分数:2.00)A.调用模板函数时,有时可以省略模板实参B.函数模板的每个实例就是一个函数定义C.类模板的每个实例就是一个类定义D.类模板的实例是一个类对象6.为了
5、提高函数调用的实际运行速度,可以将较简单的函数定义为_。(分数:2.50)A.内联函数B.重载函数C.递归函数D.函数模板7.有如下程序: #includeiostream using namespace gtd; class Sample public: Sample() Sample()cout“*“; ; int main() Sample temp2,*pTemp2; return 0; 运行这个程序输出星号*的个数为_。(分数:1.00)A.1B.2C.3D.48.执行语句:coutsetfill(“*“)setw(10)setfill(“#“)left123“OK“endl;ret
6、urn 0;)后将输出 _ 。(分数:2.00)A.123*OKB.123#OKC.123*OK*D.123#OK#9.执行下列语句序列: int i=0;while(125)i+=3;couti; 输出结果是_。(分数:1.00)A.24B.25C.27D.2810.将 E-R 图转换为关系模式时,实体和联系都可以表示为_。(分数:2.00)A.属性B键C.关系D域11.if 语句的语法格式可描述为: 格式 1:if(条件)语句 或 格式 2:if(条件)语句 1else语句 2 关于上面的语法格式,下列表述中错误的是_。(分数:2.00)A.条件部分可以是一个 if 语句,例如 if(if
7、(a=0) ) B.语句部分可以是一个 if 语句,例如 if()if() C.如果在条件前加上逻辑非运算符!并交换语句 1和语句 2的位置,语句功能不变D.语句部分可以是一个循环语句,例如 if()while() 12.关于运算符重载,下列表述中正确的是_。(分数:1.00)A.C+已有的任何运算符都可以重载B.运算符函数的返回类型不能声明为基本数据类型C.在类型转换符函数的定义中不需要声明返回类型D.可以通过运算符重载来创建 C+中原来没有的运算符13.以下 _ 特征不是面向对象思想中的主要特征。(分数:2.00)A.多态B.继承C.封装D.垃圾回收14.已知类模板 Test 定义如下:
8、templatetypename T1, typename T2 Class Test public: void foo(T2 t); ; 则以下针对 foo 函数的类外定义中语法正确的是_。(分数:2.50)A.templatetypename T1, typename T2void Test:fooT2(T2 t)B.templatetypename T1, typename T2void Test:fooT1, T2(T2 t)C.templatetypename T1, typename T2void TestT2:foo(T2 t)D.templatetypename T1, typ
9、ename T2void TestT1, T2:foo(T2 t)15.有如下程序: #includeiostream Using namespace std; Class Amount int amount; public; Amount(int n=0):amount(n) Int getAmount()constreturn amount; Amount return ; ; int main() Amount x(3),y(7); x+=y; coutx.getAmount()endl; return 0; 已知程序的运行结果是 10,则下划线处缺失的表达式是_。(分数:2.00)A.
10、*thisB.thisC. 下列语句中输出结果不是 2 的是_。(分数:2.00)A.cout*arr+1endl;B.cout*(arr+1)endl;C.coutarr1endl;D.cout*arrendl;18.在 C 语言中,引用数组元素时,其数组下标的数据类型允许是_。(分数:2.50)A.整型表达式B.整型常量C.整型常量或整型表达式D.任何类型的表达式19.设树 T 的度为 4,其中度为 1,2,3,4 的结点个数分别为 4,2,1,1。则 T 中的叶子结点数为(分数:1.00)A.5B.6C.7D.820.已知在一个类体中包含如下函数原型:VOLUME operator-(V
11、OLUME)const;,下列关于这个函数的叙述中,错误的是_。(分数:3.00)A.这是运算符-的重载运算符函数B.这个函数所重载的运算符是一个一元运算符C.这是一个成员函数D.这个函数不改变类的任何数据成员的值21.关于类模板,下列表述中不正确的是 _ 。(分数:2.00)A.类模板的成员函数都是模板函数B.类模板本身在编译中不会生成任何代码C.类模板只能有虚拟类型参数D.用类模板定义一个对象时,不能省略实参22.数据库设计中,用 ER 图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的_。(分数:2.50)A.需求分析阶段B.逻辑设计阶段C.概念设计阶段D.物理设计阶段23
12、.下面关于虚函数的描述中正确的是_。(分数:1.00)A.虚函数是一个静态成员函数B.虚函数是一个非成员函数C.虚函数可以在函数说明时定义,也可以在函数实现时定义D.派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型24.下列程序的输出结果是 _ 。 #includeiostream.h main() int m=5; if(m+5) coutm; else coutm-; (分数:2.00)A.7B.6C.5D.425.有如下程序: #includeiostream using namespace std; class Sample friend long fun(Sample s)
13、; public: Sample(long a)x=a; private: long x; ; long fun(Sample s) if(s.x2)return 1: return s.x*fun(Sample(s.x-1): int main() int sum=0; for(int i=0;i6;i+)sum+=fun(Sample(i); coutsum; return 0; 运行时输出的结果是_。(分数:2.00)A.120B.16C.154D.3426.有如下程序: #includeiostream using namespace std; class Point public:
14、static int number; public: Pointonumber+; Point()number-;) ; int Point:number-0; void mainO Point*ptr; PointA,B; Point*ptr_point=new Point3; ptx=ptr_point; Point C; Gout+Point:number+endl; deleteptr; 运行时输出的结果是_。(分数:2.00)A.3B.4C.6D.727.下列有关类成员的叙述中,正确的是_。(分数:2.00)A.友元函数是类的成员函数B.类成员的默认访问权限是私有的C.类成员函数必须
15、声明为公有的D.类的静态数据成员不能是常成员28.下列有关类成员的叙述中,正确的是_。(分数:1.00)A.友元函数是类的成员函数B.类成员的默认访问权限是私有的C.类成员函数必须声明为公有的D.类的静态数据成员不能是常成员29.下列选项中,错误的 C+表达式是_。(分数:2.00)A.a+B.“b“=10C.double(3/5)D.x+!=3|y30.下面关于虚函数的描述,错误的是(分数:1.00)A.在成员函数声明的前面加上 virtual 修饰,就可把该函数声明为虚函数B.基类中说明了虚函数后,派生类中对应的函数也必须说明为虚函数C.虚函数可以是另一个类的友元函数,但不能是静态成员函数
16、D.基类中说明的纯虚函数在其任何派生类中都必须实现31.下面程序的运行结果是 _。 #includeiostream.h class A public virtual、() cout”call A: A()”end1; ; class B:public A B(int i)p=new chari: -B() delete)p; Cout”call B: B()”; ; void main() A*a=new B(8); Delete a; (分数:2.00)A.call B: B()B.call B: B()C.call A:A()D.call A:A()32.下列叙述中错误的是_。(分数:2
17、.50)A.在程序中凡是以“#”开始的语句行都是预处理命令行B.预处理命令行的最后不能以分号表示结束C.#define MAX 是合法的宏定义命令行D.C 程序中预处理命令行的处理是在程序执行的过程中进行的33.对于常成员函数,下面描述正确的是_。(分数:2.50)A.常成员函数只能修改常数据成员B.常成员函数只能修改一般数据成员C.常成员函数不能修改任何数据成员D.常成员函数只能通过常对象调用34.对 C+编译器区分重载函数无任何意义的信息是_。(分数:1.00)A.参数类型B.参数个数C.返回值类型D.常成员函数关键字 const35.设置虚基类的目的是 _ 。(分数:1.00)A.简化程
18、序B.消除二义性C.提高运行效率D.减少目标代码36.软件详细设计产生的图如下: (分数:2.50)A.N-S 图B.PAD 图C.程序流程图D.E-R 图37.与语句“coutendl;”不等价的是_。(分数:2.50)A.cout“n“B.cout“/12“C.cout“/xA“D.cout“/0“38.有如下程序: # includc iostream using namespace std; class Test public: Test() Test(const Testt)cout1; ; Test fun(Testu)Test t=u;return t; int main()Te
19、st x,y;x=fun(y);return 0; 运行这个程序的输出结果是_。(分数:2.50)A.无输出B.1C.11D.11139.下列叙述中正确的是(分数:2.00)A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D.循环队列中元素的个数是由队头指针和队尾指针共同决定的40.有如下程序: int x =3; do x- =2; cout x; while(! (-x); 执行这个程序的输出结果是 _ 。(分数:1.00)A.1B.30C.1-2D.
20、死循环二级 C+分类模拟 281 答案解析(总分:73.00,做题时间:90 分钟)一、选择题(总题数:40,分数:73.00)1.有如下程序: #includeiostream using namespace std; class A public: A(int i) x=i; void dispa() coutx“,“; private: int x; ; class B: public A public: B(int i): A(i+10) x=i; void dispb() dispa(); coutxendl; private: int x; ; int main() B b(2);
21、 b. dispb(); return 0; 执行这个程序的输出结果是_。(分数:1.00)A.10, 2B.12, 10C.12,2 D.2, 2解析:解析 本题考查派生类的构造函数和基类的构造函数。本题中类 B 继承类 A,定义了一个类 B 的对象并初始化 b(2),此时会执行类 B 的构造函数,执行的结果是继承类 A 中的私有成员赋值了 12,给类B 自身的数据成员 x 赋值了 2,执行 b. dispb()后,输出类 A 的私有成员 x,输出类 B 自身的数据成员,所以答案为 C。2.若有以下程序: #include iostream using namespace std; clas
22、s point private: int x, y; public: point ( ) x=0; y=0; void setpoint(int x1,int y1) x=x1; y=y1; void dispoint () cout“x=“x“ , “y=“yend1; ; int main ( ) point *p=new point; p-setpoint (5, 12); p-dispoint (); return 0; 程序运行后的输出结果是( )。(分数:1.00)A.x=12,y=12B.x=5,y=5C.x=12,y=5D.x=5,y=12 解析:解析 本题考核对象指针的定义与
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 分类 模拟 281 答案 解析 DOC
