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

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

1、国家二级( C+)笔试模拟试卷 235及答案与解析 1 下列说法中错误的是 ( )。 ( A)公有继承时基类中的 public成员在派生类中仍是 public的 ( B)公有继承时基类中的 private成员在派生类中仍是 private的 ( C)私有继承时基类中的 public成员在派生类中是 private的 ( D)保护继承时基类中的 public成员在派生类中是 protected的 2 如果一个关系中,存在多个属性 (或属性组 )都能用来唯一标识该关系的元组,且其任何一个子集都不具有这 一特性。这些属性 (或属性组 )都被称为关系的 ( )。 ( A)连接码 ( B)主码 ( C)

2、外码 ( D)候选码 3 在数据库系统中,用户所见的数据模式为 ( )。 ( A)概念模式 ( B)外模式 ( C)内模式 ( D)物理模式 4 在下列关于二叉树的叙述中,选出正确的一项 ( )。 ( A)在二叉树中,任何一个结点的度都是 2 ( B)二叉树的度为 2 ( C)在二叉树中至少有一个结点的度是 2 ( D)一棵二叉树的度可以小于 2 5 在数据库管理系统的层次结构中,处于最下层的是 ( )。 ( A)应用层 ( B)语言翻译处理层 ( C)数据存取层 ( D)数据存储层 6 下面概念中,不属于面向对象方法的是 ( )。 ( A)对象 ( B)继承 ( C)类 ( D)过程调用 7

3、 下列叙述中,正确的是 ( A)用 E-R图能够表示实体集间一对一的联系、一对多的联系和多对多的联系 ( B)用 E-R图只能表示实体集之间一对一的联系 ( C)用 ER图只能表示实体集之间一对多的联系 ( D)用 ER图表示的概念数据模型只能转换为关系数据模型 8 下列关于 C+函数的描述中正确 的是 ( )。 ( A)主函数是程序的入口,它由用户定义的函数调用 ( B)函数在调用之前必须先被声明 ( C)每个用户定义的函数只能被其他函数调用一次 ( D)函数是 C+中面向对象程序设计框架的基本组成单元 9 下述关于数据库系统的叙述中正确的是 ( A)数据库系统减少了数据冗余 ( B)数据库

4、系统避免了一切冗余 ( C)数据库系统中数据的一致性是指数据类型一致 ( D)数据库系统比文件系统能管理更多的数据 10 数据库设计的根本目标是要解决 ( A)数据共享问题 ( B)数据安全问题 ( C)大量数据存储问题 ( D)简化数据维护 11 下述说法错误的是 ( A)对象之间不可以相互赋值 ( B)对象可以用作函数参数 ( C)对象可以用作数组的元素 ( D)对象可以用作另一对象的成员 12 下面对于友元函数描述正确的是 ( A)友元函数的实现必须在类的内部定义 ( B)友元函数是类的成员函数 ( C)友元函数破坏了类的封装性和隐藏性 ( D)友元函数不能访问类的私有成员 13 ( )

5、提供了类对外部的接口,私有成员是类的内部实现,而保护成员不允许外界访问,但允 许派生类的成员访问,这样既有一定的隐藏能力,又提供了开放的接口。 ( A)公有成员 ( B)私有成员 ( C)私有成员函数 ( D)保护成员 14 下面关于虚函数的描述中,正确的是 ( )。 ( A)基类中利用 virtual关键字说明一个虚函数后,其派生类中定义相同的原型函数时可不必加 virtual来说明 ( B)虚函数是非成员函数 ( C)虚函数是 static类型的成员函数 ( D)派生类中的虚函数与基类中类型相同的虚函数具有不同的参数个数或类型 15 若已定义了类 Vehicle,则下列派生类定义中,错误的

