计算机二级(C++)笔试40_第1页
计算机二级(C++)笔试40_第2页
计算机二级(C++)笔试40_第3页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、模拟计算机二级(C+)笔试40一、选择题 (每小题 2分,共 70分) 下列各题 A 、B 、C 、D 四个选项中,只有一个选项是正确的。第 1 题: 数据结构作为计算机的一门学科,主要研究数据的逻辑结构、对各种数据结构 进行的运算,以及A. 数据的存储结构B. 计算方法C. 数据映象D. 逻辑存储 参考答案: A答案解析:数据结构是研究数据元素及其之间的相互关系和数据运算的一门学科, 它包含3 个方面的内容,即 数据的逻辑结构、存储结构和数据的运算。第 2 题:已知一棵二叉树前序遍历和中序遍历分别为 ABDEGCFH和DBGEACHF贝U该二叉 树的后序遍历为A. GEDHFBCAB. DG

2、EBHFCAC. ABCDEFGHD. ACBFEDHG参考答案: B答案解析::利用前序和中序遍历的方法可以确定二叉树的结构,具体步骤如下:前序遍历的第一个结点A为 树的根结点;中序遍历中A的左边的结点为A的 左子 树,A右边的结点为A的右子树;再分别对A的左右子树 进行上述两步处理, 直 到每个结点都找到正确的位置。第 3 题: 在单链表中,增加头结点的目的是A. 方便运算的实现B. 使单链表至少有一个结点C .标识表结点中首结点的位置D.说明单链表是线性表的链式存储实现参考答案: A 答案解析:头结点不仅标识了表中首结点的位置,而且根据单链表(包含头结点 )的结构,只要掌握了表头, 就能

3、够访问整个链表, 因此增加头结点目的是为了便于运算的 实现。第 4 题:A. 10B. 11C. 12D. 0参考答案: C答案解析::在进入最后一次循环时a=10,在循环体内执行"a+ ;"后a=11,执行完 该次 循环体计算for循环的 增量部分后a=12小于10,循环结束。第 5 题:在软件工程中,白箱测试法可用于测试程序的内部结构。此方法将程序看做是A. 路径的集合B. 循环的集合C. 目标的集合D. 地址的集合参考答案: A答案解析:软件的白盒测试方法是把测试对象看做一个打开的盒子, 它允许测试人员利用 程序内部的逻辑结构 及有关信息,设计或选择测试用例,对程序所

4、有逻辑路径 进行测试。第 6 题: 用链表表示线性表的优点是A. 便于随机存取B. 花费的存储空间较顺序存储少C. 便于插入和删除操作D. 数据元素的物理顺序与逻辑顺序相同参考答案: C答案解析:链式存储结构克服了顺序存储结构的缺点:它的结点空间可以动 态申请和释 放;它的数据元素的 逻辑次序靠结点的指针来指示, 不需要移动数据元素。 故 链式存储结构下的线性表便于插入和删除操作。第 7 题:下面有关 for 循环的正确描述是A. for 循环只能用于循环次数已经确定的情况B. for 循环是先执行循环体语句,后判断表达式C. 在 for 循环中,不能用 break 语句跳出循环体D. for

5、 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来参考答案: D答案解析:选项 A. for 循环可以用于循环次数不确定的情况;选项 B. for 循环是先 判断表达式,后执行循环体语句;选项 C. 在 for 循环中,可以用 break 语句 跳出循环体,从而接着执行循环体后面的语句。第 8 题:应用数据库的主要目的是A. 解决数据保密问题B. 解决数据完整性问题C. 解决数据共享问题D. 解决数据量大的问题 参考答案: C 答案解析:数据库中的数据具有 "集成"与"共享"的特点,亦即是数据库集中了各种应用的数据,进行统一构 造与存储,而使它

6、们可以被不同应用程序所使用,故选项 C. 正确。第 9 题:以下哪个不是C+语言中的有效标识符?A. 34aB. _ABC. A_BD. A25参考答案: A答案解析::考查C+语言标识符规则。【解题要点】在C+语言中,标识符只能由数字,字母,下划线组成, 并且第一个字符不能是数字。 【错解分析】选项 A. 是以 数字开始的。 【考点链接】关键字不能用作标识符。第 10 题:关系模型允许定义 3 类数据约束,下列不属于数据约束的是A. 实体完整性约束B. 参照完整性约束C. 域完整性约束D. 用户自定义的完整性约束 参考答案: C答案解析:关系模型允许定义 3 类数据约束, 它们是实体完整性约

