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

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

1、国家二级( C+)笔试模拟试卷 111及答案与解析 1 以下各运算中,不属于算术运算的是 ( )。 ( A)大于 ( B)加 ( C)乘 ( D)除 2 下列叙述中,正确的是 ( )。 ( A)一个数据结构中的元素在计算机存储空间中的位置关系与逻辑关系可能不同 ( B)一个数据结构中的元素在计算机存储空间中的位置关系与逻辑关系一定不同 ( C)一个数据结构中的元素在计算机存储空间中的位置关系与逻辑关系一定相同 ( D)数据的存储结构与数据的逻辑结构是相同的 3 一个栈的进栈顺序是 1, 2, 3, 4,则出栈顺序为 ( )。 ( A) 4, 3, 2, 1 ( B) 2, 4, 3, 1 (

2、C) 1, 2, 3, 4 ( D) 3, 2, 1, 4 4 二叉树是节点的有限集合,它有 ( )根节点。 ( A)有 0个或 1个 ( B)有 0个或多个 ( C)有且只有 1个 ( D)有 1个或 1个以上 5 编制一个好的程序,首先要确保它的正确性和可靠性,还应强调良好的编程风格。在选择标识符的名字时应考虑 ( )。 ( A)名字长度越短越好,以减少源程序的输入量 ( B)多个变量共用一个名字,以减少变量名的数目 ( C)选择 含义明确的名字,以正确提示所代表的实体 ( D)尽量用关键词作名字,以使名字标准化 6 下面不属于软件工程的 3个要素的是 ( )。 ( A)工具 ( B)过程

3、 ( C)方法 ( D)环境 7 结构化方法的核心和基础是 ( )。 ( A)结构化分析方法 ( B)结构化设计方法 ( C)结构化编程方法 ( D)结构化程序设计理论 8 在数据库管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是 ( )。 ( A)数据库系统 ( B)文件系统 ( C)人工管理 ( D)数据项管理 9 ER模型可以转换成关系模型。当两个实体间联系是 M: N联系时,它通常可转换成关系模式的个数是 ( )。 ( A) 2 ( B) 3 ( C) M+N ( D) M*N 10 所谓关系是指 ( )。 ( A)各条记录中的数据彼此

4、有一定的关系 ( B)一个数据库文件与另一个数据库文件之间有一定的关系 ( C)数据模型符合一定条件的二维表格式 ( D)数据库中各个字段之间彼此有一定关系 11 C+语言是以 ( )语言为基础逐渐发展演变而成的一种程序设计语 言。 ( A) Pascal ( B) C ( C) B ( D) Simula 67 12 设有 a、 b、 c、 d、 m、 n均为 int型变量,且 a=5、 b=6、 c=7、 d=8、 m=2、n=2,则逻辑表达式 (m=a B) else cout d+2end1; return O; ( A) 2 ( B) 3 ( C) 4 ( D)编译时有错,无结果 2

5、3 有以下程序 : #include iostream using namespace std; int main() int x; for(int i=1;i =100;i+) x=i; if (+x%2=0) if (+x%3=0) if (+x%7=0) cout ( A) 39,81 ( B) 42,84 ( C) 26,68 ( D) 28,70 24 有以下程序 : #include iostream using namespace std; int s=0; class sample static int n; public: sample (int i) n=i; static

6、 void add() s+=n; ; int sample:n=0; ( A) 2 ( B) 5 ( C) 7 ( D) 3 25 有以下程序: #include iostream.h void sort(int L,int n) int j, k, flag, temp; flag=n-1; while (flag O) k=flag-1; flag=O; for (j=O; j =k; j+) if(Lj Lj+1) ( A) 123 ( B) 3210 ( C) 2130 ( D) 1230 26 有如下程序: #include iostream using namespace std

7、; Class x protected: int a; public: x() a=1; ; class x1 : virtual public x public: x1() a+=1; cout ( A) 1 ( B) 123 ( C) 242 ( D) 244 27 有如下程序 : #include iostream using namespace std; class AA public: virtual void f() cout “AA“; ; class BB : public AA public: BB() cout “BB“; ; cla ( A) AA ( B) AABBCC

