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

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

1、国家二级( C+)笔试模拟试卷 200及答案与解析 1 下列关于栈的叙述中,正确的选项是 ( )。 A) 在栈中只能删除数据 B) 在栈中只能插入数据 C) 栈是先进先出的线性表 D) 栈是先进后出的线性表 2 下列哪种数据模型可以用树形结构来表示实体之间联系 ( )。 A) 网状模型 B) 数据模型 C) 关系模型 D) 层次模型 3 1, 2, 3, 4四个元素按顺序进栈,不可能的出栈顺序为 ( )。 A) 1 2 3 4 B) 2 3 4 1 C) 1 4 3 2 D) 3 1 4 2 4 下列对于线性链表的描述中,正确的是 ( )。 A) 存储空间必须连续,且各元素的存储顺序是任意的

2、B) 存储空间不一定是连续,且各元素的存储顺序是任意的 C) 存储空间必须连续,且前件元素一定存储在后件元素的前面 D) 存储空间不一定是连续,且前件元素一定存储在后件元素的前面 5 对长度为 N的线性表进行顺序查找,在最坏情况下,需要的比较次数是 ( )。 A) N+1 B) N C) (N+1)/2 D) N/2 6 数据视图的描述称为 ( )。 A) 外模式 B) 内 模式 C) 概念模式 D) 存储模式 7 下列的方法中,不属于软件调试技术的是 ( )。 A) 强行排错法 B) 集成测试法 C) 回溯法 D) 原因排除法 8 设有表示学生选课的三张表,学生 S(学号,姓名,性别,年龄,

3、身份证号 ),课程 C(课号,课名 ),选课 SC(学号,课号,成绩 ),则表 SC的关键字 (键或码 )为( )。 A) 课号,成绩 B) 学号,成绩 C) 学号,课号 D) 学号,姓名,成绩 9 下列工具中,不属于结构化分析的常用工具的是 ( )。 A) PAD图 B) 数据字典 C) 判定树 D) 数据流图 10 在公有派生时,派生类中定义的成员函数只能访问原基类的 ( )。 A) 私有成员、保护成员和公有成员 B) 保护成员和私有成员 C) 公有成员和保护成员 D) 公有成员和私有成员 11 有如下定义: int b10=1,2,3,4,5,6,7,8,9,10,*q=b; 则数值为

4、8的表达式是 ( )。 A) *q+8 B) *(q+7) C) *q+=8 D) q+7 12 下面的符号中可以用作 C+标识符的是 ( )。 A) 3test B) fcc othter C) else D) radius 13 下列程序执行后,输出的结果是 ( )。 int x=-5,y=0; while(+x) y+; cout y end1; A) 1 B) 2 C) 4 D) 5 14 有如下类声明: class TestClass int n; public: TestClass(int i=0):n(i) void setValue(int n0); ; 下面关于 setVal

5、ue成员函数的实现中,正确的是 ( )。 A) TestClass:setValue(int n0)n=n0;) B) void TestClass:setValue(int n0)n=n0; C) void setValue(int n0)n=n0; D) setValue(int n0)n=n0; 15 下面关于常成员函数的说法中正确的是 ( )。 A) 常成员函数不能修改任何的数据成员 B) 常 成员函数只能修改一般的数据成员 C) 常成员函数只能修改常数据成员 D) 常成员函数只能通过常对象来调用 16 下面的函数调用为: fun(x+y,3,min(n-1,y)则 fun的实参个数是

6、 ( )。 A) 3 B) 4 C) 5 D) 6 17 下面关于虚函数的描述中,正确的是 ( )。 A) 基类中利用 virtual关键字说明一个虚函数后,其派生类中定义相同的原型函数时可不必加 virtual来说明 B) 虚函数是非成员函数 C) 虚函数是 static类型的成员函数 D) 派 生类中的虚函数与基类中类型相同的虚函数具有不同的参数个数或类型 18 有如下程序: #include iostream using namespace std; class Base protected: Base()cout Base; Base(char c)cout c; ; class De

7、rived:public Base public: Derived(char c)cout c; ; int main() Derived d(Derived); return 0; 执行这个程序屏幕上将显示输出 ( )。 A) Derived B) DerivedBase C) BaseDerived D) DerivedDerived 19 有如下程序: #include iostream using namespace std; int main() cout.fill(*); cout.width(6); cout.fill(#); cout 888 end1; return 0; 的

8、执行结果是 ( )。 A) #888 B) 888# C) *888 D) 888* 20 设程序如下: #include iostream using namespace std; int main() int *p,*q,r=10; q= p= cout *p+1 end1; return 0; 以上程序的输出结果是 ( )。 A) p的地址 B) r的地址 C) 11 D) 运行错误 21 下面关于函数模板的表述中不正确的是 ( )。 A) 类模板的成员函数都是模板函数 B) 类模板本身在编译过程中不会产生任何代码 C) 类模板只能有虚拟类型的参数 D) 用类模板定义一个对象时,实参不能

