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

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

1、国家二级( C+)笔试模拟试卷 156及答案与解析 1 程序设计方法要求在程序设计过程中 ( A)先编制出程序,经调试使程序运行结果正确后再画出程序的流程图 ( B)先编制出程序,经调试使程序运行结果正确后再在程序中的适当位置处加注释 ( C)先画出流程图,再根据流程图编制出程序,最后经调试使程序运行结果正确后再在程序中的适当位置处加注释 ( D)以上三种说法都不对 2 下列叙述中正确的是 ( A)算法的空间复杂度是指算法程序的长度 ( B)算法的效率只与所处理数据的规模有关,而与数据的存储结构无关 ( C)数据的逻辑结构与存储结构是一一对应的 ( D)上述三种说法都不对 3 下列数据结构中具

2、有记忆作用的是 ( A)栈 ( B)队列 ( C)有序表 ( D)二叉树 4 对下列二叉树进行后序遍历的结果是 ( A) ZBTYCPXA ( B) ATBZXCYP ( C) ZBTACYXP ( D) ATBZXCPY 5 在长度为 n的有序线性表中进行二分查找,需要的比较次数为 ( A) log2n ( B) nlog2n ( C) n/2 ( D) (n+1)/2 6 在结构化分析方法中,数据字典的作用是 ( A)存放所有需要处理的原始数据 ( B)存放所有处理的结果 ( C)存放所有的程序文件 ( D)描述系统中所用到的全部数据和文件的有关信息 7 下列叙述中正确的是 ( A)软件交

3、付使用后还需要进行维护 ( B)软件一旦交付使用就不需要再进行维护 ( C)软件交付使用后其生命周期就结束 ( D)软件维护是指修复程序中被破坏的指令 8 下列关于关系运算的叙述中正确的是 ( A)投影、选择、连接是从二维表的行的方向来进行运算 ( B)并、交、差是从二维表的列的方向来进行运算 ( C)投影、选择、连接是从 二维表的列的方向来进行运算 ( D)以上三种说法都不对 9 设有如下关系表: 则下列操作中正确的是 ( A) T-RS ( B) T=R S ( C) T=RS ( D) T=R/S 10 数据库的概念模型独立于 ( A)具体的机器和 DBMS ( B) E-R图 ( C)

4、信息世界 ( D)现实世界 11 以下对 C/C+语言函数的描述中,正确的是 ( A) C程序由一个或一个以上的函数组成 ( B) C函数既可以嵌套定义又可以递归调用 ( C)函数必须有返回值,否则不能使用函数 ( D) C+程序中调用关 系的所有函数必须放在同一个程序文件中 12 以下正确的描述为 ( A)每个 C+语言程序必须在开头用预处理命令: ( B)预处理命令必须位于 C+源程序的首部 ( C)在 C+语言中预处理命令都以 “ #“开头 ( D) C+语言的预处理命令只能实现宏定义和条件编译的功能 13 下列叙述中正确的是 ( A)全局变量的作用域一定比局部变量的作用域范围大 ( B

5、)静态类别变量的生存期贯穿于整个程序的运行期间 ( C)函数的形参都属于全局变量 ( D)未在定义语句中赋初值的 auto变量和 static变量的初 值都是随机值 14 以下选项中合法的用户标识符是 ( A) long ( B) _2 Test ( C) 3 Dmax ( D) A.dat 15 已知大写字母 A的 ASCII码值是 65,小写字母 a的 ASCII码是 97,则用八进制表示的字符常量 101是 ( A)字符 A ( B)字符 a ( C)字符 e ( D)非法的常量 16 关于类和对象描述错误的是 ( A)对象 (Object)是现实世界中的客观事物,对象具有确定的属性 (

6、 B)类是具有相同属性和行为的一组对象的集合 ( C)对象是类的抽象,类是对 象的实例 ( D)类是对象的抽象,对象是类的实例 17 下列不是循环语句的是 ( A) while语句 ( B) dowhile 语句 ( C) for语句 ( D) ifelse 语句 18 如果 a=1, b=2, c=3, d=4,则表达式 a b? a: c d? c: d的值为 ( A) 1 ( B) 2 ( C) 3 ( D) 4 19 有关构造函数的说法中错误的是 ( A)构造函数名字和类的名字一样 ( B)构造函数在对象被创建时由系统自动调用 ( C)构造函数无任何函数类型 ( D)构造函数有且只有一

