【计算机类职业资格】二级C++笔试320及答案解析.doc
《【计算机类职业资格】二级C++笔试320及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++笔试320及答案解析.doc(14页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+笔试 320 及答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.以下程序的功能是按顺序读入 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; 上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。这条语句是(分数:2.00)A.
2、sum=0.0B.sum+=scoreC.ave=sun/4.0D.cout“N0“n“:“aveendl;2.下列不能作为类的成员的是(分数:2.00)A.自身类对象的指针B.自身类对象C.数组D.另一个类的对象3.请阅读以下程序 main( ) int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case 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
3、,b=24.在深度为 6 的满二叉树中,叶子结点的个数为(分数:2.00)A.64B.63C.32D.315.下列关于软件设计基本原理的叙述中错误的是(分数:2.00)A.信息隐蔽是指在一个模块内的信息要使所有的模块都能访问得到B.模块的独立程度是评价软件设计好坏的重要标准C.耦合性用于衡量软件的模块独立性D.内聚性用于衡量软件的模块独立性6.有如下程序 main( ) int n5=0,0,0,i,k=2; for(i=0;ik;i+)ni=ni+1; coutnkendl; 该程序的输出结果是(分数:2.00)A.不定值B.2C.1D.07.下列叙述中正确的是(分数:2.00)A.软件测试
4、的主要目的是确定程序中错误的位置B.软件调试的主要目的是发现程序中错误的类型C.程序经调试后还应进行测试D.软件的测试与调试工作最好都由程序编制者来完成8.对于拷贝构造函数和赋值操作的关系,正确的是(分数:2.00)A.拷贝构造函数和赋值操作是完全一样的操作B.进行赋值操作时,会调用类的构造函数C.当调用拷贝构造函数时,类的对象正在被建立并被初始化D.拷贝构造函数和赋值操作不能在同一个类中被同时定义9.下列叙述中正确的是(分数:2.00)A.所有形态的二叉树都只能采用链式存储结构B.循环队列是队列的一种存储方式C.栈只能采用顺序存储结构D.循环队列与循环链表都属于链式存储结构10.设有 cha
5、r str80;以下不能将输入数据 first/nsecond/nCR读取到数组 str 中的语句是(分数:2.00)A.ciget(str,strlen(st);B.cigetline(str,strlen(st);C.cinstr;D.ciread(str,strlen(st);11.下列能对对象进行初始化的是(分数:2.00)A.构造函数B.析构函数C.友元函数D.静态成员函数12.下列关于虚基类的描述中错误的是(分数:2.00)A.虚基类子对象的初始化由最派生类完成B.虚基类子对象的初始化次数与虚基类下面的派生类个数有关C.设置虚基类的目的是消除二义性D.带有虚基类的多层派生类构造函数
6、的成员初始化列表中都要列出对虚基类构造函数调用13.在下列关系运算中,可能改变关系中属性个数的是(分数:2.00)A.并B.差C.投影D.交14.数据库概念设计中,由分散到集中的设计方法是(分数:2.00)A.视图设计B.视图集成设计C.集中式模式设计D.分散式模式设计15.设有如图所示的二叉树 (分数:2.00)A.FCADBEGB.ACBDFGEC.ABDCGEFD.ACBDFEG16.下列关于虚函数与函数重载区别的叙述中不正确的是(分数:2.00)A.函数说明形式上不同B.函数重载允许是非成员函数,虚函数只能是成员函数C.函数重载的调用依据参数和类型的差别,虚函数则依据对象D.函数重载的
7、本体可以在类外定义,虚函数不可以17.已知类 X 成功地重载了- -、+、=、 这几个运算符。则其中肯定属于成员函数的运算符是:(分数:2.00)A.前置- -和 B.=和 C. 和后置- -D.+和=18.关于常成员函数,下列说法中错误的是(分数:2.00)A.常成员函数无法更新对象的数据成员,但可以访问其他类的公用数据成员或全局变量B.常成员函数无法更新对象的数据成员,但是可以更新该对象的常数据成员C.常成员函数既可以被常对象调用,也可以被一般对象调用D.常成员函数不仅要在声明中用到 const 修饰符,在定义时也必须使用 const 修饰符19.将 7 个数据进行插入排序,在最坏情况下需
8、要比较的次数是(分数:2.00)A.42B.6C.7D.2120.下列描述中正确的是(分数:2.00)A.类中可以定义与类名相同的数据成员B.直接子类中可以定义与父类名相同的数据成员C.孙子类中可以定义与爷爷类名相同的数据成员。D.类的所有子孙中都不可以定义与该类同名的数据成员。21.在某类的公共部分有声明 string operator+( );和 string operator+(int);则说明(分数:2.00)A.string operator+( );是前置自增运算符声明B.string( )perator+( );是后置自增运算符声明C.string operator+(in;是前
9、置自增运算符声明D.两条语句无区别22.控制格式输入/输出的操作子中,设置域宽的函数是(分数:2.00)A.wsB.octC.setfill(inD.setw(in23.以下程序的输出结果是 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.1124.解决类继承中产生的二义性的方法不包括(分数:2.00)A.使用作用域运算符限定访问的成员函数B.在派生类中定义同名函数,且参数表必须和基类的保持一致C.在派生类中定义同
10、名函数,且参数表可以和基类的不同D.采用虚基类解决多重继承中的共同基类产生的二义性25.执行下列语句后,输出结果为 steven 的是 char*str=“steven“; eout.write(str, );(分数:2.00)A.strlen(stB.sizeof(stC.strlen(str+1)D.sizeof(str-1)26.下列数据结构中按“先进先出”原则组织数据的是(分数:2.00)A.线性表B.循环队列C.循环链表D.双向链表27.设置虚基类的目的是(分数:2.00)A.简化程序B.消除二义性C.提高程序运行效率D.减少目标代码28.执行语句序列 ofstream outfil
11、e(“DATE.DAT”); if()cout“OK“; else cout“FAIL“后,如果文件打开成功,显示“OK”,否则显示“FAIL“。由此可知,上面 if 语句处的表达式是:(分数:2.00)A.outfilfail( )或 outfileB.outfilgood( )或 outfileC.outfilgood( )或!outfileD.outfilfail( )或!out file29.一个类的友元函数能够访问该类的(分数:2.00)A.私有成员B.保护成员C.公用成员D.所有成员30.要通过函数实现一种不太复杂的功能,并且要求加快执行速度,则应该选用(分数:2.00)A.重载函
12、数B.内联函数C.静态函数D.虚函数31.下面说法正确的是(分数:2.00)A.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方B.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方C.类的内联函数必须在类体内定义D.类的内联函数必须在类体外通过加关键字 inline 定义32.以下说法中错误的是(分数:2.00)A.strcpy(A,函数是将 A 字符串的内容复制到 B 字符串中B.strlen(cha*返回字符串 S 的长度,未尾的字符不计算在内C.char a20=“string“;中字符串长度为 6D.strstr(S1,S2)函数在字符串 S1 中从左边开始查找
13、字符串 S2,若查找成功则返回 S2 在 S1 中首次出现的位置,否则返回 NULL,如果 S2 为“,则返回 S1。33.已知一个运行正常的程序中有下面两个语句: int*p1,p2 p1=b; 由此可知,变量 a 和 b 的类型分别是(分数:2.00)A.int 和 intB.int*和 intC.int 和 int*D.int*和 int*34.下面描述中体现了抽象类特性的语句是(分数:2.00)A.可以说明虚函数B.可以进行构造函数重载C.可以定义友元函数D.不能定义对象35.面向对象的开发方法中,类与对象的关系是(分数:2.00)A.具体与抽象B.抽象与具体C.整体与部分D.部分与整
14、体二、B填空题/B(总题数:15,分数:30.00)36.对 n 个元素的序列进行冒泡排序时,最少的比较次数是 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,具有较
15、高的数据和程序的独立性以及对数据实行集中统一的控制。(分数:2.00)填空项 1:_41.逻辑表达式 x3 ; class Derived:public Base public: 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.h class Myclass public: void GetSum(int a); static int Sum;
16、prtvate: int A; ; int Myclass:Sum=10;/必须在类外部对静态数据成员初始化 void Myclass:GetSum(int a) A=a; Sum+=A: vold PrintSum(Myclass void main( ) Myclass M,N; M.GetSum(3); N.GetSum(7); PrintSum(M); (分数:2.00)填空项 1:_48.下列程序的执行结果为_。 #includeiostream.h class Point public: Point(double i,double j)x=i;y=j; double Area( )
17、constreturn 0.0; private: double x,y; ; class Rectangle:public Point public: Rectangle(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(Point void main( ) Rectangle rec(3
18、.0,5.2,15.0,25.0); fun(rec); (分数:2.00)填空项 1:_49.下列程序用于将源文件中的字母进行大小写转换,while 的条件是_。 #includeiostream.h #includefstream.h #includeiomanip.h void main( ) char ch; fstream filel,file2; char fnl10,fn210; cout“输入源文件名:“; cinfn1; cout“输入目标文件名:“; cinfn2; filel.open(fnl,ios:in); file2.open(fn2,ios:out); while
19、(_) if(ch=a file2.put(ch); filel.close( ); file2.close( ); (分数:2.00)填空项 1:_50.以下程序的执行结果是_。 #ineludeiostream.h class Sample public: 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+笔试 320 答案解析(总分:100.0
20、0,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.以下程序的功能是按顺序读入 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; 上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。这条语句是(分数:2.00)A.sum=0.0 B.sum+=scoreC.ave=
21、sun/4.0D.cout“N0“n“:“aveendl;解析:解析 本题编译没有错误,但是执行结果确实错误的。错误原因在于第一个考生的乘积输入完之后,sun 的值并没有被清空,接着累加第二个考生的分数,随后进行四门平均是错误的。所以需要内层循环和平均值计算完毕后进行 sum 的清空。2.下列不能作为类的成员的是(分数:2.00)A.自身类对象的指针B.自身类对象 C.数组D.另一个类的对象解析:解析 类的数据成员可以是任意类型,包括整型,浮点型、字符型、数组、指针和引用,也可以是类自身的指针,另一个类的对象,但不能是类自身的对象,故 B 项是错误的。3.请阅读以下程序 main( ) int
22、 x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case 0:a+;break; case 1:b+;break; case 2: a+;b+;break; cout“a=“a“b=“bendl; 上面程序的输出结果是(分数:2.00)A.a=2,b=1 B.a=1,b=1C.a=1,b=0D.a=2,b=2解析:解析 本题考察 switch 语句的嵌套,以及 break 语句的使用规则,不再执行下面的 case 语句,如果没有 break 语句,则会顺序执行随后语句。据此,读程序可知,内层 switch 执行 case 0 分支,故 a增 1,跳出
23、内层 switch 后,由于没有 break 语句;随后执行外层 switch 的 case 2 分支,a 又增 1,b 增1。故答案为 A。4.在深度为 6 的满二叉树中,叶子结点的个数为(分数:2.00)A.64B.63C.32 D.31解析:解析 二叉树有一个性质:在二叉树的第 k 层上,最多有 2k-1(k1)个结点。对于满二叉树来说,最后一层上的叶子结点数正好达到最大值。因此,深度为 6 的满二叉树中,叶子结点的个数即是第 6 层上结点数的最大值,为2k-1=26-1=325.下列关于软件设计基本原理的叙述中错误的是(分数:2.00)A.信息隐蔽是指在一个模块内的信息要使所有的模块都
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 笔试 320 答案 解析 DOC
