[计算机类试卷]国家二级(C++)机试模拟试卷163及答案与解析.doc
《[计算机类试卷]国家二级(C++)机试模拟试卷163及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C++)机试模拟试卷163及答案与解析.doc(32页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C+)机试模拟试卷 163及答案与解析 一、选择题 1 一个栈的初始状态为空。现将元素 1、 2、 3、 4、 5、 A、 B、 C、 D、 E依次入栈,然后再依次出栈,则元素出栈的顺序是 ( )。 ( A) 12345ABCDE ( B) EDCBA54321 ( C) ABCDE12345 ( D) 54321EDCBA 2 下列叙述中正确的是 ( )。 ( A)循环队列有队头和队尾两个指针,因此,循环队列是非线性结构 ( B)在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况 ( C)在循环 队列中,只需要队尾指针就能反映队列中元素的动态变化情况 ( D)循环队列中
2、元素的个数是由队头指针和队尾指针共同决定 3 在长度为 n的有序线性表中进行二分查找,最坏情况下需要比较的次数是 ( )。 ( A) O(n) ( B) O(n2) ( C) O(log2n) ( D) O(nlog2n) 4 下列叙述中正确的是 ( )。 ( A)顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的 ( B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构 ( C)顺序存储结构能存储有序 表,链式存储结构不能存储有序表 ( D)链式存储结构比顺序存储结构节省存储空间 5 数据流图中带有箭头的线段表示的是 ( )。 ( A)控制流 ( B)事件驱动 (
3、C)模块调用 ( D)数据流 6 在软件开发中,需求分析阶段可以使用的工具是 ( )。 ( A) NS图 ( B) DFD图 ( C) PAD图 ( D)程序流程图 7 在面向对象方法中,不属于 “对象 ”基本特点的是 ( )。 ( A)一致性 ( B)分类性 ( C)多态性 ( D)标识唯一性 8 一间宿舍可住多个学生,则 实体宿舍和学生之间的联系是 ( )。 ( A)一对一 ( B)一对多 ( C)多对一 ( D)多对多 9 在数据管理技术发展的三个阶段中,数据共享最好的是 ( )。 ( A)人工管理阶段 ( B)文件系统阶段 ( C)数据库系统阶段 ( D)三个阶段相同 10 有三个关系
4、 R、 S和 T如下:由关系 R和 S通过运算得到关系 T,则所使用的运算为 ( )。 ( A)笛卡尔积 ( B)交 ( C)并 ( D)自然连接 11 下列语句中,错误的是 ( )。 ( A) const int buffer=256; ( B) const double *point; ( C) int const buffer=256; ( D) double * const point; 12 if语句的语法格式可描述为: 格式 1: if(条件 )语句 或 格式 2: if(条件 )语句 1 else语句 2 关于上面的语法格式,下列表述中错误的是 ( )。 ( A)条件部分可以是一
5、个 if语句,例如 if(if(a=0) ( B)语句部分可以是一个 if语句,例如 if()if() ( C)如果在条件 前加上逻辑非运算符 !并交换语句 1和语句 2的位置,语句功能不变 ( D)语句部分可以是一个循环语句,例如 if()while() 13 有如下说明: int a, 101=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 14 有如下程序段: int i=0, j=1; int &r=i; r=j; int *p=&i: *p=
6、&r; 其中会产 生编译错误的语句是 ( )。 ( A) ( B) ( C) ( D) 15 下列字符串中,不可以用做 C+标识符的是 ( )。 ( A) y_2006 ( B) _TEST_H ( C) Retum ( D) switch 16 为了取代 C中带参数的宏,在 C+中使用 ( )。 ( A)重载函数 ( B)内联函数 ( C)递归函数 ( D)友元函数 17 通过运算符重载,可以改变运算符原有的 ( )。 ( A)操作数类型 ( B)操作数个数 ( C)优先级 ( D)结合性 18 在函数中,可以用 auto、 extern、 register和 static这四个关键字中的一
7、个来说明变量的存储类型,如果不说明存储类型,则默认的存储类型是 ( )。 ( A) auto ( B) extem ( C) register ( D) static 19 下列运算符函数中肯定不属于类 FunNumber的成员函数的是 ( )。 ( A) int operator-(FunNumber); ( B) FunNumber operator-(); ( C) FunNumber operator-(int); ( D) int operator-(FunNumber, FunNumber); 20 若有下面的函数调用: fun(a+b, 3, max(n-1, b) 则 fun的
8、实参个数是 ( )。 ( A) 3 ( B) 4 ( C) 5 ( D) 6 21 关于运算符重载,下列表述中正确的是 ( )。 ( A) C+已有的任何运算符都可以重载 ( B)运算符函数的返回类型不能声明为基本数据类型 ( C)在类型转换符函数的定义中不需要声明返回类型 ( D)可以通过运算符重载来创建 C+中原来没有的运算符 22 有如下程序: #includ iostream using namespace std; int main() void function(double val); double val; function(val); cout val; return0; v
9、oid function(double val) val=3; 编译运行这个程序将出现的情况是 ( )。 ( A)编译出错,无法运行 ( B)输出: 3 ( C)输出: 3 0 ( D)输出一个不确定的数 23 下列情况中,不 会调用拷贝构造函数的是 ( )。 ( A)用一个对象去初始化同一类的另一个新对象时 ( B)将类的一个对象赋值给该类的另一个对象时 ( C)函数的形参是类的对象,调用函数进行形参和实参结合时 ( D)函数的返回值是类的对象,函数执行返回调用时 24 以下关键字不能用来声明类的访问权限的是 ( )。 ( A) public ( B) static ( C) protect
10、ed ( D) private 25 由于常对象不能被更新,因此 ( )。 ( A)通过常对象只能调用它的常成员函数 ( B)通 过常对象只能调用静态成员函数 ( C)常对象的成员都是常成员 ( D)通过常对象可以调用任何不改变对象值的成员函数 26 下列有关继承和派生的叙述中,正确的是 ( )。 ( A)如果一个派生类公有继承其基类,则该派生类对象可以访问基类的保护成员 ( B)派生类的成员函数可以访问基类的所有成员 ( C)基类对象可以赋值给派生类对象 ( D)如果派生类没有实现基类的一个纯虚函数,则该派生类是一个抽象类 27 在公有继承的情况下,允许派生类直接访问的基类成员包括 ( )。
11、 ( A)公有成员 ( B)公有成员和保护成员 ( C)公有成员、保护成员和私有成员 ( D)保护成员 28 有如下程序: #nclude iostream using namespace std; class Base public: void fun()cout “Base: fun“ endl; ; class Derived: public Base public: void fun() _ cout “Derived: fun“ endl; ; int main() Derived d; d fun(); return0; 已知其执行后的输出结果为: Base: fun Derive
12、d: fun 则程序中下画线处应填入的语句是 ( )。 ( A) Base fun(); ( B) Base: fun(); ( C) Base- fun(); ( D) fun(); 29 有如下程序: #include iostream using namespace std; class MyClass public: MyClass()cout A; MyClass(char c)cout c; MyClass()cout B; ; int main() MyClass p1, *p2; p2=new MyClass(X); delete p2; return0; 执行这个程序的输出结
13、果是 ( )。 ( A) ABX ( B) ABXB ( C) AXB ( D) AXBB 30 有如下程序: #include iostream using namespace std; int i=1; class Fun public: static int i; int value()return i-1; int value()constreturn i+1; ; int Fun: i=2; int main() int i=3; Fun fun1; const Fun fun2; _ return0; 若程序的输出结果是: 123 则程序中下画线处遗漏的语句是 ( )。 ( A)
14、cout fun1 value() Fun: i fun2 value(); ( B) cout Fun: i fun1 value() fun2 value(); ( C) cout fun1 value() fun2 value() Fun: i; ( D) cout fun2 value() Fun: i fun1 value(); 31 有如下程序: #include iostream using namespace std; class Obj static int i; public: obj()i+; obj()i-; static int getVal()return i; ;
15、 int obj: i=0; void f()obj ob2; cout ob2 getVal(); int main() obj ob1; f(); obj *ob3=new obj; cout ob3- getVal(); delete oh3; cout obj: getVal(); return0; 执行这个程序的输出结果是 ( )。 ( A) 232 ( B) 231 ( C) 222 ( D) 221 32 有如下程序: #include iostream using namespace std; class Pair int m, n; public: Pair(int j, i
16、nt k): m(j), n(k) int get()return m; int get()constreturn m+n; ; int main() Pair a(3, 5); const Pair b(3, 5); cout a get() b get(); return0; 执行这个程序的输出结果是 ( )。 ( A) 33 ( B) 38 ( C) 83 ( D) 88 33 有如下程序: #include iostream using namespace std; class Base protected: Base()cout A; Base(ehar c)cout c; ; cl
17、ass Derived: public Base public: Derived(char c)cout c; ; int main() Derived d1(B); return0; 执行这个程序的输出结果是 ( )。 ( A) B ( B) BA ( C) AB ( D) BB 34 有如下类定义: class MyBase int k; public: NyBase(int n=0): k(n) int value()coastreturn k; ; class MyDefived: NyBase int j; public: MyDefived(int i): j(i) int get
18、K()constreturn k; int getJ()constreturn j; ; 编译时发现有一处语法错误,对这 个错误最准确的描述是 ( )。 ( A)函数 getK试图访问基类的私有成员变量 k ( B)在类 MyDerived的定义中,基类名 NyBase前缺少关键字 public、 protected或 private ( C)类 MyDefived缺少一个无参的构造函数 ( D)类 MyDerived的构造函数没有对基类数据成员 k进行初始化 35 有如下程序: #include iostream using namespace std; class Instrument p
19、ublic: virtual void Display()=0; ; class Piano: public Instrument nublic: void Display() *函数体略 * ; int main() Instrument s; Instrument *p=0: ; return0; 下列叙述中正确的是 ( )。 ( A)语句 “Insturment*p=0; ”编译时出错 ( B)语句 “Instrument s; ”编译时出错 ( C)类 Piano中的 Display函数不是虚函数 ( D)类 Instrument是一个虚基类 36 有如下程序: #include io
20、stream using namespace std; class A public: virtual void func1()cout “A1“; void rune2()cout “A2“; ; class B: public A public: void func1()cout “B1“; void func2()cout “B2“; ; int main() A*p=new B: p- func1(); p- func2(); delete p; return0; 执行这个程序的输出结果是 ( )。 ( A) B1B2 ( B) A1A2 ( C) B1A2 ( D) A1B2 37
21、关于在调用模板函数时模板实参的使用,下列表述中正确的是 ( )。 ( A)对于虚拟类型参数所对应的模板实参,如果能从模板函数的实参中获得相同的信息,则都可以省略 ( B)对于虚拟类型参数所对应的模板实参,如果它们是参数表中的最后的若干个参数,则都可以省略 ( C)对于虚拟类型参数所对应的模板实参,若能够省略则必须省略 ( D)对于常规参数所对应的模板实参,任何情况下都不能省略 38 关于关键字 class和 typename,下列表述中正确的是 ( )。 ( A)程序中的 typename都可以替换为 class ( B)程序中的 class都可以替换为 typename ( C)在模板形参表
22、中只能用 typename来声明参数的类型 ( D)在模板形参表中只能用 class或 typename来声明参数的类型 39 在下列枚举符号中,用来表示 “相对于当前位置 ”文件定位方式的是 ( )。 ( A) ios_base: cur ( B) ios_base: beg ( C) ios_base: out ( D) ios_base: end 40 下列关于 C+流的描述中,错误的是 ( )。 ( A) cout A表达式可输出字符 A ( B) eof()函数可以检测是否到达文件尾 ( C)对磁盘文件进行流操作时,必须包含头文件 fstream ( D)以 ios_base: ou
23、t模式打开的文件不存在时,将自动建立一个新文件 二、基本操作题 41 使用 VC6打开考生文件夹 proj1下的工程 proj1,其中有 “沙发 ”类 Sofa和 主函数main的定义。程序中位于每个 ERROR*found*下的语句行有错误请加以更正。更正后程序的输出应该是: 座位数: 3 颜色:红色 注意:只能修改每个 ERROR*found*下的那一行,不要改动程序中的其他内容。 #include iostream using namespace std; class Sofa “沙发 ”类 int seats;座位数 char color10;颜色 public: ERROR*foun
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 模拟 163 答案 解析 DOC
