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

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

1、国家二级( C+)笔试模拟试卷 227及答案与解析 1 对于长度为 n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是 ( )。 ( A)冒泡排序 n/2 ( B)冒泡排序为 n ( C)快速排序为 n ( D)快速排序为 n(n-1)/2 2 将 E-R图转换到关系模式时,实体与联系都可以表示成 ( )。 ( A)属性 ( B)关系 ( C)键 ( D)域 3 4 5 6 7 8 有如下两个类 的定义: class AA; class BB AA vl, *v2; BB v3: int*v4: ; 其中有一个成员变量的定义是错误的,这个变量是 ( A) v1 ( B) v2 (

2、 C) v3 ( D) v4 9 完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例的测试方法是 ( A)黑箱测试法 ( B)白箱测试法 ( C)错误推测法 ( D)安装测试法 10 在软件开发中,需求分析阶段产生的主要文档是 ( A)可行性分析报告 ( B)软 件需求规格说明书 ( C)概要设计说明书 ( D)集成测试计划 11 有以下程序: Class Date public: Date(int y, int m, mt d); year=y; month m; day d; Date(int y 2000) year y; month 10; day 1; Date(Da

3、te class Base1 public: Base1(int D)cout d; Base1() ; class Base2 public: Base2(int D)cout d; Base2 () ; class Derived:public Base1, Base2 public: Derived(int a, int b, int c, int D) ; Base1(B), Base2( A), b1(D), b2(C) Private: int b1; int b2; ; int main() Derived d(1, 2, 3, 4); return 0; 运行时的输出结果是 (

4、 )。 A) 1234 B) 2134 C) 12 D) 21 16 以下程序输出的结果是 ( )。 void main( ) int x = 1,a =0,b =0; switch(x) case 0:b +; case 1: a + +; case 2:a + ;b +; cout a b; ( A) 21 ( B) 11 ( C) 12 ( D) 10 17 下面程序的输出结果是 ( )。 #include iostream using namespace std; void main( ) int i=8,*p=0; p = coat p; ( A) 0 ( B)变量 i的地址 ( C

5、) *p=0; 是错误的,因为不可给指针型变量赋予常数值 ( D) 8 18 在多继承中,公有派生和私有派生对于基类成员在派生类中的可访问性与单继承的规则 ( )。 ( A)完全相同 ( B)完全不同 ( C)部分相同,部分不同 ( D)以 上都不对 19 内部格式控制操作函数是在头文件 ( )中定义的。 ( A) iostream.h ( B) iomanip.h ( C) istream.h ( D) ostream.h 20 在 C+语言中,形参的缺省存储类型是 ( )。 ( A) auto ( B) register ( C) static ( D) extem 21 有以下程序 #i

6、nclude iostream.h float fun(int x,int y) return(x+y); void main() int a=2,b=5,c=8; cout fun(int)fun(a+c,b),a-c); 程序运行后的输出结果是 ( )。 ( A)编译出错 ( B) 9 ( C) 21 ( D) 9 22 设 int x =(1, 3, 5, 7, 9, 11, 13), *p=x;则不能正确引用数组元素的表达式是 _。 ( A) *(p-) ( B) *(-p) ( C) *(p+) ( D) *(+p) 23 在 I/O类库中,头文件 iostream.h包括了 _。

7、( A)操作所有输入 /输出流所需要的基本信息 ( B)由用户控制的文件处理操作信息 ( C)与内核格式化相关的信息 ( D)含参数的流操纵算子信息 24 设变量 a是 int 型, f是 double 型, i是 float 型,则表达式 10+a+i*f值的数据类型 ( A) int ( B) float ( C) double ( D)不确定 25 有如下程序 #include iostream.h #define N2 #define M N+1 #define NUM 2*M+1 void main( ) int i; for(i=1,i = NUM;i+) cout i; 该程序中

8、的 for循环执行的次数是 ( A) 5 ( B) 6 ( C) 7 ( D) 8 26 下列选项,不正确的是 ( A) for(int a=1; a =10; a+); ( B) int a=1; do a+; while(a =10) ( C) int a=1; while(a =10) a+; ( D) for(int a=1; a =10; a+)a+; 27 若 x、 a、 b和 c均是 int型变量,则执行表达式 “x=(a=1, b=2)”后的结果是( )。 ( A) 1 ( B) 2 ( C) 3 ( D) x无确定值 28 下列对变量的引用中,错误的是 ( )。 ( A) i