8、 ( C) BBAABBCC ( D) BBBBAACC 28 有以下程序: #include iostream #include string using namespace std; class base private: char baseName10; public: base ( ) strcpy (baseName, “Base“); virtual char *myName() ( A) DerivedBase ( B) BaseBase ( C) DerivedDerived ( D) BaseDerived 29 下面是类 MyClass的定义,对定义中各语句描述正确 的是

9、( )。 class MyClass private: int x,y, z; public: void MyClass(int A) x=a; / int f(int a, int B) / x=a; y=b; int f(int a, ( A)语句 是类 MyClass 的构造函数的定义 ( B)语句 和 实现类成员函数的重载 ( C)语句 实现对类成员变量 x的更新操作 ( D)语句 、 、 和 都不正确 30 有以下程序 : #include iostream #include fstream using namespace std; int main ( ) ofstream ofi

10、le; char ch; ofile.open (“abc.txt“); cin ch; while (ch!=# ) cin ch; ofile.put(ch); ( A)程序编译时出错 ( B) abc# ( C) abc ( D) # 31 【 】是指反映数据元素之间逻辑关系的数据结构。 32 在一个有 n个元素的顺序表的第 i个元素 (1in);之前插入一个新元素时,需要向后移动【 】个元素。 33 结构化程序设计所规定的三种基本控制结构是顺序结构、选择结构和【 】。 34 将整个软件划分成若干单独命名和可编程的部分,称之为【 】。 35 在数据库逻辑结构的设计中,将 ER模型转换为关

11、系模型应遵循相关原则。对于三个不同实体集和它们之间的多对多联系 m:n:p,最少可转换为【 】个关系模式。 36 若要想进行标准输入输出则头文件必须包含 _件。 37 在长度为 n的有序线性表中进行二分查找。最坏的情况下,需要的比较次数为_。 38 假定一个一维数组的定义为 “char a8, b; “若把该数组最后一个元素赋值给b,应该采取的表达式为: _。 39 _成员函数中不能直接引用类中说明的非静 态成员。 40 数据库管理系统常见的数据模型有层次模型、网状模型和 _3种。 41 实现比较两个字符串大小的函数是 _。 42 空字符串的长度是 _。 43 耦会和内聚是评价模块独立性的两个

12、主要标准,其中 _反映了模块内各成分之间的联系。 44 已知 double var;是文件 F1.CPP中的一个全局变量定义,若文件 F2 CPP中的某个函数也需要访问,则在文件 F2.CPP中 var应说明为 _。 45 程序文件的编译错误分为 _和 _两类。 国家二级( C+)笔试模拟试卷 111答案与解析 1 【正确答案】 A 【试题解析】 在一般的计算机系统中,基本的运算和操作有以下 4类:算术运算、逻辑运算、关系运算、数据传输。 “大于 ”属于逻辑运算中的一种。选项中的加、乘、除都属于算术运算。 2 【正确答案】 A 【试题解析】 一个数据结构中的元素在计算机存储空间中的位置关系与逻

13、辑关系不一定相同。例如,在家庭成员的数据结构中, “儿子 ”和 “女儿 ”都是 “父亲 ”的后件,但在计算机存 储空间中,根本不能将 “儿子 ”和 “女儿 ”这两个数据元素的信息都紧邻存放在 “父亲 ”这个数据元素后边。但在一年四季的数据结构中, “春 ”是“夏 ”的前件,在计算机存储空间中,就可以把 “春 ”存储在 “夏 ”的前面。数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构。 3 【正确答案】 A 【试题解析】 栈是一种特殊的线性表,栈的插入和删除运算都只在一端进行,即它的一端是封闭的,不允许进行插入与删除元素。一端是开口的,允许进行插入与删除元素,栈中的数据是先进后出的,

14、答案是 A。 4 【正确答案】 A 【试题解析】 二叉树是一种特殊的树,它要求非空二叉树只有一个根节点,所以它可以是空树。答案为 A。 5 【正确答案】 C 【试题解析】 本题涉及程序的编程风格,考生应该掌握一些基本的良好编程风格。标识符的名字应能反映它所代表的实际东西,应有一定实际意义。名字不是越长越好,应当选择精炼的意义明确的名字。必要时可使用缩写名字,但这时要注意缩写规则要一致,并且要给每一个名字加注释。同时,在一个程序中,一个变量只应用于一种用途。 6 【正确答案】 D 【试题解析】 软件工程包括 3个要素,即方法 、工具和过程。方法是完成软件工程项目的技术手段:工具支持软件的开发、管

15、理、文档生成;过程支持软件开发的各个环节的控制、管理。 7 【正确答案】 D 【试题解析】 结构化方法是软件开发方法之一。它包括结构化分析方法、结构化设计方法、结构化编程方法,而它的核心和基础是结构化程序设计理论。 8 【正确答案】 A 【试题解析】 文件系统是数据库系统的初级阶段,提供了简单的数据共享与数据管理能力,其功能简单,附属于操作系统而不成为独立的软件,只能看作是数据库系统的雏形。人工管理主要用于科学计算,硬 件无磁盘,直接存取,软件没有操作系统。数据库管理系统是从这两个阶段发展而来的,其数据独立性必然更高。因此答案为 A。 9 【正确答案】 B 【试题解析】 将 ER图转换为关系模

16、型的转换方法有:一个实体型转换为一个关系模式:一个 m: n联系转换为一个关系模式;三个或三个以上实体间的一个多元联系转换为一个关系模式。因此,本题答案为 B。 10 【正确答案】 C 【试题解析】 每个关系都类似一张表,或者在某种程度上类似一个 “平面 ”记录文件。 11 【正确答案】 B 【试题解析】 C+语言是 以 C语言为基础而逐渐发展起来的。 12 【正确答案】 C 【试题解析】 在 &运算中,如果第 1个表达式的值为假时,第 2个表达式将不再计算。在表达式中第 1个表达式 m=a b的值为 0,也就是假,所以第 2个表达式将不再计算。所以 n的值没有变。 13 【正确答案】 D 【

17、试题解析】 语句 “int a, b, *c=&a; ”执行完后,指针 c存放变量 a的地址。语句 “int*p =c; ”执行完后,指针 p存放变量 a的地址。语句 “p=&b; ”执行完后,指针 p存放变量 b的地址,但是指针 c仍然存放变量 a的地址。语 句“p=&b; ”只是对指针 p进行了重新赋值,但并没有改变指针 c的值。考核指针概念时,经常出此类题。 14 【正确答案】 B 【试题解析】 所谓函数重载,是指同一个函数名可以对应多个函数的实现。进行函数重载时,要求同名函数在参数个数上不同,或者参数类型上不同。即重载函数不许具有相同的形参列表。函数的返回类型不能作为函数重载的判断依据

18、。const是函数的一部分参与函数的重载。 15 【正确答案】 C 【试题解析】 C+中,类是用户自定义的一种数据类型,对象是类的实例,类定义了属于该类的所有 对象的共同特性。一个类作为一种数据类型,它可以定义多个对象。 16 【正确答案】 C 【试题解析】 当一个函数中有多个默认参数时,则形参分布中默认参数应从右到左逐渐定义。在函数调用时,系统按从左到右的顺序将实参与形参结合,当实参的数组不足时,系统将按同样的顺序用说明或定义中的默认值来补齐所缺少的参数。在选项 C中,函数调用中只有两个实参,系统按从左到右的顺序将实参与形参结合时,实参 &将赋值给血型形参 b,显然是非法的。 17 【正确答

19、案】 A 【试题解析】 静态成员函数与静态数据成员相似 ,也从属于类,只要类存在,静态成员函数就可以使用,静态成员函数的定义是在一般函数的定义前加上关键词static。本题程序中把成员函数 change()定义成静态成员函数。由于静态成员函数只能访问静态数据成员、静态成员函数和类以外的函数和数据,不能访问类中的非静态数据成员 (因为非静态数据成员只有对象存在时才有意义 )。所以类的数据成员 x和 y也必须定义成静态数据成员。 18 【正确答案】 B 【试题解析】 被关键词 virtual说明的函数称为虚函数。对于虚函数有以下限制: 只有类的成员函数才能说明 为虚函数。这是因为,虚函数仅适用于有

20、继承关系的类对象,所以普通函数不能说明为虚函数。 静态成员函数不能是虚函数,因为静态成员函数不受限于某个对象。 内联函数不能是虚函数,因为内联函数是不能在运行中动态确定其位置。即使虚函数在类的内部定义,编译时仍将其看作是非内联的。 构造函数不能是虚函数,因为构造时对象还是一片未定型的空间。只有在构造完成后,对象才能成为一个类的名副其实的实例。 、 析构函数可以是虚函数,而且通常说明为虚函数。说明虚函数的目的在于:使用 delete运算 符删除一个对象时,能确保析构函数被正确地执行。这是因为设置虚析构函数后,可以利用动态联编方式选择析构函数。 一般要求基类中说明了虚函数后,派生类说明的虚函数应该

21、与基类中虚函数的参数个数相等,对应参数的类型相同。如果不相同,则将派生类虚函数的参数类型强制转换为基类中虚函数的参数类型。 19 【正确答案】 C 【试题解析】 本题考核模板的定义。模板定义的类型参数表中包含一个或多个由逗号分隔的类型参数项,每一项由关键词 class后跟一个用户命名的标识符,此标识符为类型参数,它不是一种数据类 型,但可以同一般数据类型一样使用。在使用类模板时,必须将其实例化,即用实际的数据类型代替它。 20 【正确答案】 B 【试题解析】 本题考核构造函数的调用。 C+在创建一个对象时,会自动调用类的构造函数, 在构造函数中可以执行初始化成员变量的操作。语句 “MyClas

22、s obj1, obj22, *p; ”创建了 3个对象。 obj1、 obj20、 obj21和一个对象指针。在创建。 obj1、 obj20、 obj21对象时系统会调用类的构造函数。但在创建对象指针 p时,不调用类的构造函数,因 为指针 p本身不定义类对象,而是定义了 p可以指向一个 MyClass的对象。 21 【正确答案】 B 【试题解析】 本题考核运算重载的简单应用。程序中通过 “+”运算符重载将obj+转换成对类的私有变量 n的增 1运算。所以程序最后输出为 6。 22 【正确答案】 B 【试题解析】 表面上看,本题很容易得到答案。其实不然,出题者在题中隐藏了一个陷阱。粗心的读者

23、可能会想当然地认为 if语句中的条件表达式: a b c成立(因为 a =5, b=4, c=3)。然后执行 if后面的语句,就得到错误答案 A) 。 要想正确解答本题,先来了解关系运算符的一些知识:在 C+语言中, true(真 )是不为 0的任何值,而 false(假 )是 0。在使用关系运算符和逻辑运算符的表达式时,若结果为 true(真 )则返回 1,若结果为 false(假 ),则返回的是 0。 根据以上知识,第一步来判断 if后面的条件表达式 (a b C) 是否成立,根据运算符的结合性,先计算表达式 a b,因为 a=5, b=4,所以可得到答案 true,其返回值为 1。再计算

24、表达式 1 c,由于 c=3,所以可得到答案为 false(假 ),其返回值为 0。因此 if后面的 条件表达式不成立,继续下面的条件判断。第二步,计算 else if后面的条件表达式 (c-1 =D) =1),把 c=3, d=2代入此条件表达式,可得到答案为 true,此条件表达式成立,故执行 else if后面的语句,输出结果为 3。 23 【正确答案】 D 【试题解析】 程序最后输出的 x值所满足的条件为: x本身能被 7整除, (x-1)能被 3整除, (x-2)能被 2整除。在 1 100之间满足条件的 x值是 28和 70。 24 【正确答案】 B 【试题解析】 程序中定义对象