6、是 ( A) class Car: Vehicle *类体略 * ); ( B) class Car: public Car *类体略 * ); ( C) class Car: public Vehicle *类体略 * ); ( D) class Car: virtual public Vehicle *类体略 * ); 16 下面程序段的功能是 ( )。 int a=4,0,2,3,1,i,j,t; for(i=0; 5;i+) t=ai;j=i;j-; while(j =0j-; aj+1 =t; ( A)对数组 a进行插入排序 (升序 ) ( B)对数组 a进行插入排序 (降序 ) (

7、 C)对数组 a进行选择排序 (升序 ) ( D)对数组 a进行选择排序 (降序 ) 17 已知在一个类体中包含如下函数原型: VOLUME operator-(VOLUME)const;,下列关于这个函数的叙述中,错误的是 ( )。 ( A)这是运算符 的重载运算符函数 ( B)这个函数所重载的运算符是一个一元运算符 ( C)这是一个成员函数 ( D)这个函数不改变类的任何数据成员的值 18 下列关于指针的运算中, ( )是非法的。 ( A)两个指针在一定条件下,可以进行相等或不等的比较运算 ( B)可以将一个空指针赋值给某个指针 ( C)一个指针可以加上两个整数之差 ( D)两个指针在一定

8、条件下可以相加 19 下列重载函数中,正确的是 ( )。 ( A) void fun(int a, float b); void fun(int c, float d) ( B) void fun(int a, float b); void fun(float a, int b) ( C) float fun(int a, float b); int fun(int b, float a) ( D) int fun(int a, int b); float fun(int a, int b) 20 用户进行的测试包括:单元测试、集成测试、验收测试 (确认测试 )和系统测试。将软件放在整个计算机

9、环境下,包括软硬件平台、某些支持软件、数据和人员等,在实际运行环境下进行一系 列的测试是 _ 。 ( A)单元测试 ( B)集成测试 ( C)验收测试 (确认测试 ) ( D)系统测试 21 有以下程序 #include“iostream h“ void main() inti=l, j=1, k=2; if (j+k+) int main ( ) int n3,i,j,k = 2; for(i = 0;i k;i+) ni = O; for(i = O;i k;i+) for(j = O;j k;j+) nj = ni + 1; cout n 0 end1; return 0; 上述程序运行

10、后,输出结果是 ( )。 ( A) 0 ( B) 1 ( C) 2 ( D) 3 28 有如下程序 #ginclude iostream.h void main() char ch2 5 ”6937“,“8254“), *p2; int i, j, S=0 for(i=0; i 2: i+)pi=chi; for(i=0; i 2:i+) for(j=0; pi j 0; j+=2) s=10*s+pi j-0: cout s; 该程序的输出结果是 ( )。 ( A) 69825 ( B) 63825 ( C) 6385 ( D) 693825 29 当使用 ifstream流类定义一个流对象

11、并打开一个磁盘文件时,文件的隐含打开方式是 ( )。 ( A) ios: in ( B) ios: out ( C) ios: trunc ( D) ios: binary 30 有如下程序 #include iostream h void main( ) float x=2 0, y; if(x 0 0)y=0 0; else if(x 10 0)y=1 0/x; else y=1 0; cout y; 该程序的输出结果是 ( A) 0 ( B) 0.25 ( C) 0.5 ( D) 1 31 对以下说明语句的正确理解是 int a10=6, 7, 8, 9, 10; ( A)将 5个初值依

12、次赋给 s 1至 a 5 ( B)将 5个初值依次赋给 a 0至 a 4 ( C)将 5个初值依次赋给 a 6至 a l0 ( D)因为数组长度与初值的个数不相同,所以此语句不正确 32 不能作为重载函数的调用的依据是 ( A)参数个数 ( B)参数类型 ( C)函数类型 ( D)函数名称 33 下面程序的运行结果是 #include iostream.h void main( 0 int num =1; int else return n*f(n+1); ( B) int f(int n) if(n 1) return 1; else return n*f(n-1); ( C) int f(

13、int n) if(abs(n) 1) return 1; else relurn n* n/2); ( D) int f(int n) if(n 1) return 1; else return n*f(n*2); 35 有如下程序: include using namespace std; class Pair int m; int n; public: Pair(int i, int J): m(i), n(J) bool operator(Pair P)const; 需在类体外给出定义 ; int main() Pair pl(3, 4), p2(4, 3), p3(4, 5); CO

14、Utp2)p1)p3)p2); return 0; 运算符函数 operator功能是比较两个 Pair对象的大小,当左边对象大时,返回true,否则返回 false。比较规则是首先比较两对象的 m成员, m大者为大;当 m相等时比较 n.n大者为大。程序输出 0101,下列对运算符重载函数的正确定义是 ( A) bool Pair: operator(Pair P)const if(m!=P m)return mP m; return nP n; ) ( B) bool Pair: operator(Pair P) if(m!=P m)return mP m; return nP n; )

15、( C) bool Pair: operator(Pair P)const if(mP m)return true; return 11P n; ) ( D) bool Pair: operator(Pair P) if(mP m)return true; return 11P n; 36 一个类可以直接或间接的祖先中继承所有的属性和方法。采用这个方法可以提高了软件的【 】。 37 某二叉树中度为 2的结点有 18个,则该二叉树中有【 】个叶子结点。 38 软件开发环境是全面支持软件开发全过程的【 】集合。 39 数据结构分为逻辑结构与存储结构,线性链表属于【 】。 40 软件开发过程主要分为