9、nt a; int B()cout “ B“; delete p; ; int main() B obj; return 0; 执行这个程序的输出结果是 ( A) BAA A B A ( B) ABA B A A ( C) BAA B A A ( D) ABA A B A 35 下列有关模板的叙述中,正确的是 ( A)函数模板不能含有常规形参 ( B)函数模板的一个实例就是一个函数定义 ( C)类模板的成员函数不能是模板函数 ( D)用类模板定义对象时,绝对不能省略模板实参 36 数据库设计分为需求分析阶段、 _阶段、逻辑设计阶段、物理设计阶段、数据库实施阶段、数据库运行和维护阶段。 37 度

10、为 10的线性表进行冒泡排序,最坏情况下需要比较的次数为 _。 38 39 在 C+中,下列程序段的输出结果是【 】。 int x, a10; cout sizeof(x) “” sizeof(a) “” sizeof(float) end1 40 下面程序的运行结果是 _。 #include iostream h void fun(int while(*str) num*=10; num+=_ str+; return num; 42 _是数据库设计的核心。 43 执行语句序列 int x=10, ,则表达式 (+a/B) *b的值为 【 】 。 47 写出执行完下列代码段之后指定变量的值:

11、 bool x=true , y=false, z=false; x=x&y|z; y=x|y&z; z=!(x!=y)|(y=z); 则 x=false, y=【 】, z=【 】。 48 C+在重载运算符中,如用成员函数重载一元运算符参数表中需要【 】个参数,如用友元函数重载一元运算符参数表中需要【 】个参数。 49 指针数组是由【 】构成的数组。 50 “图形 ”类 Shape中定义了纯虚函数 CalArea(), “三角形 ”类 Triangle继承了类Shape,请将 Triangle类中的 CalArea函数补充完整。 class Shape public: virtual int

12、 CalArea( )=0; ; class Triangle: public Shape public: Triangle(int s, int h): side(S), height(h) 【 】 return side*height 2; private: int side; int height; ; 国家二级( C+)笔试模拟试卷 227答案与解析 1 【正确答案】 D 【试题解析】 本题主要考查对排序算法的理解。冒泡排序法首先将第一个记录的关键宇与第二个记录的关键宇进行比较,若逆序则交换,然后比较第二个与第三个,以此类推,直至第 n-1个与第 n个记录的关键宇进行比较。第一趟冒泡排

13、序使最大的关键宇元素放到最后。以此类推,进行第 2 n次冒泡排序。如果在排序过程中不存在逆序,则排序结束。在最坏情况下,冒泡排序中,若初始序列为“逆序 ”序列,需要比较 n(n-1)/2次。快速排序是对冒泡排序的一种改进。它的基本思想是: 通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键宇比另一部分记录 2 【正确答案】 B 【试题解析】 关系数据库逻辑设计的主要工作是将 E-R图转换成指定 RDBMS中的关系模式。从 E-R图到关系模式的转换是比较直接的,实体与联系都可以表示成关系, E-R图中属性也可以转换成关系的属性。实体集也可以转换成关系。 3 【正确答案】 C 4 【正

14、确答案】 D 5 【正确答案】 A 【试题解析】 因为成员函数可以在类体内定义,也可以在类体外定义,所以成员函数不一定都是内联函数 ;成员函数可以重载,可以设置参数的默认值,成员函数可以是静态的。 6 【正确答案】 C 7 【正确答案】 C 8 【正确答案】 C 【试题解析】 在本类的数据成员定义中,不能定义本类的对象,否则就出现了递归定义,这是不允许的。 9 【正确答案】 A 【试题解析】 黑箱测试方法完全不考虑程序的内部结构和内部特征,而只是根据功能导出测试用例。注意:白箱测试是根据对程序内部逻辑结构的分析来选取测试用例,白箱测试也称为逻辑覆盖测试,故选项 B)不正确;错误推测法只是黑箱测

