[计算机类试卷]国家二级C++机试(类和对象)模拟试卷10及答案与解析.doc
《[计算机类试卷]国家二级C++机试(类和对象)模拟试卷10及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级C++机试(类和对象)模拟试卷10及答案与解析.doc(20页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级 C+机试(类和对象)模拟试卷 10及答案与解析 一、选择题 1 有如下类定义: class Foo public: Foo(int v): value(v) Foo() private: Foo() int value=0; ; 其中存在语法错误的行是 ( )。 ( A) ( B) ( C) ( D) 2 以下关键字不能用 来声明类的访问权限的是 ( )。 ( A) public ( B) static ( C) protected ( D) private 3 下列有关类成员的叙述中,正确的是 ( )。 ( A)友元函数是类的成员函数 ( B)类成员的默认访问权限是私有的 ( C)
2、类成员函数必须声明为公有的 ( D)类的静态数据成员不能是常成员 4 有如下两个类定义: class AA; class BB AA v1, *v2; BB v3: int*v4; ; 其中有一个成员变 量的定义是错误的,这个变量是 ( )。 ( A) vl ( B) v2 ( C) v3 ( D) v4 5 有如下类定义: class MyClass int b; char a; double c; public: MyClass(): c(0 0), b(0), a(, ) ; 创建这个类的对象时,数据成员的初始化顺序是 ( )。 ( A) a,b,c ( B) c,b,a ( C) b,
3、a,c ( D) c,a,b 6 建立一个类对象时,系统自动调用 ( )。 ( A)析构函数 ( B)构造函数 ( C)静态函数 ( D)友元函数 7 下列关于对象初始化的叙述中,正确的是 ( )。 ( A)定义对象的时候不能对对象进行初始化 ( B)定义对象之后可以显式地调用构造函数进行初始化 ( C)定义对象时将自动调用构造函数进行初始化 ( D)在一个类中必须显式地定义构造函数实现初始化 8 有如下程序: #include using namespace std; class Point public: static int number; public: Pointonumber+;
4、Point()number-; ; int Point: number-0: void main() Point*ptr; PointA, B; Point*ptr_point=new Point3; ptx=ptr_point; Point C: Gout+Point: number+endl; deleteptr; 运行 时输出的结果是 ( )。 ( A) 3 ( B) 4 ( C) 6 ( D) 7 9 下列情况中,不会调用拷贝构造函数的是 ( )。 ( A)用一个对象去初始化同一类的另一个新对象时 ( B)将类的一个对象赋值给该类的另一个对象时 ( C)函数的形参是类的对象,调用函数进
5、行形参和实参结合时 ( D)函数的返回值是类的对象,函数执行返回调用时 10 对于一个类定义,下列叙述中错误的是 ( )。 ( A)如果没有定义拷贝构造函数,编译器将生成一个拷贝构造函数 ( B)如果没有定义缺省的构造函数,编译 器将一定生成一个缺省的构造函数 ( C)如果没有定义构造函数,编译器将生成一个缺省的构造函数和一个拷贝构造函数 ( D)如果已经定义了构造函数和拷贝构造函数,编译器不会生成任何构造函数 11 有如下类定义: class MyClass Int value; public; MyClass(int n): value(n) int gerValue()constretu
6、rn value; ; 则类 MyClass的构造函数的个 数是 ( )。 ( A) 1个 ( B) 2个 ( C) 3个 ( D) 4个 12 有如下程序: #include using namespace std: class MyClass public: MyClass(int i=0)tout using namespace std; class Test public: Test() Test(const Test&t)cout using namespace std; class XA int a; public: static int b; XA(int aa): a(aa)b
7、+; XA() int get()return a; ) ; hat XA: b=0; int main() XA d1(2), d2(3); cout using namespace std; class Test public: Test() n+=2; Test() n-=3; static int getNum()return n; private: static int n; ; int Test: n=1; int main() Test*p=new Test; delete p; cout using namespace std; class MyClass public: My
8、Class(int x): Val(x) void Set(int x)val=x; void Print()constcout using namespace std; class A public: A(int i=0): r1(i) void print()cout using namespace std; class Sample friend long fun(Sample s); public: Sample(long a)x=a; private: long x; ; long fun(Sample S) if(s x 2)return 1: return s x*fun(Sam
9、ple(s x-1): int main() int sum=0; for(int i=0; i6; i+)sum+=fun(Sample(i); coutsum; return 0; 运行时输出的结果是 ( )。 ( A) 120 ( B) 16 ( C) 154 ( D) 34 27 己知类 MyClass声明如下: class MyClass int n; public: MyClass(int k): n(k) int getValue()const return n; ; 在下列数组定义中正确的是 ( )。 ( A) MyClass x12; ( B) MyClass x22=new
10、 MyClass(1), new MyClass(2); ( C) MyClass*x32; ( D) MyClass*x42=MyClass(1), MyClass(2); 国家二级 C+机试(类和对象)模拟试卷 10答案与解析 一、选择题 1 【正确答案】 D 【试题解析】 此题考查的是类的定义。 C+语言规定,在类体内不允许对所定义的数据成员进行初始化。 【知识模块】 类和对象 2 【正确答案】 B 【试题解析】 此题考查的是类的访问权限。在 C+语言中,类的访问权限有公有、保护和私有三种。故本题选 B。 【知识模块】 类和对象 3 【正确答案】 B 【试题解析】 此题考查的是类成员的有
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 机试 对象 模拟 10 答案 解析 DOC
