[计算机类试卷]国家二级(C++)笔试模拟试卷141及答案与解析.doc

上传人:dealItalian200 文档编号:502596 上传时间:2018-11-29 格式:DOC 页数:19 大小:58.50KB
下载 相关 举报
[计算机类试卷]国家二级(C++)笔试模拟试卷141及答案与解析.doc_第1页
第1页 / 共19页
[计算机类试卷]国家二级(C++)笔试模拟试卷141及答案与解析.doc_第2页
第2页 / 共19页
[计算机类试卷]国家二级(C++)笔试模拟试卷141及答案与解析.doc_第3页
第3页 / 共19页
[计算机类试卷]国家二级(C++)笔试模拟试卷141及答案与解析.doc_第4页
第4页 / 共19页
[计算机类试卷]国家二级(C++)笔试模拟试卷141及答案与解析.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

1、国家二级( C+)笔试模拟试卷 141及答案与解析 1 按照 “先进后出 ”原则组织数据的数据结构是 ( )。 ( A)队列 ( B)栈 ( C)双向链表 ( D)二叉树 2 常采用的两种存储结构是 ( )。 ( A)顺序存储结构和链式存储结构 ( B)散列方法和索引方式 ( C)链表存储结构和数组 ( D)线性存储结构和非线性存储结构 3 树是结点的集合,它的根结点的数目是 ( )。 ( A)有且只有 1个 ( B) 1或多于 1 ( C) 0或 1 ( D)至少有 2个 4 已知一个有序线性表 为 (13, 18, 24, 35, 47, 50, 62, 83, 90, 115, 134)

2、,当用二分法查找值为 90的元素时,查找成功的比较次数为 ( )。 ( A) 1 ( B) 2 ( C) 3 ( D) 9 5 结构化程序设计主要强调的是 ( )。 ( A)程序的规模 ( B)程序的效率 ( C)程序设计语言的先进性 ( D)程序的易读性 6 结构化程序设计的核心和基础是 ( )。 ( A)结构化分析方法 ( B)结构化设计方法 ( C)结构化设计理论 ( D)结构化编程方法 7 在面向对象方法中, ( )描述的是具有相似属性与操作的一组对象。 ( A)属性 ( B)事件 ( C)方法 ( D)类 8 需求分析阶段的任务是 ( )。 ( A)软件开发方法 ( B)软件开发工具

3、 ( C)软件开发费用 ( D)软件系统功能 9 有下列二叉树,对此二叉树前序遍历的结果为 ( )。 ( A) ACFXDBEYZ ( B) ABEFXYZCD ( C) ABCDEFXYZ ( D) ABDYECFXZ 10 设 R是一个 2元关系, S是一个 3元关系,则下列运算中正确的是 ( )。 ( A) R-S ( B) RS ( C) RS ( D) R S 11 下列关于 C+函数的叙述中,正确的是 ( )。 ( A)每个函数至少要具有一个参数 ( B)每个函数都必须返回一个值 ( C)函数在被调用之前必须先声明 ( D)函数不能自己调用自己 12 下列运算符不能重载为友元函数的

4、是 ( )。 ( A) () - ( B) + - + - ( C) ( D) + - * / 13 在多继承中,公有派生和私有派生对于基类成员在派生类中的可访问性与单继承的规则 ( )。 ( A)完全相同 ( B)完全不同 ( C)部分相同,部分不同 ( D)以上都不对 14 在下列选项中,没有构成死循环的程序是 ( )。 ( A) int i=100; while(1) i=i%100+1; if(i 100)break; ( B) for(;); ( C) int k=1000; do+k while (k =1000); ( D) int s=36; while(s);-s; 15 下

5、列对派生类的表述中,错误的是 ( )。 ( A)一个派生类可以作为另一个派生类的基类 ( B)派生类至少有一个基类 ( C)派生类的缺省继承方式是 private ( D)派生类只继承了基类的公有成员和保护成员 16 在下面叙述中,不正确的是 ( )。 ( A)一个类的所有对象都有各自的数据成员,它们共享函数成员 ( B)一个类中可以有多个同名的成员函数 ( C)一个类中可以有多个构造函数、多个析构函数 ( D)在一个类中可以声明另一个类的对象作为它的数据成员 17 下列字符串中, 正确的 C+标识符是 ( )。 ( A) foo-1 ( B) 2b ( C) new ( D) _256 18

