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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、国家二级( C+)笔试模拟试卷 92及答案与解析 1 数据结构作为计算机的一门学科,主要研究数据的逻辑结构、对各种数据结构进行的运算,以及 ( A)数据的存储结构 ( B)计算方法 ( C)数据映象 ( D)逻辑存储 2 串的长度是 ( A)串中不同字符的个数 ( B)串中不同字母的个数 ( C)串中所含字符的个数且字符个数大于零 ( D)串中所含字符的个数 3 在计算机中,算法是指 ( A)加工方法 ( B)解题方案的准确而完整的描述 ( C)排序方法 ( D)查询方法 4 以下不属于对象的 基本特点的是 ( A)分类性 ( B)多态性 ( C)继承性 ( D)封装性 5 开发软件所需高成本

2、和产品的低质量之间有着尖锐的矛盾,这种现象称做 ( A)软件投机 ( B)软件危机 ( C)软件工程 ( D)软件产生 6 下面不属于软件设计原则的是 ( A)抽象 ( B)模块化 ( C)自底向上 ( D)信息隐蔽 7 开发大型软件时,产生困难的根本原因是 ( A)大系统的复杂性 ( B)入员知识不足 ( C)客观世界千变万化 ( D)时间紧、任务重 8 下列 SQL语句中,用于修改表结构的是 ( A) ALTER ( B) CREATE ( C) UPDATE ( D) INSERT 9 数据库、数据库系统和数据库管理系统之间的关系是 ( A)数据库包括数据库系统和数据库管理系统 ( B)

3、数据库系统包括数据库和数据库管理系统 ( C)数据库管理系统包括数据库和数据库系统 ( D) 3者没有明显的包含关系 10 关系模型允许定义 3类数据约束,下列不属于数据约束的是 ( A)实体完整性约束 ( B)参照完整性约束 ( C)域完整性约束 ( D)用户自定义的完整性约束 11 下列关于 C+语言类的 描述中错误的是 ( A)类用于描述事物的属性和对事物的操作 ( B)类与类之间通过封装而具有明确的独立性 ( C)类与类之间必须是平等的关系,而不能组成层次结构 ( D)类与类之间可以通过一些方法进行通信和联络 12 C+语言中,表示一条语句结束的标号是 ( A) # ( B); ( C

4、) / ( D) 13 以下叙述中正确的是 ( A)构成 C+语言程序的基本单位是类 ( B)可以在一个函数中定义另一个函数 ( C) main( )函数必须放在其他函数之前 ( D)所有被调用的函数一定要在调用之前 进行定义 14 已知有定义 const int D=5; int i=1; double f=0 32; char c=15; 则下列选项错误的是 ( A) +i; ( B) D-; ( C) c+; ( D) -f; 15 以下程序的输出结果是 #include iostream.h void reverse(int a ,int n) int i,t; for(i=0;i n

5、 2;i+) t=ai; ai=an-1-i; an-1-i=t; void main( ) int b10=1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ( A) 22 ( B) 10 ( C) 34 ( D) 30 16 下面程序的功能是把 316表示为两个加数的和,使两个加数分别能被 13和 11整除,在划线处应填入的选项是 #include iostream.h void main( ) int i=0, j, k; doi+; k=316 13*i; while(_); j=k/11; cout “316=13*“ i “+11*“ j; ( A) k/11 ( B)

6、k%11 ( C) k/11=0 ( D) k%11=0 17 设有数组定义: char array =“China“;,则数 组 array所占的空间为 ( A) 4个字节 ( B) 5个字节 ( C) 6个字节 ( D) 7个字节 18 若已定义: int a =0, 1, 2, 3, 4, 5, 6, 7, 8, 9, *p=a, i; 其中0i9,则对 a数组元素不正确的引用是 ( A) ap a ( B) *( 3;i+) cout a2-ii “ “; ( A) 1 5 9 ( B) 7 5 3 ( C) 3 5 7 ( D) 5 9 1 22 下面程序的结果为 #include

7、iostream.h int c; class A private: int a; static int b; public: A( ) a=0;c=0; void seta( )a+; void setb( )b+; ( A) 1 2 1 ( B) 1 2 2 ( C) 1 1 2 ( D) 2 2 2 23 下列描述中哪个是正确的 ? ( A)私有派生的子类无法访问父类的成员 ( B)类 A的私有派生子类的派生类 C无法初始化其祖先类 A对象的属性,因为类 A的成员对类 C是不可访问的 ( C)私有派生类不能作为基类派生子类 ( D)私有派生类的所有子孙类将无法继续继承该类的成员 24 下

