【计算机类职业资格】二级C++笔试-152及答案解析.doc
《【计算机类职业资格】二级C++笔试-152及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++笔试-152及答案解析.doc(25页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+笔试-152 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.下列关于虚函数与函数重载区别的叙述中不正确的是(分数:2.00)A.函数说明形式上不同B.函数重载允许是非成员函数,虚函数只能是成员函数C.函数重载的调用依据参数和类型的差别,虚函数则依据对象D.函数重载的本体可以在类外定义,虚函数不可以2.下列能对对象进行初始化的是(分数:2.00)A.构造函数B.析构函数C.友元函数D.静态成员函数3.执行下列程序时输入 123空格456空格789回车,输出结果是main()char s100; int c. i;scanf(“%c
2、“, scanf(“%d“, scan(“%s“, s);printf(“%c, %d, %s/n“, c,i,s);(分数:2.00)A.123,456,789B.1,456.789C.1,23,456,789D.1,23,4564.将 7 个数据进行插入排序,在最坏情况下需要比较的次数是(分数:2.00)A.42B.6C.7D.215.已知一个运行正常的的程序中有下面两个语句:int *p1, *p2P1=b由此可知,变量 a 和 b 的类型分别是(分数:2.00)A.int 和 intB.int*和 intC.int 和 int*D.int*和 int6.下列描述中正确的是(分数:2.0
3、0)A.类中可以定义与类名相同的数据成员B.直接于类中可以定义与父类名相同的数据成员C.孙子类中可以定义与爷爷类名相同的数据成员。D.类的所有子孙中都不可以定义与该类同名的数据成员。7.以下程序的功能是按顺序读入 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.0cout“No“n“:“aveend1;上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位
4、置不正确。这条语句是(分数:2.00)A.sum=0.0B.sum+=scoreC.ave=sun/4.0D.cout“No“n“:“aveend1;8.在深度为 6 的满二叉树中,叶子结点的个数为(分数:2.00)A.64B.63C.32D.319.下列叙述中正确的是(分数:2.00)A.所有形态的二叉树都只能采用链式存储结构B.循环队列是队列的一种存储方式C.栈只能采用顺序存储结构D.循环队列与循环链表都属于链式存储结构10.设有如图所示的二叉树(分数:2.00)A.B.C.D.11.设置虚基类的目的是(分数:2.00)A.简化程序B.消除二义性C.提高程序运行效率D.减少目杯代码12.以
5、下程序的输出结果是main( )int i=0,a=0:while(i20)for:)if(i%10)=0)break;else i-;i+=11;a+=i;coutaend1;(分数:2.00)A.21B.32C.33D.1113.设有 char str80以下不能将输入数据 first/nsecond/nCR读取到数组 sir 中的语句是(分数:2.00)A.cin.get(str, strlen(str);B.cin.getline(str, strlen(str);C.cinstr;D.cin.read(str, strlen(str);14.若有以下定义和语句int a4,b=3,*
6、p, *q, *w;p= q w=q; qNULL;则以下选项中错误的语句是(分数:2.00)A.*q=0B.w=pC.*p=a;D.*p=*w;15.下列关于软件设计基本原理的叙述中错误的是(分数:2.00)A.信息隐蔽是指在一个模块内的信息要使所有的模块都能访问得到B.模块的独立程度是评价软件设计好坏的重要标准C.耦合性用于衡量软件的模块独立性D.内聚性用于衡量软件的模块独立性16.下列有关程序设计的原则中错误的是(分数:2.00)A.对所有的输入数据都要检查数据的合法性B.输入一批数据时,最好使用数据结束标志C.对于不好的程序,尽量重新编写,避免修补D.输出数据要干净,避免加注释17.下
7、列不能作为类的成员的是(分数:2.00)A.自身类对象的指针B.自身类对象C.自身类对象的引用D.另一个类的对象18.一个类的友元函数能够访问该类的(分数:2.00)A.私有成员B.保护成员C.公用成员D.所有成员19.以下有关类与结构体关系的叙述不正确的是(分数:2.00)A.结构体中只包含数据;类中封装了数据和操作B.结构体的成员对外界通常是开放的;类的成员可以被隐蔽C.用 struct 不能声明一个类型名;而 class 可以声明一个类名D.结构体成员默认为 public;类成员默认为 private20.请阅读以下程序main( )int x=1. y=0, a=0, b=0:swit
8、ch(x)case 1:switch(y)case 0: a+; break;case 1: b+; break;case 2:a+; b+; break;cout“a=“a“b=“bend1;上面程序的输出结果是(分数:2.00)A.a=2, b=1B.a=1, b=1C.a=1. b=0D.a=2. b=221.下面说法正确的是(分数:2.00)A.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方B.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方C.类的内联函数必须在类体内定义D.类的内联函数必须在类体外通过加关键字 inline 定义22.控制格式输入/输出的操
9、作子中,设置域宽的的函数足(分数:2.00)A.wsB.octC.setfilll(int)D.setw(int)23.下列数据结构中按“先进先出”原则组织数据的是(分数:2.00)A.线性表B.循环队列C.循环链表D.双向链表24.下面描述中体现了抽象类特性的语句是(分数:2.00)A.可以说明虚函数B.可以进行构造函数重栽C.可以定义友元函数D.不能说明其对象25.对于拷贝构造函数和赋值操作的关系,正确的是(分数:2.00)A.拷贝构造函数和赋值操作是完全一样的操作B.进行赋值操作时,会调用类的构造函数C.当调用拷贝构造函数时,类的对象正在被建立并被初始化D.拷贝构造函数和赋值操作不能在同
10、一个类中被同时定义26.有如下程序 main( )int n5=0,0,0,i, k=2;for(i=0 ik i+)ni=ni+1;coutnkend1;该程序的输出结果是(分数:2.00)A.不定值B.2C.1D.027.解决类继承中产生的二义性的方法不包括(分数:2.00)A.使用作用城运算符限定访问的成员函数B.在派生类中定义同名函数,且参数表必须和基类的保持一致C.在派生类中定义同名函数,且参数表可以和基类的不同D.采用虚基类解决多重继承中的共同基类产生的二义性28.要通过函数实现一种不太复杂的功能,并且要求加快执行速度,则应该选用(分数:2.00)A.重载函数B.内联函数C.静态函
11、数D.虚函数29.关于常成员函数,下列说法中错误的是(分数:2.00)A.常成员函数无法更新对象的数据成员,但可以访问其他类的公用数据成员或全局变量B.常成员函数无法更新对象的数据成员,但是可以更新该对象的常数据成员C.常成员函数既可以被常对象调用,也可以被一般对象调用D.常成员函数不仅要在声明中用到 const 修饰符,在定义时也必须使用 const 修饰苻30.在下列关系运算中,可能改变关系中属性个数的是(分数:2.00)A.并B.差C.投影D.交31.在某类的公共部分有声明 string operator+();和 string operator+(int);则说明(分数:2.00)A.
12、string operator+();是前置自增运算符声明B.string operator+();是后置自增运算符声明C.string operator+(int); 是前置自增运算符声明D.两条语句无区别32.执行下列语句后,输出结果为 steven 的是Char * str=“steven“;cout. write(str, );(分数:2.00)A.strlen(str)B.sizeof(str)C.strlen(str+1)D.sizeof(str-1)33.下列叙述中正确的是(分数:2.00)A.软件测试的主要目的是确定程序中错误的位置B.软件调试的主要目的是发现程序中错误的类型C
13、.程序经调试后还应进行测试D.软件的测试与调试工,作最好都由程序编制者来完成34.数据库概念设计中,由分散到集中的设计方法是(分数:2.00)A.视图设计B.视图集成设计C.集中式模式设计D.分数式模式设计35.下列关于虚基类的描述中错误的是(分数:2.00)A.虚基类子对象的初始化由最派生类完成B.虚基类子对象的初始化次数与虚基类下面的派生类个数有关C.设置虚基类的目的是消除二义性D.带有虚基类的多层派生类构造函数的成员初始化列表中都要列出对虚基类构造函数调用二、填空题(总题数:15,分数:30.00)36.数据结构分为线性结构和非线性结构,其中循环链表属于 【1】 。(分数:2.00)填空
14、项 1:_37.程序设计分为面向过程程序设计和面向对象程序设计,具有继承性特点的程序设计称为 【2】 程序设计。(分数:2.00)填空项 1:_38.为了在两个关系中提取所有相同的元组,则在交与并这两种关系运算中,应使用 【3】 运算。(分数:2.00)填空项 1:_39.在算法执行过程中所需要的基本运算次数称为算法的 【4】 复杂度。(分数:2.00)填空项 1:_40.数据模型分为格式化模型和非格式化模型,则关系模型属于 【5】 模型。(分数:2.00)填空项 1:_41.逻辑表达式 x3 ; class Derived: public Basepublic:void f(char * s
15、tr) cout“Derived:“strend1; void main(void)Base * pd=new Base;pd=new Derived;pd-f(a)(分数:2.00)填空项 1:_47.下列程序的执行结果是 【12】 。#include iostream. hclass Myclasspublic:void GetSum(int a)static int Sum:private:int A;int Myclass: Sum =10; /必须在类外部对静态数据成员初始化void Myelass: :GetSum(int a)A=a;Sum+=A;void PrintSum(My
16、classvoid main( )Myclass M,N;M. GetSum(3)N. GetSum(7)PrintSum(M);(分数:2.00)填空项 1:_48.下列程序的执行结果为 【13】 。#include iostream. hclass Pointpublic:Point(double i, double j) x=i; y=j;double Area() const return 0.0;private:double x, y;class Rectangle: public Pointpublic:Rectangle(double i, double j, double k,
17、 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=1void fun(Point void main( )Rectangle rec(3.0, 5.2, 15.0. 25.0);fun(rec)(分数:2.00)填空项 1:_49.下列程序用于将源文件中的字母进行大小写转换,while 的条件是 【14】 。#includeiostream. h#includ
18、efstream. h#includeiomanip. hvoid main( )char ch;fstream filel, file2char fn110, fn210;cout“输入源文件名:“;cinfn1cout“输入目标文件名:“;tinfn2file1, open(fn1 ,ios: :in);file2, open(fn2, ios: out);while(_)if(ch=a(分数:2.00)填空项 1:_50.以下程序的执行结果是 【15】 。#includeiostream. hclass Samplepublic:int x:int y;void disp()cout“x
19、=“x“,y=“yend1;void main()int Sample: * pc;Sample s;pc=s.*pc=10;pc:=s.*pc=20;s.disp();(分数:2.00)填空项 1:_二级 C+笔试-152 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.下列关于虚函数与函数重载区别的叙述中不正确的是(分数:2.00)A.函数说明形式上不同B.函数重载允许是非成员函数,虚函数只能是成员函数C.函数重载的调用依据参数和类型的差别,虚函数则依据对象D.函数重载的本体可以在类外定义,虚函数不可以 解析:解析 虚函数和函数重载的区别
20、比较大,只要清楚各个概念的基本知识就足以判断出本题的正确答案为,D。2.下列能对对象进行初始化的是(分数:2.00)A.构造函数 B.析构函数C.友元函数D.静态成员函数解析:解析 对象的初始化工作由构造函数来完成,析构函数则完成对象销毁前的资源回收等工作。静态成员函数为同一类中所有对象所共享。3.执行下列程序时输入 123空格456空格789回车,输出结果是main()char s100; int c. i;scanf(“%c“, scanf(“%d“, scan(“%s“, s);printf(“%c, %d, %s/n“, c,i,s);(分数:2.00)A.123,456,789B.1
21、,456.789C.1,23,456,789D.1,23,456 解析:解析 本题实质是考察 C 语言中的格式化输入和输出。在 C+中,输入和输出控制的简易性有了很大提高,无需用户小心输入,而是由编译系统判断其辅人和输出格式。自行进行相应的处理。4.将 7 个数据进行插入排序,在最坏情况下需要比较的次数是(分数:2.00)A.42B.6C.7D.21 解析:解析 对长度为 n 的线性表进行插入排序,在最坏情况下需要 n(n-1)/2 次比较,现线性表的长度为?,在最坏情况下需要比较的次数为 7(7-1)/2=21。5.已知一个运行正常的的程序中有下面两个语句:int *p1, *p2P1=b由
22、此可知,变量 a 和 b 的类型分别是(分数:2.00)A.int 和 intB.int*和 intC.int 和 int* D.int*和 int解析:解析 本题乍一看让人迷惑,如果找到切入点就可以简单快速的解答本题;观察四个选项可知,变量 a 和 b 的四种组合分别是四个选项。很明显指针在做值使用时需要加星号修饰,即如*p1 =整数变量的形式。故 b 不可能是 int 型,故可排除 A 和 B。另外需要注意的是变量的初始化和赋值是不同的P2 在声明时就指向变量 a,其值为 a 的地址;因此,变量 a 应为 int 型,故正确答案为 C。6.下列描述中正确的是(分数:2.00)A.类中可以定
23、义与类名相同的数据成员B.直接于类中可以定义与父类名相同的数据成员C.孙子类中可以定义与爷爷类名相同的数据成员。 D.类的所有子孙中都不可以定义与该类同名的数据成员。解析:解析 本题所有选项中均提到了同名数据成员的现象。是否允许同名数据成员存在,关键要看这种同名现象编译器是否能够判断出采,如果可以判断,则是允许的,否则则是禁止的。7.以下程序的功能是按顺序读入 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
24、;sum+=score;ave= sum/4.0cout“No“n“:“aveend1;上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。这条语句是(分数:2.00)A.sum=0.0 B.sum+=scoreC.ave=sun/4.0D.cout“No“n“:“aveend1;解析:解析 本题编译没有错误,但是执行结果确实错误的。细心的考生可以发现,第一个考生的乘积输入完之后,sun 的值并没有被清空,接着累加第二个考生的分数,随后进行四门平均是错误的,所以需要内层循环和平均值计算完毕后进行 sum 的清空。8.在深度为 6 的满二叉树中,叶子结点的个数为(分数:2.0
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 笔试 152 答案 解析 DOC
