【计算机类职业资格】二级C++笔试-244及答案解析.doc
《【计算机类职业资格】二级C++笔试-244及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++笔试-244及答案解析.doc(25页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+笔试-244 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.设有定义class Cpublic:int value;int x, * p;则以下引用形式中,正确的是(分数:2.00)A.x=value;B.x=C: :value;C.p=if(ab)if(b! =15)if( ! ok1)elseif(ok2) x= 10x=-1coutxend1;(分数:2.00)A.-1B.0C.1D.不确定的值3.已知一函数的形参说明为 int arr56,则与此等效的形参说明为(分数:2.00)A.int arrB.int5C.int
2、*a6D.int (*a)64.以下叙述中正确的是(分数:2.00)A.在类中,不作特别说明的数据成员均为私有类型B.在类中,不作特别说明的成员函数均为公有类型C.类成员的定义必须是成员变量在前、成员函数在后D.类成员的定义必须放在类定义体内部5.在最坏情况下,下列各排序方法的比较次数正确的是(分数:2.00)A.冒泡排序为 n/2B.冒泡排序为 n(n+1)/2C.快速排序为 n/2D.快速排序为 n(n-1)/26.以下选项中,与 k=n+完全等价的表达式是(分数:2.00)A.kn,nn+1B.nn+1,knC.k=+nD.k+=n+17.若有以下定义和语句int a=4.b=3. *
3、p, * q, * w;p=q= w=q;q=NULL;则以下选项中错误的语句是(分数:2.00)A.*q=0;B.w=p;C.*p=a;D.*p=* w;8.为了培养良好的程序设计风格,下列描述中正确的是(分数:2.00)A.程序应简单、清晰、可读性好B.符号名的命名只要符合语法C.充分考虑程序的执行效率D.程序的注释可有可无9.下列描述中正确的是(分数:2.00)A.多重继承中,不同父类中不能有同名成员B.多重派生中,所有父类的派生方式必须相同C.多重派生的子类不能再派生子类D.上述三种说法都不对10.下列叙述中正确的是(分数:2.00)A.数据的逻辑结构与存储结构必定是一一对应的B.由于
4、计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构C.程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线性结构D.以上三种说法都不对11.假定有下列变量定义:int k=7,x=12;则能使值为 0 的表达式是(分数:2.00)A.x*=k-k%5B.x*=(k-k%5)C.x%=(k-=5)D.(x-=k)-(k+=5)12.下列关于抽象类的叙述不正确的是(分数:2.00)A.含有纯虚函数的类称作抽象类B.抽象类只能是基类C.抽象类不能被实例化D.纯虚函数可以被继承13.下列叙述中正确的是(分数:2.00)A.接口复杂的模块,其耦合程度一定低B.耦合程度弱的模
5、块,其内聚程度一定高C.耦合程度弱的模块,其内聚程度一定低D.上述三种说法都不对14.下列有关类和对象的叙述不正确的是(分数:2.00)A.任何一个对象都归属于一个具体的类B.类与对象的关系和数据类型与变量的关系相似C.类的数据成员不允许是另一个类的对象D.一个类可以被实例化成多个对象15.下面的程序的结果是main()int x3,y0,z=0;if(xy+z)cout“* * * *“;else cout“# # # #“;(分数:2.00)A.有语法错误不能通过编译B.输出* * * *C.可以通过编译,但是不能通过连接,因而不能运行D.输出# # # #16.即当基类本身也是某一个类的
6、派生类时,底层的派生类也会自动继承间接基类的成员,这说明继承具有(分数:2.00)A.规律性B.传递性C.重复性D.多样性17.以下使用不当会破坏面向程序设计特性的是(分数:2.00)A.派生类B.虚函数C.抽象类D.静态函数18.下面关于 for 循环的正确描述是(分数:2.00)A.for 循环只能用于循环次数已经确定的情况B.for 循环是先执行循环体语句,后判断表达式C.在 for 循环中,不能用 break 语句跳出循环体D.for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来19.若有以下程序段:int a0,b0,c=0;c=(a-a-5),(ab,b+3);cou
7、ta“,“b“,“cendl;其输出结果是(分数:2.00)A.3,0,-10B.0,0,5C.-10,3,-10D.3,0,320.软件调试的目的是(分数:2.00)A.发现错误B.改正错误C.改善软件的性能D.挖掘软件的潜能21.以下关于派生机制的描述中,不正确的是(分数:2.00)A.派生类不仅可以继承基类的成员,也可以添加自已的成员B.设置 protected 成员是为派生类访问基类成员之用C.采用不同的继承方式,将限制派生类对基类成员的访问D.采用私有继承,派生类只能得到基类的公有成员22.已知 char a; int b; float c; double d; 则表达式 a*b+c
8、-d 结果为(分数:2.00)A.doubleB.intC.floatD.char23.以下叙述中不正确的是(分数:2.00)A.一个类的友元函数可以无条件的使用这个类的私有成员B.静态成员函数可以直接访问非静态数据成员C.不可以声明抽象类的对象,但可以声明抽象类的指针变量D.静态数据成员为类的所有对象所共有24.析构函数的特征包括(分数:2.00)A.一个类中只能定义一个析构函数B.析构函数与类名没有关系C.析构函数的定义只能在类体内部D.析构函数可以有一个或多个参数25.对于 int a37下列表示中错误的是(分数:2.00)A.*(*a+3)B.*(a+1)5C.*(*(a+1)D.*(
9、 中,p 的值是(分数:2.00)A.变量 a 的地址值B.无意义C.变量 p 的地址值D.331.有以下程序(分数:2.00)A.7,8,8B.7.8,7C.8,7,7D.8.7,832.按“先进后出”原则组织数据的结构是(分数:2.00)A.有序表B.栈C.队列D.二叉树33.下面的描述中错误的是(分数:2.00)A.调用函数时,实参可以是表达式B.调用函数时,实参与形参可以共用内存单元C.调用函数时,将为形参分配内存单元D.调用函数时,实参与形参的类型必须一致34.在文件操作中,代表以追加方式打开文件的模式是(分数:2.00)A.ios: :ateB.ios: :appC.ios: :o
10、utD.ios: :trunc35.对下列二叉树进行中序遍历的结果是(分数:2.00)A.ZBTYCPXAB.ATBZXCYPC.ZBTACYXPD.ATBZXCPY二、填空题(总题数:15,分数:30.00)36.在深度为 5 的完全二叉树中,叶子结点的个数最多为 【1】 。(分数:2.00)填空项 1:_37.在一个容量为 25 的循环队列中,若头指针 front15,尾指针 rear=6,则该循环队列中共有 【2】 个元素。(分数:2.00)填空项 1:_38.符合结构化原则的三种基本控制结构为:顺序结构,选择结构和 【3】 。(分数:2.00)填空项 1:_39.在结构化分析方法中,用
11、于描述系统中所用到的全部数据和文件的文档称为 【4】 。(分数:2.00)填空项 1:_40.数据库管理最本质的特点是实现数据的共享。为了实现数据的共享,保证数据的独立性、完整性和安全性,需要有一组软件来管理数据库中的数据,处理用户对数据库的访问,这组软件称为 【5】 。(分数:2.00)填空项 1:_41.假定要访问一个结构指针 p 所指对象中的 b 指针成员所指的对象,则表示方法为 【6】 。(分数:2.00)填空项 1:_42.设 px 是指向一个类动态对象的指针变量,则执行“delete px;“语句时,将自动调用该类的 【7】 。(分数:2.00)填空项 1:_43.若需要把一个函数
12、“void Func();“定义为一个类 Sample 的友元函数,则应在类 Sample 的定义中加入一条语句 【8】 。(分数:2.00)填空项 1:_44.类 class one 在声明 func 成员函数时发生错误,出错原因是 【9】 。Class oneprivate:int a;public:void func(twoclass twoprivate:int b;friend void one: :func(two ;void one: : func(two(分数:2.00)填空项 1:_45.下列程序从保存整数的文本文件“c:Sample. dat“中依次取出每个数据并显示出来,
13、同时统计并显示出所有数据的个数。程序划线处的表达式为 【10】 。#includestream, h#includestdlib, hvoid main( )ifstream fin (“c: Sample. dat“ , ios: :nocreate);if( ! fin)cerr“文件无法打开!“end1;exit(1);int x,i=0;while(_)coutx“;i+;fin. close( );coutendl“文件中所有整数个数:“iend1;(分数:2.00)填空项 1:_46.类中包含了一个静态成员函数,则 main 函数中和 P. f1 (P); 语句具有同样功能的语句为
14、 【11】 。#include iostream. hclass Mpublic,M(int a) A=a; B+=a;static void f1(M m)private:int A;static int B:void M: :f1(M m)cout“A=“m. Aendl;cout“B=“m. Bendl;int M: :B=10,void main( )M P(5);P. f1(P);(分数:2.00)填空项 1:_47.main 函数中发生编译错误的语句是 【12】 。# include iostream. hclass Apublic:int a;const int b:A() :a
15、(10) ,b(20) void fun() constcout“a=“a“/tb=“bend1;void main( )A obj1;const A * ptr = new A:ptr = ptr-a=lO0;ptr-fun(),(分数:2.00)填空项 1:_48.下列程序中的重载函数 disp( )发生错误,错误原因是 【13】 。# includeiostream, hclass Sampleprivate:int m;static int sr;public:Sample(int a) m=a; st+=a; static void disp()coutmend1; static v
16、oid disp(Sample input)coutinput. mend1;int Sample: : st=2;void main()Sample Eirst(2), Second(4)Sample: :disp( );Sample: :disp (Second);(分数:2.00)填空项 1:_49.类 time 可以输出 12 小时或 24 小时制的时间,现需要设计一个缺省构造函数,缺省值为 0 时 0 分 0 秒。该缺省构造函数为 【14】 。# includeiostream. hclass Timeint h.m,s;public:Time(int hour=0 .int min
17、=0 ,int sec=0) settime(hour,min,sec);void settime(int hour,int min,int sec) h=hour; m=min s=sec;void show24()cout(h1O?“0“:“)h“:“(m10?“0“:“)m“:“MM(s10?“0“:“)send1void show12( )int temp=(h=h=12)? 12:h%12;cout(temp10?“0“:“)temp“:“(m10?“0“:“)m“:“(s10? “0“:“)s(temp0 void main()Time t(15,43,21)t. show12()
18、:t. show24()(分数:2.00)填空项 1:_50.在下列基类的定义中,有无 virtual 修饰 use 成员函数的结果将不同,其原因是 【15】 。当 use()为虚拟函数时的程序执行结果: sizeof (A)=8sizeof (B)=12sizeof (C)=16当 use()非虚拟函数时的程序执行结果: sizeof(A)=4sizeof(B)=8sizeof(C)=12源程序如下:#include iostream. hclass Grandadpublic:Grandad(): money(10) int money;virtual void use() ,class
19、Father: public Grandadpublic:Father( ), money(100) int money;void use() ;class Son: public Fatherpublic:Son(): money(300)int money;void use();void main(void)Grandad A: Father B; Son C;cout “sizeof(A)=“sizeof(A)end1;cout “sizeof(B)=“sizeof(B)end1;cout “sizeof(C)=“sizeof(C)end1(分数:2.00)填空项 1:_二级 C+笔试-
20、244 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.设有定义class Cpublic:int value;int x, * p;则以下引用形式中,正确的是(分数:2.00)A.x=value;B.x=C: :value; C.p=if(ab)if(b! =15)if( ! ok1)elseif(ok2) x= 10x=-1coutxend1;(分数:2.00)A.-1 B.0C.1D.不确定的值解析:解析 本题考察订语句的嵌套,else 总是与最近的那个 if 配对,只要考生按照逻辑表达式的值进行细心判断就可以得到正确的答案。考生需要注
21、意的是,在 C+语言中,0 表示假,非 0 即为真,因此可以用数字作为逻辑判断的依据。3.已知一函数的形参说明为 int arr56,则与此等效的形参说明为(分数:2.00)A.int arrB.int5C.int *a6D.int (*a)6 解析:解析 二维数组可以看作是一维数组的扩展。选项 D 表示的是一个一维数不清组,里面每个元素是一个指针,而指针肯定指向某个地址,从而完成二维数组的扩展。考生要注意选项 C 中*和的运算优先级。4.以下叙述中正确的是(分数:2.00)A.在类中,不作特别说明的数据成员均为私有类型 B.在类中,不作特别说明的成员函数均为公有类型C.类成员的定义必须是成员
22、变量在前、成员函数在后D.类成员的定义必须放在类定义体内部解析:解析 类中默认的类型是私有类型,除非特别指定为公有或保护类型。同时,并没有强制要求成员函数和数据成员的排列顺序,如果类的成员函数在类定义体内部定义,则为内联函数,一般类的成员函数都在类定义体的外部实现。5.在最坏情况下,下列各排序方法的比较次数正确的是(分数:2.00)A.冒泡排序为 n/2B.冒泡排序为 n(n+1)/2C.快速排序为 n/2D.快速排序为 n(n-1)/2 解析:解析 在最坏情况下,冒泡排序的比较次数为 n(n-1/2;快速排序的比较次数也为 n(n-1)/2。6.以下选项中,与 k=n+完全等价的表达式是(分
23、数:2.00)A.kn,nn+1 B.nn+1,knC.k=+nD.k+=n+1解析:解析 本题考察自增运算符和赋值运算符的运算顺序。考生要注意区分+n 和 n+的区别。7.若有以下定义和语句int a=4.b=3. * p, * q, * w;p=q= w=q;q=NULL;则以下选项中错误的语句是(分数:2.00)A.*q=0;B.w=p;C.*p=a;D.*p=* w; 解析:解析 考生遇到这么复杂的变量间关系时,可以在草稿纸上画出各个变量的内存存放示意图,然后用箭头指向表示指针变量与其他变量之间的关系。如果能够清晰的画出这些变量间关系,则可以会让你容易的判断出正确答案为 D。8.为了培
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 笔试 244 答案 解析 DOC