7、束、 参照完整性约束及 用户自定义的完整性 约束。其中前两种完整性约束由关系数据库系统支持,对 于用户自定义的完整性约束,则由关系数据库系统提 供完整性约束语言,用户 利用该语言给出约束条件,运行时由系统自动检查。第 11 题:可以用p.a的形式访问派生类对象p的基类成员a,其中a是A. 私有继承的公有成员B. 公有继承的私有成员C. 公有继承的保护成员D. 公有继承的公有成员参考答案: D答案解析:只有公有继承的公有成员才能被派生类的对象直接访问,其他的 情况都会因 为访问权限问题产生 错误。第 12 题:A. 6 3B. 3 6C. 编译出错D. 0参考答案: B答案解析:第 13 题:

8、下面程序段的运行结果是 void main() ihtt ,a, b, C; a=1 ; b=2; C=2;while(a v bv c)t=a ;a=b;b=t ;c- ; cout vv avv ","vv bvv ","vv C; A. 1,2,0B. 2,1,0C. 1,2,1D. 2,1,1参考答案: A 答案解析::本题中(a vbvc)的运算次序是先算avb,返回1,再运算1vc,返回1,所以 表达式 av bv c 的值为 1 。第 14 题:A. 0B. 1C. 2D. 3参考答案: C答案解析:考查函数含有默认参数时的调用方法。 【解

9、题要点】如果一个函数中有多个 参数,则默认参数应 从右到左逐个定义。 【错解分析】选项 C. 没有给 a 传递 任何的参数,所以是错误的。 【考点链接】函数含有 默认参数时的调用方式。 第 15 题: 下列关系模型中,能使经运算后得到的新关系中属性个数多于原来关系中属性 个数的是A. 选择B. 连接C. 投影D. 并 参考答案: B答案解析:本题考查了专门的关系运算的类型及其相关知识点。 【解题要点】关系代数 中包括传统的集合运 算和专门的关系运算。经过选择或投影运算得到的新关系 的属性个数最多不会超过原关系中的属性个数。经过 连接运算得到的新关系最 多不少于原关系中属性的个数。第 16 题:

10、A. 20B. 261C. 15D. 25参考答案: A答案解析:本题中第 1个 for 循环执行 5次后结束,第 2个 for 循环执行 5次。第 2个 for 循环中第 1 次执行了 6 次,第 2 次执行了 5 次,第 3次执行了 4次,第 4 次 执行了 3次,第 5次执行了 2次,共 20次。第 17 题:A. helloB. theC. worldD. hellotheworld参考答案: B答案解析:本题主要考查的是指针数组和指向指针的指针之间的关系,其中 a 是指针数 组,pa是指向指针数组行的指针,所以 Pa自加1相当于指向下一行。第 18 题:A. 5B. 3C. 2D.

11、0参考答案: C答案解析::本题考查简单的if.else 语句。先执行条件if(a v b),显然不成立,则执 行 else 语句。第 19 题:下列叙述中,正确的是A. 用E-R图能够表示实体集间一对一的联系、一对多的联系和多对多的联系B. 用E-R图只能表示实体集之间一对一的联系C. 用E-R图只能表示实体集之间一对多的联系D. 用E-R图表示的概念数据模型只能转换为关系数据模型参考答案: C答案解析:本题主要考查了用 E-R 图表示实体之间联系的方法。 【解题要点】两个实体 之间的联系实际上是实 体集间的函数关系,这种函数关系可以有下面几种,即 一对一的联系、一对多 (或多对一 ) 的联

12、系和多对多的联 系;概念模型便于向各 种模型转换。 由于概念模型不依赖于具体的数据库管理系统, 因此,容易向关系 模型、 网状模型和层次模型等各种模型转换。第 20 题: 在位运算中,操作数每左移一位,其结果相当于A. 操作数乘以 2B. 操作数除以 2C. 操作数除以4D. 操作数乘以 4参考答案: A 答案解析::左移运算符"V V"是双目运算符,其功能把"V V"左边的运算数的各二进位 全部左移若干位,由"V V"右边的数指定移动的位数,高位丢弃,低位补 0 左移 1 位,相当于该数乘以 2。第 21 题:类A是类B的友元,类B

