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

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

1、国家二级( C+)笔试模拟试卷 79及答案与解析 1 在长度为 n的有序线性表中进行二分查找,需要的比较次数为 ( A) log2n ( B) nlog2n ( C) n/2 ( D) (n+1)/2 2 下列数据结构中能应用二分查找的是 ( A)有序线性链表 ( B)有序顺序表 ( C)顺序存储的栈 ( D)顺序存储的队列 3 设有下列二叉树: 对此二叉树中序遍历的结果为 ( A) ABCDEF ( B) DBEAFC ( C) ABDECF ( D) DEBFCA 4 对建立良好的程序设计风格,下面描述正确 的是 ( A)程序应简单、清晰、可读性好 ( B)符号名的命名只要符合语法 ( C

2、)充分考虑程序的执行效率 ( D)程序的注释可有可无 5 结构化程序设计的主要特点是 ( A)每个控制结构要模块化 ( B)每个控制结构具有封装性 ( C)每个控制结构具有独立性 ( D)每个控制结构只有一个入口和一个出口 6 下面不属于软件工程 3个要素的是 ( A)工具 ( B)过程 ( C)方法 ( D)环境 7 数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数 据流图合法图符的是 ( A)控制流 ( B)加工 ( C)数据存储 ( D)源和潭 8 下列关于关系运算的叙述中正确的是 ( A)投影、选择、连接是从二维表的行的方向来进行运算

3、( B)并、交、差是从二维表的列的方向来进行运算 ( C)投影、选择、连接是从二维表的列的方向来进行运算 ( D)以上三种说法都不对 9 数据库设计包括两个方面的设计内容,它们是 ( A)概念设计和逻辑设计 ( B)模式设计和内模式设计 ( C)内模式设计和物理设计 ( D)结构特性设计和行为特性设计 10 下列叙述中正 确的是 ( A)实体集之间一对一的联系实际上就是一一对应的关系 ( B)关系模型只能处理实体集之间一对一的联系 ( C)关系模型属于格式化模型 ( D)以上三种说法都不对 11 在 C+语言中函数返回值的类型是由 ( )决定的。 ( A)调用该函数时系统临时 ( B) ret

4、urn语句中的表达式类型 ( C)定义该函数时所指定的函数类型 ( D)调用该函数时的主调函数类型 12 关于类和对象描述错误的是 ( A)对象 (Obiect)是现实世界中的客观事物,对象具有确定的属性 ( B)类是具有相同属性和 行为的一组对象的集合 ( C)对象是类的抽象,类是对象的实例 ( D)类是对象的抽象,对象是类的实例 13 下面关于虚函数的描述中正确的是 ( A)虚函数是一个静态成员函数 ( B)虚函数是一个非成员函数 ( C)虚函数既可以在函数说明时定义,也可以在函数实现时定义 ( D)派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型 14 下面有关重载函数的描述中

5、正确的是 ( A)重载函数必须具有不同的返回值类型 ( B)重载函数形参个数必须不同 ( C)重载函数必须具有不同的形参列表 ( D)重载 函数名可以不同 15 下列对模板的声明中正确的是 ( A) template T ( B) template class T1,T2 ( C) template classT1,classT2 ( D) template classT1; classT2 16 对于语句 cin x 中的各个组成部分,下列叙述中错误的是 ( A) “cin”是一个输出流对象 ( B) “; ”的作用是表示语句结束 ( C) “x”是一个变量 ( D) “ ”称作提取运算符

6、17 以下选项中合法的用户标识符是 ( A) long ( B) _2Test ( C) 3Dmax ( D) A.dat 18 定义如下枚举类型: enumMonday,Tuesday,Wednesday,Thrusday,Friday=2:则下列语句正确的是 ( A)表达式 Wednesday=Friday的值是 true ( B) Day day; day=3; ( C) Day day; day=Monday+3; ( D) Day day; day=Tuesday+10; 19 下列语句段将输出字符 *的个数为 int i=100; while (1) i-; if(i=0) bre