16、需求分析、设计、编码与测试四个阶段,其中【 】阶段产生 “软件需求规格说明书 ”。 41 如果使用数组名称为函数参数,形实结合时,传递的是 _。 42 已知下列程序的输出结果是 42,请将画线处缺失的部分补充完整。 #include iostream using namespace std; class Foo int value; public: Foo 0=:value(0) void setValue(int value) 【 】 = value; /给 Foo的数据成员 value赋值 void print() cout value; ; int main() Foo f; f.set

17、Value(42); f.print(); return(); 43 设有定义语句: double x=2.5, y=4.7; int a=7;,那么表达式x+a%3*(int)(x+y)%2/4的值为【 】。 44 若要使用操作符 setw进行输出的格式控制,则必须用 #include 命令包含【 】头文件。 45 长度为 n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数 为 _。 46 指针变量所保存的不是一般的数据值,而是程序中另一个对象的 _。 47 C+语言程序的注释可以出现在程序中的任何地方,一个注释以【 】作为开始和结束的标记。 4

18、8 数据库管理系统常见的数据模型有层次模型、网状模型和 _3种。 49 如果一个类中定义了成员对象,则该类的对象和成员对象先被初始化的是【 】。 50 在类中,【 】成员为类的所有对象所共享。 国家二级( C+)笔试模拟试卷 235答案与解析 1 【正确答案】 B 2 【正确答案】 D 3 【正确答案】 B 4 【正确答案】 D 5 【正确答案】 D 6 【正确答案】 D 7 【正确答案】 A 【试题解析】 两个实体之间的联系实际上是实体集间的函数关系,这种函数关系可以有下面几种,即一对一的联系、一对多 (或多对一 )的联系和多对多的联系;概念模型便于向各种模型转换。由于概念模型不依赖于具体的

19、数据库管理系统,因此,容易向关系模型、网状模型和层次模型等各种模型转换。 8 【正确答案】 B 9 【正确答案】 A 【试题解析】 数据库系统的数据具有高共享 性和低冗余性,但不能完全避免数据冗余;数据的一致性是指在系统中同一数据的不同出现应保持相同的值。 10 【正确答案】 A 【试题解析】 数据库技术的根本目标是要解决数据共享的问题,选项 A)的说法是正确的。 11 【正确答案】 A 【试题解析】 如果重载了赋值运算符后,对象之间是可以赋值的,对象和 C+中其他内置的数据类型一样,可以作为函数参数、数组元素,其他对象的成员存在。 12 【正确答案】 C 【试题解析】 友元函数的定义既可以在

20、类内部进行,也可以在类外部进行。它提高了程序 的运行效率,但破坏了类的封装性和隐藏性,使得类的非成员函数可以访问类的私有成员。 13 【正确答案】 A 【试题解析】 此题考查的是公有成员的特点。公有成员允许可使用者访问,提供了类对外部的接口。 14 【正确答案】 A 【试题解析】 虚函数是非 static类型的成员函数,基类中可以利用 virtual 关键字来声明虚函数,派生类中定义相同原型函数时可不必加 virtual 说明,直接重写基类中的函数。在派生类中的虚函数必须与基类中的虚函数具有相同的参数个数与类型。 15 【正确答案】 B 【试题解析】 派生类从基类的继承方式有 3种:公有继承

21、(public)、私有继承(private)和保护继承 (protected)。如果不显式地给出继承方式,默认的类继承方式是私有继承, ACD项正确。类的继承是新的类从已有类那时得到已有的特性,故B 项错误。 16 【正确答案】 B 【试题解析】 本题考查数组的使用,注意插入排序方法。 17 【正确答案】 B 18 【正确答案】 D 19 【正确答案】 B 20 【正确答案】 D 【试题解析】 系统测试:将软件放在整个计算机 环境下,包括软硬件平台、某些支持软件、数据和人员等,在实际运行环境下进行一系列的测试。 21 【正确答案】 C 【试题解析】 该题目的关键是要搞清楚 “”和 “ t=x;

