【计算机类职业资格】二级C++-234及答案解析.doc
《【计算机类职业资格】二级C++-234及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++-234及答案解析.doc(18页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+-234 及答案解析(总分:57.50,做题时间:90 分钟)一、选择题(总题数:36,分数:57.50)1.下列关于赋值运算符“=”重载的叙述中,正确的是(分数:2.00)A.赋值运算符只能作为类的成员函数重载B.默认的赋值运算符实现了“深层复制”功能C.重载的赋值运算符函数有两个本类对象作为形参D.如果己经定义了复制(拷贝)构造函数,就不能重载赋值运算符2.若有如下语句 #includeiostream.h void main() int x=3; do x=x-2; coutx; while(!(-x); 则上面程序段_。(分数:2.50)A.输出的是 1B.输出的是 1 和-
2、2C.输出的是 3 和 0D.是死循环3.若有如下定义和语句: int s45,(*p)5; p=S; 则指针对 s 数组中第三个元素的正确引用形式是 _ 。(分数:2.00)A.p03B.p12C.p02D.p134.有如下程序: #includeiostream using namespace std; int main() void function(double val): double val; function(val); coutval; retum0; void function(double val) val=3; 编译运行这个程序将出现的情况是_。(分数:1.00)A.编译
3、出错,无法运行B.输出:3C.输出:3.0D.输出一个不确定的数5.有如下程序段: int i=2; do i*=i; cout“#“; if(i1000)break; while(1); 运行这个程序段时,输出字符“#“的个数是_。(分数:2.50)A.3B.4C.5D.66.有如下语句序列: char str10;cinstr; 当从键盘输入“I love this game”时,str 中的字符串是_。(分数:2.50)A.“I love this game“B.“I love thi“C.“I love“D.“I“7.有以下语句,则对 a 数组元素的引用不正确的是(0i9) int a
4、10=0,1,2,3,4,5,6,7,8,9,*p=a;(分数:1.00)A.ap=a)B.*( MyClass() private: int data; ; 下列对 MyClass 类对象数组的定义和初始化语句中,正确的是_。(分数:1.00)A.MyClass array2;B.MyClass array2=MyClass(5);C.MyClass array2=MyClass(5),Myclass(6);D.MyClass*array=new MyClass2;10.已知 Value 是一个类,value 是 Value 的一个对象。下列以非成员函数形式重载的运算符函数原型中,正确的是_
5、。(分数:1.00)A.Value operator+(Value v,int i);B.Value operator+(Value V=value,int i);C.Value operator+(Value v,int i=0);D.Value operator+(Value V=value,int i=0);11.下列关于队列的叙述中正确的是(分数:1.00)A.在队列中只能插入数据B.在队列中只能删除数据C.队列是先进先出的线性表D.队列是先进后出的线性表12.有如下程序: #includeiost ream using namespace std; class XA int a; p
6、ublic: static int b; XA(int aa):a(aa)b+; XA() int get()return a; ; int XA:b=0 int main() XA d1(1),d2(3); coutd1.get+d2.get+XA:bendl; return 0; 运行时的输出结果是_。(分数:1.00)A.5B.6C.7D.813.关于数据库系统三级模式的说法,下列 _ 是正确的。(分数:2.00)A.外模式、概念模式、内模式都只有一个B.外模式有多个,概念模式和内模式只有一个C.外模式只有一个,概念模式和内模式有多个D.3 个模式中,只有概念模式才是真正存在的14.关于
7、关键字 class 和 typename,下列表述中正确的是_。(分数:1.00)A.程序中的 typename 都可以替换为 classB.程序中的 class 都可以替换为 typenameC.在模板形参表中只能用 typename 来声明参数的类型D.在模板形参表中只能用 class 或 typename 来声明参数的类型15.一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是_。(分数:1.00)A.-对一B.一对多C.多对多D.多对一16.针对数组定义 int data10;,下列表述中错误的是(分数:1.00)A.用*data 可访问
8、到数组的首元素B.用 data9可访问到数组的末元素C.用 data10访问数组元素会超出数组边界D.data 共有 10 个元素,其首元素是 data117.对于一个类定义,下列叙述中错误的是_。(分数:2.50)A.如果没有定义拷贝构造函数,编译器将生成一个拷贝构造函数B.如果没有定义缺省的构造函数,编译器将一定生成一个缺省的构造函数C.如果没有定义构造函数,编译器将生成一个缺省的构造函数和一个拷贝构造函数D.如果已经定义了构造函数和拷贝构造函数,编译器不会生成任何构造函数18.下面关于 this 指针的说法中错误的是 _ 。(分数:2.00)A.this 指针是一种隐含指针,存在于每个类
9、的非静态成员函数中B.它是成员函数所属对象的指针C.通过 this.成员变量的形式可以访问类中的数据成员D.成员函数访问类中的数据成员格式可写成:this-成员变量19.若已定义; inta=0,1,2,3,4,5,6,7,8,9,*p=a,i; 其中 0i=9,则对 a 数组元素不正确的引用是 _ 。(分数:2.00)A.ap-aB.x(,则数组 x 在内存中所占字节数是(分数:2.00)A.3B.6C.10D.2021.下列有关内联函数的叙述中,正确的是(分数:1.00)A.内联函数在调用时发生控制转移B.内联函数必须通过关键字 inline 来定义C.内联函数足通过编译器来实现的D.内联
10、函数函数体的最后一条语句必须是 return 语句22.由于常对象不能被更新,因此_。(分数:1.00)A.通过常对象只能调用它的常成员函数B.通过常对象只能调用静态成员函数C.常对象的成员都是常成员D.通过常对象可以调用任何不改变对象值的成员函数23.有如下程序 #includeiostream.h void main() char ch25=“6937“,“8254“,*p2; int i,j,s0; for(i0;i(2;i+)pichi; for(i0;i(2;i+) for(j0;pij“/0,j+2) s10*s+pij-“0“; couts; 该程序的输出结果是 _ 。(分数:2
11、.00)A.69825B.63825C.6385D.69382524.在深度为 7 的满二叉树中,叶子结点的个数为 _ 。(分数:2.00)A.32B.31C.64D.6325.下列关于函数模板的描述中,正确的是_。(分数:1.00)A.函数模板是一个实例函数B.使用函数模板定义的函数没有返回类型C.函数模板的类型参数与函数的参数相同D.通过使用不同的类型参数,可以从函数模板得到不同的实例函数26.有以下程序: #include iostream using namespace std; int main() int num23,*p; int t,i,j,k=10; p=num0; for(
12、i=0;i2;i+) for(j=0;j3;j+) k+; *p=k; for(t=2;t*p;t+) if(!(*pt) j-; *p-; break; *p+; cout*(p-1)end1; return 0; 程序运行后的输出结果是 _ 。(分数:1.00)A.19B.11C.29D.2327.下列不属于软件设计阶段任务的是_。(分数:2.50)A.软件总体设计B.算法设计C.制定软件确定测试计划D.数据库设计28.有如下类声明: class Foo int bar; ; 则 Foo 类的成员 bar 是(分数:2.00)A.公有数据成员B.公有成员函数C.私有数据成员D.私有成员函数
13、29.将前缀运算符“- -”重载为非成员函数,下列原型中能正确用于类中说明的是_。(分数:1.00)A.DecrB.Decr operator -(DecrC.friend DecrD.friend Decr operator -(Decr30.下列叙述中正确的是_。(分数:1.00)A.有一个以上根结点的数据结构不一定是非线性结构B.只有一个根结点的数据结构不一定是线性结构C.循环链表是非线性结构D.双向链表是非线性结构31.下列程序执行结果是_。 #includeiostream.h class A public; int a; A():a(10)coutaend1; ; void mai
14、n() A obj1; A obj2(obj1); cout“ “obj2.aend1; (分数:2.50)A.10 10B.编译错误 缺少拷贝构造函数C.10 随机数D.随机数 随机数32.下列控制格式输入/输出的操作符中,能够设置浮点数精度的是_。(分数:1.00)A.setprecisionB.setwC.setfillD.showpoint33.有以下类定义 class MyClass public: MyClass() cout1; ; 则执行语句 MyClass a,b 2,*p2;后,程序的输出结果是 _ 。(分数:2.00)A.11B.111C.1111D.1111134.将
15、x+y*z 中的“+”用成员函数重载,“*”用友元函数重载应写为_。(分数:2.50)A.operator+(operator*(y,z)B.operator+(operator*(y,z)C.operator+(x*(y,z)D.x+(operator*(y,z)35.若有如下程序: #includeiostream using namespace std; int s=0; class sample static int n; public: sample(int i) n=i; static void add() S+=n; ; int sample:n=0; int main() sa
16、mple a(2),b(5); sample:add(); coutsendl; return 0; 程序运行后的输出结果是 _ 。(分数:2.00)A.2B.5C.7D.336.有如下类定义: class Bag public: Bag(int p=200, char s=“M“):price(p), size(s) coutsize; private: int price; char size; ; 若执行语句 Bag Alice, Kelly(Mice), *Twins2, F44; 则输出结果为_。(分数:1.00)A.MMMMMMMMB.MMMMMMC.MMMMMD.MMMM二级 C
17、+-234 答案解析(总分:57.50,做题时间:90 分钟)一、选择题(总题数:36,分数:57.50)1.下列关于赋值运算符“=”重载的叙述中,正确的是(分数:2.00)A.赋值运算符只能作为类的成员函数重载 B.默认的赋值运算符实现了“深层复制”功能C.重载的赋值运算符函数有两个本类对象作为形参D.如果己经定义了复制(拷贝)构造函数,就不能重载赋值运算符解析:2.若有如下语句 #includeiostream.h void main() int x=3; do x=x-2; coutx; while(!(-x); 则上面程序段_。(分数:2.50)A.输出的是 1B.输出的是 1 和-2
18、 C.输出的是 3 和 0D.是死循环解析:解析 do.while 语句的一般格式为“do 循环体语句 while(表达式);”,先执行循环体语句一次,再判断表达式的值,若为真则继续执行循环,否则终止循环。本题中,先执行 x=x-2,即为 1。判断表达式的值,!(-x)为真,x=0,继续循环。再次执行循环体语句后,x=-2,此时表达式的值为 0,结束循环。3.若有如下定义和语句: int s45,(*p)5; p=S; 则指针对 s 数组中第三个元素的正确引用形式是 _ 。(分数:2.00)A.p03B.p12C.p02 D.p13解析:解析 “p=s;”语句将指针 p 指向数组 s。而数组为
19、二维数组,下标标识由 0 开始,所以第二个元素为下标为 0 行的 2 列,即 p02。4.有如下程序: #includeiostream using namespace std; int main() void function(double val): double val; function(val); coutval; retum0; void function(double val) val=3; 编译运行这个程序将出现的情况是_。(分数:1.00)A.编译出错,无法运行B.输出:3C.输出:3.0D.输出一个不确定的数 解析:解析 本题考查函数调用及传值方式传递参数,执行函数 fun
20、ction 时,并没有将 3 的值传回来,而 val 又没有初始化,所以会输出一个不确定的值,D 选项正确。5.有如下程序段: int i=2; do i*=i; cout“#“; if(i1000)break; while(1); 运行这个程序段时,输出字符“#“的个数是_。(分数:2.50)A.3B.4 C.5D.6解析:解析 本题考查的是程序执行的相关知识。i*=i 等价于 i=i*i,第一次循环,i=4 时,输出第一个“#“,此时 i 不大于 1000,循环继续,第二次循环,i=16 时,输出第二个“#“,此时不大于 1000,循环继续,第三次循环,i=256 时,输出第三个“#“,此
21、时不大于 1000,循环继续,第四次循环,i=65536 时,输出第四个“#“,此时 i 大于 1000,循环停止,跳出循环,故输出四个“#“,选择 B。6.有如下语句序列: char str10;cinstr; 当从键盘输入“I love this game”时,str 中的字符串是_。(分数:2.50)A.“I love this game“B.“I love thi“C.“I love“D.“I“ 解析:解析 cin 是 C+预定义的标准输入流对象,cin 用来接收字符串时,遇“空格”、“TAB”和“回车”时都会结束。故答案为 D 选项。7.有以下语句,则对 a 数组元素的引用不正确的是
22、(0i9) int a10=0,1,2,3,4,5,6,7,8,9,*p=a;(分数:1.00)A.ap=a)B.*( MyClass() private: int data; ; 下列对 MyClass 类对象数组的定义和初始化语句中,正确的是_。(分数:1.00)A.MyClass array2;B.MyClass array2=MyClass(5);C.MyClass array2=MyClass(5),Myclass(6); D.MyClass*array=new MyClass2;解析:解析 A 只是声明,没有初始化;B 的初始化错误,另一个数组对象没有指明地址;D 同样做的不是初始
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 C234 答案 解析 DOC