7、个 20 以下有关析构函数的叙述不正确的是 ( A)一个类只能定义一个析构函数 ( B)析构函数和构造函数一样可以有形参 ( C)析构函数指定返回类型 ( D)析构函数名前必须冠有符号 “ ” 21 以下关于类中静态成员的叙述不正确的是 ( A)静态成员为类的所有对象所公有 ( B)静态成员变量可以在类内任何位置上声明 ( C)静态成员变量的赋初值必须放在类外 ( D)定义静态成员变量时必须赋初值 22 若执行下面的程序时,从键盘上输入 3和 4,则输出结果是 main( ) int a,b,s; cin a b; s=a; if(a B)s=b; s=s*s; cout s endl; (

8、A) 14 ( B) 16 ( C) 18 ( D) 20 23 以下程序不用第三个变量实现将两个数进行对调的操作,划线处应为 main( ) int a,b; scanf (“%d%d“, cin a b; cout “a=“ a “b=“ b; a=a+b;b=a-b;a=_; cout “a=“ a “b=“ b endl; ( A) a+b ( B) a-b ( C) b*a ( D) a/b 24 如下程序的输出结果是 main( ) float x=2.0,y; if(x 0.0) y=0.0; else if(x 10.0) y=1.0/x; else y=1.0; cout y

9、 endl; ( A) 0.000000 ( B) 0.250000 ( C) 0.500000 ( D) 1.000000 25 如下程序的输出结果是 main( ) int a=2,b=-1,c=2; if(a B) if(b 0)c=0 else c+; cout c endl; ( A) 0 ( B) 1 ( C) 2 ( D) 3 26 有以下程序段 int k=0; while(k=1)k+; while循环执行的次数是 ( A)无 限次 ( B)有语法错,不能执行 ( C)一次也不执行 ( D)执行 1次 27 以下程序的输出结果是 main( ) int num=0; whil

10、e(num =2) num+;cout num; ( A) 1234 ( B) 123 ( C) 12 ( D) 1 28 设有数组定义: char array=“China“;则数组 array所占的空间为 ( A) 4个字节 ( B) 5个字节 ( C) 6个字节 ( D) 7个字节 29 以下程序的输 出结果是 intf( ) static int i=0; int s=1; s+=i;i+; return s; main( ) int i,a=0; for(i=0;i 5;i+)a+=f( ); cout a endl; ( A) 20 ( B) 24 ( C) 25 ( D) 15

11、30 有以下程序 main( ) int a3=1,2,3,4,5,0),(*pa)3,i; pa=a; for(i=0;i 3;i+) if(i 2)pa1i=pa1i-1; else pa1i=1; cout a11+a11+a12 endl; 执行后输出结果是 ( A) 7 ( B) 6 ( C) 8 ( D)无确定值 31 有以下程序 void fun(int*a,int i,int i) int t; if(i j); t=ai;ai=aj;aj=t; fun(a,+i,- -j); main( ) int a=1,2,3,4,5,6,i; fun(a,0,5); for(i=0;i

12、 6;i+) cout ai; 执行后输出结果是 ( A) 6 5 4 3 2 1 ( B) 4 3 2 1 5 6 ( C) 4 5 6 1 2 3 ( D) 1 2 3 4 5 6 32 有以下程序 main( ) int p7=11,13,14,15,16,17,18,i=0,k=0; while(i 7i+;) cout k endl; 执行后输出结果是 ( A) 58 ( B) 56 ( C) 45 ( D) 24 33 有以下程序 main( ) int i=0,s=0; do if (i%2)i+;continue; i+; s+=i; while(i 7); cout s en

13、dl; 执行后输出结果是 ( A) 16 ( B) 12 ( C) 28 ( D) 21 34 下列语句中,输出与众不同的是 ( A) cout “1.“ setfill() “Hello!“ endl; ( B) cout “1.“ “Hello! n“; ( C) cout “1. Hello!“ endl; ( D) cofit “1.“ setw(7) “Hello!“; 35 阅读以下程序 #include fstream.h void main( ) ifstream infile; ofstream outfile; fstream iofile; iofile.open(“a.

14、txt“,ios:in); iofile.close( ); iofile.open(“b.txt“,ios:out); 下列描述错误的是 ( A)对象 infile只能用于文件输入操作 ( B)对象 outfile只能用于文件输出操作 ( C)对象 iofile在文件关闭后,不能再打开另一个文件 ( D)对象 iofile可以打开一个文件同时进行输入和输出 36 长度为 n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数为 _。 37 用树形结构表示实体类型及实体间联系的数据模型称为 _。 38 类是一个支持集成的抽象数据类型,而对象是类的 _。

