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

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

1、国家二级( C+)笔试模拟试卷 261及答案与解析 1 在面向对象的程序设计中,下列叙述中错误的是 ( A)任何一个对象构成一个独立的模块 ( B)一个对象不是独立存在的实体,各个对象之间有关联,相互依赖 ( C)下一层次的对象可以继承上一层次对象的某些属性 ( D)上述三种说法都正确 2 3 4 下面关于虚函数的表述中正确的是 ( )。 ( A)虚函数不能声明为另一个类的友元函数 ( B)派生类必须重新定义基类的虚函数 ( C)如果在重定义虚函数时使用了保留字 virtual,那么该重定义函数仍是虚函数 ( D)虚函数不能够声明为静态函数 5 下列叙述中正确的是 ( A)软件工程只是解决软件

2、项目的管理问题 ( B)软件工程主要解决软件产品的生产率问题 ( C)软件工程的主要思想是强调在软件开发过程中需要应用工程化原则 ( D)软件工程只是解决软件开发中的技术问题 6 在结构化程序设计方法中,下面内聚性最弱的是 ( )。 ( A)逻辑内聚 ( B)时间内聚 ( C)偶然内聚 ( D)过程内聚 7 下列说法中,不属于数据模型所描述的内容的是 ( A)数据结构 ( B)数据操作 ( C)数据查询 ( D)数据约束 8 在设计程序时,应采纳的原则之一是 ( A)不限制 goto语句的使用 ( B)减少或取消注解行 ( C)程序越短越好 ( D)程序结构应有助于读者理解 9 下列不属于软件

3、工程 3个要素的是 ( )。 ( A)工具 ( B)过程 ( C)方法 ( D)环境 10 支持子程序调用的数据结构是 ( A)栈 ( B)树 ( C)队列 ( D)二叉树 11 要定义一个具有 5个元素的一维数组 vect,并使其各元素的初值依次是 30,50, -88, 0和 0,则下列定义语句中错误的是 ( )。 ( A) int vect5=30,50,-88; ( B) int vect=30,50,-88,0,0; ( C) int vect5=30,50,-88; ( D) int vect5=30,50,-88,0,0; 12 以下循环体的执行次数是 ( )。 main() i

4、nt i, j; for(i 0, j 1; ij+1; i+ 2, j-)cout i endl; ( A) 3 ( B) 2 ( D) 0 13 下列不能作为类的成员的是 ( A)自身类对象的指针 ( B)自身类对象 ( C)数组 ( D)另一个类的对象 14 有如下函数模板定义: template typename T1, typename T2, typename T3) T2 plus(T1 t1, T3 t3)return t1+t3; 则以下调用正确是 ( )。 ( A) plus(3, 5L); ( B) plus (3, 5L); ( C) plus int (3, 5L);

5、 ( D) plus int, double)(3, 5L); 15 下列关于运算符重载的说法中,不正确的是 ( )。 ( A)重载不能改变运算符的优先级,但可以通过加括号的方式改变其计算顺序 ( B)重载不能改变运算符的结合律和操作数的个数 ( C)能够创建新的运算符,并非只有现有的运算符才能被重载 ( D)运算符重载不能改变运算符用于内部类型对象时的含义,它只能和用户自定义的类型的对象一起使用,或者用于用户自定义类型的对象和内部类型的对象混合使用时 16 下面程式程序的执行结果是 ( )。 #include iostream.h voidmain()int *p, r;p=new int;

6、 *p=20; r=sizeof(*p); cout r end1; delete p; ( A)程序错误 ( B)内存为 20地址的大小 ( C) 20 ( D) 4 17 有如下程序: #include iostream #include iomanip using namespace std;int main()cout.fill(*);cout left setw(4) 123 “OK“ end1;return 0;执行这个程序的输出结果是 ( )。 ( A) 123*OK ( B) 123*OK* ( C) *123OK ( D) *123*OK 18 通过公有派生类的对象,只能访问

7、基类成员中的 ( )。 ( A)公有成员 ( B)私有成员 ( C)保护成员 ( D)公有成员和保护成员 19 下面的函数模板定义中错误的是 ( )。 ( A) template class Q ( B) template class Q QF(Qx)return Q-x; QF(Qx)return x+x; ( C) template class T ( D) template class T TF(Tx)return x*x; boolP(Tx)return X 1;) 20 可以用 p.a的形式访问派生类对象 p的基类成员 a,其中 a是 _。 ( A)私有继承的公有成员 ( B)公有继

8、承的私有成员 ( C)公有继承的保护成员 ( D)公有继承的公有成员 21 下列关于 C+函数的叙述中,正确的是 _ 。 ( A)每个函数至少要具有一个参数 ( B)每个函数都必须返回一个值 ( C)函数在被调用之前必须先声明 ( D)函数不能自己调用自己 22 有如下程序: #include“iostream h“ void main() int x=1, a=0, b=0; switch(x) case 0: b+; case 1: a+; case 2: a+; b+; cout “a=“ a “ , “ “b=“ b; 该程序的输出结果是 ( A) a=2, b=1 ( B) a=1,

