ImageVerifierCode 换一换
格式:DOC , 页数:21 ,大小:92KB ,
资源ID:502694      下载积分:2000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-502694.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文([计算机类试卷]国家二级(C++)笔试模拟试卷230及答案与解析.doc)为本站会员(inwarn120)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

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

1、国家二级( C+)笔试模拟试卷 230及答案与解析 1 下列叙述中正确的是 ( A)实体集之间一对一的联系实际上就是一一对应的关系 ( B)关系模型只能处理实体集之间一对一的联系 ( C)关系模型属于格式化模型 ( D)以上三种说法都不对 2 下列关于虚函数的描述中,正确的是 A) 虚函数是一个 static类型的成员函数 B) 虚函数是一个非成员函数 C) 基类中采用 virtual说明一个虚函数后,派生类中定义相同类型的函数时可不必加 virtual D) 派生类中的虚函数与基类中相同原型的虚函数具有不 同的参数个数或类型 3 4 下列叙述中正确的是 ( A)数据库系统是一个独立的系统,不

2、需要操作系统的支持 ( B)数据库技术的根本目的是解决数据的共享问题 ( C)数据库管理系统就是数据库系统 ( D)以上 3种说法都不对 5 下列程序的输出结果为 2,横线处应添加语句 ( )。 #include iostream using namespace std; public: _void fun()cout 1; ; class TestClass2:public TestClass1 public:void fun()cout 2;) ; int main() TestClass1 *p=new TestClass2; p- fun(); delete p; Teturn 0;

3、( A) public ( B) private ( C) virtual ( D) protected 6 下列关于类和对象的叙述中,错误的是 ( )。 ( A)一个类只能有一个对象 ( B)对象是类的具体实例 ( C)类是对某一类对象的抽象 ( D)类和对象的关系是一种数据类型与变量的关系 7 8 软件工程的出现是由于 ( )。 ( A)程序设计方法学的影响 ( B)软件产业化的需要 ( C)软件危机的出现 ( D)计算机的发展 9 在一个单链表 HL中,若要向表头插入一个由指针 p指向的节点,则需要执行语句序列 ( )。 ( A) HL=p; p- next=HL; ( B) p- ne

4、xt=HL; HL=p; ( C) p- next=HL; p=HL; ( D) p- next=HL- next; HL- next=p 10 若要把函数 void f()定义为 aClass的友元函数,则应该类 aClass的定义中加入的语句是 ( )。 ( A) void f(); ( B) static void f(); ( C) friend f(); ( D) friend void f(); 11 下列运算符中,不能重载的是 ( A) ?: ( B) + ( C) - ( D) = 12 设 int a 1, b 2;,则 (a ) b和 a b这两个表达式的值分别为 ( A)

5、 3,3 ( B) 3,4 ( C) 4,3 ( D) 4,4 13 下面叙述错误的是 ( )。 ( A)派生类可以使用 private派生 ( B)对基类成员的访问必须是无二义性的 ( C)基类成员的访问能力在派生类中维持不变 ( D)赋值兼容规则也适用于多继承的组合 14 下面关于 this指针的说法中错误的是 ( )。 ( A) this指针是一种隐含指针,存在于每个类的非静态成员函数中 ( B)它是成员函数所属对象的指针 ( C)通过 this成员变量的形式可以访问类中的数据成员 ( D)成员函数访问类中的数据成员格式可写成: this-成员变量 15 虚函数 ( )是可以不同的。 (

6、 A)函数名 ( B)参数个数 ( C)返回类型 ( D)函数体内容 16 关于下面程序的说法,正确的是 ( )。 #include iostream using namespace std; class x int a; public: x()a=3; int geta( ) cout a endl; return a; ; class y: x int b; public: x: geta; /A void result ( ) b=geta ( )+8; cont b endl; ; void main ( ) y yy; /B yy. result( ); yy. geta( ); /

7、C ( A) A行错误,应写成 “x:geat()” ( B) B行错误,应写成 “y yy();” ( C) C行错误,不能对私变量引用 ( D)没有错误,其输出结果为: 3 11 3 17 必须用一对大括号括起来的程序段是 ( )。 ( A) switch 语句中的 case标号语句 ( B) if语句的分支 ( C)循环语句的 循环体 ( D)函数的函数体 18 下列关于派生类的构造函数的说法中,哪个是错误的 _。 ( A)派生类不继承基类的构造函数和赋值运算 ( B)派生类的构造函数可以调用基类的构造函数 ( C)派生类的构造函数先于基类的构造函数执行 ( D)在建立派生类的实例对象时

