【计算机类职业资格】二级C++分类模拟282及答案解析.doc
《【计算机类职业资格】二级C++分类模拟282及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++分类模拟282及答案解析.doc(20页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+分类模拟 282及答案解析(总分:69.50,做题时间:90 分钟)一、选择题(总题数:40,分数:69.50)1.下列语句中,正确的是_。(分数:2.00)A.char*myString=“Hello-World!“;B.char myString=“Hello-World!“;C.char myString11=“Hello-World!“;D.char myString12=“Hello-World!“;2.下列叙述中正确的是_。(分数:1.00)A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C.在循
2、环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D.循环队列中元素的个数是由队头指针和队尾指针共同决定3.有下列程序: #include stdio.h void main() char a=4; printf(“%d/n“,a=a1); 程序的运行结果是_。(分数:2.50)A.40B.16C.8D.44.有如下函数模板定义: templateclass T T func(T x,T y)return x*x+y*y; 在下列对 func的调用中,错误的是_。(分数:2.00)A.func(3,5);B.func(3.0,5.5);C.func(3,5.5);D.funcint(3,
3、5.5);5.有如下类定义: class Bag public: Bag(int p, char s=“M“):price(p), size(s) count+; Bag()count-; int GetPrice() return price; int GetPrice() const return price; void SetPrice(int val) const price=val; private: int price; char size; static int count; ; 下列关于类成员的叙述中,正确的是_。(分数:1.00)A.成员函数 GetPrice存在重定义B.构
4、造函数的参数不能设置默认值C.析构函数中不能访问静态数据成员D.成员函数 SetPrice不能定义为常函数6.假定 AB为一个类,则执行 AB x;语句时将自动调用该类的(分数:2.00)A.有参构造函数B.无参构造函数C.拷贝构造函数D.赋值重载函数7.下列关系运算中,能使经运算后得到的新关系中属性个数多于原来关系中属性个数的是 _ 。(分数:2.00)A.选择B.连接C.投影D并8.有如下程序段: int i=100; while(int i=10)cout“*“;i-; 运行时输出“*“的个数是_。(分数:2.00)A.0B.100C.10D.无穷9.下面是类 MyClass的定义,对定
5、义中各语句描述正确的是_。 class MyClass public: void MyClass(int a) X=a; / int f(int a,int b) / X=a; Y=b; int f(int a,int b, int c=0) / X=a; Y=b; Z=c; static void g() X=10; / private: int X, Y, Z; ;(分数:2.50)A.语句是类 MyClass的构造函数定义B.语句和语句实现类成员函数的重载C.语句实现对类成员变量 X的更新操作D.语句、和都不正确10.下列关于 C+流的描述中,错误的是_。(分数:2.50)A.cout“
6、A“表达式可输出字符 AB.eof()函数可以检测是否到达文件尾C.对磁盘文件进行流操作时,必须包含头文件 fstreamD.以 ios_base:out模式打开的文件不存在时,将自动建立一个新文件11.若有定义“int a23;”,下列选项中对 a数组元素正确引用的是_。(分数:1.00)A.a2!1B.a23C.a03D.a12!112.语句 cout setprecison (3)3.1415926end1;的输出为 _ 。(分数:2.00)A.3.14B.3.1C.3.142D.3.14113.下列程序的输出结果为_。 #includeiostream.h class TestClas
7、s public: TestClass()val+; static,int val; ; int TestClass: val=0; void main() TestClass csl; coutcsl.val“ “; TestClass cs2; TestClass cs3,cs4; coutcs2.valendl; (分数:1.00)A.03B.13C.14D.2414.下列运算符中,在 C+语言中不能重载的是(分数:1.00)A.*B.=C.:D./15.关于在调用模板函数时实参的使用,下列表述中正确的是(分数:2.00)A.对于虚拟类型参数所对应的模板实参,如果能从模板函数的实参中获得
8、相同的信息,则都可以省略B.对于虚拟类型参数所对应的模板实参,如果它们是参数表中的最后的若干个参数,则都可以省略C.对于虚拟类型参数所对应的模板实参,若能够省略则必须省略D.对于常规参数所对应的模板实参,任何情况下都不能省略16.有如下程序: #includeiostream.h using namespace std; class Base public: Base()cout“BB“; f(); void f()cout“BF“; ; class Derived:public Base public: Derived()cout“DD“; void f()cout“Df“; ; int m
9、ain()Derived d;return 0; 执行上面的程序将输出_。(分数:1.00)A.BBBfDDB.BBDfDDDfC.DDD.DDBBBf17.如果派生类以 protected方式继承基类,则原基类的 protected成员和 public成员在派生类中的访问属性分别是_。(分数:1.00)A.public和 publicB.public和 protectedC.protected和 publicD.protected和 protected18.下列关于 this指针的描述中,正确的是_。(分数:2.00)A.类的成员函数都有 this指针B.类的友元函数都有 this指针C.任
10、何与类相关的函数都有 this指针D.类的非静态成员函数都有 this指针19.有如下程序: #includeiostream using namespace std; class A public: A()cout“A“; A()cout“A“; ; class B:public A A* p; public: B()cout“B“;p=new A(); B()cout“B“;delete p; ; int main() B obj; return 0; 执行这个程序的输出结果是_。(分数:2.00)A.BAAABAB.ABABAAC.BAABAAD.ABAABA20.已知数组 arr的定义
11、如下: int arr5=1,2,3,4,5; 下列语句中输出结果不是 2的是_。(分数:2.50)A.cout*arr+1endl;B.cout*(arr+1)endl;C.coutarr1endl;D.cout*arrendl;21.下列叙述中错误的是_。(分数:2.50)A.用户定义的函数中可以没有 return语句B.用户定义的函数中可以有多个 return语句,以便可以调用一次返回多个函数值C.用户定义的函数中若没有 return语句,则应当定义函数为 void类型D.函数的 return语句中可以没有表达式22.数据处理的最小单位是_。(分数:1.00)A.数据B.数据元素C.数据
12、项D.数据结构23.有如下函数模板定义: templatetypename T1,typename T2,typename T3 T2 plus(T1 t1,T3 t3)return t1+t3; 则以下调用正确的是_。(分数:1.00)A.plus(3,5L);B.plus(3,5L);C.plusint(3,5L);D.plusint,double(3,5L);24.有如下程序: #includeiostream using namespace std; class Point public: Point(int xx=0,int yy=0):x(xx),y(yy) void SetX(i
13、nt xx)x=xx; void SetY(int yy)y=yy; private: int x,y; ; class Circle:Point public: Circle(int r):radius(r) int GetRadius()return radius; private: void SetRadius(int r)radius=r; int radius; ; int main() Circle c1(5); c1.SetX(1); / c1.SetY(2); / c1.SetRadius(10); / coutc1.GetRadius(); / return 0; 在标注号码
14、的语句行中不存在语法错误的是_。(分数:1.00)A.B.C.D.25.( )是以一种完全通用的方法来设计函数或类而不必预先说明将被使用的每个对象的类型。(分数:2.00)A.模板B类C.对象D.函数26.下面的函数调用为: fun(x+y,3,min(n-1,y)则 fun的实参个数是_。(分数:2.50)A.3B.4C.5D.627.下列工具中为需求分析常用工具的是 _ 。(分数:2.00)A.PADB.PFDC.NSD.DFD28.下列运算符函数中肯定不属于类 FunNumber的成员函数的是(分数:2.00)A.int operator-(FunNumber);B.FunNumber
15、operator-( );C.FunNumber operator-(int);D.int operator-(FunNumber,FunNumber);29.对于类定义 class A public: virtual void funcl() void func2() ; class D:public A public: void funcl()cout “class B rune 1“end1; virtual void func2()cout “class B func 2“end1; ; 下面正确的叙述是 _。(分数:2.00)A.A:func2()和 B:funcl()都是虚函数B.
16、A:func2()和 B:funcl()都不是虚函数C.B:func1()是虚函数,而 A:func2()不是虚函数D.B:func1()不是虚函数,而 A:func2()是虚函数30.要利用 C+流实现输入输出的各种格式控制,必须在程序中包含的头文件是_。(分数:2.50)A.fstreamB.istreamC.cstdlibD.iomanip31.若有如下类定义: classB void fun1() protected: double var1; public: void fun2() ; class D:public B protected: void fun3() ; 己知 obj是
17、类 D的对象,下列句中不违反类成员访问控制权限的是_。(分数:2.00)A.obj.fun1();B.obj.var1;C.obj.fun2();D.obj.fun3();32.下列关于虚函数的说明中,正确的是_。(分数:1.00)A.从虚基类继承的函数都是虚函数B.虚函数不得是静态成员函数C.只能通过指针或引用调用虚函数D.抽象类中的成员函数都是虚函数33.下列选项中不合法的标识符是_。(分数:2.50)A.printB.FORC.aD.-0034.阅读以下程序 #includeiostream.h void main() char line10; cinline; coutlineendl
18、; 如运行时输入“This is an example.CR”,则程序的输出结果是_。(分数:2.50)A.ThisB.This isC.This is aD.This is an example35.执行语句“for(int i=0, x=0; !x i+);”时,for 循环的循环次数是_。(分数:1.00)A.1B.5C.6D.无限36.下面程序的运行结果是 #includeiostreamh class base protected: int a; public: base()cout “0“; ; class basel:virtual base public: basel () c
19、out “1“; ; class base2:virtual base public: base2()cout “2“; ; class derived:public basel,public base2 public: derived()cout “3“; ; void main() derived obj; cout end1; (分数:1.00)A.0123B.3120C.0312D.301237.已知在一个类体中包含如下函数原型:VOLUMEOPER ATOR-(VOLUME)const;,下列关于这个函数的叙述中,错误的是_。(分数:1.00)A.这是运算符一的重载运算符函数B.这个
20、函数所重载的运算符是一个一元运算符C.这是一个成员函数D.这个函数不改变类的任何数据成员的值38.在对函数进行原型声明时,下列语法成分中,不需要的是_。(分数:2.00)A.函数返回类型B.函数参数列表C.函数名D.函数体39.关于数据库系统三级模式的说法,下列 _ 是正确的。(分数:2.00)A.外模式、概念模式、内模式都只有一个B.外模式有多个,概念模式和内模式只有一个C.外模式只有一个,概念模式和内模式有多个D.3个模式中,只有概念模式才是真正存在的40.下列运算符中,不能被重载的是_。(分数:1.00)A. B.char myString=“Hello-World!“;C.char m
21、yString11=“Hello-World!“;D.char myString12=“Hello-World!“;解析:解析 对于 B来说,会造成溢出,对于 C和 D来说同样如此,因为“Hello-world!”一个是 12个字符组成,加上空字符一共 13个,所以都会造成溢出,只有 A是将字符串的地址赋给字符型指针。2.下列叙述中正确的是_。(分数:1.00)A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D.循环队列中元素的个数是由队头指针和队尾指针共
22、同决定 解析:解析 循环队列有队头和队尾两个指针,但是循环队列仍是线性结构的,所以 A错误;在循环队列中需要队头指针与队尾指针来共同反映队列中元素的动态变化情况,所以 B与 C错误。3.有下列程序: #include stdio.h void main() char a=4; printf(“%d/n“,a=a1); 程序的运行结果是_。(分数:2.50)A.40B.16C.8 D.4解析:解析 本题考查位操作,将 4转化成二进制为 0100,左移一位后为 1000,转成十进制为 8,所以输出 8。4.有如下函数模板定义: templateclass T T func(T x,T y)retu
23、rn x*x+y*y; 在下列对 func的调用中,错误的是_。(分数:2.00)A.func(3,5);B.func(3.0,5.5);C.func(3,5.5); D.funcint(3,5.5);解析:解析 此题考查的是函数模板的使用。引用模板函数和引用一般函数在语法形式上基本相同。需要注意的是说明一个函数模板后,当编译系统发现有一个对应的函数调用时,将根据实参中的类型来确认是否匹配函数模板中的对应形参。本题 C选项中,编译系统从第一个参数“3”获得信息“int”和从第二个参数获得信息“double”两者矛盾,错误;A、B 选项正确;D 选项中,函数名后的int是模板实参表,编译系统会将
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 分类 模拟 282 答案 解析 DOC