15、 39 数据流图的类型有 _和事务型 。 40 当数据的物理结构 (存储结构、存取方式等 ) 改变时,不影响数据库的逻辑结构,从而不会引起应用程序的变化,这是指数据的 _。 41 派生类的成员一般分为两部分,一部分是 _,另一部分是自己定义的新成员。 42 以下程序输出的结果是 _。 #include iostream.h void main( ) int a 5,b 4,c 3,d; d (a b c) ; cout d; 43 设 i、 j、 k均为 int型变量,则执行完 for(i 0,j 10;i j;i ,j ) k i j;语句后, k的值为 _。 44 如果要把返回值为 voi

16、d的函数 A声明为类 B的友元函数,则应在类 B的定义中加入的语句是 _。 45 如果类 B继承了类 A,则称类 A为类 B的基类,类 B称为类 A的 _。 46 将 x y中的运算符用友元函数重载,应写为 _。 47 下列程序段的输出结果是 _。 cout fixed 509.123456789 endl; 48 下面程序的运行结果是 _和 _。 #include iostream.h #define N 10 #define s(x) x * x #define f(x) (x * x) void main( ) int i1,i2; i1 1000/s(N) ;i2 1000/f(N)

17、; cout i1 “ “ i2; 49 _是实现 C语言编译时多态性的机制, _是实现 C语言运行时多态性的机制。 国家二级( C+)笔试模拟试卷 156答案与解析 1 【正确答案】 D 【试题解析】 在程序设计过程中,一个很重要的环节是首先确定实现各种功能的算法,并且用某种工具将它精确地表达出来。流程图是其中的工具之一。因此,程序设计的过程应是先画出流程图,然后根据流程图编制出程序。因此,选项 A中的说法是错误的。程序中的注释是为了提高程序的可读性,使程序易于理解、易于维护,注释必须在编制程序的同时加入。因 此,选项 B和 C中的说法也都是错误的。 2 【正确答案】 D 【试题解析】 算法

18、的空间复杂度,一般是指执行这个算法所需要的内存空间,它包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间。因此,选项 A中的说法是错误的。虽然算法的计算工作量 (即时间复杂度 )是问题规模的函数,但它是与数据的存储结构有密切的关系。因此,选项 B中的说法也是错误的。一个数据结构中的各数据元素在计算机存储空间中的位置关系与逻辑关系有可能是不同的。因此,选项 C中的说法也是错误的, D则是正确的。 3 【正确答案】 A 【试题解析】 栈是按照 “先进后出 ”(FILO-First In Last Out)或 “后进先出 ”(LIFO-Last In First

19、Out)的原则组织数据的,因此,栈也被称为 “先进后出 ”表或 “后进先出 ”表。因此,栈具有记忆作用。 4 【正确答案】 A 【试题解析】 按照二叉树后序遍历的方法:在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历左子树,然后遍历右子树,最后访问根结点;并且,在遍历左、右子树时,仍然先遍历左子树,然后遍历右子树,最后访问根结点。对本题 中的二叉树进行后序遍历的结果应是 ZBTYCPXA。 5 【正确答案】 A 【试题解析】 在长度为 n的有序线性表中进行二分查找,在最坏情况下,需要的比较次数为 log2n。 6 【正确答案】 D 【试题解析】 数据字典是结构化分析方法的核心,其作用是描

20、述系统中所用到的全部数据和文件的有关信息。 7 【正确答案】 A 【试题解析】 维护是软件生命周期的最后一个阶段,也是持续时间最长、付出代价最大的阶段。软件工程学的目的就在于提高软件的可维护性,同时也要设法降低维护的代价。软件维护通常有以 下四类: 为纠正使用中出现的错误而进行的改正性维护; 为适应环境变化而进行的适应性维护; 为改进原有软件而进行的完善性维护; 为将来的可维护和可靠而进行的预防性维护。软件维护不仅包括程序代码的维护,还包括文档的维护。文档可以分为用户文档和系统文档两类。但无论是哪类文档,都必须与程序代码同时维护。只有与程序代码完全一致的文档才有意义和价值。由此可知,本题中选项

21、 B、 C、 D中的说法都是错误的。 8 【正确答案】 C 【试题解析】 在关系模型的数据语言中,一般除了运用常规的集合运算 (并、交、差、笛卡尔积等 )外,还定义了一些专门的关系运算,如投影、选择、连接等运算。前者是将关系 (即二维表 )看成是元组的集合,这些运算主要是从二维表的行的方向来进行的;后者主要是从二维表的列的方向来进行运算。因此,选项 A与B中的说法都是错误的,而选项 C中的说法是正确的。 9 【正确答案】 B 【试题解析】 显然,关系表 T是关系表 R与 S的并,即 T=R S。 10 【正确答案】 A 【试题解析】 概念模型侧重于表达建模对象之间联系的语义,它是一种独立于计算