9、 b=1 ( C) a=1, b=0 ( D) a=2, b=2 23 有如下程序 #include iostream h #define N2 #define M N+1 #define NUM2*M+1 void main() int i; for(i=1; i =NUM; i+) cout i; 该程序中 的 for循环执行的次数是 ( A) 5 ( B) 6 ( C) 7 ( D) 8 24 友元运算符 obj1 obj2被 C+编译器解释为 ( )。 ( A) operator (obj1, obj2) ( B) (obj1, obj2) ( C) obj2.operator (ob

10、j1) ( D) obj1.operator (obj2) 25 设有定义 int x; float y;,则 10+x+y值的数据类型是 ( A) int ( B) double ( C) float ( D)不确定 26 为了使程序的输出的 正确结果为: Now is 2004 7.10 10: 10: 10 那么应在下列程序划线处填入的正确语句是 ( )。 那么应在下列程序划线处填入的正确语句是 ( )。 #include iostream using namespace std; class TIME; class DATE public: DATE(int y=2004,int m=

11、1,int d=1) year=y; month=m; day=d; friend void DateTime(DATE private: int year, month, day; ; class TIME public: TIME(iht h=0, int m=0,int s=0) hour=h; minute=m; second=s; friend void DateTime(DATE private: int hour,minute, second; ; _ /函数 DateTime 的首部 cout “Now is“ d.year . d.month . d.day t.hour “

12、:“ t.minute : t.second .end1; int main ( ) DATE d(2004,7,10); TIME t(10, 10, 10); DateTime(d,t); return 0; ( A) void DateTime(DATE i 3; i+)ai=i; for(i=0; ik; i+) for(j=0; j k; j+) aj=ai; couta2; ( A) 2 ( B) 3 ( C) 1 ( D) 0 31 下面程序的功能是将从键盘输入的一对数,由小到大排序输出, 当输入一对相等数时结束循环,在划线处应填入的选项是 #include iostream.h

13、 void main( ) int a, b, t; cin a b; f while(_) if(a b) t=a; a=b; b=t; cout a “ “ b ( A) !a=b ( B) a!=b ( C) a=b ( D) a=b 32 有如下数组声明: int num10;,下标值引用错误的是 ( A) num10 ( B) num5 ( C) num3 ( D) num0 33 下列不是描述类的成员函数的是 ( A)构造函数 ( B)析构函数 ( C)友元函数 ( D)拷贝构造函数 34 有如下程序: #include iostream using namespace std;

14、class testprivate: int a; public: test()cout “constructor“ endl; test(int a)cout a endl; test(const test /实 double imag; /虚部 public: complex( double r, double i):real(r),imag(i) complex operator + (complex a) return complex(_); ; 42 在 C+语言中每个类都有一个 _指针,该指针指向正在调用成员函数的对象。 43 插入排序算法的主要思想是:每次从未排序序列中取出一个数

15、据,插 入已排序序列中的正确位置。 Insert类的成员函数 sort()实现了插入排序算法,请填空。 class Insert public: Insert(int*b0, int n0): b(b0), n(n0);参数 b0是某数组首地址, n是数组元素个数 void sort() 此函数假设已排序序列初始化状态只包含 b0,未排序序列初始为b1bn -1 for(ira i=1; i0; -j) if(t=bj-1) break; bj=bj-1; bj=t; ; 44 下列程序的输出结果是 _。 #include iostream using namespace std; voidf

16、un(int&rf) rf*2; int main() int num=500; fun(num); cout num endl; return 0; 45 分析以下程序的执行结果 _。 #include class Sample intx, y; public: Sample()x=y=0; Sample(int a, int b)x=a; y=b; Sample() if(x=y) cout0; -j语句,知道内层循环是将当前的第 i个元素与 j个元素进行比较,前面已知数组中有 i个元素已经排序,根据题干中的要求 “插入已排序序列中 ”,即 i=i。 44 【正确答案】 Derived(i

17、nt i): Base(i)。 【试题解析】 程序中,类 Derived是基类 Base的公有派生。在类 Derived的构造函数应该包括调用基类构造函数使基类的数据成员得以初始化。 45 【正确答案】 x=2, y=3 x!=y 【试题解析】 此 题考查的是类的构造和析构。首先,执行语句 Samples1(2, 3);会调用含有两个,参数的构造函数 sample(int a, intb)x=a; y=b; ),输出 x=2,y=3,然后结束时调用析构函数,因为 x和 y值不相等,所以最终输出 x!=y。 46 【正确答案】 类 【试题解析】 在 C+的面向对象程序设计框架中,类是程序的基本组

18、成单元,程序的主体通常由若干类的定义构成。 47 【正确答案】 n=10 48 【正确答案】 private 49 【正确答案】 3 【试题解析】 本题 考核静态数据成员。本题程序中把变量 s定义为静态数据成员,它被 MyClass 类的所有对象所共享,但它不属于类的任何一个对象,它的作用域是类范围。在类 MyClass的构造函数中,每创建一个对象, s就增 1,由此可知 s用来记录建立对象的个数。由于创建对象指针 p时并不会调用构造函数,所以 s最后的值是 3。 50 【正确答案】 基类成员 类对象成员 非类对象成员 【试题解析】 在派生类的初始化过程中,最先初始化的是基类对象,然后是其他类的对象成员,包括自身类对象的引用或指针,或其他类的对象,最后在是非类对象成 员。析构的时候则反之。

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

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

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