[计算机类试卷]国家二级(C++)机试模拟试卷166及答案与解析.doc
《[计算机类试卷]国家二级(C++)机试模拟试卷166及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C++)机试模拟试卷166及答案与解析.doc(32页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C+)机试模拟试卷 166及答案与解析 一、选择题 1 下列数据结构中,属于非线性结构的是 ( )。 ( A)循环队列 ( B)带链队列 ( C)二叉树 ( D)带链栈 2 下列数据结构中,能够按照 “先进后出 ”原则存取数据的是 ( )。 ( A)循环队列 ( B)栈 ( C)队列 ( D)二叉树 3 对于循环队列,下列叙述中正确的是 ( )。 ( A)队头指针是固定不变的 ( B)队头指针一定大于队尾指针 ( C)队头指针一定小于队尾指针 ( D)队头指针可以大于队尾指针 ,也可以小于队尾指针 4 算法的空间复杂度是指 ( )。 ( A)算法在执行过程中所需要的计算机存储空间
2、( B)算法所处理的数据量 ( C)算法程序中的语句或指令条数 ( D)算法在执行过程中所需要的临时工作单元数 5 软件设计中划分模块的一个准则是 ( )。 ( A)低内聚低耦合 ( B)高内聚低耦合 ( C)低内聚高耦合 ( D)高内聚高耦合 6 下列选项中不属于结构化程序设计原则的是 ( )。 ( A)可封装 ( B)自顶向下 ( C)模块化 ( D)逐步求精 7 软件详细 设计产生的图如下: 该图是 ( )。 ( A) NS图 ( B) PAD图 ( C)程序流程图 ( D) ER图 8 数据库管理系统是 ( )。 ( A)操作系统的一部分 ( B)在操作系统支持下的系统软件 ( C)一
3、种编译系统 ( D)一种操作系统 9 在 ER图中,用来表示实体联系的图形是 ( )。 ( A)椭圆形 ( B)矩形 ( C)菱形 ( D)三角形 10 有三个关系 R, S和 T如下:其中关系 T由关系 R和 S通过某种操作得到,该操作为 ( )。 ( A)选择 ( B)投影 ( C)交 ( D)并 11 下列符号中可以用做 C+标识符的是 ( )。 ( A) _radius ( B) foo bar ( C) else ( D) 3room 12 下列各组类型声明符中,含义相同的一组是 ( )。 ( A) unsigned long int和 long ( B) signed short
4、int和 short ( C) unsigned short和 short ( D) short int和 int 13 必须用一对大括号括起来的程序段是 ( )。 ( A) switch语句中的 case标 号语句 ( B) if语句的分支 ( C)循环语句的循环体 ( D)函数的函数体 14 语句 int*p=&k;定义了指针 p,与这个语句等效的语句序列是 ( )。 ( A) int*p; p=&k; ( B) int*p; p=k; ( C) int*p; *p=&k; ( D) int*p; *p=k; 15 执行下列语句段后,输出字符 “*”的个数是 ( )。 for(int i=
5、50; i 1; i-=2)cout *; ( A) 24 ( B) 25 ( C) 26 ( D) 50 16 下列关于运算符重载 的叙述中,错误的是 ( )。 ( A)有的运算符可以作为非成员函数重载 ( B)所有的运算符都可以通过重载而被赋予新的含义 ( C)不得为重载的运算符函数的参数设置默认值 ( D)有的运算符只能作为成员函数重载 17 对 C+编译器区分重载函数无任何意义的信息是 ( )。 ( A)参数类型 ( B)参数个数 ( C)返回值类型 ( D)常成员函数关键字 const 18 运算符重载时不需要保持的性质是 ( )。 ( A)操作数个数 ( B)操作数类型 ( C)优
6、先级 ( D)结合性 19 下列关于函数的描述中,错误的是 ( )。 ( A)函数可以没有返回值 ( B)函数可以没有参数 ( C)函数可以是一个类的成员 ( D)函数不能被定义为模板 20 关于函数重载,下列叙述中错误的是 ( )。 ( A)重载函数的函数名必须相同 ( B)重载函数必须在参数个数或类型上有所不同 ( C)重载函数的返回值类型必须相同 ( D)重载函数的函数体可以有所不同 21 下列关于运算符重载的描述中,正确的是 ( )。 ( A)运算符重载为成员函数时,若参数表中无参数,重载的是一元运算符 ( B)一元运算符只能作为成员函数重载 ( C)二元运算符重载为非成员函数时,参数
7、表中有一个参数 ( D) C+中可以重载所有的运算符 22 有如下函数定义: void func(int a, int& b)a+; b+; 若执行代码段: int x=0, y=1; func(x, y); 则变量 x和 y的值分别是 ( )。 ( A) 0和 1 ( B) 1和 1 ( C) 0和 2 ( D) 1和 2 23 对于一个类定义,下列叙述中错误的是 ( )。 ( A)如果没有定义拷贝构造函数,编译器将生成一个拷 贝构造函数 ( B)如果没有定义缺省的构造函数,编译器一定将生成一个缺省的构造函数 ( C)如果没有定义构造函数,编译器将生成一个缺省的构造函数和一个拷贝构造函数 (
8、 D)如果已经定义了构造函数和拷贝构造函数,编译器不会生成任何构造函数 24 有如下头文件: int n(); static int f2(); class MA public: int f3(); static int f4(); ; 在所描述的函数中,具有隐含的 this指针的是 ( )。 ( A) f1 ( B) f2 ( C) f3 ( D) f4 25 下列关于类定义的说法中,正确的是 ( )。 ( A)类定义中包括数据成员和函数成员的声明 ( B)类成员的缺省访问权限是保护的 ( C)数据成员必须被声明为私有的 ( D)成员函数只能在类体外进行定义 26 如果派生类以 protec
9、ted方式继承基类,则原基类的 protected成员和 public成员在派生类中的访问属性分别是 ( )。 ( A) public和 public ( B) public和 protected ( C) protected和 public ( D) protected和 protected 27 下列有关继承和派生的叙述中,正确的是 ( )。 ( A)派生类不能访问基类的保护成员 ( B)作为虚基类的类不能被实例化 ( C)派生类应当向基类的构造函数传递参数 ( D)虚函数必须在派生类中重新实现 28 有如下类定义: class AA int a; public: AA(int n=0):
10、 a(n) ; class BB: public AA public: BB(int n)_ ; 其中横线处缺失的部分是 ( )。 ( A): a(n) ( B): AA(n) ( C) a(n); ( D) a=n; 29 有如下程序: #include iostream using namespace std; class CD public: CD()cout C; private: char name80; ; int main() CD a, *b, d2; return0; 执行这个程序的输出结果是 ( )。 ( A) CCCC ( B) CCC ( C) CC ( D) C 30
11、 有如下程序: #include iostream using namespace std; class MyClass public: MyClass()+count; MyClass()-count; static int getCount()return count; private: static int count; ; int MyClass: count=0; int main() MyClass obj; cout obj getCount(); MyClass*ptr=new MyClass: cout MyClass: getCount(); delete ptr; cou
12、t MyClass: getCount(); return0; 执行这个程序的输出结果是 ( )。 ( A) 121 ( B) 232 ( C) 221 ( D) 122 31 有如下程序: #include iostream using namespace std; class MyClass public: MyClass(int x): val(x) void Print()constcout “const: val=“ val t; void Print()cout “val=“ val t; private: int val; ; int main() const MyClass o
13、bj1(10); MyClass obj2(20); obj1 Print(); obj2 Print(); return0; 执行这个程序的输出结果是 ( )。 ( A) val=10 const: val=20 ( B) const: val=10 const: val=20 ( C) const: val=10 val=20 ( D) val=10 val=20 32 有如下程序: #include iostream using namespace std; class Part public: Part(int x=0): val(x)cout val; Part()cout val;
14、 private: int val; ; class Whole public: Whole(int x, int y, intz=0): p2(x), p1(Y), val(z)cout val; Whole()cout val; private: Part p1, p2; int val; ; int main() Whole obj(1, 2, 3); return0; 执行这个程序的输出结果是 ( )。 ( A) 123321 ( B) 213312 ( C) 213 ( D) 123123 33 有如下程序: #include iostream using namespace std
15、; class Base public: Base(int x=0)cout x; ; class Derived: public Base public: Derived(int x=0)cout x; private: Base val; ; int main() Derived d(1); return0; 执行这个程序的输出结果是 ( )。 ( A) 0 ( B) 1 ( C) 01 ( D) 001 34 下列代码段中声明了 3个类: class Person; class Student: public Person; class Undergraduate: Student; 下
16、列关于这些类之间关系的描述中,错误的是 ( )。 ( A)类 Person是类 Undergraduate的基类 ( B)类 Undergraduate从类 Student公有继承 ( C)类 Student是类 Person的派生类 ( D)类 Undergraduate是类 Person的派生类 35 有如下程序: #include iostream using namespace std; class Base public: void output()cout 1; virtual void Print()cout B; ; class Derived: public Base pub
17、lic: void output()cout 2; void Print()cout D; ; int main() Base*ptr=new Derived; ptr- output(); ptr- Print(); delete ptr; return0; 执行这个程序的输出结果是 ( )。 ( A) 1B ( B) 1D ( C) 2B ( D) 2D 36 有如下程序: #include iostream using namespace std; class B public: virtual void show()cout “B“; ; class D: public B publi
18、c: void show()cout “D“; ; void funl(B*ptr)ptr- show(); 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; return0; 执行这个程序的输出结果是 ( )。 ( A) BBB ( B) BBD ( C) DBB ( D) DBD 37 C+中的模板包括 ( )。 ( A)对象模板和函数模板 ( B)对象模板和类模板 ( C)函数模板和类模板 ( D)
19、变量模板和对象模板 38 下列关于类模板的模板参数的叙述中,错误的是 ( )。 ( A) 模板参数可以作为数据成员的类型 ( B)模板参数可以作为成员函数的返回类型 ( C)模板参数可以作为成员函数的参数类型 ( D)模板参数不能作为成员函数的局部变量的类型 39 下列关于 C+预定义流对象的叙述中,正确的是 ( )。 ( A) cin是 C+预定义的标准输入流对象 ( B) cin是 C+预定义的标准输入流类 ( C) cout是 C+预定义的标准输入流对象 ( D) cout是 C+预定义的标准输入流类 40 有如下语句序列: char str10; cin str; 当从键盘输入 “I
20、love this game”时, str中的字符串是 ( )。 ( A) I love this game ( B) I love this ( C) I love ( D) I 二、基本操作题 41 请使用 VC6或使用【答题】菜单打开考生文件夹 proj1下的工程 proj1,此工程中含有一个源程序文件 proj1 cpp。其中位于每个注释 “ERROR*found*”之后的一行语句存在错误。请改正这些错误使程序的输出结果为: Constructor called The value is10 Copy constructor called The value is10 Destruct
21、or called Destructor called 注意:只修改注释 “ EROR*found*”的下一行语句,不要改动程序中的其他内容。 proj1 cpp #include iostream using namespace std; class MyClass public: ERROR*found* MyClass(int i) value=i; cout “Constructor called “ endl; ERROR*found* MyClass(const MyClass p) value=p value; cout “Copy constructor called “ en
22、dl: void Print() cout “The value is“ value endl; ERROR*found* void MyClass() cout “Destructor called “ endl; private: int value; ; int main() MyClass obj1; obj1 Print(); MyClass obj2(obj1); obj2 Print(); return0; 三、简单应用题 42 请使用 VC6或使用【答题】菜单打开考生文件夹 proj2下的工程 proj2,其中定义了 vehicle类,并派生出 mot。 rcar类和 bicy
23、cle类。然后以 mottorcar和 bicycle作为基类,再派生出 motorcycle类。要求将 vehicle作为虚基类,避免二义性问题。请在程序中的横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应为: 80 150 100 1 注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动 “ *found*”。 #include iostream h class vehicle private: int MaxSpeed; int Weight; public: *found* vehicle(intmaxspeed, intweight):
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 模拟 166 答案 解析 DOC