8、,必须调用基类的构造函数来初始化派生类对象中的基类成员 19 设有如下程序段: char str=”World”; char*ptr=str; 执行上面的程序段后, *(ptr+5)的值为 _。 ( A) o ( B) 0 ( C)不确定的值 ( D) o的地址 20 下列函数的运行结果是 #include iostream h int f(int a, int b) int c; if(a b)c=1; else if(a=b)C=0; else c=-1; return(c); void main() int i=2, j=3; int p=f(i, j); cout p; ( A) -1

9、 ( B) 1 ( C) 2 ( D)编译出错,无法运行 21 下面程序的运行结果为 #include iostream h class A static int n; public: A()n=1; A(intnum)n=num; void print()cout n; ; int A n=2; void main() Aa, b(3); a.print(); b.print(); cout end1; ( A) 11 ( B) 13 ( C) 23 ( D) 33 22 有以下函数: char fun(char*p) return p; ) 则该函数的返回值是 ( )。 ( A)无确切的值

10、 ( B)形参 p中存放的地址值 ( C)一个临时存储单元的地址 ( D)形参 p自身的地址值 23 已有如下定义和输入语句,若要求 a、 b、 c、 d分别得到的值为 10、 20、 A和B,当从第一列开始输入数据时,正确的数据输入方式是 ( )。 int a,b char c, d; cin a b c d; ( A) 10, 20空格 A, B回车 ( B) 10空格 20空格 A空格 B回车 ( C) 10空格 20, A, B回车 ( D) 10, 20, A, B回车 24 如果友元函数重载一个运算符时,其参数表中没有任何参数则说明该运算符是( ) ( A)一元运算符 ( B)二

11、元运算符 ( C)选项 A和选项 B都可能 ( D)重载错误 25 下列关于虚基类的描述,错误的是 ( )。 ( A)设置虚基类的目的是为了消除二义性 ( B)虚基类的构造函数在非虚基类之后调用 ( C)若同一层中包含多个虚基类,这些虚基类的构造函数按它们说明的次序调用 ( D)若虚基类由非虚基类派生而来,则仍然先调用基类构造函数,再调用派生类的构造函数 26 下面不属于 C+语言的基本数据类型的是 ( )。 ( A)字符类型 ( B)整数类型 ( C)逻辑类型 ( D)枚举类型 27 在进 行任何 C+流的操作后,都可以用 C+流的有关成员函数检测流的状态。其中只能用于检测输入流状态的操作函

12、数名称是 ( )。 ( A) fail ( B) eof ( C) bad ( D) good 28 如果 x=0,那么 while(true)中的 true与下面的条件 ( )等价。 ( A) X=1 ( B) X=1 ( C) X 1 ( D) X 1 29 以下程序的结果是 ( )。 #include iostream.h void main() char * p=“abcdefgh“, *r; long *q; q=(long*)P; q+; r=(char*)q; cout r endl; ( A) defg ( B) cdef ( C) ghab ( D) efgh 30 以下类定

13、义中可能会引起错误的语句是 class A public: A( ) /1 int i; /2 private: int j; /3 A(int i) i+; /4 ; ( A) 1 ( B) 2 ( C) 3 ( D) 4 31 面向对象程序设计思想的主要特征中不包括 ( A)继承性 ( B)功能分解,逐步求精 ( C)封装性和信息隐藏 ( D)多态性 32 以下对 C+语言函数的有关描述中,正确的是 ( A)在 C+语言中调用函数时,只能把实参的值传给形参,形参的值不能传送给实参 ( B) C+语言函数既可以嵌套定义又可以递归调用 ( C)函数必须无返回值,否则不能使用函数 ( D)函数必