8、列关于构造函数说法不正确的是 ( A)构造函数必须与类同名 ( B)构造函数可以省略不写 ( C)构造函数必须有返回值 ( D)在构造函数中可以对类中的成员进行初始化 25 如果友元函数重载一个运算符时,其参数表中没有任何参数则说明该运算符是 ( A)一元运算符 ( B)二元运算符 ( C)选项 ) 和 选项 ) 都可能 ( D)重载错误 26 在重载一个运算符时,如果其参数表中有一个参数,则说明该运算符是 ( A)一元成员运算符 ( B)二元成员运算符 ( C)一元友元运算符 ( D)选项 ) 和选项 ) 都可能 27 下列关于模板的说法正确的是 ( A)模板的实参在任何时候都可以省略 (

9、B)类模板与模板类所指的是同一概念 ( C)类模板的参数必须是虚拟类型的 ( D)类模板中的成员函数全部都是模板函数 28 表示在输出时显示小数位,和在文件输入时判断文件尾的函数分别是 ( A) showbase( )和 eof( ) ( B) showpoint( )和 eof( ) ( C) showpoint( )和 bad( ) ( D) showpoint( )和 good( ) 29 下面程序段的运行结果是 void main( ) int t, a, b, c; a=1; b=2; C=2; while(a b c) t=a; a=b; b=t; c-; cout a “, “

10、b “, “ c; ( A) 1, 2, 0 ( B) 2, 1, 0 ( C) 1, 2, 1 ( D) 2, 1, 1 30 下列程序中画线处应填入的语句是 class Base public: void fun( )cout “Base of fun“ end1; ; class Derived: public Base void fun( ) _/显示基类的成员函数 fun cout ( A) fun( ); ( B) Base fun( ); ( C) Base: :fun( ); ( D) Base fun( ); 31 若定义 int k=7, x=12;,则能使值为 3的表达式

11、是 ( A) x%=(k%=5) ( B) x%=(k k%5) ( C) x%=k k%5 ( D) (x%=k) (k%=5) 32 在位运算中,操作数每右移一位,其结 果相当于 ( A)操作数乘以 2 ( B)操作数除以 2 ( C)操作数乘以 4 ( D)操作数除以 4 33 有以下结构体说明和变量的定义,且指针 p指向变量 a,指针 q指向变量 b。则不能把结点 b连接到结点 a之后的语句是 struct node char data; struct node*next; a, b, *p=&a, *q=&b; ( A) a next=q; ( B) p next=&b; ( C)

12、p next=&b; ( D) (*p) next=q; 34 一个类的友元函数能够访问该类的 ( A)私有成员 ( B)保护成员 ( C)公有成员 ( D)所有成员 35 下面程序的输出结果是 #include iostream.h #include string.h void main( ) char p110, p210 strcpy(p1, “abc“); strcpy(p2, “ABC“); char str50=“xyz“; strcpy(str+2, strcat(p1, p2); ( A) xyzabcABC ( B) zabcABC ( C) xyabcABC ( D) yz

13、abcABC 36 数据的逻辑结构有线性结构和【 】两大类。 37 顺序存储方法是把逻辑上相邻的结点存储在物理位置【 】的存储单元中。 38 一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的【 】。 39 软件工程研究的内容主要包括【 】技 术和软件工程管理。 40 关系操作的特点是【 】操作。 41 开发一个 C+语言程序的步骤通常包括编辑、【 】、链接、运行和调试。 42 假设 int a =1, b =2;则表达式 a+ b的值为【 】。 43 下面程序的输出结果为 【 】 。 #include iostream h void main( ) int num=0

14、, i=8; do i; num +; while( i); cout num end1; 44 通过使用 new和 delete两个运算符进行的分配为【 】存储分配。 45 下面程序的运行结果为 【 】 。 #include iostream h void fun(int x=0, int y=0) cout x y; void main( ) fun(5); 46 C+语言支持的两种多态性 分别是编译时的多态性和【 】的多态性。 47 重载的运算符保持其原有的【 】、优先级和结合性不变。 48 cout put(A);,还可以表示为【 】。 49 在 C+语言中,访问一个对象的成员所用的运

