【计算机类职业资格】二级C++笔试-356及答案解析.doc
《【计算机类职业资格】二级C++笔试-356及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++笔试-356及答案解析.doc(27页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+笔试-356 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.一个类的友元函数能够访问该类的(分数:2.00)A.私有成员B.保护成员C.公用成员D.所有成员2.下列叙述中正确的是(分数:2.00)A.软件测试的主要目的是确定程序中错误的位置B.软件调试的主要目的是发现程序中错误的类型C.程序经调试后还应进行测试D.软件的测试与调试工作最好都由程序编制者来完成3.下面说法正确的是(分数:2.00)A.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方B.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方C.类的
2、内联函数必须在类体内定义D.类的内联函数必须在类体外通过加关键字 inline定义4.关于常成员函数,下列说法中错误的是(分数:2.00)A.常成员函数无法更新对象的数据成员,但可以访问其他类的公用数据成员或全局变量B.常成员函数无法更新对象的数据成员,但是可以更新该对象的常数据成员C.常成员函数既可以被常对象调用,也可以被一般对象调用D.常成员函数不仅要在声明中用到 const修饰符,在定义时也必须使用 const修饰符5.控制格式输入/输出的操作子中,设置域宽的函数是(分数:2.00)A.wsB.octC.setfill(int)D.setw(int)6.数据库概念设计中,由分散到集中的设
3、计方法是(分数:2.00)A.视图设计B.视图集成设计C.集中式模式设计D.分散式模式设计7.下列不能作为类的成员的是(分数:2.00)A.自身类对象的指针B.自身类对象C.数组D.另一个类的对象8.下列能对对象进行初始化的是(分数:2.00)A.构造函数B.析构函数C.友元函数D.静态成员函数9.下列关于虚基类的描述中错误的是(分数:2.00)A.虚基类子对象的初始化由最派生类完成B.虚基类子对象的初始化次数与虚基类下面的派生类个数有关C.设置虚基类的目的是消除二义性D.带有虚基类的多层派生类构造函数的成员初始化列表中都要列出对虚基类构造函数调用10.以下说法中错误的是(分数:2.00)A.
4、strcpy(A,B.函数是将 A字符串的内容复制到 B字符串中 B) strlen(cha*s)返回字符串 S的长度,未尾的字符不计算在内C.char a20=“string“;中字符串长度为 6D.strstr(S1,S2)函数在字符串 S1中从左边开始查找字符串 S2,若查找成功则返回 S2在 S1中首次出现的位置,否则返回 NULL,如果 S2为“,则返回 S1。11.在深度为 6的满二叉树中,叶子结点的个数为(分数:2.00)A.64B.63C.32D.3112.请阅读以下程序main( )int x=1,y=0,a=0,b=0;switch(x)case 1:switch(y)ca
5、se 0:a+;break;case 1:b+;break;case 2:a+;b+;break;cout“a=“a“b=“bendl;上面程序的输出结果是(分数:2.00)A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=213.要通过函数实现一种不太复杂的功能,并且要求加快执行速度,则应该选用(分数:2.00)A.重载函数B.内联函数C.静态函数D.虚函数14.设有 char str80;以下不能将输入数据 first/nsecond/nCR读取到数组 str中的语句是(分数:2.00)A.cin.get(str,strlen(str);B.cin.getline(st
6、r,strlen(str);C.cinstr;D.cin.read(str,strlen(str);15.设置虚基类的目的是(分数:2.00)A.简化程序B.消除二义性C.提高程序运行效率D.减少目标代码16.已知一个运行正常的程序中有下面两个语句:int*p1,p2p1=b;由此可知,变量 a和 b的类型分别是(分数:2.00)A.int和 intB.int*和 intC.int和 int*D.int*和 int*17.有如下程序main( )int n5=0,0,0,i,k=2;for(i=0;ik;i+)ni=ni+1;coutnkendl;该程序的输出结果是(分数:2.00)A.不定值
7、B.2C.1D.018.将 7个数据进行插入排序,在最坏情况下需要比较的次数是(分数:2.00)A.42B.6C.7D.2119.执行语句序列ofstream outfile(“DATE.DAT”);if()cout“OK“; else cout“FAIL“后,如果文件打开成功,显示“OK”,否则显示“FAIL“。由此可知,上面 if语句处的表达式是:(分数:2.00)A.outfile.fail( )或 outfileB.outfile.good( )或 outfileC.outfile.good( )或!outfileD.outfile.fail( )或!out file20.对于拷贝构造
8、函数和赋值操作的关系,正确的是(分数:2.00)A.拷贝构造函数和赋值操作是完全一样的操作B.进行赋值操作时,会调用类的构造函数C.当调用拷贝构造函数时,类的对象正在被建立并被初始化D.拷贝构造函数和赋值操作不能在同一个类中被同时定义21.以下程序的功能是按顺序读入 10名学生 4门课程的成绩,计算出每位学生的平均分并输出:main( )int n,k;float score,sum,ave;sum=0.0;for(n=1;n=10;n+)for(k=1;k=4;k+)cinscore;sum+=score;ave=sum/4.0;cout“NO“n“:“aveendl;上述程序运行后结果不正
9、确,调试中发现有一条语句出现在程序中的位置不正确。这条语句是(分数:2.00)A.sum=0.0B.sum+=scoreC.ave=sun/4.0D.cout“N0“n“:“aveendl;22.面向对象的开发方法中,类与对象的关系是(分数:2.00)A.具体与抽象B.抽象与具体C.整体与部分D.部分与整体23.已知类 X成功地重载了- -、+、=、 这几个运算符。则其中肯定属于成员函数的运算符是:(分数:2.00)A.前置- -和 B.=和 C. 和后置- -D.+和=24.设有如图所示的二叉树(分数:2.00)A.FCADBEGB.ACBDFGEC.ABDCGEFD.ACBDFEG25.执
10、行下列语句后,输出结果为 steven的是char*str=“steven“;eout.write(str, );(分数:2.00)A.strlen(str)B.sizeof(str)C.strlen(str+1)D.sizeof(str-1)26.在下列关系运算中,可能改变关系中属性个数的是(分数:2.00)A.并B.差C.投影D.交27.下列描述中正确的是(分数:2.00)A.类中可以定义与类名相同的数据成员B.直接子类中可以定义与父类名相同的数据成员C.孙子类中可以定义与爷爷类名相同的数据成员。D.类的所有子孙中都不可以定义与该类同名的数据成员。28.解决类继承中产生的二义性的方法不包括
11、(分数:2.00)A.使用作用域运算符限定访问的成员函数B.在派生类中定义同名函数,且参数表必须和基类的保持一致C.在派生类中定义同名函数,且参数表可以和基类的不同D.采用虚基类解决多重继承中的共同基类产生的二义性29.下列数据结构中按“先进先出”原则组织数据的是(分数:2.00)A.线性表B.循环队列C.循环链表D.双向链表30.下列关于虚函数与函数重载区别的叙述中不正确的是(分数:2.00)A.函数说明形式上不同B.函数重载允许是非成员函数,虚函数只能是成员函数C.函数重载的调用依据参数和类型的差别,虚函数则依据对象D.函数重载的本体可以在类外定义,虚函数不可以31.下面描述中体现了抽象类
12、特性的语句是(分数:2.00)A.可以说明虚函数B.可以进行构造函数重载C.可以定义友元函数D.不能定义对象32.下列叙述中正确的是(分数:2.00)A.所有形态的二叉树都只能采用链式存储结构B.循环队列是队列的一种存储方式C.栈只能采用顺序存储结构D.循环队列与循环链表都属于链式存储结构33.以下程序的输出结果是main( )int i=0,a=0;while(i20)for(;)if(i%10)=0)break;else i - -;i+=11;a+=i;coutaendl;(分数:2.00)A.21B.32C.33D.1134.在某类的公共部分有声明 string operator+(
13、);和 string operator+(int);则说明(分数:2.00)A.string operator+( );是前置自增运算符声明B.string( )perator+( );是后置自增运算符声明C.string operator+(int);是前置自增运算符声明D.两条语句无区别35.下列关于软件设计基本原理的叙述中错误的是(分数:2.00)A.信息隐蔽是指在一个模块内的信息要使所有的模块都能访问得到B.模块的独立程度是评价软件设计好坏的重要标准C.耦合性用于衡量软件的模块独立性D.内聚性用于衡量软件的模块独立性二、填空题(总题数:15,分数:30.00)36.对 n个元素的序列进
14、行冒泡排序时,最少的比较次数是 1。(分数:2.00)填空项 1:_37.继承使得相似的对象可以共享程序代码和数据结构,从而大大减少了程序中的冗余信息,提高了软件的 1。(分数:2.00)填空项 1:_38.结构化分析方法是面向 1 进行分析的方法。(分数:2.00)填空项 1:_39.在对一组记录(54,38,96,23,15,72,60,45,83)进行直接插入排序时,当把第 7个记录 60插入到有序表时,为寻找插入位置需比较 1 次。(分数:2.00)填空项 1:_40.数据库技术的主要特点为 1,具有较高的数据和程序的独立性以及对数据实行集中统一的控制。(分数:2.00)填空项 1:_
15、41.逻辑表达式 x3;class Derived:public Basepublic:void f(char*str)cout“Derived:“strendl;);void main(void)Base*pd=new Base;pd=new Derived;pd-f(a);(分数:2.00)填空项 1:_47.下列程序的执行结果为_。#includeiostream.hclass Myclasspublic:void GetSum(int a);static int Sum;prtvate:int A;int Myclass:Sum=10;/必须在类外部对静态数据成员初始化void Myc
16、lass:GetSum(int a)A=a;Sum+=A:vold PrintSum(Myclassvoid main( )Myclass M,N;M.GetSum(3);N.GetSum(7);PrintSum(M);(分数:2.00)填空项 1:_48.下列程序的执行结果为_。#includeiostream.hclass Pointpublic:Point(double i,double j)x=i;y=j;double Area( )constreturn 0.0;private:double x,y;class Rectangle:public Pointpublic:Rectang
17、le(double i,double J,double k,double 1);double Area( )const(return w*h;private:double w,h;Rectangle:Rectangle(double i,double j,double k,double 1):Point(i,j)w=k;h=l;void fun(Pointvoid main( )Rectangle rec(3.0,5.2,15.0,25.0);fun(rec);(分数:2.00)填空项 1:_49.下列程序用于将源文件中的字母进行大小写转换,while 的条件是_。#includeiostre
18、am.h#includefstream.h#includeiomanip.hvoid main( )char ch;fstream filel,file2;char fnl10,fn210;cout“输入源文件名:“;cinfn1;cout“输入目标文件名:“;cinfn2;filel.open(fnl,ios:in);file2.open(fn2,ios:out);while(_)if(ch=afile2.put(ch);filel.close( );file2.close( );(分数:2.00)填空项 1:_50.以下程序的执行结果是_。#ineludeiostream.hclass S
19、amplepublic:int x;int y;void disp( )cout“x=“x“,y=“yendl;void main( )int Sample:*pc;Sample s;pc=s.*pc=10;pc=s.*pc=20;s.disp( );(分数:2.00)填空项 1:_二级 C+笔试-356 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.一个类的友元函数能够访问该类的(分数:2.00)A.私有成员B.保护成员C.公用成员D.所有成员 解析:解析 在一个类的内部声明,并用 friend修饰的函数称为该类的友员函数,友员函数可以像
20、成员函数一样,访问类的所有级别的成员。友员机制主要用于提高访问效率,但是破坏了类的封装性原则。在程序中适当使用友员函数,并寻求封装和效率之间的一个平衡点,是使用友员技术的一个主要内容。2.下列叙述中正确的是(分数:2.00)A.软件测试的主要目的是确定程序中错误的位置B.软件调试的主要目的是发现程序中错误的类型C.程序经调试后还应进行测试 D.软件的测试与调试工作最好都由程序编制者来完成解析:解析 软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定。测试不是为了证明程序是正确的,而是在设想程序有错误的前提下进行的,其目的是设法暴露程序中的错误和缺陷。由于测试的
21、这一特征,一般应当避免由开发者测试自己的程序。测试只能说明程序有错,而不能证明程序无错,希望通过有限次的测试就能发现程序中的所有错误是不可能的,即完全测试是不可能的。因此,选项 A与 D中的说法都是错误的。调试也称排错。测试的目的是暴露错误,而调试的目的是发现错误的位置,并改正错误。经测试发现错误后,可以立即进行调试并改正错误;经过调试后的程序还需进行回归测试,以检查调试的效果,同时也可防止在调试过程中引进新的错误。因此,选项 B中的说法也是错误的,而选项 C中的说法是正确的。3.下面说法正确的是(分数:2.00)A.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方B.内联函数在编
22、译时是将该函数的目标代码插入每个调用该函数的地方 C.类的内联函数必须在类体内定义D.类的内联函数必须在类体外通过加关键字 inline定义解析:解析 内联函数用 inline修饰,用于取代 C语言中的宏定义。Inline 是个建议机制而不是强制机制,也就是说,程序员可以指定任意函数为 inline函数,但是编译器会根据系统情况来决定是否将其inline处理。对于较大的函数,编译器往往会取消其 inline特性。Inline 函数的特点之一就是执行速度快,他实质是在编译时将函数的目标代码插入到每个调用该函数的地方,从而没有出栈入栈、保护现场等开销,提高了效率。在类体内定义的成员函数,自动被编译
23、器当做内联函数处理,在类体外定义的成员函数,如果用 inline修饰,编译器也认为是一种内联建议。4.关于常成员函数,下列说法中错误的是(分数:2.00)A.常成员函数无法更新对象的数据成员,但可以访问其他类的公用数据成员或全局变量B.常成员函数无法更新对象的数据成员,但是可以更新该对象的常数据成员 C.常成员函数既可以被常对象调用,也可以被一般对象调用D.常成员函数不仅要在声明中用到 const修饰符,在定义时也必须使用 const修饰符解析:解析 本题考察 const修饰符的使用规则,只要考生理解了 const表示“常”的意思就容易举一反三。根据被修饰内容的不同,const 在修饰数据成员
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 笔试 356 答案 解析 DOC
