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

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

1、国家二级( C+)笔试模拟试卷 158及答案与解析 1 下列叙述中错误的是 ( A)二叉树不是线性结构 ( B)线性表是非线性结构 ( C)线性链表是线性结构 ( D)栈与队列是线性结构 2 不带头结点的单链表 head为空的判定条件是 ( A) head=NULL ( B) headnext=NULL ( C) headnext=head ( D) head!=NULL 3 在最坏情况下,冒泡排序所需要的比较次数为 ( A) n/2 ( B) (n+1)/2 ( C) n(n-1)/2 ( D) n(n+1)/2 4 向一个栈顶指针为 HS的链式栈中插入一个 s所指的结点时,则执行 ( A)

2、 HS- next=s; ( B) snext=HSnext;HSnext=s; ( C) s- next=HS;HS=s; ( D) snext=HS;HS=HSnext; 5 在面向对象方法中,实现信息隐蔽是通过对象的某一特性来实现的,这个特性是 ( A)封装 ( B)类 ( C)对象 ( D)继承 6 在软件生存周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是 ( A)概要设计 ( B)需求分 析 ( C)可行性分析 ( D)详细设计 7 在数据流图 (DFD)中,带有名字的箭头表示 ( A)模块之间的调用关系 ( B)程序的组成成分 ( C)数据的流向 ( D)控制程序

3、的执行顺序 8 下述关于数据库系统的叙述中正确的是 ( A)数据库系统中数据的一致性是指数据类型一致 ( B)数据库系统比文件系统能管理更多的数据 ( C)数据库系统减少了数据冗余 ( D)数据库系统避免了一切冗余 9 下列关于关系运算的叙述中正确的是 ( A)投影、选择、连接是从二维表的行的方向来进行运算 ( B)投 影、选择、连接是从二维表的列的方向来进行运算 ( C)并、交、差是从二维表的列的方向来进行运算 ( D)以上三种说法都不对 10 数据的独立性是数据库技术的重要特点之一。所谓数据独立性是指 ( A)数据与程序独立存放 ( B)不同的数据被存放在不同的文件中 ( C)不同的数据只

4、能被对应的应用程序所使用 ( D)以上三种说法都不对 11 设 char型变量 x中的值为 10100111,则表达式 (2+x)( 3)的值是 ( A) 10101001 ( B) 10101000 ( C) 11111101 ( D) 01010101 12 以下叙述中不正确的是 ( A) C+语言中的文本文件以 ASCII码形式存储数据 ( B) C+语言中,对二进制文件的访问速度比文本文件快 ( C) C+语言中,随机读写方式不适用于文本文件 ( D) C+语言中,顺序读写方式不适用于二进制文件 13 若已定义 int a=256,执行语句 cout hex a;的结果是 ( A) 1

5、00n ( B) 256 ( C) ffe ( D) ff 14 执行下列程序的结果是 main( ) float x=1,y; y=+x*+x; cout y endl; ( A) 9.000000 ( B) 6.000000 ( C) 1.000000 ( D)程序有错误 15 下面程序的输出结果是 main( ) int a=15,b=21,m=0; switch(a%3) case 0:m+;break; case 1:m+; switch(b%2) default:m+; case 0:m+;break; cout m endl; ( A) 1 ( B) 2 ( C) 3 ( D)

6、4 16 有以下程序 int f1(int x,int y) return x y? x:y; int f2(int x,int y) return x y? y:x; main( ) int a=4,b=3,c=5,d,e,f; d=f1(a,b);d=f1(d,c); e=f2(a,b);e=f2(e,c); f=a+b+c-d-e; cout d “,“ f “,“ e endl; 执行后输出结果是 ( A) 3,4,5 ( B) 5,3,4 ( C) 5,4,3 ( D) 3,5,4 17 有以下程序 void f(int x,int y) int t; if(x y)t=x;x=y;

7、y=t; main( ) int a=4,b=3,c=5; f(a,b); f(a,c); f(b,c); cout a “,“ b “,“ c endl; 执行后输出结果是 ( A) 3,4,5 ( B) 5,3,4 ( C) 5,4,3 ( D) 4,3,5 18 与数学式子 对应的 C+语言表达式是 ( A) 3*xn/(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) 19 若有以下程序: main( ) int k=2,i=2,m; m=(k+=i*=k); cout m “,“

8、i endl; 执行后的输出结果是 ( A) 8,6 ( B) 8,3 ( C) 6,4 ( D) 7,4 20 设有定义: class person int num; char name10; public: void init(int n,char*m); ; person std30 则以下 叙述不正确的是 ( A) std是一个含有 30个元素的对象数组 ( B) std数组中的每个元素都是 person类的对象 ( C) std数组中的每个元素都有自己的私有变量 num和 name ( D) std数组中的每个元素都有各自的成员函数 init 21 以下叙述中不正确的是 ( A)一个