22、机系统的模型,是现实世界的第一层次的抽象,是用户和数据库设计 人员进行交流的工具。所以答案为 A。 11 【正确答案】 A 【试题解析】 C语言的基本单位是函数;函数可以调用可以嵌套,但函数定义不可以嵌套;函数可以没有返回值,在函数名前加 void; C+程序中调用关系的所有函数可以放在不同的程序文件中,故正确答案为 A项。 12 【正确答案】 C 【试题解析】 本题中, A和 B的描述是一样的,故可以排除。在 C+中,建议用 inline函数取代 C语言中的宏定义功能。 13 【正确答案】 B 【试题解析】 本题考察的是变量的作用域及其生存期。一个全 局变量的生存周期从它被声明开始,直到程序

23、结束;一个局部变量的生存期从它被声明开始,直到包含它的最近的一个程序块结束。静态变量的生存期将延续到整个程序的终止。 14 【正确答案】 B 【试题解析】 注意 A选项用了 C+的保留字 long,选项 C使用了数字开头,选项 D中存在空格,这些均是错误的标识。正确答案应为 B。 15 【正确答案】 A 【试题解析】 首先将八进制数转换成十进制数,则发现是 65,故答案为 A。 16 【正确答案】 C 【试题解析】 C+中,类是用户自定义的一种数据类 型,对象是类的实例,类定义了属于该类的所有对象的共同特性。一个类作为一种数据类型,它可以定义多个对象。 17 【正确答案】 D 【试题解析】 本

24、题很简单,选项 D是条件语句,不是循环语句。 18 【正确答案】 A 【试题解析】 本题考察问号表达式的嵌套,只要掌握了问号表达式的求解顺序,是可以轻松求解本题的。 A b成立,故整个表达式的值是 a,即 1。答案为 A。 19 【正确答案】 D 【试题解析】 本题考察构造函数的定义和使用。构造函数可以重载,故不可能只有一个。 20 【正确答 案】 B 【试题解析】 本题考察析构函数的定义和使用,析构函数不能有形参,故正确答案应为 B。 21 【正确答案】 D 【试题解析】 静态成员变量的引入是为了解决同一类的不同对象间数据共享的需要。因此,类的静态数据成员在定义时不能赋初值,只能在类外赋初值

25、,此外要注意赋值时要用类名进行限制。 22 【正确答案】 B 23 【正确答案】 B 【试题解析】 本题思路巧妙,分析时可以发现 b=(a+b)-b,则此时 b中放的是a,完成交换工作的一半。然后要将 b放到 a中,将表达式展开,则为 a=(a+b)-a,此时正好把 b放到 a中。此时完成全部的交换。 24 【正确答案】 C 【试题解析】 本题主要考察条件语句的运行规则, C+中规定 else与它前面最近的未配对的且可见的 if配对。 25 【正确答案】 C 【试题解析】 本题考察的是 ifelse 语句中的配对原则:与最近的配对,故当 a b为假时直接执行输出语句,即 c的值是 2,正确答案

26、为 C。 26 【正确答案】 A 【试题解析】 注意本题有个陷阱,马虎的考生将纷纷落马。本来、 while中的表达式应为 k= =1,而本题却为 k=1,是赋值表达式而不是逻辑表达式。因此,编译器将其值一直认为是 1,因此表达式一直为真,陷入无限次的循环。 27 【正确答案】 B 【试题解析】 本题考察的是循环次数的判定。有 while后的逻辑表达式可知,整个循环体需要执行 3次,故可直接选定正确答案为 B。 28 【正确答案】 C 【试题解析】 本题考察在 C+语言中,字符串的存放规则。即字符串存放在字符数组中,而且在字符的后面自动插入标识字符串结束的标识符 0,因此,共 6个字符,每个字符

27、占用一个字节,故正确答案为 C。 29 【正确答案】 D 【试题解析】 本题考察的是同名局部变量和全局变量的作用域之间的关系。同时考察了静态变量的特点:退出函数和进入函数并不影响静态变量的值。因此,循环多次,实际上完成静态变量的累加。即 1+2+3+4+5,其值为 15,故答案为 D。 30 【正确答案】 A 【试题解析】 本题考察对二维数组的使用。按照要求分析各个数组元素的位置,即可以正确的得到答案为 A。 31 【正确答案】 A 【试题解析】 本题采用递归函数的方式将数组中的元素进行倒置,正确答案为A。 32 【正确答案 】 D 【试题解析】 分析可知本题中 while循环体的功能是将数组