14、须有返回值,返回值类型不定 33 与数学式子 对应的 c+语言表达 式是 ( A) 3*x n/(2*x-1) ( B) 3*x*n/(2*x-1) ( C) 3*pow(x, n)*(1/(2*x-1) ( D) 3*pow(n, x)/(2*x-1) 34 对于下列语句,正确的判断是 for(x 0, y=O; (y! 123) public: Aint aa=0) (a=aa; class B:public A int b; A c; public: /用 aa初始化基类 A,用 aa+1初始化类对象成员 c B(int aa): b=aa+2 ; 42 函数 f()的功能是将形参 x的

15、值转换为二进制数,所得二进制数的每一位数放在一维数组 y中返回。二进制的最低位放在下标为 0的元素中,请将程序补充完整。 void f(int x, int y) int m=0, n; do n=x 【 】; ym+ =n; x/=2; while(x); 43 若有以下程序: #include iostream using namespace std; class Base public: void who() cout “Base“ end1; ; class Derivedl: public Base public: void who() cout “Derived“ end1; ;

16、int main() Base *p; Derived1 obj1; p= p- who(); return 0; 则该程序运行后的输出结果是【 】。 44 若有: int a=10, b=9, c; 则在计算表达式 c=(a%11)+(b=3), c+=2后,变量 c的值为【 】。 45 程序段的输出结果是【 】。 int x=3, y=2, z=1; count (x/y&z); 46 为解决在多重继承环境中因公共基类带来的【 】问题, c+语言提供了虚基类机制。 47 一个 C+语言程序的开发步骤通常包括编辑、【 】、链接、运行和调试。 48 求 1 100的和,可写成 for(s=0,

17、i=1;【 】; i+) s+=i;的形式。 49 重载的关系运算符和逻辑运算符的返回类型应当是 _。 50 C+在重载运算符中,如用成员函数重载一元运算符参数表中需要【 】个参数,如用友元函数重载一元运算符参数表中需要【 】个参数。 国家二级( C+)笔试模拟试卷 230答案与解析 1 【正确答案】 D 【试题解析】 实体集之间一对一的联系不一定是一一对应的关系。例如,在一个教室中,实体集 “学生 ”与实体集 “座位 ”之间是一对一的联系。因为实体集 “学生 ”中的每一个学生最多与实体集 “座位 ”中的一个座位有联系 (学生坐在该座位上 );并且,实体集 “座位 ”中的每一个座位也最多与实体

18、集 “学生 ”中的一个学生有联系 (座位上坐着该学生 )。但该教室中的学生与座位之间不一定是一一对应的关系,因为有可能某些座位是空的,没有学生去坐。因此,选项 A中的说法是错误的。在关系模型中,由于使用表格数据来表示实体之间的联系,因此,可以直接描述多对多的实体联系 。因此,选项 B中的说法也是错误的。关系模型是与格式化模型完全不同的数据模型,它与层次模型、网状模型相比有着本质的区别。关系模型是用表格数据来表示实体本身及其相互之间的联系,它是建立在数学理论基础上的。因此,选项 C中的说法也是错误的。 2 【正确答案】 C 【试题解析】 虚函数是在类的声明中使用 virtual 关键字来限定的成

19、员函数,在成员函数实现时不能再使用 virtual 关键字进行限定。派生类中的虚函数必须和基类中的虚函数的形参个数、形参类型、返回值完全一致。虚函数不能用 static关键字进行修饰。 3 【正确答案】 B 【试题解析】 数据的逻辑结构是数据间关系的描述,它仅抽象地反映数据间的逻辑关系,并不管其在计算机中的存储方式。数据的逻辑结构分为线性结构和非线性结构。若各数据元素之间的逻辑关系可以用一个线性序列简单地表示出来则称之为线性结构,否则称为非线性结构。线性表是典型的线性结构,而树形结构是典型的非线性结构。 4 【正确答案】 B 【试题解析】 数据库技术的根本目的是要解决数据的共享问题;数据库需要

20、操作系统的支持;数据库管理系统 (Database Management System, DBMS),对数据库进行统一地管理和控制,以保证数据库的安全性和完整性。它是数据库系统的核心软件。 5 【正确答案】 C 【试题解析】 由主函数 main 入手,定义 TestClass1类的指针对象 p 指向派生类Testclass2。因为基类和派生类中都有 fun函数,题目要求输出为 2,就是基类对象访问派生类中 fun函数。通过虚函数与指向基类对象的指针变量的配合使用,就能方便调用同名函数。所以这里将基类中的 fun 函数声明为 virtual。并且当一个成员函数被声明为虚函数后,其派生类中的同 名

21、函数自动成为虚函数。 6 【正确答案】 A 【试题解析】 此题考查的是类和对象的相关概念。类是将不同的数据和与这些数据相关的操作封装起来装在一起的集合体。对象是类的具体实例,也即类是对某一类对象的抽象,类和对象之间可以说是数据类型与变量的关系。一个类可以有无数个对象。 7 【正确答案】 C 【试题解析】 此题考查的是内联函数的概念。在调用时,内联函数会像宏函数一样的展开,将调用表达式用内联函数体来替换,所以它没有一般函数的参数压栈和退栈操作,所以选项 A)错误;即使没有使用 inline说 明,编译器也会将在类的说明部分定义的函数认定为内联函数,所以选项 B)错误;内联函数只是比普通函数有更高

