1、国家二级( C+)机试模拟试卷 118及答案与解析 一、选择题 1 软件详细设计生产的图如下: 该图是 ( ) ( A) N S图 ( B) PAD图 ( C)程序流程图 ( D) E R图 2 数据库管理系统是 ( )。 ( A)操作系统的一部分 ( B)在操作系统支持下的系统软件 ( C)一种编译系统 ( D)一种操作系统 3 在 E R图中,用来表示实体联系的图形是 ( )。 ( A)椭圆形 ( B)矩形 ( C)菱形 ( D)三角形 4 下列数据结构中,属于非线性结构的是 ( )。 ( A)循环队列 ( B)带链队列 ( C)二叉树 ( D)带链栈 5 下列数据结构中,能够按照 “先进
2、后出 ”原则存取数据的是 ( )。 ( A)循环队列 ( B)栈 ( C)队列 ( D)二叉树 6 对于循环队列,下列叙述中正确的是 ( )。 ( A)队头指针是固定不变的 ( B)队头指针一定大于队尾指针 ( C)队头指针一定小于队尾指针 ( D)队头指针可以大于队尾指针,也可以小于队尾指针 7 算法的空间复杂度是指 ( )。 ( A)算法在执行过程中所需要的计算机存储空间 ( B)算法所 处理的数据量 ( C)算法程序中的语句或指令条数 ( D)算法在执行过程中所需要的临时工作单元数 8 软件设计中划分模块的一个准则是 ( )。 ( A)低内聚低耦合 ( B)高内聚低耦合 ( C)低内聚高
3、耦合 ( D)高内聚高耦合 9 下列选项中不属于结构化程序设计原则的是 ( )。 ( A)可封装 ( B)自顶向下 ( C)模块化 ( D)逐步求精 10 软件详细设计产生的图如下: 该图是 ( )。 ( A) N-S图 ( B) PAD图 ( C)程序流程图 ( D) E-R图 11 数据 库管理系统是 ( )。 ( A)操作系统的一部分 ( B)在操作系统支持下的系统软件 ( C)一种编译系统 ( D)一种操作系统 12 在 E-R图中,用来表示实体联系的图形是 ( )。 ( A)椭圆形 ( B)矩形 ( C)菱形 ( D)三角形 13 有三个关系 R, S和 T如下:其中关系 T由关系
4、R和 S通过某种操作得到,该操作为 ( )。 ( A)选择 ( B)投影 ( C)交 ( D)并 14 下列符号中可以用做 C+标识符的是 ( )。 ( A) _radius ( B) foo-bar ( C) else ( D) 3room 15 下列各组类型声明符中,含义相同的一组是 ( )。 ( A) unsigned long int 和 long ( B) signed short int和 short ( C) unsigned short和 short ( D) short int和 int 16 必须用一对大括号括起来的程序段是 ( )。 ( A) switch语句中的 cas
5、e标号语句 ( B) if语句的分支 ( C)循环语句的循环体 ( D)函数的函数体 17 语句 int*p=&k;定义了 指针 p,与这个语句等效的语句序列是 ( )。 ( A) int*p; p=&k; ( B) int*p; p=k; ( C) int*p; *p=&k; ( D) int*p; *p=k; 18 执行下列语句段后,输出字符 “*”的个数是 ( )。 for(int i=50; i1; i-=2)cout using namespace std; class CD public: CD()cout using namespace std; class MyClass pu
6、blic: MyClass()+count; MyClass()-count; static int getCount()return count; private: static int count; ; int MyClass: count=0; int main() MyClass obj; cout using namespace std; class MyClass public: MyClass(int x): val(x) void Print()constcout usingnamespace std; class Part public: Part(int x=0): val
7、(x)cout using namespace std; class Base public: Base(int x=0)cout using namespace std; class Base public: void output()coutoutput(); ptr-Print(); delete ptr; retum 0; 执行这个程序的输出结 果是 ( )。 ( A) 1B ( B) 1D ( C) 2B ( D) 2D 39 有如下程序: #include using namespaee std; class B public: virtual void show()coutsho
8、w(); void fun2(B&ref)ref show(); void fun3(B b)b show(); int main() B b, *p=new D; D d; fun1(p); fun2(b); fun3(d); delete P; retum 0; 执行这个程序的输出结果是 ( )。 ( A) BBB ( B) BBD ( C) DBB ( D) DBD 40 C+中的模板包括 ( )。 ( A)对象模板和函数模板 ( B)对象模板和类模板 ( C)函数模板和类模板 ( D)变量模板和对象模板 41 下列关于类模板的模板参数的叙述中,错误的是 ( )。 ( A)模板参数可以作
9、为数据成员的类型 ( B)模板参数可以作为成员函数的返回类型 ( C)模板参数可以作为成员函数的参数类型 ( D)模板参数不能作为成员函数的局部变量的类型 42 下列关于 C+预定义流对象的叙述中,正确的是 ( )。 ( A) ein是 C+预定义的标准输入流 对象 ( B) cin是 C+预定义的标准输入流类 ( C) cout是 C+预定义的标准输入流对象 ( D) cout是 C+预定义的标准输入流类 43 有如下语句序列: char str10; cinstr; 当从键盘输入 “I love this game”时, str中的字符串是 ( )。 ( A) I love this ga
10、me ( B) I love thi ( C) I love ( D) I 二、基本操作题 44 请使用 “答题 ”菜单或使用 VC6打开考生文件夹 projl下的 工程 projl。程序中位于每个 ERROR*found*下的语句行有错误,请加以更正,不得修改程序的其他部分。更正后程序的输出应该是: Congratulations 1 100 源程序如下: #include using namespace std; class Score private: int data; public: Score(int d=0) this-data=d; Score() void show() co
11、utdatadata=value; if(this-check() coutdata=100) return true; return false; ; int main() ERROR*found* Score s=new Score(); ERROR*found* S-data=100: S-show(); return 0; 三、简单应用题 45 请使用 “答题 ”菜单或使用 VC6打开考生文件夹 proj2下的工程 proj2,其中有坐标点类 Point、圆形类 Circle和圆柱形类 Cylinder的定义。请在程序中的横线处填写适当的代码,然后删除横线,以实现上述类定义。此程序的正
12、确输出结果应为: 表面积: 408 407 体积: 628 319 注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不能删除或移动 ” *found*“。 #include #include using namespace std; class Point 坐标点类 public: const double x, y; Point(double x=0 0, double y=0 0): x(x), y(y) double distanceTo(Point p)coast 到指定点的距离 *found* return sqrt(xp x)*(xp x)+_); ; const d
13、ouble PI=3 1415926535; 圆周率 class Circle 圆类 Point centre; 圆心 double radius; 半径 public: Circle(Point C, double r): centre(c), radius(r) double perimeter() 圆的周长 return 2*PI*radius: double area() 圆的面积 *found* _; ; class Cylinder 圆柱体 Circle bottom; 圆柱体圆形底部 double height; 圆柱体高 public: Cylinder(Circle b, d
14、ouble h): bottom(b), height(h) double area() 圆柱体表面积 *found* return bottom area()*2+_-; double volume() 圆柱体体积 *found* _; ; int main() Cylinder cy(Circle(Point(2 0, 3 0), 5 0), 8 0); cout using namespace std; const int MAXELEMENTS=100; 集合最多可拥有的元素个数 class IntegerSet int elemMAXELEMENTS; 用于存放集合元素的数组 int
15、 counter;用于记录集合中元素个数的计数器 public: IntegerSet(): counter(0) 创建一个空集合 IntegerSet(int data, int size); 利用数组提供的数据创建一个整数集合 void add(int element); 添加一个元素到集合中 void remove(int elemerit); 删除集合中指定的元素 int getCount()constretuIll counter; 返回集合中元素的个数 int getElement(int i)constreturn elemi; 返回集合中指定的元素 void show()eon
16、st; ; void WriteToFfle(char*); #ndif main cpp #include“IntegerSet h“ #include IntegerSet: IntegerSet(int data, int size): counter(O) for(int i=0; i0; j-) if(element=elemj-1)break; 如果找到的是等于 element的元素,说明要添加的元素已经存在,直接返回 if(jO) if(element=elemj-1)return; 如果找到的是小于 element的元素, j就是要添加的位置 该元素及其后面的元素依次后移,腾出
17、插入位置 for(int k=counter; kj; k-) elemk=elemk-1; elemj=element;将 element插入到该位置 counter+; 计数器加 1 void IntegerSet: remove(int element) *333* *666* void IntegerSet: show()const for(int i=0; ioutput后,会执行基类的 output函数,输出 1,由于 Print是虚函数,所以 ptr-Print()会执 行派生类的 Print,即输出 D,所以本题答案为 B。 39 【正确答案】 C 【试题解析】 在某基类中声明
18、为 virtual 并在一个或多个派生类中被重新定义的成员函数,本题中定义类 B 的对象 b、对象指针 *p=new D以及类 D的对象 d;执行 fun1会调用派生类的 show函数,因为 show 函数为虚函数,而调用 fun2、 fun3仍然为基类的 show函数,所以本题答案为 c。 40 【正确答案】 C 【试题解析】 本题考查函数模板和类模板,所以答案为 C。 41 【正确答案】 D 【试题解析】 本题考查类模板的概念和定义,模板参数可以作为成员函数的局部变量的类型。 42 【正确答案】 A 【试题解析】 cin 是 C+预定义的标准输入流对象, cout是 C+预定义的标准输出流
19、对象。 43 【正确答案】 D 【试题解析】 cin 是 C+预定义的标准输入流对象, cin用来接收字符串时,遇“空格 ”、 “TAB”、 “回车 ”时都会结束。所以本题答案为 D。 二、基本操作题 44 【正确答案】 (1)if(this一 data=100) (2)Score* s=new Score(); (3)s一 setData(100); 【试题解析】 (1)主要考查考生对赋值运算符与相等运算符的掌握,在 if判断条件中,赋值运算符始终为真,这里需要比较是否相等,使用相等运算符。 (2)主要考查考生对动态分配的掌握,由下面语句 s通过箭头访问运算符访问成员函数可以判断, s属于指
20、针, new 运算符返回的是指针,所以修改为 Score木s=new Score(); (3)主要考查考生对类成员访问权限的掌握,不能通过 s指针直接访问私有变量data,修改为通过成员函数 setData来修改 data值。 三、简单应用题 45 【正确答案】 (1)strcpy(this一 office, office); (2)return office; (3)dept(my_dept) (4)dept changeOfficeTo(“311“); 【试题解析】 (1)主要考查考生对 strcpy 函数的掌握情况,根据上一条语句:strcpy(this-name, name);可知,这条语句复制的是 office,即 strcpy(this-office, office);。 (2)主要考查考生对成员函数的掌握情况,根据语句的注释:返回办公室房号可知,要填写的是一条 return语句。在私有成员里: char office20;部门所在办公室房号,表明 office即为办公室房号。因此直接返回 office即可。 (3)主要考查考生对构造函数的掌握情况,根据函数体:
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1