25、a(2)时,通过构造函数使 静态数据成员 n=2,在定义对象 b(5)时,通过构造函数使静态数据成员 n=5(覆盖了前面 n=2),再执行“sample: add(); ”使全局变量 s=5。注意:本题程序中尽管代码中静态数据成员 n的初始化语句 “int sample: n=0; ”没有意义 (因为各对象中的 n值由变量 i赋给 ),但不能省略,否则会出现编译错误。 25 【正确答案】 A 【试题解析】 本题中的函数 sort的功能是将输入的数组 L,按从小到大的顺序排序,并返回。所以程序最后的输出为 0123,即 A选项。 26 【正确答案】 D 【试题解析】 本题程序中引入了虚基类。在主

26、函数中,执行语句 “y obj; ”时,先执行虚基类 x的构造函数,使 a=1,然后执行类 x1的构造函数,使 a=2,并输出值 2。再执行类 x2的构造函数,使 a=4,并输出值 4。最后执行类 y的构造函数,输出值 4。 27 【正确答案】 D 【试题解析】 本题中,函数 f()在基类 AA中派生类 CC中都声明为虚函数,所以采用动态联编。主函数首先定义类 AA的对象 aa和指针对象 p,然后定义了类 BB的对象 bb,此时调用了类 BB的构造函数输出 BB。再定义类 CC的对象 cc,由于类 CC是类 BB的派生类,所以此时又调用类 BB的构造函数输出 BB。最后执行语句 “p=&cc;