9、类的所有对象都有各自的数据成员,它们共享函数成员 ( B)一个类中可以有多个同名的成员函数 ( C)一个类中可以有多个构造函数、多个析构函数 ( D)在一个类中可以声明另一个类的对象作为它的数据成员 22 以下关于私有和保 护成员的叙述中,不正确的是 ( A)私有成员不能被外界引用,保护成员可以 ( B)私有成员不能被派生类引用,保护成员在公有继承下可以 ( C)私有成员不能被派生类引用,保护成员在保护继承下可以 ( D)私有成员不能被派生类引用,保护成员在私有继承下可以 23 友元函数的作用是 ( A)提高程序的效率 ( B)加强类的封装性 ( C)实现数据的隐蔽性 ( D)增加成员函数的种

10、类 24 使用静态数据成员的好处不包括 ( A)可以节省内存空间 ( B)是为了解决数据共享问题 ( C)可以直接用类名来引用 ( D)可以提高运算速度 25 以下不能正确创建输出文件对象并使其与磁盘文件相关联的语句是 ( A) ofstream myfile;myfile.open(“d:ofile.txt“); ( B) ofstream*myfile=new ofstream;myfile- open(“d:ofile.txt“); ( C) ofstream myfile(“d:ofile.txt“); ( D) ofstream*myfile=new(“d:ofile.txt“);