9、省略 22 下面类的声明中的几个语句,正确的是 (设定语句是主函数中的语句 )( )。 class TestClass private: int data; public: TestClass(int g_dat a) data=g_data; void show()cout data end1;) ; A) TestClass *p; B) TestClass m; C) TestClass.data=8; D) TestClass.show(); 23 类中的一个字符指针成员指向具有 m个字节的存储空间时,它所能存储 的字符串的最大长度为 ( )。 A) m-2 B) m-1 C) m D

10、) m+1 24 有如下程序: #include iostream using namespace std; class TestClass static int i; public: TestClass()i+; TestClass()i-; static int getVal()return i; ; int TestClass:i=0; void f()TestClass obj2;cout obj2.getVal(); int main() TestClass obj 1; f(); TestClass *obj3=new TestClass;cout obj3- getVal();

11、delete obj3;cout TestClass:getVal(); return 0; 程序的输出结果是 ( )。 A) 232 B) 221 C) 222 D) 231 25 下面关于派生类的描述中错误的是 ( )。 A) 派生类中至少有一个基类 B) 一个派生类可以作为另一个派生类的基类 C) 派生类只继承了基类中的公有成员和保护成员 D) 派生类的缺省继承方式是私有 26 有如下程序: #include iostream using namespace std; class TlestClass int n; public: TestClass(int k):n(k) int ge

12、t()return n; int get()constreturn n+1; ; int main() TestClass p(5); colast TestClass q(6); cout p.get() q.get(); return 0; 执行后的输出结果是 ( )。 A) 55 B) 57 C) 75 D) 77 27 下列 关于抽象类的表述中正确的是 ( )。 A) 派生类必须要实现作为基类的抽象类中的纯虚函数 B) 抽象类的成员函数至少有一个没实现 C) 抽象类不可能用来定义对象 D) 派生类不能成为抽象类 28 执行下列语句: #include iostream using na

13、mespace std; int main() int x=3; if(x=5) cout x+ end1; else cout x end1; return 0; 程序的输出是 ( )。 A) 3 B) 4 C) 5 D) 6 29 假定 TestClass为一个类,则该类的拷贝构造函数的声明语句为 ( )。 A) TestClass(TestClass x) B) TestClass void swap(int x,int y) int temp=x; x=y; y=temp; cout “x=“ x “,y=“ y end1; int main() int x=3,y=2; swap(x

14、,y); cout “x=“ x “,y=“ y end1; return 0; A) x=3,y=2 x=3,y=2 B) x=2,y=3 x=3,y=2 C) x=2,y=3 x=2,y=3 D) x=3,y=2 x=2,y=3 33 在每个 C+程序中必须有且仅有一个 ( )。 A) 函数 B) 主函数 C) 预处理指令 D) 语句 34 有如下程序: #include iostream using namespace std; classA public: A()cout “A“; ; class Bpublic:B()cout “B“; class C:public A B b; p

15、ublic: C()cout “C“; ; int main()C obj;return 0; 执行后的输出结果是 ( )。 A) ABC B) BAC C) ACB D) CBA 35 某二叉树中有 n个度为 2的结点,则该二叉树中的叶子结点数为 A) n+1 B) n-1 C) 2n D) n/2 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 国家二级( C+)笔试模拟试卷 200答案与解析 1 【正确答案】 D 2 【正确答案】 D 3 【正确答案】 D 【试题解析】 栈的操作原则为后进先出。选项 A)中出栈顺序可按 “1进, 1出, 2进,

16、2出, 3进, 3出, 4进, 4出 ”实现;选项 B)可按 1进, 2进, 2出, 3进, 3出, 4进, 4出实现; C)可按 “1进, 1出, 2进, 3进, 4进, 4出, 3出, 2出 ”实现。选项 D) 无法实现。 4 【正确答案】 B 5 【正确答案】 B 【试题解析】 在进行顺序查找过程中,如果线性表中被查的元素是线性表中的最后一 个,或者被查元素根本不在线性表中,则为了查找这个元素需要与线性表中所有元素进行比较,这是顺序查找最坏的情况。所以在此最坏情况下所需要比较的次数是该线性表的长度值。 6 【正确答案】 A 【试题解析】 外模式也称子模式,它是数据库用户能够看见和使用的局

17、部数据的逻辑结构和特征的描述,它是由概念模式推导而出来的,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。 7 【正确答案】 B 8 【正确答案】 C 9 【正确答案】 A 10 【正确答案】 C 【试题解析】 派生 类中的成员,一部分是从基类继承来的,另一部分是自己定义的新成员,所有的这些成员也分为公有、私有和保护三种访问权限。其中,从基类继承下来的全部成员构成派生类的基类,这部分的私有成员是派生类不能直接访问的,而公有成员和保护成员则是派生类可以直接访问的,但它们在派生类中的访问属性随着派生类对基类的继承方式而改变。 11 【正确答案】 B 12 【正确答案】 D 13 【正确答