7、ak; cout,*; ( A) 98个 ( B) 99个 ( C) 100个 ( D) 101个 20 下列对字符数组进行初始化的语句正确的是 ( A) chara=“Hello“; ( B) chara=H, e, l, l, o; ( C) char a5=“Hello“; ( D) chara25=“Hello“,“World“: 21 函数定义 为 Fun(int 则上述定义中非法的表达式是 ( A) k=i*j ( B) int k; ( C) retum i; ( D) void make() 24 如果表达式 -x/y中的 “-”和 “/”是作为友元函数重载的运算符,采用运算符

8、函数调用格式,该表达式还可表示为 ( A) operator/(x operator-(), y); ( B) operator/(operator-(x), y); ( C) x.operator-().operator/(y); ( D) y.operator/(operator-(x); 25 有如下函数模板的定义: template class T T func(T x,T y)return x*x+y*y; 在下列对 func的调用中不正确的是 ( A) func(3, 5); ( B) func (3, 5); ( C) func(3, 5.5); ( D) func int (3

9、, 5 5); 26 若执行语句: cout setfill(*) setw(10) setfill(#) left 123“OK“ end1后将输出 ( A) 123*OK ( B) 123#OK ( C) 123*OK* ( D) 123#OK# 27 下列关于构造函数的描述中,错误的是 ( )。 ( A)构造函数可以设置默认参数 ( B)构造函数在定义类对象时自动执行 ( C)构造函数可以是内联函数 ( D)构造函数不可以重载 28 若有以下程序: #include iostream using namespace std; class sample private: int n; pu

10、blic: sample() sample(int m) n=m; void addvalue(int m) sample s; s.n=n+m; *this=s; void disp() cout “n“= n end1; ; int main() sample s(10); s.addvalue(5); s.disp(); return 0; 程序运行后的输出结果是 ( A) n=10 ( B) n=5 ( C) n=15 ( D) n=20 29 若有如下程序: #include iostream using namespace std; int s=O; class sample st

11、atic int n; public: sample(int i) n=i; static void add() s+=n; ; int sample:s=0; int main() sample a(2), b(5); sample:add(); cout S end1; return 0; 程序运行后的输出结果是 ( A) 2 ( B) 5 ( C) 7 ( D) 3 30 若有以下程序 #include iostream using namespace std; class A public: A(int i,int j) a=i; b=j; void move(int x,int y)

12、 a+=x; b+=y; void show() cout a “,“ b end1; private int a,b; ; class B: private A public: B(int i,int j):A(i,j) void fun() move(3,5); void fl() A:show(); int main() B d(3,4); d. fun(); d.fl(); return 0; 程序执行后的输出结果是 ( A) 3,4 ( B) 6,8 ( C) 6,9 ( D) 4,3 31 若有以下程序 #include iostream using namespace std;

13、class A private: int a; public: A(int i) a=i; void disp() cout a “,“; ; class B private: int b; public: B(int j) b=j; void disp() cout b “,“; ; class C: public B,public A private: int c; public: C(int k):A(k-2),B(k+2) c=k; void disp() A:disp(); B:disp(); cout c end1; ; int main() C obj(10); obj.disp

14、(); return 0; 程序执行后的输出结果是 ( A) 10,10,10 ( B) 10,12,14 ( C) 8,10,12 ( D) 8,12,10 32 若有以下程序 : #include iostream using namespace std; #define PI 3.14 class Point private: int x,y; public: Point(int a,int B) x=a; y=b; int getx() return x; int gety() reurn y; ; class Circle: public Point private: int r;

15、public: Circle(int a,int b.int C) :Point(a,B) r=c; int getr() return r; double area() return PI*r*r; ; int main() Circle cl(5,7,10); cout c 1 .area() end1; return 0; 程序执行后的输出结果是 ( A) 314 ( B) 157 ( C) 78.5 ( D) 153.86 33 重载输入流运算符必须使用的原型为 ( A) ostream,该函数的第一个参数是执行该类对象的一个指针即 this指针。由于这个参数是系统隐含的,所以我们在定

16、义该成员函数时并没有看到这样一个参数。在成员函数的定义体中,可以通过 this访问这 参数。上述程序的最后输出结果是 15。 29 【正确答案】 B 【试题解析】 本题考核静态数据成员和静态成员函数的应用。程序中定义一个类sample,它包括一个静态数据成员 n和一个静态成员函数 add,并在类的构造函数中给类私有静态数据成员 n赋值。在主函数 main中,定义对象 a(2)时,通过构造函数 使静态数据成员 n的值变为 2,在定义对象 b(5)时,通过构造函数使静态数据成员 n=5(覆盖了前面的 n=2),再执行 sample:add()使全局变量 s=5。 30 【正确答案】 C 【试题解析

17、】 本题考核派生类的应用。本题中,类 B是类 A的私有派生类,在类 B的成员函数 fun中调用基类 A的成员函数 move,并传入实参 3和 5。在类 B的成员函数 f1中调用基类 A的成员函数 show,宋显示基类数据成员 a和 b的值。主函数 main中,定义了派生类 B的对象 d,并赋初值 3和 4。然后调用对象 d的成员函数 fun和 f1,通过上述对函数 fun和 n的功能的描述可知,程序最后输出 6和 9。 31 【正确答案】 D 【试题解析】 本题考核派生类构造函数的使用。本题中,派生 C具有多重继承关系,所以在派生类 C的构造函数中应该包含基类 A和 B的成员初始化列表。 32

18、 【正确答案】 A 【试题解析】 本题考核派生类的定义和应用。本程序设计了一个点类 Point,包含了横、纵两个坐标数据 x和 y,由它派生出了圆类 Circle,并加入了新的数据成员,即一个半径数据 r和一个求圆面积的函数成员 area。 在主函数 main中,首先定义 了一个圆 Circle类的对象 c1,并通过它的构造函数初始化其数据成员。由此可知,其半径 r的值为 10,所以其面积为 PI*10*10=314,即对象 c1的函数成员area的返回值为 314。 33 【正确答案】 A 【试题解析】 本题考核运算符的重载。 C+中重载输入流运算符和输出流运算符只能作为非类成员函数重载,且

19、必须使用如下原形: istream& operator (istream&,类名 &); ostream& operator (ostream&,类名 ); 34 【正 确答案】 C 【试题解析】 本题考核文件 I/O操作。 C+中可以在定义文件流对象的同时打开文件,也可以在定义文件流对象以后用 open函数打开文件。可以通过构造函数或open函数的第 2个参数,确定文件的打开模式。根据以上知识点可知关于题中语句的描述中,只有 C选项是正确的。 35 【正确答案】 B 【试题解析】 使用 const关键字修饰的对象成为常对象,题中对象 b被声明为类R的常对象。使用 const关键字说明的成员函

20、数称为常成员函数,类 R中用 const重载了函数 print()。在使用常对象和常成 员函数时应注意的是: const是函数类型的一个组成部分,因此在部分也要带 const关键字:常成员函数不能更新对象的数据成员,也不能调用该类中没有用 const修饰的成员函数;如果将一个对象说明为常对象,则通过该常对象只能调用它的常成员函数,不能调用其他的成员函数;const关键字可以参与区分重载函数。本题中, b为类 R的常对象,通过 b只能调用类 R的常成员函数 print()输出 20,52。 36 【正确答案】 归并排序 【试题解析】 只有归并排序要求待排序文件 ”部分排序 ”(把待排序的文件分成

21、若干个子文件 ,每个子文件内的记录是己排序的 )。 37 【正确答案】 数据结构 【试题解析】 Jackson方法是一种面向数据结构的结构化方法。 38 【正确答案】 方法 【试题解析】 工具、过程和方法是软件工程的 3个要素。 39 【正确答案】 物理结构 【试题解析】 数据的独立性是数据和程序间的互不依赖性,即数据库中数据独立于应用程序而不依赖于应用程序。数据独立性一般分为物理独立性和逻辑独立性。 40 【正确答案】 黑盒测试 【试题解析】 黑盒测试是把测试对象看做一个黑盒子,测试 人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。

22、白盒测试把测试对象看做一个透明的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。 41 【正确答案】 52 【试题解析】 do-while语句的特点:先执行循环体,后判断条件。第 1次循环执行后, j和 i的值分别为 10和 9。判断循环条件为真,继续执行循环体, j和 i分别为 19和 8。 继续上述执行过程,直到 i的值为 2时,表达式 “2 2”不再成立,退出循环。此时 j的值为 52。 42 【正确答案】 1,0 【试题解析】 本题考核带有默认值的函数,本题中函数 in

23、itialize()进行了两次函数原型的说明,使本来不带默认值的形参带上默认值。由于主函数中调用initialize()时没有给定实参,所以函数自动调用其参数默认值,输出 1和 0。 43 【正确答案】 122436 【试题解析】 本题考核数组与指针之间的相互关系。题中定义了两个指针 px.py并分别指向数组 m和 n,然后 通过指针 px.和 py分别给数组 m和 n赋值,并输出其赋值结果。 44 【正确答案】 软件复用 【试题解析】 继承提供了创建新类的一种方法,避免了公用代码的重复开发,减少了代码和数据的冗余。它是面向对象技术能够提高软件开发效率的重要原因之一。 45 【正确答案】 0

24、【试题解析】 类对象数组指针 p本身不定义类对象,而是定义了数组指针 p可以指向一个 MyClass的对象。 46 【正确答案】 x.operator-() 【试题解析】 本题考核运算符函数的两种调用方式。假定已经作为某个 类的成员函数重载了二元运算符 +,且 c1、 c2都是该类的对象,则 c1 operator+(c2)与c1+c2函数相同。如果 +作为该类的非成员函数重载,则 operator+(c1, c2)与c1+c2相同。 47 【正确答案】 s+=datai+ 【试题解析】 函数 average()中的 while循环用来将求传入的数组中各元素的值的总和。 48 【正确答案】 S

25、mith: 30 D 【试题解析】 本题考核类与对象的操作。主函数中定义类 person的对象 demo,并赋初值 (30, “smith“)。然后调用成员函数 display()输出赋值结果,即 Smitch:30。程序结束时 demo对象的析构函数被调用,再输出 “D”。 49 【正确答案】 25,8 【试题解析】 该程序中定义了 A类、 B类和 C类共 3个类。其中,类 A是抽象类,它的类体内有一个纯虚函数 print()。抽象类不可以定义对象,但可以定义指向对象的指针。类 B和类 C都是类 A的公有派生类,这些类是具体类,它们对 A类中纯虚函数都有不同的实现。该程序的主函数中,定义一个

26、指向类 A对象的指针 pa,又定义了类 B和类 C的 2个对象,并使指针 pa分别指向这些对象。这里,采用动态联编,在运行时选择 print()函数。所以执行语句序列 “pa=&b; pa- setx(5); pa- print(); ”后,系统调用类 B的 print()函数,输出 25。执行语句序列 “pa=&c; pa- setx(2); pa- print(); ”后,系统调用类 C的 print()函数,输出 8。 50 【正确答案】 统计文件 abc.txt的行数 【试题解析】 函数 getline(char*s,streamsize n)从当前输入位置开始提取字符存入s所指向的具有 n个字节的字 符空间中。程序中这种调用方式是以换行符为结束标志输入字符序列,即输入一行字符 (回车换行前的所有字符序列 )。程序中通过while循环来统计 abc.txt中行数。

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

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

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