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

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

1、国家二级( C+)笔试模拟试卷 264及答案与解析 1 有如下函数模板声明: template typename T T Max(T a, T B) return(a=B) ?a: b; 下列对函数模板 Max的调用中错误的是 A) Max(3.5, 4.5) B) Max(3.5, 4); C) Max double (3.5, 4.5) D) Max double (3.5, 4) 2 下列叙述中正确的是 ( )。 ( A)一个逻辑数据结构只能有一种存储结构 ( B)逻辑结构属于线性结构,存储结构属于非线性结构 ( C)一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率

2、 ( D)一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率 3 对建立良好的程序设计风格,下面描述正确的是 ( A)程序应简单、清晰、可读性好 ( B)符号名的命名只要符合语法 ( C)充分考虑程序的执行效率 ( D)程序的注释可有可无 4 下面关于指针的说法中错误的是 ( )。 ( A)在指针定义的同时可以对其进行初始化 ( B)指针 根据其所指向变量的类型的不同,所占用内存大小也不同 ( C)指针中存放的是内存单元的地址 ( D)相同类型的指针之间可以相互赋值 5 函数定义如下 : void fun(int x,inty+; 如果执行代码段 : int a=0,b=1;

3、 fun(a,b); 则变量 a和 b的值分别是 ( )。 ( A) 0和 1 ( B) 0和 2 ( C) 1和 1 ( D) 1和 2 6 对虚函数的调用 ( )。 ( A)一定使用动态联编 ( B)必 须使用动态联编 ( C)一定使用静态联编 ( D)不一定使用动态联编 7 人们已经提出了许多种类型的数据依赖,其中最重要的是函数依赖和 ( )。 ( A)数据依赖 ( B)多值依赖 ( C)单值依赖 ( D)数值依赖 8 下列叙述中错误的是 ( )。 ( A)在数据库设计的过程中,需求分析阶段必须考虑具体的计算机系统 ( B)在数据库设计的过程中,概念结构设计与具体的数据库管理系统有关 (

4、 C)在数据库设计的过程中,逻辑结构设计与具体的数据库管理系统有关 ( D)在数据库设计的过程中 ,物理结构设计依赖于具体的计算机系统 9 设栈 S的初始状态为空。元素 a, b, c, d, e, f依次通过栈 S,若出栈的顺序为b, d, c, f, e, a,则栈 S的容量至少应该为 ( A) 3 ( B) 4 ( C) 5 ( D) 6 10 在结构化方法中,软件功能分解属于下列软件开发中的阶段是 ( A)概要设计 ( B)需求分析 ( C)详细设计 ( D)编程调试 11 设有以下程序段: int a5=0,*p, *q; p=a; q=a; 则下列选项中,合法的运算是 ( A) p

5、*q ( B) p-q ( C) p*q ( D) p%q 12 有如下程序: #include iostream using namespace std; class Part public: Part(int x=0):val(x) cout val; Part()cout val; private: int val; ; class Whole public: Whole(int x ,int y, int z=0):p2(x),p1(y),val(z)coutval; Whole()cout val; private: Part p1,p2; int val; ; int main()

6、 Whole obj(1,2,3); return 0; 程序的输出结果是 ( )。 ( A) 123321 ( B) 213312 ( C) 213 ( D) 123123 13 下列程序的运行结果为 ( )。 #include iostream.h void main() int a=2; int b=a+1; cout a/b endl; ( A) 0.66667 ( B) 0 ( C) 0.7 ( D) 0.66666666 14 关于 continue语句叙述不正确的是 ( A) continue语句用于循环体中,结束循环 ( B) continue语句用于循环体中,它使执行流跳出循

7、环体中尚未执行的语句,并进行下一循环判断 ( C) continue可以用于 if语句中 ( D) continue语句不能代替 break语句 15 下面程序的输出结果是 #include iostream.h class example int a; public: example(int b) a b ; void pnnt( ) a a 1;cout a “ “; void print( ) constcout a “ “; ; void main( ) example x(3) ; const example y(2) ; x.print( ) ; y.print( ) ; ( A)

8、 2 2 ( B) 4 3 ( C) 4 2 ( D) 3 2 16 若有以下程序: #include using namespace std; class A public: A(int i,intj) a=i: b=j; void move(int x,int y) a+=x; b+=y; void show() cout( * ,:, ?: ( B) +, -, new, delete, = ( C) sizeof, new, delete, +, - ( D) sizeof, new, delete, +, - 32 一个函数为 void f(int,char ch=a),另一个函数为

9、 void f(int),则它们( )。 ( A)不能在同一程序中定义 ( B)可以在同一程 序中定义并可重载 ( C)可以在同一程序中定义,但不可以重载 ( D)以上三种说法均不正确 33 下列叙述中正确的是 ( A)全局变量的作用域一定比局部变量的作用域范围大 ( B)静态类别变量的生存期贯穿于整个程序的运行期间 ( C)函数的形参都属于全局变量 ( D)未在定义语句中赋初值的 auto变量和 static变量的初值都是随机值 34 有如下程序段 int i=0, j=1; int class Con char ID; public: Con():ID(A) cout 1; Con(cha

10、r ID) :ID(ID) cout 2; Con(Con char get1D()constreturn ID; ; void show(Con c) cout c.getID(); int main() Con c1; show(c1); Con c2(B); show(c2); return 0; 执行上面程序的输出是 _。 42 多态性分为两类:编译时的多态性和 _。 43 在下面的程序的横线处填上适当的语句,使该程序的输出为 12。 #include iostream using namespace std; class Base public: int a,b; Base(int

11、i) a=i; ; class Derived: public Base int a; public: Derived(int x): Base(x),b(x+1) void show() 【 】 ; /输出基烃数据成员 a的值。 cout b end1; ; int main() Derived d(1); D. show(); return 0; 44 C+目标程序经【 】后生成扩展名为 exe 的可执行程序文件。 45 若有以下程序: #include iostream using namespace std; class Base public: void who() cout “cl

12、ass Base“ end1; ; class Derivedl : public Base public: void who() cout “class Derivedl“ end1; ; class Derived2 : public Base public: void who() cout “class Derived2“ end1; ; int main() Base *p; Derivedl obj1; Derived2 obi2; p= p= p- who ( ); return 0; 则该程序运行后的输出结果是【 】。 46 空字符串的长度是 _。 47 排序是计算机程序设计中的

13、一种重要操作,常见的排序方法有插入排序、 _ 和选择排序等。 48 以下程序输出的结果是 【 】 。 #include iostream.h void main( ) int a=5, b=4, c=3, d; d=(a b C) ; cout d; 49 在 C+语言中,访问一个对象的成员所用的运算符是【 】,访问一个指针所指向的对象的成员所用的运算符是【 】。 50 多数运算符既能作为类的成员函数重载,也能作为类的非成员函数重载,但 运算符只能作为类的【 】函数重载。 国家二级( C+)笔试模拟试卷 264答案与解析 1 【正确答案】 B 2 【正确答案】 D 【试题解析】 数据的存储结构

14、 是指数据的逻辑结构在计算机存储空间中的存放形式,一种数据结构可以根据需要采用不同的存储结构,常用的存储结构有顺序和链式结构。采用不同的存储结构,其处理的效率是不同的。 3 【正确答案】 A 【试题解析】 程序设计应该简单易懂,语句构造应该简单直接,不应该为提高效率而把语句复杂化。 4 【正确答案】 B 【试题解析】 指针是一种用来存放其他变量地址的数据类型,它的声明形式为:类型 +变量名,可以在声明的时候对其进行初始化。由于其存放的是内存单元的地址,所以大小一般都是 4个字节 5 【正确答案】 B 【试题解析】 本题中定义了一个 fun函数,当调用 fun(a, b);函数时,形参 x和 y

15、被初始化为实参 a和 b 的引用,参数 x为非引用类型,参数 y为引用类型,在执行该函数时,对形参 x的改变不会影响到实参,形参 y的改变将会影响到实参,因此调用 fun 函数后,形参变量 x=1, y=2,实参变量 a=0, b=2。 6 【正确答案】 D 【试题解析】 虚函数在运行阶段和类的对象绑定在一起,这样成为动态联编。虚函数声明只能出现在类声明中虚函数原型中,而不能在成员的函数体实现的时候。必须由成员函数 来调用或者通过指针、引用来访问虚函数。如果通过对象名来访问虚函数,则联编在编译过程中认为足静态联编。 7 【正确答案】 B 【试题解析】 人们已经提出了许多种类型的数据依赖,其中最

16、重要的是函数依赖和多值依赖。 8 【正确答案】 B 9 【正确答案】 A 【试题解析】 根据题中给定的条件,可以作如下的模拟操作: 元素 a, b进栈,栈中有 2个元素,分别为 a, b; 元素 b出栈后,元素 c, d 进栈,栈中有 3个元素,分别为 a, c, d: 元素 d, c出栈后,元素 e, f进栈,栈中有 3个元素,分别为 a, e, f; 最后,元素 f, e, a出栈,栈为空。可以看出,进栈的顺序为 a, b, c, d, e, f,出栈的顺序为 b, d, c, f, e, a,满足题目要求。每次进栈操作后,栈中最多有 3个元素,所以,为了顺利完成这些操作,栈的容量应至少为

17、 3。本题的正确答案为 A。 10 【正确答案】 A 【试题解析】 概要设计的任务是划分出构成系统的各物理元素以及设计出软件的结构 (如确定模块及模块间的关系 )。设计过程通常分为以下几步:提出可选择方案;选择合理方案;推荐最佳方案;功能分解;设计软件结构;制定测试计划:最后提交概要设计 文档。软件功能分解属于概要设计阶段。本题的正确答案为A。 11 【正确答案】 B 【试题解析】 本题考核指针的运算。 C+语言中,指向同一字符串的指针之间可以,也只能进行减运算,减运算后返回的是一整型数,表示指针之间的地址偏移量。 12 【正确答案】 B 【试题解析】 此题考查的是类的构造与析构。在建立类的对

18、象时,构造函数的执行顺序如下:执行基类的构造函数,调用顺序按照各个基类被继承时声明的顺序(自左向右 ),接着执行成员对象的构造函数,调用顺序按照各个成员对象在类中声明的顺序,最后执行 自身的构造函数。析构顺序与之相反。本题中, Whole类中有两个 Part类的成员 p1 和 p2,根据它们定义的顺序,先构造 p1再构造 p2。所以,首先被构造的是 p1(y),输出 2;第二个被构造的是 p2(x),输出 1;最后调用析构函数,输出 val的值 3;析构函数调用顺序与构造函数相反。故最后输出213312。 13 【正确答案】 B 【试题解析】 因为题目中定义的变量 a和 b均为整型数据,所以

19、a/b 即 2/3得到的仍然是整型数据,得到 0。 14 【正确答案】 A 15 【正确答案】 C 【试题解析 】 “ ”是右结合的,所以先赋值为 3,最后输出 3 1;常成员函数只有常对象才能调用,所以输出 2。 16 【正确答案】 C 【试题解析】 此题的执行过程如下:首先 B d(3, 4);语句调用 B类的构造函数: B(int i,intj), B的构造函数中调用基类 A的构造函数,使得 a=3, b=4;d fun()会调用函数 move(3, 5),使得 (3, 4)和 (3, 51的对应部分分别相加,最后输出 6, 9。 17 【正确答案】 D 【试题解析】 如果一个模板声明列

20、出了多个参数,则每个参数之间必须使用逗号隔开,每个参数都必须使用 class 关键字来修饰。 18 【正确答案】 D 【试题解析】 函数返回值的类型是由在定义该函数时所指定的函数类型所决定。 19 【正确答案】 D 【试题解析】 选项 A、选项 B 和选项 C都是构造函数的特征,类中的静态数据成员是类的所有对象共享的,所以它必须有单独的初始化,不能由类的构造函数进行初始化。 20 【正确答案】 D 【试题解析】 C+中函数的返回值类型是由定义函数时所指定的函数类型决定的,而不是其他内容决定的。 21 【正确答案】 B 22 【正确答案】 D 23 【正确答案】 A 24 【正确答案】 D 25

21、 【正确答案】 D 26 【正确答案】 A 【试题解析】 continue是跳出了本次循环中尚未执行的语句,重新执行循环,但没有终止循环。注意:注意 break, continue和 goto语句的用法和区别。 27 【正确答案】 B 【试题解析】 类 D继承了类 C和类 B,所以在构造的时候分别构造类 B 和类C。 28 【正确答案】 B 【试题解析】 本题考核派生类的定义和成员的访问权限。 第 处 错误:在派生类的构造函数 Derive(int x)中没有调用基类的构造函数对基类对象初始化。 第 处错误:数据 data是基类 Base的私有成员,派生类 Derive 不能访问,所以在函数

22、setvalue中对 data的赋值是错误的。 29 【正确答案】 B 【试题解析】 本题考核派生类的定义和成员的访问权限。 第 1处错误:在派生类的构造函数 Derive(intx)中没有调用基类的构造函数对基类对象初始化。 第 2处错误:数据 data是基类 Base的私有成员,派生类 Derive 不能访问,所 以在函数 setvalue中对 data的赋值是错误的。 30 【正确答案】 D 31 【正确答案】 A 【试题解析】 C+语言中的不能重载的操作符是 ., . * , - * ,:和 ?:。 32 【正确答案】 B 【试题解析】 题目中的两个函数参数个数不同,因此可以在同一程序

23、中定义为重载函数。所以,选项 B)叙述正确。 33 【正确答案】 B 【试题解析】 本题考察的是变量的作用域及其生存期,需要掌握变量类别及其特点。 34 【正确答案】 A 【试题解析】 本题考查 的知识点是:指针和引用。指针声明的一般形式为: 数据类型 *声明的指针变量名; 引用声明的一般形式为: 数据类型 &声明的引用变量名 =被引用的变量名; 引用声明时必须初始化,而指针则可有可无。通过引用来改变其所引用的对象,直接赋值即可,而通过指针改变其所指对象则须使用一元运算符 “*”。在本题中,语句 就是一条合法的引用声明语句,使变量 i被 r所引用。语句 通过引用 r将变量 j的值赋给变量 i。

24、语句 声明了指针变量 p,并初始化指向变量 i。而语句 中的 *p代表了变量 i,欲将 &r(变量 r的地址值 )赋给 *p(变量 i),这会引起 VC6编译器产生一条类型不匹配的错误 “无法将类型 int*转换为 int”。故本题应该选择A。 35 【正确答案】 A 【试题解析】 类模板说明的一般形式是: template类型形参表 class类名 /类说明体 ? ; 函数模板的一般说明形式如下 template模板形参表 返回值类型函数名 (模板函数形参表 ) /函数定义体 36 【正确答案】 数据库管理系统 【试题解析】 数据库管理系统是 数据库的管理机构,它是一种系统软件,负责数据库中

25、的数据组织、数据操纵、数据维护、控制及保护和数据服务等。 37 【正确答案】 关系 38 【正确答案】 fn(5.27) 【试题解析】 函数调用,注意形参的个数和类型的匹配问题。 39 【正确答案】 数据模型 【试题解析】 数据模型是对客观事物及联系的数据描述,它反映了实体内部及实体与实体之间的联系。因此,数据模型是数据库设计的核心。 40 【正确答案】 相邻 【试题解析】 常用的存储表示方法有 4种,顺序存储、链式存储、索引 存储、散列存储。其中,顺序存储方法是把逻辑上相邻的结点存储在物理位置咀相邻的存储单元中。 41 【正确答案】 13A23B 【试题解析】 Con c1定义 c1 对象,

26、调用 Con 的无参数构造函数,输出 1, ID值变为 A,执行 show(c1)时会调用拷贝构造函数,将 c1 对象的值拷贝给 show()函数的形参,此时输出 3,然后在 show()中输出 c1 的 ID值 A, Con c2(B)定义 c2 对象,调用 Con(char ID) 构造函数,输出 2, c2 的 ID值为 B, show(c2)执行时先调用拷贝构造函数输出 3,然后输出 B。因此程序输出结果为 “13A23B”。 42 【正确答案】 运行时的多态性 【试题解析】 多态性是指一个接口,多种方法。它分为编译时多态性和运行时的多态性。 43 【正确答案】 cout Base:a

27、 44 【正确答案】 连接 【试题解析】 在过程中首先编译为 .obj文件,然后连接为可执行文件。 45 【正确答案】 class Derived2 【试题解析】 本题考核对象指针的应用。主函数中定义了一个 Base类对象指针p,然后逐步被赋值为 obj1和 obj2,最后通过对象指针 p调用函数 who(),也即调用 Derived2中的函数 who(),输出 class Derived2。 46 【正确答案】 0 47 【正确答案】 交换排序 48 【正确答案】 0 【试题解析】 本题的关键在于对变量 c的赋值运算: 49 【正确答案】 成员选择运算符 (或 “.”) 成员访问运算符 (或 “- ”) 【试题解析】 本题考查的是使用对象和对象指针访问成员所使用的符号的不同,考生请注意它们的区别。 50 【正确答案】 成员 【试题解析】 运算符重载。

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

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

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