18、案】 C 14 【正确答案】 B 15 【正确答案】 A 16 【正确答案】 A 【试题解析】 在 C+中, 形参列表是由逗号分开的。分别说明函数的各个参数。在 fun()函数中它包括三个形参: x+y, 3和 min(n-1,y);当调用一个函数时,实参与形参一对一匹配,所以突参个数也是 3个。 17 【正确答案】 A 【试题解析】 虚函数是非 static类型的成员函数,基类中可以利用 virtual关键字来声明虚函数,派生类中定义相同原型函数时可不必加 virtual说明,直接重写基类中的函数。在派生类中的虚函数必须与基类中的虚函数具有相同的参数个数与类型。 18 【正确答案】 C 【试

19、题解析】 派生类 Derived由基类 Base公有派生,在派生类构造函数声明时系统会自动调用基类的缺省构造函数。调用 Derived d(Derived);后,执行类Derived构造函数的 Derived(char c),系统自动调用基类的缺省构造函数 Base(),输出字母 Base;再执行派生类的构造函数 Derived(char c),输出字母 Derived。 19 【正确答案】 A 【试题解析】 C+在流操作中,利用 cout对象的 width属性设置输出字符的宽度,用 fill函数来设置需要填充的字符。题 目程序中,首先设置填充字符为 *,输出宽度为 6,但存输出前又设置了填充

20、字符为 #。所以在输出时,其填充字符为 #,由于 888不足 6个字符,所以在前面以三个 “#”来填充。 20 【正确答案】 C 21 【正确答案】 C 22 【正确答案】 A 【试题解析】 C+中,若没有类的显式声明构造函数则系统会为其提供一个默认的构造函数,若提供了构造函数则会将系统提供的默认的构造函数覆盖。调用构造函数时,实参必须与形参匹配。但是如果声明一个对象指针时,不是定义一个对象,不调用对象的构造函数。 23 【正确答案】 B 24 【正确答案】 B 【试题解析】 由于 i是类 TestClass的静态成员,该成员被类的所有实例共享。当定义 obj1时,系统自动调用构造函数 Tes

21、tClass(), i的值将加 1;调用函数 f()时,在定义 obj2时系统会自动调用构造函数 TestClass (), i的值将再加 1;调用obj2.getVal();后,将 i的值输出,输出值为 2;当调用函数 f()即将结束时,系统自动调用析构函数 TestClass(), i的值将减 1;当定义 obj3时,系统自动调用构造函数 TestClass(), i的值将加 1,调用 coat obj3- getVal();后,将 i的值输出,输出值为 2:调用 delete obj3后将执行 TestClass的析构函数 estClass(),执行后, i的值将减, TestClass

22、:getVal()为类的一个静态成员函数,其作用是返回私有静态成员变量 i的值 1。 25 【正确答案】 C 26 【正确答案】 B 【试题解析】 C+中对常对象的成员函数调用,将自动调用其常成员函数,程序中调用原型为 “intget()const;“的函数,对于非常对象 将调用原型为 “int get();“的函数。因为首先用 5对对象 p进行了初始化,所以执行 p.get()时直接返回 5,而对于常对象则以 6对 q进行初始化,在调用 q.get()时,将调用原型为 “int get()const;“的函数该函数将返回 n+1,第二个输出应为 7,所以本题答案为 57。 27 【正确答案】

23、 C 28 【正确答案】 C 29 【正确答案】 D 30 【正确答案】 B 31 【正确答案】 B 32 【正确答案】 B 33 【正确答案】 B 34 【正确答案】 A 35 【正确答案】 A 36 【正确答案】 关系 【试题解析】 关系代数是关系操纵语言的一种传统表示方式,它以集合代数为基础发展起来的,但它的运算对象和运算结果均是关系,这些新关系仍可以使用同样的代数运算进一步操作。关系代数也是一种抽象的查询语言,它通过对关系的运算来表达查询和修改处理的需求。 37 【正确答案】 前后件关系 【试题解析】 在数据存储结构中,除了要存储数据,还要存储数据的前后件关系,对于顺序存储的数据结构,

24、前后件之间的关系是通过存储空间的位置来实现的,而对于链式存储来 说,数据元素之间的前后件关系是通过指针来实现的 . 38 【正确答案】 相关文档 【试题解析】 计算机软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据及相关文档的完整集合。 39 【正确答案】 log2n 【试题解析】 二分法查找,也称拆半查找,是一种高效的查找方法。 40 【正确答案】 白箱法 【试题解析】 白箱测试是根据程序内部逻辑结构的分析来选取测试用例。由于测试用例对程序的逻辑覆盖程序决定了测试的完全性的程度,因此白箱测试也称为逻辑覆盖测试。 41 【正确 答案】 友元 【试题解析】 C+流的输入运算符 “”和

25、输出运算符 “”只能作为非成员函数重载,即应重载为友元函数。 42 【正确答案】 x=2, y=3 x!=y 43 【正确答案】 3 44 【正确答案】 把整型指针 p赋值给通用指针 q 45 【正确答案】 6,11 46 【正确答案】 成员初始化列表 【试题解析】 派生类是基类的具体化,而基类则是派生类的抽象。派生类也就是基类的具体实现,所以对基类数据成员的初始化是在派生类的构造函数中成员初始化列表执行的。 47 【 正确答案】 TestClassl(inti): TestClass(i) 48 【正确答案】 C 49 【正确答案】 int Point: countP=O: 50 【正确答案】 2

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

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

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