22、的执行效率。 8 【正确答案】 C 【试题解析】 软件工程的出现源自于软件危机。为了消除软件危机,通过认真研究解决软件危机的方法,认识到软件工程是使计算机软件走向工程科学的途径,逐步形成了软件工程的概念。 9 【正确答案】 B 【试题解析】 HL 为链表的头指针。 HL指示链表中第一个节点的存储位置,在表头插入一个由指针 p指向的节点后,头指针指向 p, p的指针域指向原链表中第一个节点 10 【正确答案】 D 11 【正确答案】 A 【试题解析】 在 C+中, ?:是唯一个三目运算符,不能被重载。 12 【正确答案】 A 【试题解析】 单目的什运算优先级高于双目的 运算,不过抖的结合性是自右

23、向左的,而是自左向右的,所以上面的两个表达式都是先计算 a b 的值之后,a再自加 1。 13 【正确答案】 C 【试题解析】 在建立派生类的时候,并不是简单地把基类的私有成员直接作为派生类的私有成员,把基类的公用成员直接作为派生类的公用成员。涉及如何确定基类的成员在派生类中的访问 属性问题,不仅要考虑对基类成员所声明的访问属性,还要考虑派生类所声明的对基类的继承方式,根据这两个因素共同决定基类成员在派生类中的访问属性。所以本题选择 C。 14 【正确答案】 C 【试题解析】 this 指针是一个隐含指针,它隐含于每个类的非静态成员函数中。this 指针是成员函数所属的对象指针,它指向当前类的

24、对象地址。通过 this 指针访问当前对象成员有两种方式: (*this)成员, this-成员。 15 【正确答案】 D 【试题解析】 在 C+中的虚函数是一种单界面多实现版本的实现方 法,即函数名、返回类型、函数类型和个数顺序完全相同,但函数体内容可以完全不同。 16 【正确答案】 D 【试题解析】 语句 x:geta;把基类中的公有成员说明为子类中的公有成员,因而可以为子类对象引用。 17 【正确答案】 D 18 【正确答案】 C 19 【正确答案】 B 20 【正确答案】 A 【试题解析】 本题的函数是根据 a和 b的值来给 c赋值。 21 【正确答案】 D 【试题解析】 本题考查的是

25、静态数据成员的使用, n 为类 A的静态成员,即为类A的所有对象共有的 成员,所以,当对象 b把 n 初始化为 3时,对象 a的成员 n的值也为 3(这两个 n 实际上是同一个 )。 22 【正确答案】 B 23 【正确答案】 B 24 【正确答案】 D 25 【正确答案】 B 26 【正确答案】 B 【试题解析】 本题考核 C+数据类型范围。 C+中 unsigned char 类型的数据其取值范围为 0 127,所以题中 value加 1后,其值将变为 0。因此程序的最后输出为 100,即 B 选项。 27 【正确答案】 B 【试题解析】 C+中可以用文件流对象的下列成员 函数来判别文件流

26、的当前状态。 函数 is_open():判定流对象是否与一个打开的文件相联系,若是,返回true,否则返回 false。 函数 good():刚进行的操作成功时返回 true,否则返回 false。 函数 fail():与 good()相反,刚进行的操作失败时返回 true,否则返回 false。 函数 bad():如果进行了非法操作返回 true,否则返回 false。 函数 eof():进行输入操作时,若到达文件尾返回 true,否则返回 false。 其中, eof 函数只 能用于输入流操作。 28 【正确答案】 A 29 【正确答案】 D 30 【正确答案】 D 【试题解析】 在 c+

