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

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

1、国家二级( C+)机试模拟试卷 158及答案与解析 一、选择题 1 下列叙述中正确的是 ( )。 ( A)算法就是程序 ( B)设计算法时只需要考虑数据结构的设计 ( C)设计算法时只需要考虑结果的可靠性 ( D)以上三种说法都不对 2 下列叙述中正确的是 ( )。 ( A)有一个以上根结点的数据结构不一定是非线性结构 ( B)只有一个根结点的数据结构不一定是线性结构 ( C)循环链表是非线性结构 ( D)双向链表是非线性结构 3 下列关于二叉树的叙述中,正确的是 ( )。 ( A) 叶子结点总是比度为 2的结点少一个 ( B)叶子结点总是比度为 2的结点多一个 ( C)叶子结点数是度为 2的

2、结点数的两倍 ( D)度为 2的结点数是度为 l的结点数的两倍 4 软件生命周期中的活动不包括 ( )。 ( A)市场调研 ( B)需求分析 ( C)软件测试 ( D)软件维护 5 某系统总体结构图如下图所示: 该系统总体结构图的深度是 ( )。 ( A) 7 ( B) 6 ( C) 3 ( D) 2 6 程序调试的任务是 ( )。 ( A)设计测试用例 ( B)验证程序的正确性 ( C)发现程序中的 错误 ( D)诊断和改正程序中的错误 7 下列关于数据库设计的叙述中,正确的是 ( )。 ( A)在需求分析阶段建立数据字典 ( B)在概念设计阶段建立数据字典 ( C)在逻辑设计阶段建立数据字

3、典 ( D)在物理设计阶段建立数据字典 8 数据库系统的三级模式不包括 ( )。 ( A)概念模式 ( B)内模式 ( C)外模式 ( D)数据模式 9 有三个关系 R、 S和 T如下: 则由关系 R和 S得到关系 T的操作是 ( )。 ( A)自然连接 ( B)交 ( C)投影 ( D)并 10 下列选项中 属于面向对象设计方法主要特征的是 ( )。 ( A)继承 ( B)自顶向下 ( C)模块化 ( D)逐步求精 11 下列字符串中不能作为 C+标识符使用的是 ( )。 ( A) INT ( B) test ( C) _1481 ( D) 1temp 12 下列语句中错误的是 ( )。 (

4、 A) const int*p=0; ( B) const int y=99; ( C) const int x; ( D) const int*p=new int(100); 13 有如下程序: #include iostream using namespace std; int main() int sum; for(int i=0; i 3; i+=1) sum: i; for(int j=i; j 9; j+)sum+=j; cout sum end1; return 0; 运行时的输出结果是 ( )。 ( A) 39 ( B) 17 ( C) 110 ( D) 37 14 下列语句中

5、,正确的是 ( )。 ( A) char str=”abcde”; ( B) char*str=”abcde”; ( C) char str5=”abcde”; ( D) char* str5=”abede”; 15 有如下程序段: int i=1; int j=4; int main() int i=8, j=i; cout i j endl; 运行时的输出结果是 ( )。 ( A) 14 ( B) 81 ( C) 88 ( D) 18 16 下列关于函数参数的叙述中,正 确的是 ( )。 ( A)在函数原型中不必声明形参类型 ( B)在调用一个函数时,若函数中修改了形参变量的值,则对应的实

6、参变量的值也被修改 ( C)函数形参的生存期与整个程序的运行期相同 ( D)函数的形参在函数被调用时获得初始值 17 下列关于赋值运算符 “=”重载的叙述中,正确的是 ( )。 ( A)赋值运算符只能作为类的成员函数重载 ( B)默认的赋值运算符实现了 ”深层复制 ”功能 ( C)重载的赋值运算符函数有两个本类对象作为形参 ( D)如果已经定义了复制 (拷贝 )构造函数,就不能重载赋值运 算符 18 在对函数进行原型声明时,下列语法成分中不需要的是 ( )。 ( A)函数返回类型 ( B)函数参数列表 ( C)函数名 ( D)函数体 19 在为一个类重载下列运算符时,只能作为该类成员函数重载的

