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

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

1、国家二级( C+)笔试模拟试卷 248及答案与解析 1 程序设计方法要求在程序设计过程中 ( A)先编制出程序,经调试使程序运行结果正确后再画出程序的流程图 ( B)先编制出程序,经调试使程序运行结果正确后再在程序中的适当位置处加注释 ( C)先画出流程图,再根据流程图编制出程序,最后经调试使程序运行结果正确后再在程序中的适当位置处加注释 ( D)以上三种说法都不对 2 结构化程序设计主要强调的是 ( )。 ( A)程序的规模 ( B)程序的效率 ( C)程序设计语言的先进性 ( D)程序的易读性 3 在数据库设计中,将 E-R图转换为关系模式的过程属于 ( )。 ( A)需求分析阶段 ( B

2、)逻辑设计阶段 ( C)概念设计阶段 ( D)物理设计阶段 4 下列语句分别是不同程序中的第一个输入 /输出语句,若去掉其中的 “ left”,则输出效果将发生变化的是 ( A) eout left setfill(*)357; ( B) cout left setw(5) 357; ( C) eout left setw(5) “ABCDE“; ( D) eout left “ABCDE“; 5 下列数据结构中,属于非线性结构的是 ( A)循环队列 ( B)代链队列 ( C)二叉树 ( D)带链栈 6 检查软件产品是否符合需求定义的过程称为 ( A)确认测试 ( B)集成测试 ( C)验证测

3、试 ( D)验收测试 7 下列关系运算中,能使经运算后得到的新关系中属性个数多于原来关系中属性个数的是 ( A)选择 ( B)连接 ( C)投影 ( D)并 8 下列对重载函数的描述中, ( )是错误的。 ( A)重载函数中不允许使用默认参数 ( B)重载 函数中编译是根据参数表进行选择 ( C)不要使用重载函数来描述毫无相干的函数 ( D)构造函数重载将会给初始化带来多种方式 9 以下程序段的执行结果是 ( )。 int a,y: a=10; y=10 do a+=2: y+=a; cout “a”=“ a ”, “ ”y=“ y ”n”; if(y20)break; while(a =14

4、); ( A) a=12,y=12 ( B) a=12,y=12 a=14,y=1 a=16,y=28 ( C) a=12,y=12 ( D) a=12,y=12 a=14,y=26 a=14,y=44 10 数据处理的最小单位是 ( A)数据 ( B)数据元素 ( C)数据项 ( D)数据结构 11 关于面向对象的程序设计方法,下列说法正确的是 ( A) “封装性 ”指的是将不同类型的相关数据组合在一起,作为一个整体进行处理 ( B) “多态性 ”指的是对象的状态会根据运行时要求自动变化 ( C)基类的私有成员在派生类的对象中不可访问,也不占内存空间 ( D)在面向对象的程序设计中,结构化程

5、序设计方法仍有着重要作用 12 下列关于运行符重载的描述中,正确的是 ( A)运算符重载可以改变操作数的个数 ( B)运算符重载可以改变操作数的优先级 ( C)运算符重载可以改变运算符的结合性 ( D)运算符重载可以使运算符实现特殊功能 13 对虚函数的调用 ( )。 ( A)一定使用动态联编 ( B)必须使用动态联编 ( C)一定使用静态联编 ( D)不一定使用动态联编 14 解决类继承中产生的二义性的方法不包括 ( A)使用作用域运算符限定访问的成员函数 ( B)在派生类中定义同名函数,且参数表必须和基类的保持一致 ( C)在派生类中定义同名函数,且参数表可以和基类的不同 ( D)采用虚基

6、类解决多重继承中的共同基类产生的二义性 15 每个 C程序中都必须有且仅有一个 ( A)类 ( B)预处理命令 ( C)主函数 ( D)语句 16 有如下类定义: class Fun public: Fun(int v): value(v), Fun() private: Fun / int value=0; / ; 其中存在语法错误的行是 ( )。 ( A) ( B) ( C) ( D) 17 要把多个目标程序组成可执行文件,需要使用 ( )。 ( A)编辑程序 ( B)链接程序 ( C)调试程序 ( D)编译程序 18 关于成员函数的重载,说法正确的是 ( )。 ( A)就是在类中设计多个

7、函数名相同,参数个数及参数类型也相同的函数 ( B)析构函数可以重载 ( C)函数重载,要求函数名相同,但参数个数不同,或参数相同,但其类型不同 ( D)构造函数不可重载 19 有如下的程序: #include cstring.h #include iostream. h using namespace std;class MyString public: MyString(const char*s); MyString() deletedata; protected: unsigned len; char*data;MyString:MyString(const char *s) len=s