22、 x=y; y=t; 如果在 main 函数中用 swap(a, B,会有什么结果呢 ?在函数调用开始时, a的值传送给 x, b的值传递给 y。执行完 swap()函数后, x和 y的值是互换了,但 main()函数中的 a和 b 并未互换。也就是说由于 “单向传递 ”的 “值传递 ”方式,形参值的改变无法传递给实参。 为了使在函数中改变了的变量值能被 main()函数所用,不能采取上述办法,而应该用指针变量做函数参数。在函数执行过程中使指针变量所指向的变量值发生变化,函数调用结束后,这些变量值的变化被保留下来,这样就实现了调用函数改变变量的值,在主调函数中使用这些改变了的值的目的。 swa

23、p(int *p1, int *p2) int p; p= *p1; *p1=*p2; *p2=p; 注意交换 *p1和 *p2的值是如何实现的,如果写成下面这样就有问题了 ! swap(int *p1, int *p2) int *p; *p=*p1; /*此语句有问题: */ *p1=*p2; *P2=*p; *p1就是 a,是整型变量。而 *p是指针变量 p 所指向的变量,但 p 中并无确切地址,用 *p 可能会造成破坏系统的正常工作状态。应该将 *p1的值赋给一个整型变量,用整型变量 作为过渡变量实现 *p1和 *p2的交换。 25 【正确答案】 A 【试题解析】 C+语言中规定在类体

24、中不允许对所定义的数据成员进行初始化。 26 【正确答案】 C 【试题解析】 本题考核类的定义。 C+不能类的定义中给数据成员赋初值。 27 【正确答案】 D 【试题解析】 本题考核数组的定义、初始化及其使用。根据程序逐步分析:程序首先给数组 n的所有元素赋初值 0,然后执行一个嵌套的循环结构。嵌套循环的执行过程如下: i=0时, j分别取值 0、 1,使得 n0、 n1的值 分别变 1、 2,内层循环结束。 i=1时,对外层循环进行判断,符合循环条件,执行内层循环, j分别取值 0、1,使得 n0、 n1的值变为 3、 3,退出内层循环。 i=2时,判断外层循环,不再符合循环条件,退出外层循

25、环,执行 cout语句,输出 n0的值为 3。 28 【正确答案】 C 29 【正确答案】 A 30 【正确答案】 C 【试题解析】 该表达式的语句是 该表达式的语句是 if(表达式 1) 语句 1 else if(表达式 2) 语句 2 else if(表达式 3) 语句 3 else 语句 4 由 if表达式可知,题中直接执行 if语句的第 2条 else if(x10 0)y=1 O/x;。 注意: else总是与最近的没有匹配的 if匹配。 31 【正确答案】 B 【试题解析】 本题中,表达式将 5个初值赋给 a0至 a4,后面的部分,将自动会被依次补零处理。 32 【正确答案】 D

26、【试题解析】 所谓重载函数是指同一个函数名可以对应多个函数的实现,编译器会根据参数个数、参数类型和函数返回值类型不同而自动调用相应的函数。 33 【正确答案】 C 【试题解析】 本题考查的是考生对引用的掌握, ref 实际上就是变量 num的别名,所以 ref=ref+2 时, num已经变成了 3。 34 【正确答案】 C 【试题解析】 递归函数的两个重要条件是要有结束和递归表达式。选项 D无法结束,排除之。根据这两个条件可以进行判断出答案为 C。 35 【正确答案】 A 【试题解析】 题目要求先比较 m的大小。其次比较 n的大小,首先看函数定义bool operator(Pairp)cor

27、lst,从中可以看出 B)和 D)选项和函数定义不 一致,缺少const,故排除;选项 c只有一层比较不符合题意,故排除 C)选项。因此,本题答案为 A)。 36 【正确答案】 可重用性 37 【正确答案】 19 【试题解析】 叶子结点是最末端的结点。 38 【正确答案】 软件工具 39 【正确答案】 存储结构 【试题解析】 数据的逻辑结构是指反映数据元素之间逻辑关系的数据结构;数据的存储结构是指数据的逻辑结构在计算机存储空间中的存放形式。在数据的存储结构中,不仅要存放各数据元素的信息,还需要存放各数据元素之间的前后件关系的信息。 40 【正确答案】 需求分析 【试题解析】 需求分析阶段的工作

28、主要包括需求获取、需求分析、编写需求规格说明书和需求评审等 4方面。产生的主要文档为软件需求规格说明书,它可以为用户、分析人员和设计人员之间的交流提供方便,直接支持目标软件系统的确认,也可以作为控制软件开发进程的依据。 41 【正确答案】 地址。 【试题解析】 本题考查的是函数参数的传递方式。函数参数的传递方式分为传值和传地址两种。使用数组名作为函数参数,因为数组名代表的是数组的首地址,所以传递的是地址。 42 【正确答案】 this-value 或 Foo:value 43 【正确答案】 2.5 44 【正确答案】 iomanip.h 【试题解析】 iomanip.h 头文件包含控制输出字符串格式的函数。 45 【正确答案】 n/2 46 【正确答案】 内存地址 47 【正确答案】 /* */ 【试题解析】 C+语言程序的注释可以出现在程序中的任何地方,一个注释以“/*”开始,以 “*/”为结束。 48 【正确答案】 关系模型 49 【正确答案】 类的成员对象 【试题解析】 C+中类的成员对象比类的对象先初始化。 50 【正确答案】 类的静态 【试题解析】 类的非静态成员属于类的实例所有,每创建一个类的实例都在内存中为非静态成员开辟了一块区域。而类的静态成员属于类所有,为这个类的所有实例所共享。

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

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

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