15、算符是【 】,访问一个指针所指向的对象的成员所用的运算符是【 】。 国家二级( C+)笔试模拟试卷 92答案与解析 1 【正确答案】 A 【试题解析】 数据结构是研究数据元素及其之间的相互关系和数据运算的一门学科,它包含 3个方面的内容,即数据的逻辑结构、存储结构和数据的运算。 2 【正确答案】 D 【试题解析】 串的长度指的是串中的字符的个数,且其字符个数可以为零。 3 【正确答案】 B 【试题解析】 计算机算法是指解题方案的准确而完整的描述,它有以下几个基本特征:可行性、确定性、有穷性和拥有足够的情报。 4 【正确答案】 C 【试题解析】 对象有如下一些基本特点,即标识惟一性、分类性、多态

16、性、封装性和模块独 立性。 5 【正确答案】 B 【试题解析】 软件工程概念的出现源自软件危机。所谓软件危机是泛指在计算机软件的开发和维护过程中所遇到的一系列严重问题。总之,可以将软件危机归结为成本、质量、生产率等问题。 6 【正确答案】 C 【试题解析】 软件设计遵循软件工程的基本目标和原则,建立了适用于在软件设计中应该遵循的基本原理和与软件设计有关的概念,它们是抽象、模块化、信息隐蔽和数据独立性。自底向上是集成测试中增量测试的一种。 7 【正确答案】 A 【试题解析】 软件的显著特点是规模庞大 ,复杂度超线性增长,在开发大型软件时,要保证高质量,极端复杂困难,不仅涉及技术问题,更重要的是必