7、运算符是 ( )。 ( A) + ( B) () ( C) ( D) + 20 若已经声明了函数原型 “bool fun(beol a, int b=0); ”,则下列重载函数声明中正确的是 ( )。 ( A) bool fun(bed a=true, int b=0); ( B) int fun(bool a, int B); ( C) void fun(double a, int B); ( D) void fun(bool a, int b=0); 21 下列运算符函数中,肯定不属于类 Number的成员函数的是 ( )。 ( A) Number operator+(Number); (

8、 B) Number operator一 (Number); ( C) Number operator*(int); ( D) Number operator (Number, Number); 22 已知函数 f的原 型为: void f(int int main() ERROR*found* MyClass obj; obj Print(); return 0; 三、简单应用题 42 请使用 VC6或使用【答题】菜单打开考生文件夹 proj2下的工程 proj2,此工程包含有一个源程序文件 proj2 cpp。其中定义了 Basel类、 Base2类和 Derived类。 Basel是一个

9、抽象类,其类体中声明了纯虚函数 Show。 Base2类的构 造函数负责动态分配一个字符数组,并将形参指向的字符串复制到该数组中,复制功能要求通过调用 strcpy函数来实现。 Derived类以公有继承方式继承 Basel类,以私有继承方式继承 Base2类。在 Derived类的构造函数的成员初始化列表中调用 Base类的构造函数。 请在程序中的横线处填写适当的代码,然后删除横线,以完成 Base1、 Base2和Derived类的功能。此程序的正确输出结果应为: Im a derived class 注意:只在指定位置编写适当代码,不要改动程序中的其 他内容,也不要删除或移动 “ *fo

10、und*”。 /proj2,cpp #include #include using namespace std; class Basel public: *found*下列语句需要 声明纯虚函数 Show _; , clasS Base2 protected: char*p; Base2(const char*s) _P=new charstrlen(s)+1; *found*下列语句将形参指向的字符串常量复制到该类的字符数组中 _; 一 Base2()delete_P; ; *found*Derived类 公有继承 Base1,私有继承 Base2类 class Derived: _ pub

11、lic: *found*以下构造函数 调用 Base2类构造函数 Derived(const char*s): _ void Show() coutShow(); delete pb; return 0; 四、综合应用题 43 请使用 VC6或使用【答题】菜单打开考生目录 proj3下的工程文件 proj3,此工程中包含一个源程序文件 proj3 cpp,补充编制 C+程序 proj3 cpp,其功能是读取文本文件 in dat中的全部内容,将文本存放到 doc类的对象 myD0c中。然后将myDoc中的字符序列反转,并输出到文件 out dat中。文件 in dat的长度不大于1000字节。

12、 要求: 补充编制的内容写在 “ *333*” 与 “ *66666*”两行之间。实现将 myDoc中的字符序列反转,并将反转后的序列在屏幕上输出。不得修改程序的其他部分。 注意:程序最后已将结果输出到文件 out dat中,输出函数 writeToFile已经给出并且调用。 /proj 3, cpp #include #include #include using namespace std; class doc private: char/str;文本字符串首地址 int length; /文本字符个数 public: 构造函数,读取文件内容,用于初始化新对象, filename是文件名字

13、符串首地址 doc(char*filename); void reverse();将字符序列反转 一 doc(); void writeToFile(char*filename); ; doc: doc(char*filename) ifstream myFile(filename); int len=001, tmp; str=new charfen; length=0; while(tmp=myFile get()!=EOF) strlength+=tmp; strlength= 0; myFile close(); void doc: reverse() 将数组 str中的 length

14、个字符中的第一个字符与最后一个字符交换,第二个字符与倒数第二个 字符交换 *333* *666* doc:一 doc() deletestr; void doc: writeToFile (char * filename) ofstream outFile(filename); outFile()”, C选项错误。派生类除了继承基类的成员,还可以定义新的成员,因此本题选 D。 28 【正确答案】 A 【试题解析】 本题考查派生类对基类成员的访问属性,基类成员在派生类中的访问属性如下表所示,因此本题选 A。29 【正确答案】 D 【试题解析】 本题考查如何初始化对象,其中类的数据成员是不能在声明

15、类时初始化的,所以 D选项错误,在定义类的同时对数据成员 price进行赋值是错误的。 30 【正确答案】 B 【试题解析】 本题考查构造函数和析构函数,题中定义了一个对象以及对象数组,那么构造函数需要执行 4次,而 *net2并不执行构造函数,所以答案为 B。 31 【正确答案】 C 【试题解析】 本题考查构造函数和析构函数,以及静态数据成员,题目中要求输出 2,那么定义两个对象时,就执行构造函数,使得静态数据成员 +count,得到2,那么 count初始化就应该为 0,静态数据成员初始化时,只能在类体外进行初始化,一般形式为: 数据类型类型:静态数据成员名 =初值 因此本题选 C。 32

16、 【正确答案】 A 【试题解析】 本题考查构造函数相关知识,本题中定义一个对象 rooml,执行rooml Print时执行构造函数给 size赋值为 41,然后执行 void Print()coutvar;。其中, vat代表一个变量, “”称为提取运算符,该语句的含义是,将用户输入的数据保存到 var中。 (3)考查语句的初始化,我们来看 MyClass类的构造函数: MyClass(lnt len) array=new intlen; 给数组动 态分配空间,大小为 len arraysize=len; 赋值 for(int i=0; iarraySize; i+) arrayi=i+1;

17、 循环给数组赋 值,从 1到 10 三、简单应用题 42 【正确答案】 (I)virtual void Show()=0 (2)strcpy(_p, S) (3)public Basel, private Base2 (4)Base2(S) 【试题解析】 (1)主要考查的是纯虚函数的定义。题目要 求声明纯虚函数 Show,因此首先看 Base1类的派生类 Derived类中 Show函数的定义: void Show() cout_pendl; 这时就可以得出答案了,只要在 void前加上 visual,在 ()后加上 =0;,再把函数体去掉就可以了,即 vinul void Show()=0;。特别注意纯虚函数和虚函数的区别,虚函数不能添加 =0。

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

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

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