15、试所使用的一种具体 的方法,故选项 C)不正确;安装测试是测试层次中的一种,它属于高级测试,故选项 D)不正确。注意:常用的黑箱测试方法及其定义,白箱测试用例的准则。 10 【正确答案】 B 【试题解析】 软件开发中的主要文档有,市场调研 (可行性分析 “做还是不做 ”);需求分析 (软件需求规格说明书 “做什么,不做什么 ”。 );概要设计 (概要设计说明书 );详细设计 (详细设计说明书 );测试 (集成测试计划 )。 11 【正确答案】 B 【试题解析】 本题考核拷贝构造函数。上述程序中,拷贝构造函数一共被调用了 3次:第一次 是在执行语句 Date date3(date1);时,用已经

16、建立的对象 date1对正在建立的对象 date3进行初始化;第二次是在调用 fun 函数时,由于是传值调用,因此实参对象 date3要对形参对象 d进行初始化;第三次是在执行 fun 函数中的返回语句 return temp 时,系统初始化一个匿名对象时使用了拷贝构造函数。 12 【正确答案】 C 【试题解析】 复制初始化构造函数的作用是用一个已知的对象来初始化一个被创建的同类的对象,该函数只有一个参数,并且是对同类的某个对象的引用。 13 【正确答案】 B 【试题解析】 在 C程序中的 typename 是都可以替换为 class的,但 class 不能都替换为 typename。 14

17、【正确答案】 B 【试题解析】 在定义了重载运算符后的函数后,函数 operator重载了运算符“+”。如果在类以外的其他地方定义了一个函数,在类体中用 friend对该函数进行声明,此函数就称为本类的友员函数。 “*”用友元函数重载就是运算符函数不作为成员函数,而把它放在类外, “*”被改写为 “operator*”。 “+”为成员函数重载,x operator。所以 x+y*z被改写为 “x operator+(operator*(y,z)”。 15 【正确答案】 D 16 【正确答案】 A 【试题解析】 x=1,执行 case 1语句, a+,由于没有 break 语句,继续执行Case

18、 2语句, a+; b+;所以 a=2, b=1。 17 【正确答案】 B 【试题解析】 可以把 0赋给指针变量。 18 【正确答案】 A 19 【正确答案】 B 20 【正确答案】 A 21 【正确答案】 B 22 【正确答案】 B 23 【正确答案 】 A 24 【正确答案】 C 【试题解析】 根据混合运算规则,如果有一个数据是 double型,则其他数据类型先转化为 double 型,运算的结果最终也是 double型。为保证精度的不丢失,表达式的数据类型是变量和常量中精确度最高的变量类型。 25 【正确答案】 B 【试题解析】 这是一种简单的情况:不带参数的宏。关键要注意在对 2*M+

19、1进行宏替换时,要将宏名 M原样替换,得到 NUM的形式为 2*N+1+1(千万不要随意把给 N+1加上小括号,使 NUM变为 2* (N+1)+1,这就是宏名和变量名 之间的区别 )。 26 【正确答案】 B 【试题解析】 本题考查的是基本循环语句的使用,选项 A),选项 C)和选项 D)都为正确的形式,在选项 B)中的 while(a =10)后缺少结束符分号 “; ”。 27 【正确答案】 B 【试题解析】 本题主要考查逗号运算符的运算规则。逗号运算符用于将多个表达式串在一起,逗号运算符的左边总是不返回的,这就是说,逗号右边表达式的值才是整个表达式的值。逗号运算符的结合性为从左到右。由此

20、就可以把表达式理解为 x=b=2。 28 【正确答案】 C 【试题 解析】 本题考核引用的定义和初始化。引用具有如下特点: 引用能够使用任何合法变量名。 引用不是变量,所以必须在定义时初始化,而且一旦初始化之后,就不能再成为其他变量的引用。 引用不是值,不占存储空间,说明引用时,目标的存储状态不会改变。所以,引用只有说明,没有定义。 引用仅在说明时带有 “&”,以后就像普通变量一样使用,不能再带 “&”。 在选项 C中,由于在定义引用 p后没有进行初始化,所以此语句是错误的。故本题答案是 C。 29 【正确答案】 C 【试题解析】 二维 数面的二维不能省略。注意:数组的下标是从零开始的。 30