17、须要有严格而科学的管理。 8 【正确答案】 A 【试题解析】 SQL语句中凡创建都用 CRE ATE,删除都用 DROP,改变用ALTER,再跟类型和名字,附加子句。 9 【正确答案】 B 【试题解析】 数据库系统 (Database System,简称 DBS)包括数据库 (Database,简称 DB、数据库管理系统 (Database Management System,简称 DBMS)、数据库管理员、 硬件和软件。 10 【正确答案】 C 【试题解析】 关系模型允许定义 3类数据约束,它们是实体完整性约束、参照完整性约束及用户自定义的完整性约束。其中前两种完整性约束由关系数据库系统支持

18、,对于用户自定义的完整性约束,则由关系数据库系统提供完整性约束语言,用户利用该语言给出约束条件,运行时由系统自动检查。 11 【正确答案】 C 【试题解析】 C+语言中的类是可以组成层次结构的,类是用于描述事物的属性和对事物的操作,类与类之间有相对的独立性,但其可以通过一些方法进行信息的通信。 12 【正确答案】 B 【试题解析】 C+语言中语句的结束符是分号。 13 【正确答案】 A 【试题解析】 关于 C+语言,我们应该了解以下必须要掌握的基础知识: C+程序是由类构成的。 一个函数由两部分组成:函数的首部和函数体。 一个类由两部分组成:类成员变量和类成员函数。 一个 C+程序总是从 ma

19、in函数开始执行的,而不论 main函数在整个程序中的位置如何 (main函数可以放在程序最前头,也可以放在程序最后,或写在一些函数之前,在另一些函数之后 )。 C+程序在书写上,表现形式比较自 由,一行内可以写几个语句,一个语句可以分写在几行上。每个语句和数据定义的最后必须有一个分号。 可以用 /*/ 和/对 C+语言的程序的任何部分作注释。 14 【正确答案】 B 【试题解析】 “+”, “-”运算符不能用于常量。 15 【正确答案】 A 【试题解析】 在 main函数中,调用 reverse函数将 b数组中的前 8个成员进行互置,执行完毕后, b数组中的成员为 8, 7, 6, 5, 4

20、, 3, 2, 1, 9, 10,在执行 for循环结构后,将 b6, b7b9 的值相加,结果为 1+2+9+10=22。注意:在计算累加和时,应将累加变量赋值为零。 16 【正确答案】 B 【试题解析】 do-while语句的一般形式是 do 语句 while(表达式 ); 特点是: “直到型 ”循环结构。先执行一次 “语句 ”,判 “表达式 ”,当 “表达式 ”为非0,再执行 “语句 ”,直到 “表达式 ”的值为 0时停止执行语句。在一般情况下,用while和 do-while语句解决同一问题时,若二者的循环体部分是一样的,它们的结果也一样。但当 while后面的 “表达式 ”一开始就为

21、 “假 ”时,两种循环的结果不同。这是因为此时 while循环的循环不被执行,而 do-while循环的循环体被执行一次。本题的关键是两个加数分别能被 13和 11整除,在 i=0时,直接将 316赋值给 k,当 k%11的值为 0时,则不必执行循环,将执行 j=k/11语句,输出结果,所以该表达式合理的条件是 k%11。 17 【正确答案】 C 【试题解析】 在给数组赋值时,可以用一个字符串作为初值,这种方法直观,方便而且符合人们的习惯。数组 array的长度不是 5,而是 6,这点必须要注意。因为字符串常量的最后由系统加 上一个 0,因此,上面的初始化与下面的等价:char array =

22、C, h, i, n, a, 0; 18 【正确答案】 D 【试题解析】 通常,引用一个数组元素可以用下标法,如 ap-a形式,或指针法,如 *(&ai)的形式。本题中 a9=9, a10显然超出了数组范围,注意,数组的下标是从 0开始的。 19 【正确答案】 C 【试题解析】 cout x+;语句中,程序先输出 x的值,然后再加 1,所以结果为 1,此时 x的值为 2;在 int x=0; x+=y*2;语句中,将 0的值赋给 x,然后再运算 x+=y*2的值,结果为 x=6(此时 x的值为局部变量 ), y的值不变,在最后在执行了 x语句后的值,所以应为 2。 20 【正确答案】 D 【试

23、题解析】 本题首先通过第一个 while循环计算字符串 a的长度,再通过第二个循环,将字符串 a和 b相连,最后返回连接后的总长度。 21 【正确答案】 B 【试题解析】 首先,当 i=0时,数组中的位置是 a2)0=7,当然,如果用排除法的话,就不用考虑后面的循环了,因为在 4个选项中,第 1个数为 7的选项只有B。本题执行第 2次循环时, i的值为 1,则 cout函数中的数组指向为 a11=5,依次循环,可求出答案。 22 【正确答案】 B 【试题解析】 C+语言中全局变量是任何函数都可以改变的量,静态变量的有效范围在定义它的类中,而普通的变量的有效性只在使用它的函数中,在本题中 c为全

24、局变量, b为静态变量, a为普通变量, b和 c在类 A的对象 a1和 a2中都自加 1。所以 b, c为 2, a为 1。 23 【正确答案】 B 【试题解析】 C+语言中一个派生类能不能继承基类的所有数据成员受继承方式的限制。 24 【正确答案】 C 【试题解析】 构造函数是一类特殊的函数,其特点是函数名与类同名,没有返回值,也可以省略不写,还可以对类中的成员进行初始化。 25 【正确答案】 D 【试题解析】 C+中用友元函数重载运算符至少有一个参数,重载一目运算符要有一个参数,重载二目运算符要有两个参数。 26 【正确答案】 D 【试题解析】 C+语言中用成员函数重载时,重载一目运算符

25、没有参数,重载二目运算符要有一个参数。 27 【正确答案】 D 【试题解析】 在 C+中规定如果一个 类被声明为类模板,那么其中的所有成员函数就都成为了模板函数。 28 【正确答案】 B 【试题解析】 表示在输出时显示小数位,和在文件输入时判断文件尾的函数分别是 showpoint()和 eof()。 29 【正确答案】 A 【试题解析】 本题中 (a b C的运算次序是先算 a b,返回 1,再运算 1 c,返回 1,所以表达式 a b c的值为 1。 30 【正确答案】 C 【试题解析】 如果在子类中要访问父类的函数应用 “:”运算符。 31 【正确答案】 D 【试题解析】 运 算符 “%

26、”的两侧都应该是整型数。另外,本题需要掌握的知识点是 x%=k等价于 x=x%k。 32 【正确答案】 B 【试题解析】 右移运算符 “ ”是双目运算符。其功能是把 “ ”左边的运算数的各二进位全部右移若干位, “ ”右边的数指定移动的位数。例如:设 a=15, a 2表示把 000001111右移为 00000011 (十进制 3)。 33 【正确答案】 B 【试题解析】 要把结点 b连接到结点 a之后,必须把 b的地址给 a的 next指针,选项 A中,指针变量 q保存的就是变量 b的地址,选项 B中 的 p是指针变量,应该是 p- next=&b;在选项 D中,用 *运算符取出结构体变量

27、,并且保存的就是 b的地址,所以正确。 34 【正确答案】 D 【试题解析】 一个类的友元函数对类成员的访问能力等同于类的成员函数,即能访问类的所有成员。 35 【正确答案】 C 【试题解析】 该函数的调用方式是 strcpy(字符数组,字符串 )其中 “字符串 ”可以是串常量,也可以是字符数组。函数的功能是将 “字符串 ”完整地复制到 “字符数组 ”中,字符数组中原有内容被覆盖。使用该函数时注意: 字符数组必须定义得足够大, 以便容纳复制过来的字符串。复制时,连同结束标志 0一起复制。 不能用赋值运算符 “=”将一个字符串直接赋值给一个字符数组,只能用 strcpy()函数来处理。 strc

28、at (字符数组,字符串 )功能是把 “字符串 ”连接到 “字符数组 ”中的字符串尾端,并存储于 “字符数组 ”中。 “字符数组 ”中原来的结束标志,被 “字符串 ”的第一个字符覆盖,而 “字符串 ”在操作中未被修改。使用该函数时注意: 由于没有边界检查,编程者要注意保证 “字符数组 ”定义得足够大,以便容纳连接后的目标字符串;否则,会因长度不够而产生问题。 连接前两个字符 串都有结束标志0,连接后 “字符数组 ”中存储的字符串的结束标志 0被舍弃,只在目标串的最后保留一个 0。 36 【正确答案】 非线性结构 【试题解析】 数据的逻辑结构有线性结构和非线性结构两大类。 37 【正确答案】 相

29、邻 【试题解析】 常用的存储表示方法有 4种,顺序存储、链式存储、索引存储、散列存储。其中,顺序存储方法是把逻辑上相邻的结点存储在物理位置也相邻的存储单元中。 38 【正确答案】 可重用性 【试题解析】 本题考查了继承的优点:相似的对象可以共享程序代码 和数据结构,从而大大减少了程序中的冗余,提高软件的可重用性。 39 【正确答案】 软件开发 【试题解析】 基于软件工程的目标,软件工程的理论和技术性研究的内容主要包括:软件开发技术和软件工程管理。软件开发技术包括:软件开发方法学、开发过程、开发工具和软件工程环境,其主体内容是软件开发方法学。软件工程管理包括:软件管理学、软件工程经济学,以及软件

30、心理学等内容。 40 【正确答案】 集合 【试题解析】 在关系操作中,所有操作对象与操作结果都是关系。而关系定义为元数相同的元组的集合。因此,关系 操作的特点是集合操作。 41 【正确答案】 编译 【试题解析】 C+语言是以编译方式实现的高级语言, C+语言程序的实现,必须要使用某种 C+语言的编译器对程序进行编译。 42 【正确答案】 2 【试题解析】 因为运算符 +和 -都是右结合的且优先级高于双目运算符 +,所以上式的运算顺序为先 a+, -b,再 a+b,最后 a自加 1。 43 【正确答案】 4 【试题解析】 本题考查的是考生分析简单循环结构的能力。大体过程为第 1次进入循环, i变

31、成 7, num变为 1, i变为 6;第 2次进入循环, i变成 5, num变为2, i变为 4;第 3次进入循环, i变成 3, num变为 3, i变为 2;第 4次进入循环, i变成 1, num变为 4, i变为 0,循环结束。 44 【正确答案】 动态 【试题解析】 本题考查的是对动态分配内存的掌握,在 C+语言中,使用关键字new和 delete进行动态内存申请和释放。 45 【正确答案】 50 【试题解析】 本题考查的是函数的默认参数,如果一个函数中有多个参数,则默认参数应从右至左逐个定义,所以题目中 x使用参数 5, y使用默认参数 0。 46 【正确 答案】 运行时 【试

32、题解析】 本题考查的是多态的概念,多态性主要是指发出同样的消息而被不同类型的对象接收时导致完全不同的行为,它一般分为编译时的多态性和运行时的多态性,比如函数重载和虚函数。 47 【正确答案】 操作符个数 【试题解析】 本题考查的是运算符重载的概念,用户重新定义的运算符不改变原运算符的优先性和结合性,也不改变运算符的语法结构,也就是说重载运算符不会产生新的运算符。 48 【正确答案】 cout A; 【试题解析】 本题考查的是 C+语言的流输出操作。 cout是 C+语言定义好的输出流对象,其中包括成员函数 put(char c),其功能是输出一个字符到屏幕,实际上 C+语言中已经重载了操作符 “ ”作为流输出操作符。 49 【正确答案】 成员选择运算符 (或 “.”) 成员访问运算符 (或 “- ”) 【试题解析】 本题考查的是使用对象和对象指针访问成员所使用的符号的不同,考生请注意它们的区别。

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