8、trlen(s); data=new charlen+ 1; strcpy(data, s);int main() MyString a(“C+ Programing“); MyString b(a); return0; 在运行上面的程序时出错,出错的原因是 ( )。 ( A)构造函数的实参不允许 是本类的对象 ( B)没有定义实现深层复制 (深拷贝 )的复制构造函数 ( C)构造对象 a时实参与形参类型不符 ( D)系统不能生成默认的复制构造函数 20 语句 ofstream f(“DATA. DAT“, ios _base: applios_ lios_ base: binary);的功能

9、是建立流对象 f,并试图打开文件 DATA. DAT 并与之连接,而且 ( )。 ( A)若文件存在,将文件指针定位于文件首,若文件不存在,建立一个新文件 ( B)若文件存在,将其截为空文件;若文件不存在,打开失 败 ( C)若文件存在,将文件指针定位于文件尾;若文件不存在,建立一个新文件 ( D)若文件存在,打开失败;若文件在,建立一个新文件 21 多继承的构造顺序可分为如下四步: 所有非虚基类的构造函数按照它们被继承的顺序构造 所有虚基类的构造函数按照它们被继承的顺序构造 所有子对象的构造函数按照它们声明的顺序构造 派生类自己的构造函数体 这四个步骤的正确顺序是 ( )。 ( A) ( B

10、) ( C) ( D) 22 若 有 int *x3:则以下表述正确的是 _。 ( A) x是一个指向具有 3个元素的整型数组的指针 ( B) x是一个指向 int型变量的指针 ( C) x是一个有 3个元素的指针数组,每个元素是一个 int型指针 ( D) x是一个数组,该数组的元素是指针 x所指向的变量 23 关于虚函数的描述牛, _ 是正确的。 ( A)派生类的虚函数与基类的虚函数具有不同的参数个数和类型 ( B)基类中说明了虚函数后,派生类中其对应的函数一定要说明为虚函数 ( C)虚函数是 个成员函数 ( D)虚函数是一个 static类型的成员函数 24 对于结构中定义的成员,其隐含

11、访问权限为 _ 。 ( A) public ( B) protected ( C) private ( D) static 25 为了使类中的某个成员不能被类的对象通过成员操作符访问,则不能把该成员的访问权限定义为 ( A) public ( B) protected ( C) private ( D) static 26 若变量已正确定义并赋值,以下符合 C+语言语法的表达式是 ( A) a:=b+1 ( B) a=b=c+2 ( C) int 18.5%3 ( D) a=a+7=c+b 27 对于语句 cout setfill(*) setw(10) 1 setfill (*) setw

12、(2) 2;的输出结果是 ( A) * * * * * * * * *1*2 ( B) * * * * * * * *12 ( C) * * * * * * *1*2 ( D) 12* * * * * * * * 28 下列关于模板的说法正确的是 ( A)模板的实参在任何时候都可以 省略 ( B)类模板与模板类所指的是同一概念 ( C)类模板的参数必须是虚拟类型的 ( D)类模板中的成员函数全部都是模板函数 29 下面类的定义,有 ( )处错误。 class MyClass public: void MyClass(); MyClass(int Value); private: int i=0

13、; ; ( A) 1 ( B) 2 ( C) 3 ( D) 4 30 有如下函数模板的定义: template class T T func(T x, T y)return x*x+y*y; 在下列对 func()的调用中,不正确的是 ( )。 ( A) func(3, 5); ( B) func (3, 5); ( C) func(3, 5.5); ( D) func int (3, 5.5); 31 若有以下定义: int a =1, 2, 3, 4, 5, 6, 7; char c1=b, C2=2; 则数值不为 2的表达式是 ( )。 ( A) a1 ( B) d-c1 ( C) a3

14、-c2 ( D) c2-0 32 在 C+语言中,退格符是 ( A) n ( B) t ( C) f ( D) b 33 有如下说明 int a10=1, 2, 3, 4, 5, 6, 7, 8, 9, 10, *p=a; 则数值为9的表达式是 ( A) *p+9 ( B) *(p+8) ( C) *p+=9 ( D) p+8 34 关于动态存储分配,下列说法正确的是 ( A) new 和 delete是 C语言中专门用于动态内存分配和释放的函数 ( B)动态分配 的内存空间也可以被初始化 ( C)当系统内存不够时,会自动回收不再使用的内存单元,因些程序中不必用delete释放内存空间 ( D

15、)当动态分配内存失败时,系统会立刻崩溃,因此一定要慎用 new 35 有如下程序: #include #include using namespace std; class XCF int a; public: XCF(int aa=O): a(aA)coutGeta(); delete pd; return 0; 运行时的输出结果是 ( A) 1215588 ( B) 1218855 ( C) 12185 ( D) 128512 36 设一棵二叉树中有 3个叶子结点,有 8个度为 1的结点,则该二叉树牛总的结点数为【 】。 37 38 39 在数据结构中, 从逻辑上可以把数据结构分成线性结构

