1、国家二级( C+)机试模拟试卷 136及答案与解析 一、选择题 1 下列关于栈叙述正确的是 ( )。 ( A)栈顶元素最先能被删除 ( B)栈顶元素最后才能被删除 ( C)栈底元素永远不能被删除 ( D)栈底元素最先被删除 2 下列叙述中正确的是 ( )。 ( A)在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化 ( B)在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化 ( C)在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化 ( D)以上说法都不正确 3 某二叉树共 有 7个结点,其中叶子结点只有 1个,则该二叉树的深度为 (假设根结点在第 1层 )( )。 ( A) 3
2、 ( B) 4 ( C) 6 ( D) 7 4 软件按功能可以分为应用软件、系统软件和支撑软件 (或工具软件 )。下面属于应用软件的是 ( )。 ( A)学生成绩管理系统 ( B) C语言编译程序 ( C) UNIX操作系统 ( D)数据库管理系统 5 结构化程序所要求的基本结构不包括 ( )。 ( A)顺序结构 ( B) GOTO跳转 ( C)选择 (分支 )结构 ( D)重复 (循环 )结构 6 下面描述中错 误的是 ( )。 ( A)系统总体结构图支持软件系统的详细设计 ( B)软件设计是将软件需求转换为软件表示的过程 ( C)数据结构与数据库设计是软件设计的任务之一 ( D) PAD图
3、是软件详细设计的表示工具 7 负责数据库中查询操作的数据库语言是 ( )。 ( A)数据定义语言 ( B)数据管理语言 ( C)数据操纵语言 ( D)数据控制语言 8 一个教师叮讲授多门课程,一门课程可由多个教师讲授。则实体教师和课程间的联系是 ( )。 ( A) 1: 1联系 ( B) 1: m联系 ( C) m: 1联 系 ( D) m: n联系 9 有三个关系 R、 S和 T如下:则由关系R和 S得到关系 T的操作是 ( )。 ( A)自然连接 ( B)并 ( C)交 ( D)差 10 定义无符号整数类为 UInt,下面可以作为类 UInt实例化值的是 ( )。 ( A) -369 (
4、B) 369 ( C) 0 369 ( D)整数集合 l, 2, 3, 4, 5 11 C+语言对 C语言做了很多改进, C+语言相对于 C语言的最根本的变化是( )。 ( A)增加了一些新的运算符 ( B)允许函数重载,并允许设置默认参数 ( C)规定函数说明符必须用原型 ( D)引进了类和对象的概念 12 下列 ( )是 C+语言的有效标识符。 ( A) _Nol ( B) No 1 ( C) 12345 ( D) int 13 没有定义 int x; float y;,则 10+x+y值的数据类型是 ( )。 ( A) int ( B) double ( C) float ( D)不确定
5、 14 下列程序的执行结果为 ( )。 #include void main() int a: 3, b=0; int*p= int getWeight()return Weight; ; *found* class bicycle: _public vehicle private: int Height; public: bicycle(int maxspeed, int weight, int height): vehicle(maxspeed, weight),Height(height) int getHeight()return Height; ; ; *found* class m
6、otorcar: _public vehicle private: int SeatNum; public: motorcar(int maxspeed, int weight, int seatnum): vehicle(maxspeed, weight),SeatNum(seatnum) int getSeatNum()return SeatNum; ; ; *found* class motorcycle: _ public: motorcycle(int maxspeed, int weight, int height): vehicle(max,speed, weight),bicy
7、cle(maxspeed, weight, height), motorcar(maxspeed, weight, 1) ; void main() motorcycle a(80, 150, 100); cout #include #include #includeproj3 h using namespace std; Number: Number(char*n) num=new charstrlen(n)+1; strcpy(num, n); Number: Number(Number&n) Ruin=new charstrlen(n num)+1; strcpy(num, n Bum)
8、; Number: Number(int n) char* tmp=new char30; itoa(n, tmp, 10);函数 itoa的功能是将 n转换为字符串,存放于 tmp指向的数组中 Rum=new charstrlen(tmp)+1; strcpy(num, tmp); Number: Number() if(num) deletenum; Number Number: Add(Number n) *333* *666* nt main() Number num1(32); Number num2(68); Number&num3=num1 Add(num2); cout*”和
9、“?: ”。 38 【正确答案】 D 【试题解析】 使用 fstream类建立文件流必须定义打开方 式,否则编译器无法判断该文件流是读还是写。 39 【正确答案】 B 【试题解析】 本题考查的是对构造函数的掌握,另外 “+”运算符是右结合的,所以在进行输出的时候都是先把原来的输出后再自加 1。 40 【正确答案】 C 【试题解析】 “+”是右结合的,所以先赋值为 3,最后输出 3+1;常成员函数只有常对象才能调用,所以输出 2。 二、基本操作题 41 【正确答案】 (1)MyClass(int val): value(val) (2)void MyClass: SetValue(int val
10、) value =val; (3)coutThe value isobj GetValue() endl: 【试题解析】 (1)考查构造函数,定义构造函数时不能使用 void,直接使用Myclass(int val)即可。 (2)主要考查成员函数定义,类的成员函数定义时要使用前缀 MyClass,而 inline是内联函数的关键字,在此是错误的,应该删掉 inline并在函数名前加上前缀MyClass,即 Void MyClass: SetValue(int val)value=val; 。 (3)考查成员函数调用, value是私有成员,在主函数中不能直接调用 value,可以使用成员函数
11、GetValue()来得到 value的值。 三、简单应用题 42 【正确答案】 (1)MaxSpeed(maXspeed), weight(weight); (2)virtual (3)virtual (4)public bicycle, public motorcar 【试题解析】 (1)主要考查考生对构造函数的掌握,构造函数 使用初始化列表来对私有成员 MaxSpeed和 Weight初始化。 (2)主要考查考生对派生类的掌握,题目要求将 Vehicle作为虚基类,避免二义性问题。因此在这里添加 vinual使 vehicle成为虚基类。 (3)主要考查考生对派生类的掌握,题目要求以 m
12、otorear和 bicycle作为基类,再派生出 motorcycle类。在主函数中可以看到 motorcycle类的实例 a调用 getH-eight函数和 getSeatNum函数,由此可知这两个基类都是公有继承,因此得出语句: public bicycle, public mo-torcar。 四、综合应用题 43 【正确答案】 int i=atoi(hum); int j=atoi(n GetNum(); return Number(i+j); 【试题解析】 主要考查考生对库函数、对象成员和构造函数使用的掌握情况,函数 Add的功能是将函数参数 n与自身相加,返回相加后的 Number对象, Number类中成员字符串 num是用来表示十进制的整数,所以将两个 Number相加需要首先将字符串 num转化为整数,这里需要使用库函数 atoi,将调用对象的 num和对象 n的 num转化为十进制整数 i, j,在转化对象 n的 num成员时,由于 num是Number类的私有成员,所以不能直接使用,而应该通过成员函数 GetNum()返回num;得到十进制数 i、 j后,再用 i与 j的和构造成 Number对象,所以需要使用Number的参数为整数的构造函数,即 Number(int i),构造 Number对象后返回。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1