11、26 有关析构函数的说法中错误的是 ( A)析构函数有且只有一个 ( B)析构函数无任何函数类型 ( C)析构函数和构造函数一样可以有形参 ( D)析构函数的作用是在对象被撤销时做清理工作 27 下列运算符中,不能重载的是 ( A) ?: ( B) + ( C) - ( D) = 28 已知类 A中有公用数据成员 B*b;其中 B为类名。则下列语句错误的是 ( A) A( ):d(new B) ( B) A(const A ( C) A(d) ( D) A( )delete d; 29 下列虚基类的声明中正确的是 ( A) class virtual B:public A ( B) virtu

12、al class B:public A ( C) class B:public A virtual ( D) class B:virtual public A 30 在 C+语言程序中 ( A)函数的定义可以嵌套,但函数的调用不可以嵌套 ( B)函数的定义和调用均可以嵌套 ( C)函数的定义和调用均不可以嵌套 ( D)函数的定义不可以嵌套,但函数的调用可以嵌套 31 以下叙述中不正确的是 ( A)在类 的定义中通常是用数据成员描述对象的属性,用成员函数描述对象的行为 ( B)类的一个成员只能具有一种访问控制属性 ( C)构造函数和析构函数是特殊的成员函数,因此不允许重载 ( D)通过对象只能访

13、问类的公有成员 32 磁盘文件操作中,打开磁盘文件的访问方式中以追加方式打开文件的 ( A) in ( B) out ( C) app ( D) ate 33 假定 AB为一个类,则执行 AB x;语句时将自动调用该类的 ( A)有参构造函数 ( B)无参构造函数 ( C)拷贝构造函数 ( D)赋值重载函数 34 通 常初始化拷贝构造函数的参数是 ( A)某个对象名 ( B)某个对象的成员名 ( C)某个对象的引用名 ( D)某个对象的指针名 35 实现运行时的多态性用 ( A)重载函数 ( B)构造函数 ( C)析构函数 ( D)虚函数 36 冒泡排序算法在最好的情况下的元素交换次数为 _。

14、 37 在最坏情况下,堆排序需要比较的次数为 _。 38 若串 s “MathTypes“,则其子串的数目是 _。 39 软件开发环境是全面支持软件开发全过程的 _集合。 40 关系数据库的关系演算语言是以 _为基础的 DML语言。 41 一个 C语言程序的开发步骤通常包括编辑、 _、链接、运行和调试。 42 若已知 a 10, b 20,则表达式 !a b的值为 _。 43 友元类的所有成员函数都是另一个类的 _。 44 表达式 x. operator ( ) 还可写成 _。 45 以下程序的输出结果是 _。 #include iostream.h void main( ) int a 0;

15、 a (a 8) ; cout a; 46 若要在 C盘根目录下作为二进制文件打开文件 test.dat,则应该用的语句是_。 国家二级( C+)笔试模拟试卷 158答案与解析 1 【正确答案】 B 【试题解析】 线性表肯定是线性结构。二叉树是非线性结构;线性链表是线性结构;栈与队列是特殊的线性表,也是线性结构;线性表是线性结构。 2 【正确答案】 A 【试题解析】 在不带头结点的单链表 head中, head指向第一个元素结点,head=NULL表示该链表为空,所以答案为 A。 3 【正确答案】 C 【试题解析】 在长度为 n的线性表中,在最坏情况下,冒泡排序需要经过 n/2遍的从前往后的扫

16、描和 n/2遍从后往前的扫描,共需 n(n-1)/2。 4 【正确答案】 C 【试题解析】 向链式栈中插入一个结点,就是在单链表的表头插入一个结点,同时将新结点的位置赋予栈顶指针。所以答案为 C。 5 【正确答案】 A 【试题解析】 封装是面向对象方法中的一种信息隐蔽技术。 6 【正确答案】 B 【试题解析】 在需求分析阶段中 ,要求能准确地确定软件系统必须做什么和必须具备哪些功能。正确答案为 B。 7 【正确答案】 C 【试题解析】 在数据流图中,用标有名字的箭头来表示数据流。 8 【正确答案】 A 【试题解析】 数据库系统从整体角度看待和描述数据,数据不再面向某个应用,而是面向整个系统,因

17、此数据可以被多个用户和多个应用程序共享使用。数据共享可以大大减少数据的冗余,节约存储空间。还能够避免数据之间的不相容性和不一致性。 9 【正确答案】 B 【试题解析】 A和 B是互相矛盾的,答案必然是这两者之 _。在关 系模型的数据语言中,常规的集合运算 (并、交、差、笛卡尔积等 ),是将关系 (即二维表 )看成是元组的集合,这些运算主要是从二维表的行的方向来进行的;投影、选择、连接等运算主要是从二维表的列的方向来进行运算。正确答案是 B。 10 【正确答案】 D 【试题解析】 数据独立性是指物理独立性和逻辑独立性。物理独立性是指由于数据的存储结构与逻辑结构之间由系统提供映象,使得当数据的存储

18、结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改。逻辑独立性是指由于数据的局部逻辑结构与总体逻辑结构之间也由系统 提供映象,使得当总体逻辑结构改变时,其局部逻辑结构可以不变,从而根据局部逻辑结构编写的应用程序也可以不必修改。由此可知,选项 A、 B和 C中的说法都是错误的。正确答案是 D。 11 【正确答案】 D 【试题解析】 本题考查二进制操作的几种形式,其中 为按位异或运算符,是按位取反运算符。 12 【正确答案】 C 【试题解析】 本题考查 C+语言中文件的概念,包括二进制文件和文本文件,对不同的文件类型采用不同的读写方式。 13 【正确答案】 A 【试题解析】 本题

19、考查流操作中格式的控制 , hex的作用是将随后的输出数按照十六进制形式输出。 14 【正确答案】 A 【试题解析】 本题比较简单,考查自增运算符的运算规则以及运算符优先级的知识点。自增运算符的优先级高于乘法运算符的优先级。 15 【正确答案】 A 【试题解析】 本题考查 switch语句的嵌套。实际上,只要按照顺序进行分析可以发现里层嵌套的 switch语句根本不用分析,因为执行流程根本不能到达那里。 16 【正确答案】 C 17 【正确答案】 D 【试题解析】 考生根据分析可以得知 f函数的功能是交 换两个变量的值。表明看起来,在 main函数中,使用三次 f函数完成三个变量的交换。真的如

20、此么 ?只要考生注意到 f函数采用值传递,而值传递的缺点就是不会改变形参的值,因此,上述操作根本无法改变原来三个变量的值 !故三个变量的值依然保持不变。 18 【正确答案】 C 【试题解析】 本题考查将数学表达式翻译为 C+语句,其中 pow(x,n)用于求 xn的值。 19 【正确答案】 C 【试题解析】 首先进行括号内的运算,注意赋值表达式是从右向左进行的。i=1*k, k=k+i, m= k,所以计算得 m=6, i=4。 20 【正确答案】 D 【试题解析】 std是对象数组,里面有 30个对象,每个对象都有自己的私有数据成员,由于成员函数是公有的,在内存中存在一份即可,各个对象都可以

21、使用。 21 【正确答案】 C 【试题解析】 本题考查类的基本概念。构造函数和析构函数比较特殊,析构函数只有一个。 22 【正确答案】 A 【试题解析】 私有成员和保护成员都不能被外界引用,这与继承方式无关。 23 【正确答案】 A 【试题解析】 友元函数的引入是为了提高程序的效率,减少通过接口访 问的限制,但却破坏了类的封装性。 24 【正确答案】 D 【试题解析】 静态成员在一个类中只保存一份,供类的不同对象共享,因此它可以节省内存空间。由于静态成员不属于某个对象,因此引用时必须用类名来标识。 25 【正确答案】 D 【试题解析】 本题考查文件对象的创建方法。可以直接定义文件对象,也可以用

22、new来动态生成。很明显,选项 D中使用 new的方式是错误的。 26 【正确答案】 C 【试题解析】 本题考查析构函数的有关特性。析构函数是没有形参的。 27 【正确答案】 A 【试题解析】 在 C+中, ?:是唯一个三目运算符,不能被重载。 28 【正确答案】 C 【试题解析】 首先考生要能判断出四个选项是构造函数和析构函数,其中 d是类A的一个需要初始化的数据成员,且是一个指针。在初始化时,必须指明类 B的某对象的地址,所以, new B可以完成这个功能。而析构函数不能带参数,这是常识性的知识,因此正确答案为 C。 29 【正确答案】 D 【试题解析】 本题考核虚基类的声明方式。虚基类说

23、明格式如下: Virtual继承方式基类名 其中, Virtual是虚基类的关键词。虚基类的说明是用在定义派生类时,写在派生类名的后面。即: class派生类名: Virtual继承方式基类名。 30 【正确答案】 D 【试题解析】 本题考查函数的定义、调用及其嵌套之间的关系。 31 【正确答案】 C 【试题解析】 构造函数是可以重载的,从而保证了类的多态性。 32 【正确答案】 C 【试题解析】 根据选项的含义,可知 app表示追加的含义,可以选定正确答案为C。 33 【正确答案】 B 【试题解析】 当没有显式 调用指定形式的构造函数,则系统自动调用无参构造函数,如果没有为类指定此构造函数,

24、则系统自动为其生成一个最简单的无参构造函数。 34 【正确答案】 C 【试题解析】 拷贝构造函数顾名思义,就是对两个对象进行拷贝生成。因此,其参数是指向某个对象的指针。 35 【正确答案】 D 【试题解析】 多态性是通过虚函数来完成的,不同类层次上的类通过虚函数,可以做到运行时根据指针的指向确定调用哪个对象的成员函数。 36 【正确答案】 0 【试题解析】 根据冒泡排序算法思想可知,若待排序的初始序 列为 “正序 ”序列,则只需进行一趟排序,在排序过程中进行 n 1次关键字间的比较,且不移动和交换记录,这种情况是冒泡排序的最好情况,故冒泡排序算法在最好的情况下的元素交换次数为 0。 37 【正

25、确答案】 O(nlog2n) 【试题解析】 在最坏情况下,冒泡排序所需要的比较次数为 n(n 1) /2;简单插入排序所需要的比较次数为 n(n 1) /2;希尔排序所需要的比较次数为 O(n1.5个 ) ;堆排序所需要的比较次数为 O(nlog2n) 。 38 【正确答案】 46 【试题解析】 串 s中共有 9个字符,由 于串中字符各不相同,则其子串中有 0个字符的 1个 (空串 ) , 1个字符的 9个, 2个字符的 8个, 3个字符的 7个, 4个字符的 6个, 5个字符的 5个, 6个字符的 4个, 7个字符的 3个, 8个字符的 2个, 9个字符的 1个,共有 1 2 3 4 5 6

26、 7 8 9 1 46。 39 【正确答案】 软件工具 40 【正确答案】 谓词演算 【试题解析】 关系数据库中的关系演算包括元组关系演算和域关系演算。二者都是由原子公式组成的公式。而这些关系演算都是以数理逻辑中的谓词演算为基础的。 41 【正确答案】 编译 【试题解析】 C语言程序开发的基本步骤是编辑、编译、链接、运行和调试。 42 【正确答案】 1 【试题解析】 计算表达式 !a b,先计算 !a,因 a的值为 10,!a的值为 0。关系表达式0 20为真,所以表达式 ! a b的值为 1。 43 【正确答案】 友元函数 【试题解析】 C语言中友元类中的函数都是另一个类的友元函数。 44

27、【正确答案】 x 【试题解析】 C语言中用成员函数重载 x为 x. operator ( ) ,用友元函数重载 x为 :operator (x) 。 45 【正确答案】 16 【试题解析】 解答本题的关键是要分析清楚表达式 a (a 8) 中, a的值已经被赋为 8,而不是 0。 46 【正确答案】 ifstream fin(“C:test.dat“,ios_binary) ;或 ifstream fin.open(c:test.dat“,ios_binary); 【试题解析】 C中打开文件有两种方式 ifstream fin (“test. dat“); ifstream fin; fin. open(“test. dat“);,ios_ binary的意义是以二进制文件打开。

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

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

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