6、 关于在调用模板函数时模板实参的使用,下列表述正确的是 ( )。 ( A)对于虚拟类型参数所对应的模板实参,如果能从模板函数的实参中获得相同的信息,则都可以省略 ( B)对于虚拟类型参数所对应的模板实参,如果它们是参数表中的最后的若干个参数,则都可以省略 ( C)对于虚拟类型参数所对应的模板实参,若能够省略则必须省略 ( D)对于常规参数所对应的模板实参,任何情况下都不能省略 19 一个类 的友元函数或友元类能够通过成员操作符访问该类的 ( )。 ( A)私有成员 ( B)保护成员 ( C)公有成员 ( D)公用成员、保护成员和私有成员 20 下列关于运算符重载的描述中,正确的是 ( )。 (

7、 A)运算符重载可以改变运算符的操作数的个数 ( B)运算符重载可以改变优先级 ( C)运算符重载可以改变结合性 ( D)运算符重载不可以改变语法结构 21 模板是实现类属机制的一种工具,其功能非常强大,它允许用户构造类属类,即 ( )。 ( A)模板函数 ( B)函数模板 ( C)模 板类 ( D)类模板 22 下面关于 this指针的说法中,不正确的是 ( )。 ( A)当调用类的成员函数时,指针 this被自动传递给该成员函数 ( B)当调用类的成员函数时,指针 this实际上指向了该类的一个对象 ( C)友元函数也可以被传递指针 this ( D)在缺省状态下,所有的成员函数都自动传递

8、一个指针给激活它的对象 23 有如下函数模板定义: template class T T func(T x, T y)return x*x+y*y; 在下列对 func的调用 中,错误的是 ( )。 ( A) func(3, 5); ( B) func(3.0, 5.5); ( C) func(3, 5.5) ( D) func int (3, 5.5); 24 以下关键字不能用来声明类的访问权限的是 ( )。 ( A) public ( B) static ( C) protected ( D) private 25 有如下定义语句: int a=1,2,3,4,5);,则对语句 int *

9、p=a;正确的描述是 ( )。 ( A)语句 int *p=a;定义不正确 ( B)语句 int *p=a;初始化变量 p,使其指向数组对象 a的第一个元素 ( C)语句 int *p=a;是把 a0的值赋给变量 p ( D)语句 int *p=a;是把 a1的值赋给变量 p 26 以下四种说法中,正确的一项是 ( )。 ( A) C+允许在字符串上进行整体操作 ( B)语句: char vn=“Brown“; 将 vn定义成一个有 5个元素的数组,因为“Brown“中含有 5个字符 ( C)对指针只要赋给一个地址值就可以了 ( D)一维的指针数组实际上是一个二维数组 27 下列对于虚函数和重

10、 载函数的叙述,正确的是 ( )。 ( A)虚函数要求函数名、返回值类型和参数序列完全相同 ( B)重载函数要求函数有相同的返回值类型和函数名称,并有不同的参数序列 ( C)虚函数是根据对象的不同去调用不同类的虚函数 ( D)虚函数和重载函数都是在运行时表现出多态功能 28 设有以下说明和定义: #include iostream. h Void main() typedef union long i; int k5; char c; DATE; struct date int cat; DATE cow; double dog; too; DATE max; cout (sizeof(str

11、uct date)+sizeof(max) end1; ( A) 26 ( B) 52 ( C) 18 ( D) 8 29 有如下程序: #include iostream #include iomanip using namespace std; int main() cout.fill(*); cout.width(6); cout.fill(#); cout 123 end1; return 0; 执行生的输出结果是 ( )。 ( A) #123 ( B) 123# ( C) *123 ( D) 123* 30 有如下程序 #include iostream #include ioman

12、ip using namespace std; int main( ) cout setprecision(3) fixed setfill(*) setw(8); cout 12.345 _ 34.567; return 0; 若程序的输出是: *12.345*34.567 则程序中下划线处遗漏的操作符是 ( )。 ( A) setprecision(3) ( B) fixed ( C) setfill(*) ( D) setw(8) 31 下面的描述中,正确的是 ( )。 ( A) virtual可以用来声明虚函数 ( B)含有纯虚函数的类是不可以用来创建对象的,因为它是虚基类 ( C)即

13、使基类的构造函数没有参数,派生类也必须建立构造函数 ( D)静态数据成员可以通过成员初始化列表来初始化 32 如果类 A被说明成类 B的友元, 则 ( )。 ( A)类 A的成员即类 B的成员 ( B)类 B的成员即类 A的成员 ( C)类 A的成员函数不得访问类 B的成员 ( D)类 A的成员函数可以访问类 B的成员 33 带有基类的多层派生类构造函数的成员初始化列表中都要排出虚基类的构造函数,这样将对虚基类的子对象初始 ( )。 ( A)与虚基类下面的派生类个数有关 ( B)多次 ( C)二次 ( D)一次 34 下面程序的运行结果为 ( )。 #include iostream.h vo