13、是类C的友元,则下列说法正确的是A. 类B是类A的友元B. 类C是类A的友元C. 类A是类C的友元D. 以上都不对参考答案: D答案解析:选项A.、选项B.和选项C.都不正确,因为友元关系是单项的,并且没有 交换性、传递性。第 22 题:下列说法中,不属于数据模型所描述的内容的是A. 数据结构B. 数据操作C. 数据查询D. 数据约束 参考答案: C答案解析::数据模型所描述的内容有 3 个部分,它们是数据结构、数据操作和数据约束 其中,数据模型中的 数据结构主要描述数据的类型、内容、性质,以及数据库 的联系等;数据操作主要是描述在相应数据结构上的 操作类型与操作方式。第 23 题:若某二叉树

14、的前序遍历访问顺序是 abdgcefh ,中序遍历访问顺序是 dgbaechf , 则其后序遍历的结点访问顺序是A. bdgcefhaB. gdbecfhaC. bdgaechfD. gdbehfca参考答案: D答案解析::前序遍历的第一个结点a为树的根结点;中序遍历中a的左边的结点为a的左 子树,a右边的结点为a的右子树;再分别对a的左右子树进行上述两步处理, 直到每个结点都找到正确的位置。第 24 题: 只能作为成员函数重载的是A. =B. +C. *D. new参考答案: A答案解析:关于重载概念的考查。数重载。【解题要点】C+语言规定"="运算符只能作为成员函第

15、25 题:下列关于运算符重载不正确的是A. 运算符重载不能改变运算符的操作数个数B. 运算符重载不能改变运算符的优先级C. 运算符重载不能改变运算符的结合性D. 运算符重载能改变对预定义类型数据的操作方式参考答案: D答案解析::考查C+语言中操作符重载的概念。 【解题要点】运算符重载的规则是重载时 不能改变运算符的操作数个数, 不能改变运算符的优先级, 不能改变运算符的结 合性,不能改变对预定义类型数据的操作方式。 【考点链接】运算符重载的关 键字是 operator 。第 26 题:A.A:func2() 和 B:func1() 都是虚函数B.A:func2() 和 B:func1() 都

16、不是虚函数C.B:func1() 是虚函数,而 A:func2() 不是虚函数D.B:func1() 不是虚函数,而 A:func2() 是虚函数参考答案: C答案解析:基类中说明的虚函数,在派生类中自然就是虚函数,所以类B中funcl()是虚 函数;而类A中的func 2没有被关键字virtual修饰,所以不是虚函数。第 27 题: 算法的时间复杂度是指A. 执行算法程序所需要的时间B .算法程序的长度C. 算法执行过程中所需要的基本运算次数D. 算法程序中的指令条数 参考答案: C答案解析:算法的复杂度主要包括算法的时间复杂度和算法的空间复杂度。所谓算法 的 时间复杂度是指执行算法所需要的

17、计算工作量; 算法的空间复杂度一般是指执行 这个算法所 需要的内存空间。第 28 题:下列运算符中,在C+语言中不能重载的是A. *B. > =C. :D. /参考答案: C答案解析:不能被重载的运算符还包括: "", "* " , "-> * " 和"?:"第 29 题:C+语言中,表示一条语句结束的标号是A. #B. ;C. /D. 参考答案: B答案解析::C+语言中语句的结束符是分号。第 30 题:A. +i;B. D- ;C. c+;D. -f ; 参考答案: B答案解析:"+&qu

18、ot; ,"-" 运算符不能用于常量第 31 题: 下面对静态数据成员的描述中,正确的是A. 静态数据成员可以在类体内进行初始化B. 静态数据成员不可以被类的对象调用C. 静态数据成员不能受private控制符的作用D. 静态数据成员可以直接用类名调用 参考答案: D答案解析:静态数据成员必须在类体外初始化, 它是类的所有对象的共有成员, 需要使用 类名调用,静态数据 成员的初始化与权限控制无关。第 32 题:A. 0B. 0.25C. 0.5D. 1参考答案: C答案解析:本题考查 if 语句的使用方法。 【解题要点】该表达式的语句是 if( 表达式 1) 语句 1 el