28、中元素值为奇数的项目累加,在遇到第一个元素值为偶数时停止累加。因此,观察数组中各元素值可知 14之前的奇数相加是 11+13,故答案为 D。 33 【正确答案】 A 【试题解析】 本题考察 continue语句在 while循环中的使用:直接跳转到条件判断表达式位置,不再执行 continue后面的语句。另外,根据分析可知,本题循环体的功能是将 0, 2, 4, 6位元素加一后累加,故结果应是 1+3+5+7,因此正确答案为 A。 34 【正确答 案】 A 【试题解析】 本题主要考察 setfill的用法。只用在设置了宽度的情况下,字符填充操作 setfill才有意义。另外要注意的是设置宽度

29、setw是所有格式中唯一一个一次有效的设置。 35 【正确答案】 C 【试题解析】 本题看似复杂,其实掌握技巧的话可以很容易的得出正确答案为C。按照常识,一个文件关闭后,应该可以再打开另外一个文件。 36 【正确答案】 n/2 【试题解析】 在线性表的任何位置插入一个元素的概率相等,即概率为 p 1/(n1) ,则插入一个元素时所需移动元素的平均 次数为 n/2。 37 【正确答案】 层次模型 【试题解析】 用树形结构表示实体类型及实体间联系的数据模型称为层次模型,用有向图结构表示实体类型及实体间联系的数据模型称为网状模型,用二维表格结构表示实体及其联系的数据模型称为关系模型。 38 【正确答

30、案】 实例 【试题解析】 将属性、操作相似的对象归为类,也就是说,类是具有共同属性、共同方法的对象的集合。所以,类是对象的抽象,对象则是其对应类的一个实例。 39 【正确答案】 变换型 【试题解析】 典型的数据流类型有两种 :变换型 和事务型。变换型是指信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统 ;在很多软件应用中,存在某种作业数据流,它可以引发一个或多个处理,这些处理能够完成该作业要求的功能,这种数据流就叫做事务。 40 【正确答案】 物理独立性 【试题解析】 数据独立性是数据与程序间的互不依赖性,即

31、数据库中数据独立于应用程序而不依赖于应用程序。也就是说,数据的逻辑结构、存储结构与存取方式的改变不会影响应用程序。数据独立性一般分为物理独 立性与逻辑独立性两级。 41 【正确答案】 从基类继承的成员 【试题解析】 派生类的成员由继承的成员和自己定义的成员组成。 42 【正确答案】 0 【试题解析】 本题的关键在于对变量 c的赋值运算 : d (a b c) d (5 4 3) 先算 5 4,为真,得 1,即 :d (1 3) ,此时 1 3,为假,得 0。 43 【正确答案】 10 【试题解析】 该 for语句以 i为 0、 j为 10初始化,循环条件是 i j,每次循环后 i增 1、 j减

32、 1,循环体是将 i与 j的和赋给 k。这样变量 k将保存的是最后一次赋给它的值。一次循环后 i为 1、 j为 9,二次循环后 i为 2、 j为 8, ,五次循环后 i为 5、 j为 5,继续第六次循环,将 i与 j的和 10存于 k后, i为 6、 j为 4,结束循环。所以循环执行后 k为 10。 44 【正确答案】 friend void A ( ) ; 【试题解析】 C中类的友元函数在声明时应在该函数前面加上关键字friend,同样如果要声明一个类为另一个类的友元类也要在前面类名前加上friend。 45 【正确答案】 派生类 【试题解析】 如果类 A为类 B的基类,那么类 B称为类 A

33、的派生类。 46 【正确答案】 operator (x, y) 【试题解析】 C中用成员函数重载 x y为 x. operator (y) ;,用友元函数重载 x y为 operator (x, y) 。 47 【正确答案】 123457 【试题解析】 fixed的意义是在小数点后保留 6位,所以 fixed输出为509.123457。 48 【正确答案】 1000; 10 【试题解析】 对于 define宏定义语句,系统会在编译前进行替换。本题替换过程如下 : i1 1000/s(N) i1 1000/s(10) i1 1000/10 * 10 i1 1000 i2 1000/f(N) i2 1000/f(10) i2 1000/(10 * 10) i2 10 49 【正确答案】 静态联编或静态绑定;动态联编或动态绑定 【试题解析】 C语言编译时多态性的机制是静态绑定,实现 C语言运行时多态性的机制是动态绑定。

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

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

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