14、id swap (int temp=a+; a=b; b=temp; void main() int a=2,b=3; swap(a, b); cout a “,“ b end1; ( A) 2,3 ( B) 3,2 ( C) 2,2 ( D) 3,3 35 有如下程 序: #include iostream using namespace std; class AA int n; public: AA(int k):n (k) int get()return n; int get()constreturn n+1; int main() AA a(5); const AA b(6); cou

15、t a.get()b.get(); return 0; 执行后的输出结果是 ( )。 ( A) 55 ( B) 57 ( C) 75 ( D) 77 36 设一棵二叉树中有 3个叶子结点,有 8个度为 1的结点,则该二叉树牛总的结点数为【 】。 37 类是一个支持集成的抽象数据类型,而对象是类的【 】。 38 结构化设计主要分为系统设计和模块设计,【 】的任务是决定系统的模块结构。 39 一般来说,数据库的设计过程要经历 3个大的阶段,即可行性分析与研究阶段、系统设计阶段、设计实施与系统运行阶段。概念设计、逻辑结构设计、物理结构设计属于数据库设计的【 】阶段。 40 数据流图有两种典型的结构形

16、式,它们分别是变换型和【 】。 41 若有如下程序段: #include iostream using namespace std; int main() char *p=“abcdefgh“,*r; long *q; q=(long *)p;q+; r=(char *)q; cout r end1; return 0; 该程序的输出结果是 _。 42 请将下列类定义补充完整 class Basepublic: void fun()cout “Base:fun“ end1; class Derived:public Base public: void fun() _/显式调用基类的 fun函数

17、 cout “Derived:fun“ end1; ; 43 与成员访问表达式 p- name等价的表达式是 _。 44 有如下程序: #include iostream using namespace std; class AA public: virtual void f() cout “AA“; ; class BB : public AA public: BB() cout “BB“: ; class CC : public BB public: virtual void f() BB:f(): cout “CC“; ; int main ( ) AA aa,*p; BB bb; CC

18、 cc; p= p- f(); return 0; 运行后的输出结果 _。 45 下面程序的输出结果为: Base: fun,请将程序补充完整。 #include iostream.h class Base public: 【 】 fun()cout “Base:fun“ end1: class Derived : public Base public: 【 】 fun() cout “Derived:fun“ end1; ; int main() Base a,*pb; Derived b; pb = pb- fun(); return 0; 国家二级( C+)笔试模拟试卷 141答案与解析

19、 1 【正确答案】 B 【试题解析】 栈是一种特殊的线性表,其插入和删除运算都只在线性表的一端进行,而另一端是封闭的。进行插入、删除的一端称为栈顶,封闭的一端称为栈底。栈顶元素是最后被插入的元素,而栈底元素是最后被 删除的栈,是按 “先进后出 ”的原则组织数据的。 2 【正确答案】 A 【试题解析】 线性表的存储通常要用两种存储结构:顺序存储结构和链式存储结构。 3 【正确答案】 C 【试题解析】 树具有明显的层次关系,即树是一种层次结构。在树结构中,根结点在第一层上。当树为非空时,树中有且只有一个根结点;当树为空时,树中根结点的数目为 0。 4 【正确答案】 B 【试题解析】 根据二分法查找

20、需要两次: 首先将 90与表中间的元素 50进行比较,由于 90大于 50,所以在线性表的后半部分查找; 第二次 比较的元素是后半部分的中间元素,即 90,这时两者相等,即查找成功。 5 【正确答案】 D 【试题解析】 程序不光是编写完就结束了,为了测试和维护程序,往往还有其他人阅读和跟踪程序,因此程序设计的风格应该强调简单和清晰,即程序的易读性, “清晰第一,效率第二 ”。 6 【正确答案】 C 【试题解析】 结构化程序设计的核心和基础是结构化设计理论,其中包括结构化分析方法、结构化设计方法和结构化编程方法。 7 【正确答案】 D 【试题解析】 类 (class)描述的是具有相似属性与操作的

21、一组 对象,而一个具体对象则是其对应类的一个实例。 8 【正确答案】 D 【试题解析】 需求分析是软件定义时期的最后一个阶段,它的基本任务就是详细调查现实世界要处理的对象,充分了解原系统的工作概况,明确用户的各种需求,然后在这些基础上确定新系统的功能。 9 【正确答案】 D 【试题解析】 对二叉树的前序遍历是指先访问根结点,然后访问左子树,最后访问右子树。并且在访问左、右子树时,先访问根结点,再依次访问其左、右子树。记住 3种遍历的顺序: 前序,访问根 按前序遍历左子树 按前序遍历右子树: 中序 ,按中序遍历左子树 访问根 按中序遍历右子树; 后序,按后序遍历左子树 按后序遍历右子树 访问根。

22、 10 【正确答案】 B 【试题解析】 关系的交 ()、并 ( )和差 (-)运算要求两个关系是同元的,显然作为二元的 R和三元 S只能做笛卡尔积运算。 11 【正确答案】 C 12 【正确答案】 A 13 【正确答案】 A 14 【正确答案】 C 15 【正确答案】 D 16 【正确答案】 C 17 【正确答案】 D 18 【正确答案】 D 19 【正确答案】 D 20 【正确答案】 D 21 【正确答案】 C 22 【正确答案】 C 23 【正确答案】 C 24 【正确答案】 B 25 【正确答案】 B 26 【正确答案】 A 27 【正确答案】 D 28 【正确答案】 B 29 【正确答

23、案】 A 30 【正确答案】 D 31 【正确答案】 A 32 【正确答案】 D 33 【正确答案】 D 34 【正确答案】 D 35 【正确答案】 B 36 【正确答案】 13 【试题解析】 根据二叉树的性质 3: 在任意一棵二叉树中,度为 0的结点 (即叶子结点 )总是比度为 2的结点多一个。本题中的二叉树有 3个叶子结点,所以,该二叉树有 3-1=2个度为 2的结点;又知本题中的二叉树有 8个度为 1的结点。所以,本题中的二叉树总结点数为叶子结点数 +度为 1的结点数 +度为 2的结点数 =3+8+2=13.所以,本题的正确答案为 13。 37 【正确答案】 实例 【试题解析】 在面向对

24、象的程序设计中,类描述的是具有相似性质的一组对象,而一个具体对象称为类的实例。 38 【正确答案】 系统设计 【试题解析】 结构化设计主要 分为系统设计和模块设计。系统设计的任务是决定系统的模块结构;模块设计的任务是具体考虑每一个模块内部采用什么算法,模块的输入、输出以及该模块的功能。 39 【正确答案】 系统设计 【试题解析】 数据库的设计过程要经历 3个阶段:可行性分析与研究阶段、系统设计阶段、设计实施与系统运行阶段系统设计阶段是系统的具体设计过程,主要包括概念设计、逻辑结构设计、物理结构设计 3个步骤。这 3个不同层次上的设计过程,是把实体以及相互之间的联系转换为 “数据 ”并落实于计算

25、机中。数据库设计中的主要技术工作在这个阶段中完成。 40 【正确答案】 事务型 【试题解析】 数据流图中有众多的加工,但必有一个加工是起核心作用的,这样的加工称为中心加工。由数据流图导出结构图的关键是找出中心加工。一般来说,中心加工有两种存在形态,即数据流图有两种典型的结构形式:一种是变换型,另一种是事务型。 41 【正确答案】 efgh 【试题解析】 本题定义了一个字符型指针变量 p,并通过赋初值让它指向了一个字符串,还定义了另一个字符型指针变量 r和一个长整型指针变量 q。首先通过语句 “a=(long*)p;”,把 p的地址值强制转换为长整 型地址值并赋值给小然后执行“q+”,地址值增加

26、了 4,执行语句 “r=(char*)q;”,把长整型指针变量 q的值再强制转换成字符型地址值并赋给 r, r的值应为字符串中字符 “e”的地址。最后输出 r指向的字符串。 42 【正确答案】 Base:fun(); 【试题解析】 本题考核虚基类。作用域分辨符号是 “:”,它可以用来限定要访问的成员所在的类的名称。一般来说,在派生类中对基类成员的访问应该是惟一的。但是,多继承情况下可能造成对基类中某个成员的访问出现不惟一的情况,通过使用对象作用域分辨符可以解决这 种对基类成员访问的;义性问题。 43 【正确答案】 (*p).name 【试题解析】 本题考核对象指针的定义与使用。一个基类型为类类

27、型的指针称为对象指针。对于指向对象的指针,下面两种表示方式是等价的: 对象指针名 -成员名; (*对象指针名 )成员名; 44 【正确答案】 BBBBAACC 【试题解析】 本题考核虚函数。本题中,函数 f()在基类 AA和派生类 CC中都声明为虚函数,所以采用动态联编。主函数首先定义类 AA的对象 aa和指针对象p,然后定义了类 BB的对象 bb,此时调用了 类 BB的构造函数输出 BB。再定义类 CC的对象 cc,由于类 CC是类 BB的派生类,所以此时又调用类 BB的构造函数输出 BB。最后执行语句 “p=&cc; p- f(); ”,输出 AA和 CC。 45 【正确答案】 virtual void void 【试题解析】 本题考核虚函数的使用。在 C+中,一个基类指针 (或引用 )可以用于指向它的派生类对象,而且通过这样的指针 (或引用 )调用虚函数时,被调用的是该指针 (或引用 )实际指向的对象类的那个重定义版本,这样的调用称为多态调用。基类 Base和派生类 Derived中都定义了成员函数 fun,但是有不同的实现。程序最后输出的结果为: Base:fun,表明通过对象指针 pb调用的函数版本为派生类中定义的,只有把基类的 fun函数定义为虚函数,才能满足要求。同时通过函数 fun的定义可知函数的返回类型为 void。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1