19、se if( 表达式 2) 语句 2 else if( 表达式 3)语句 3 else语句 4 由 if 表达式可知, 题中直接执行 if 语句的第 2条else if(x v 10. 0)y=1 . O/x;。【考点链接】else总是与最近的没有匹配 的 if 匹配。第 33 题:以下哪个基类中的成员函数表示纯虚函数 ?A. virtual void vf(int)B. void vf(int)=0C. virtual void vf(=0)D. virtual void yf(int) 参考答案: B答案解析::C+冲纯虚函数的定义与虚函数的关键字一样,在函数末尾要加上"=0&q

20、uot;第 34 题: 以下定义数组中错误的是A. int a10 ;B. int a220;C. int a20 ;D. iht a ; 参考答案: C答案解析:考查数组的定义方法。 【解题要点】 二维数面的二维不能省略。 【考点链接】 数组的下标是从零 开始的。第 35 题: 下面关于成员函数重载运算符和友元函数重载运算符相同的是A. 成员函数和友元函数可重载的运算符是不相同的B. 成员函数和友元函数重载运算符时都需要用到this指针C. 成员函数和友元函数重载运算符时都需要声明为公有的D. 成员函数和友元函数重载运算符时的参数町能是相同的参考答案: A答案解析:考查C+语言中操作符重载中

21、成员函数重载和友元函数重载的不同。【解题要点】成员函数和友元 函数可重载的运算符有些相同的,有些是不同的,友元函 数没有 this 指针,二者重载相同运算符时的参数肯定 是不同的, 成员函数重载 运算符时都必须声明为公有的。 【考点链接】友元函数的声明关健字是 friend 。、填空题 ( 每空 2 分,共 30 分)第 36 题:软件工程包括 3 个要素,分别为方法、工具和 () 参考答案:过程详细解答:题解命题目的 : 本题考查软件工程的 3 要素。 【解题要点】软件工程包 括 3 个要素,即方法、工具和过程。 方法是完成软件工程项目的基础上的技术手 段;工具支持软件的开发、管理、文档生成

22、;过程支持软件 开发的各个环节的 控制、管理。 【考点链接】软件工程的 3 个要素及各要素的作用。第 37 题:友元类的所有成员函数都是另一个类的 参考答案:友元函数 详细解答::C+语言中友元类中的函数都是另一个类的友元函数第 38 题:若串 s="MathTypes" ,则其子串的数目是 () 参考答案:46详细解答:串 s 中共有 9 个字符,由于串中字符各不相同,则其子串中有 0个字符的 1个 (空串) ,1个字符的 9 个, 2个字符的 8 个,3 个字符的 7 个,4 个字符的 6个,5 个字符的 5 个,6 个字符的 4 个,7 个字符的 3 个,8 个字符

23、的 2 个,9 个字符的 1 个,共有 1+2+3+4 +5+6+7+8+9+1=46。问题,C+语言提供了虚第 39 题: 为解决在多重继承环境中因公共基类带来的 基类机制。参考答案: 二义性详细解答::题解命题目的:关于C+中虚基类的作用。【解题要点】C+中产生虚基 类的作用就是为了解决继承中的二义性问题, 通过虚基类继承可以把父基类中相 同的函数只编译一次。第 40 题:派生类的成员一般分为两部分,一部分是 () ,另一部分是自己定义的新成员。参考答案: 从基类继承的成员 详细解答:派生类的成员由继承的成员和自己定义的成员组成第 41 题:()是C+语言程序的人口 参考答案:main()

24、 函数 详细解答::题解命题目的:考查C+语言的基本概念。【解题要点】main()是C+语 言的人口函数。 【考点链接】 main() 函数可以放在程序的任何位置第 42 题:派生类构造函数的执行顺序是先执行 () 的构造函数,然后执行成员对象的构造 函数,最后执行 () 的构造函数。参考答案:基类 派生类 详细解答:本题主要考查的是派生类构造函数的执行顺序,在 C+语言中构造函数的 执行 顺序足先基类后派生 类,而析构函数的执行顺序正好相反, 是先调用派生 类后调用基类。第 43 题:operator 是运算符重载时必须使用的关键字,它和被重载的运算符连在一起,作为运算符函数的专用函数名,务必把该函数说明为() 的 参考答案:public详细解答:题解命题目的:考查

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论