27、语言中类定义中的构造函数是私有的,但是其却调用了其中的公有变量,在实例化时会出现错误。注意: C+语言类的定义 31 【正确答案】 B 【试题解析】 面向对象程序设计的主要特征是继承性,封装性和信息隐藏,多态性。 32 【正确答案】 A 【试题解析】 形参的值的改变,不能影响实参的值。选项 B 函数只能嵌套调用,不能嵌套定义;函数要是有返回值其类型必须确定;函数 也可无返回值,用 void 表示。 33 【正确答案】 C 【试题解析】 本题考查考生将数学表达式翻译成 C+语句的能力。 34 【正确答案】 C 【试题解析】 本题考查 for循环条件中三个表达式的执行顺序。首先执行表达式一,然后执

28、行表达式二,如果表达式二为真,则循环体执行,然后执行表达式三,接着继续执行表达式二,如此循环。考生要注意的是,本题中表达式三中包含了变量 x的增量操作,因此可以由表达式二和三一起控制循环体的执行次数。本题正确答案为 C。 35 【正确答案】 C 【试题解析 】 本题考核虚基类。 C中,通过虚拟基类所派生的类,在所产生的对象中,只包含了一个和其他类共享的基础对象,也就是说,从同一个基类中以虚拟方式派生的所有类,在它们所产生的对象里,不会有一份基础对象,而只是在内存里保留一份基础对象,而派生类中只保留指向此基础对象的指针,这样就不会同时有两份基类对象的情形发生。用虚基类可以解决二义性问题。但是实现

29、运行时的多态性是虚函数。 36 【正确答案】 相关文档。 【试题解析】 计算机软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据及相关文档的完整集 合。 37 【正确答案】 前后件关系 【试题解析】 在数据存储结构中,除了要存储数据,还要存储数据的前后件关系,对于顺序存储的数据结构,前后件之间的关系是通过存储空间的位置来实现的,而对于链式存储来说,数据元素之间的前后件关系是通过指针来实现的。 38 【正确答案】 一对多 【试题解析】 实体之间的对应关系称为联系,它反映现实世界事物之问的相互关联。两个实体间的联系可以归结为三种类型:一对一联系表现为某一实体与另一实体一一对应相关联;一对

30、多联系表现为某一实体与相关多个实体相关联;多对多联 系表现为多个实体与相关多个实体相联系。所以实体 “班主任 ”与实体 “班级 ”之间存在一对多联系。 39 【正确答案】 对象 【试题解析】 在面向对象概念中,所有的同类的实体的抽象就构成一个类,而类被实例化就形成一个对象。 40 【正确答案】 自顶向下 【试题解析】 程序设计时,应先考虑总体,后考虑细节,逐步使问题具体化,对复杂的问题,应该设计一些子目标作为过渡。上述方法概括为:自顶向下,逐步求精。 41 【正确答案】 A(aa),c(aa+1) 或 c(aa+1),A(aa) 【 试题解析】 本题考核派生类构造函数的定义。题中要求用 aa初

31、始化基类 A,用 aa+1初始化类对象成员 c,用的初始化列表的形式,即 A(aa),c(aa+1)或 c(aa+1), A(aa)。 42 【正确答案】 2 【试题解析】 函数 f()的功能是将形参 x的值转换为二进制数,所以程序的空白处应填入 2。 43 【正确答案】 Derived 44 【正确答案】 15 45 【正确答案】 0 46 【正确答案】 二义性 【试题解析】 C+中产生虚基类的作用就是为了解决继承中的二义性问题, 通过虚基类继承可以把父基类中相同的函数只编译一次。 47 【正确答案】 编译 【试题解析】 C+语言程序开发的基本步骤是编辑、编译、链接、运行和调试。 48 【正

32、确答案】 i =100或者 i 101 【试题解析】 本题考核循环语句。在上述题中,我们看到 s=s+i,又有 i+,它的含义是当 i满足条件时, i自加 1,然后再与前面的 s相加,值赋给 s。所以 for语句中,缺少上限表达式。因为是求 1-100的和,所以 i满足的条件为 i =100或者 i 101。 49 【正确答案】 bool 【试题解析】 关系运算符和逻辑运算符重载后只能是 true或者 false,即返回值为 bool 型。 50 【正确答案】 0 1 【试题解析】 C+中友元函数重载一元运算符要有一个参数,重载二元运算符要有两个参数,而用成员函数重载时,重载一元运算符没有参数,重载二元运算符要有一个参数。

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