16、和【 】。 40 下图所示的二叉树的先序遍历序列是【 】。 41 为解决在多重继承环境中因公共基类带来的 _问题, C+语言提供了虚基类机制。 42 如果要把返回值为 void的函数 A声明为类 B的友元函数,则应在类 B的定义中加入的语句是 _。 43 有如下程序: #include using namespaee std; classA public: A()coutGeta( );调用了成员函数 Geta( ),输出 8; delete pd;调用了析构 函数,输出 8; return 0;,在返回 O之前程序会自动调用 d1和 d2的析构函数,输出 55。因此总的输出应该是 12188

17、55。 36 【正确答案】 13 【试题解析】 根据二叉树的性质 3:在任意一棵二叉树中,度为 0的结点 (即叶子结点 )总是比度为 2的结点多一个。本题中的二叉树有 3个叶子结点,所以,该二叉树有 3-1=2个度为 2的结点;又知本题中的二叉树有 8个度为 1的结点。所以,本题中的二叉树总结点数为叶子结点数 +度为 1的结点数 +度为 2的结点数 =3+8+2=13.所以,本题的正确答案为 13。 37 【正确答案】 私有继承 38 【正确答案】 inc或整型 【试题解析】 此题考查的是指针的声明语句。在声明语句中,变量前加 “”即声明为指针类型变量,题目中变量 b 定义的只是普通的整型变量

18、,不是指针,所以应填入 int或整型。 39 【正确答案】 非线性结构 【试题解析】 逻辑结构即数据元素之间的逻辑关系,是从逻辑关系上描述数据,与数据的存储无关。因此根据数据元素与数据元素之间的关系,逻辑结构被分为两大类:线性结构和非线性结构。而集合结构与非集合结构、树形结构和图状结构指的都是特定的数据结构 类型。 40 【正确答案】 A B D G C E H I F 【试题解析】 二叉树的遍历是很重要的知识点,先序、中序、后序三种不同的方式要比较来掌握,注意其中的区别。此类题一定要先看清题目要求的是哪种遍历方法,然后根据不同遍历的特点来计算。本题要求是先序遍历,其遍历顺序应该为 访问根节点

19、: 先序遍历左子树; 先序遍历右子树。按照定义,先序遍历序列是 ABDGCEHIF。 41 【正确答案】 二义性 42 【正确答案】 friend void A ( ) ; 【试题解析】 C中类 的友元函数在声明时应在该函数前面加上关键字friend,同样如果要声明一个类为另一个类的友元类也要在前面类名前加上friend。 43 【正确答案】 AAB 【试题解析】 “Aa: ”语句将导致 A的构造函数被执行,输出 “A”, “Ab; ”语句将导致 B 的构造函数执行,由于 B私有继承 A,故在执行 B 的构造函数前,先执行 A的构造函数,输出 “A”,然后执行 B 的构造函数,输出 “B”。

20、44 【正确答案】 友元 【试题解析】 此题考查的是友元函数。一个类的私有成员和保护成员,只能由其本身的成员来访问,不能 被其他函数访问,但是如果想让类中的数据成员可以被其他函数访问,可以通过友元函数声明来分享类中的数据资源。 45 【正确答案】 A或者 A(aa), c(aa+1)或者 A或者 c(aa+1, A(aa) 【试题解析】 类的初始化。 46 【正确答案】 传地址 【试题解析】 本题考查的是传值调用和传址调用的区别一传值调用只是进行值的简单复制,返回之后不会改变原来的值;而传址调用是把参数的地址传人,会改变原来的值。 47 【正确答案】 传地址 48 【正确答案】 函数重载 虚函数 【试 题解析】 C+中的多态性是在编译时通过函数重载和模板体现的,在运行时是通过虚函数体现的。 49 【正确答案】 函数 类 【试题解析】 函数是程序功能实现的主要方式,是实现结构化设计 (将程序分成若干个函数实现 )的基本组成;类是一种用户定义的类型,是实现数据封装和数据抽象的工具,是面向对象设计中的基本组成。 50 【正确答案】 xxxxxHello

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

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

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