27、 p- f(); ”,输出 AA和 CC。 28 【正确答案】 A 【试题解析】 本题考核虚函数的应用。类 Derived是从基类 Base公有派生而来的。因此, Derived是基类 Base的子类型。主函数中定义了一个基类对象 bb和一个派生类对象 dd。从程序中可看出,派生类 Derived的对象 dd交给了处理基类Base的对象的函数 showPtr进行处理。由于在基类中函数 myName被定义成虚函数,所以在函数 showPtr中调用的 myName函数为派生类的成员函数 mySame,从而输出 Derived。然后输出 className,即基类名称 Base。 29 【正确答案】

28、 D 【试题解析】 在 C+中构造函数没有返回类型,所以语句 是错误的。语句 和语句 在进行 f(x,y)调用时会产生二义性。静态成员函数不能直接访问类中说明的非静态成员。所以语句 也是错误的。 30 【正确答案】 C 【试题解析】 本题程序的功能是将从键盘终端输入的内容存储到指定的文件中。 31 【正确答案】 数据的逻辑结构 【试题 解析】 本题考查数据的逻辑结构的概念,数据的逻辑结构是指反映数据元素之间逻辑关系的数据结构。逻辑关系是指数据元素之间的前后间关系。 32 【正确答案】 n-i+1 【试题解析】 在一般情况下,要在第 i个元素之前插入一个新元素时,首先是从最后一个元素开始,直到第

29、 i个元素之间共 n-i+1个元素依次向后移动一个位置。 33 【正确答案】 循环结构 【试题解析】 任何一个大型的程序都由三种基本结构所组成,由这些基本结构顺序地构成了一个结构化的程序。事实上,程序设计语言仅仅使用顺序、选择和循环三种 基本结构就足以表达出各种其他形式结构的程序设计方法。 34 【正确答案】 模块 【试题解析】 模块是软件设计的一个重要概念。在解决复杂问题时,把整个问题分解成一个一个的模块来降低复杂性。如高级语言中的过程、函数、子程序等。每个模块可以完成一个特定的功能。 35 【正确答案】 4 【试题解析】 将 ER图转换为关系模型的转换方法有:一个实体型转换为一个关系模式;一个 m:n联系转换为一个关系模式;三个或三个以上实体间的一个多元联系转换为一个关系模式。因此,本题答案为 4。 36 【正确答案】 iostream.h 37 【正确答案】 log2n 38 【正确答案】 b=a7 39 【正确答案】 静态 40 【正确答案】 关系模型 41 【正确答案】 strcmp 42 【正确答案】 0 43 【正确答案】 内聚 44 【正确答案】 外部变量 45 【正确答案】 语法错误 连接错误

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

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

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