21、 【正确答案】 B 【试题解析】 C+语言中语句的结束符是分号。 31 【正确答案】 C 【试题解析】 如果在子类中要访问父类的函数应用 “:”运算符。 32 【正确答案】 C 【试题解析】 输出流对象包括基本的输出设备,如显示器,内存和文件,而输入流对象则包括键盘,文件以及其他输入设备。 33 【正确答案】 D 【试题解析】 C+的多态性有两种:函数重载和虚函数。虚函数只有在运行时才能被确定,称为运行时多态 。 34 【正确答案】 B 【试题解析】 本题考查的是派生类对象的构造与析构。建立派生类对象时,构造函数的执行顺序如下: (1)执行基类的构造函数,调用顺序按照各个基类被继承时声明的顺序

22、 (自左向右 ); (2)执行成员对象的构造函数,调用顺序按照各个成员对象在类中声明的顺序 (自上而下 ); (3)执行派生类的构造函数。 所以本题在建立派生类 B 的对象。 obj时会先调用基类 A的构造,然后调用自身的构造。注意: B类中定义的成员 p 是 A类的指针而不是一个对象,故在调用自身构造函数前不需要 构造。而在 B类构造函数中使用 new操作符动态构造了一个A类的对象,所以整个构造结果是输出: ABA。派生类对象的析构与构造严格相反,即先析构自身,然后析构自身所包含的成员对象,最后调用基类的析构函数。故本题中,当 main()函数返回时,析构 B 类的对象 obj:首先会调用

23、B(),接着再调用 A()。但是,在 B()函数中使用 delete操作符释放了动态创建的 A类对象,故整个析构所输出的结果是: B A A。所以应该选择 B。 35 【正确答案】 B 【试题解析】 类模板可以成为另外一个类模板的成员 (叫 “成员模板 ”),函数模板没有实参和形参之分,函数模板可以看成一个无参函数,它的参数要根据调用对象的参数而定。 36 【正确答案】 概念设计。 【试题解析】 本题考查数据库设计的流程,数据库设计按流程分为以下阶段:需求分析阶段 概念设计阶段 逻辑设计阶段 物理设计阶段 数据库实施阶段 数据库运行、维护阶段。 37 【正确答案】 45 【试题解析】 对于长度

24、为 n的线性表,在最坏情况下 (即线性表中元素现在的顺序与目标顺序正好相反 ),冒泡排序需要经过 n/2遍的从前往后的扫描和 n/2 遍的从后往前 的扫描,需要的比较次数为 n(n-1)/2。 38 【正确答案】 队尾 【试题解析】 在队列中,允许插入的一端叫做 “队尾 ”,允许删除的一端叫做 “队头 ”。 39 【正确答案】 4 40 4 40 【正确答案】 9, 23 41 【正确答案】 (*str-0) 42 【正确答案】 数据模型 【试题解析】 数据模型是对客观事物及联系的数据描述,它反映了实体内部及实体与实体之间的联系。因此,数据模型是数据库设计的核心。 43 【正确答案】 10-1

25、0 44 【正确答案】 对象 45 【正确答案】 循环结构 【试题解析】 C+语言 3种基本结构就是顺序结构,选择结构,循环结构。 46 【正确答案】 2 【试题解析】 运算符 +的优先级高于双目运算符 /,所以括号中的运算为 2/2,最后的结果为 2/2*2。 47 【正确答案】 false true 【试题解析】 执行语句 “x&y|z; ”后, x的值变为 false。执行 “x|y&z”后, y的值变为 false,执行 “!(x!=y)|y=z); ”后, z的值变为 true。 48 【正确答案】 0 1 【试题解析】 C+中友元函数重载一元运算符要有一个参数,重载二元运算符要有两个参数,而用成员函数重载时,重载一元运算符没有参数,重载二元运算符要有一个参数。 49 【正确答案】 指针 【试题解析】 如果一个数组中的每个元素均为指针类型,即由指针变量构成的数组,这种数组称之为指针数组,它是指针的集合。 50 【正确答案】 int CalArea( ) 【试题解析】 在基类中不能对虚函数给出有意义的实现,而把它说明为纯虚函数,它的实现留给该基类的派生类去做,这就是纯虚函数的作用。所 以本题应该填写 int calArea( )。

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

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

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