1、国家二级 C机试(选择题)模拟试卷 107及答案与解析 一、选择题 1 下列关于 this指针的描述中,正确的是 ( )。 ( A)类的成员函数都有 this指针 ( B)类的友元函数都有 this指针 ( C)任何与类相关的函数都有 this指针 ( D)类的非静态成员函数都有 this指针 2 有如下程序: #include using namespace std; class Test public: Test() n2; Test() n- 3; static hat getNum()return n; private: static int n; ; hatTest: n 1; in
2、t main() Test*p newTest; delete p; cout ( A) n 0 ( B) n 1 ( C) n 2 ( D) n 3 3 有如下程序: #include using namespace std; class Obj static hat i; public: Obj()i; bj()i-; static int getVal()return i; ; int Obj i 0; void f()Obj oh2; cout*ob3 new Ohj; coutgetVal(); delete ob3; cout ( A) 232 ( B) 231 ( C) 222
3、( D) 221 4 有如下程序: #include using namespace std; class MyClass public: MyClass0 count; MyClass0一 count; static int getCount()return count; private: static hat count; ; int MyClass count 0; int main() MyClass obj; cout*prtnew MyClass; cout ( A) 121 ( B) 232 ( C) 221 ( D) 122 5 有如下类定义: class Point priv
4、ate; static int how_many; ; _how_many 0; 要初始化 point的静态成员 how_many,下划线处应填入的内容是 ( )。 ( A) ing ( B) static int ( C) int Point ( D) static int Point 6 有如下类和对象的定义: class Constants public; static double getPl0return 3 1416; ; Constants constants; 下列各组语句中,能输出 3 1416的是 ( )。 ( A) coutgetPI();和 coutgetPI();和
5、coutgetPl(); ( D) cout using namespace std; class XA int a; public: static int b; XA(int aa): a(aa)b; int getA()return a; ; int XA b 0; int main() XA d1(4), d2(5); cout using namespace std; int i 1; class Fun public: static int i; int value()return i-1; int value()constreturn i l; ; int Fun i 2; int
6、 main() int i 3; Fun fun1; const Fun fun2; return 0; 若程序的输出结果是: 123 则程序中下划线处遗漏的语句是 ( )。 ( A) cout using namespace std; class VAC public; int f() constreturn 3; ) int f()return 5; ) ; Int main() VAC v1; const VAC v2; cout using namespace std; class MyClass public: MyClass(int x): Val(x) void Set(int
7、x)val x; void Print()constcouta a; 第 2行 void g(char b)this-b-b; 第 3行 char h0 constreturn a; 第 4行 ; 编译时没有错误的行是 ( )。 ( A)第 1行 ( B)第 2行 ( C)第 3行 ( D)第 4行 22 有如下类定义: classAA int a; public: int getRefoconstreturn&a; int getVaheoconstreturn a; void set(int n)consta n; friend void show(AA aa)const cout usi
8、ng namespace std; class Boat; class Car public: Car(int i): weight(i) friend int Total(const Car c, const Boat&b); private: int weight; ; class Boat public: Boat(int i): weight(i) friend int Total(const Car&c, const Boat&b); private: int weight; ; int Total(const Car&c, const Boat&b) return c weight
9、+b weight; int main() Car c(10); Boat b(8); cout()conat;所以对于本题来说无参且无返回值的常成员函数 show,其正确的函数原型是选项 C。 【知识模块】 类和对象 19 【正确答案】 D 【试题解析】 函数 listen()作为类 IMS的常成员函 数,一般对象 obj1和常对象obi2都可以调用它,而函数 speak()作为 IMS的一般成员函数,则只有一般对象obj1可以调用,而常对象 obj2调用会产生编译错误。 【知识模块】 类和对象 20 【正确答案】 A 【试题解析】 const成员函数表示该成员函数只能读类数据成员,而不能修
10、改类成员数据。定义 const成员函数时,把 const关键字放在函数的参数表和函数体之间。 【知识模块】 类和对象 21 【正确答案】 D 【试题解析】 类 Test中的常成员函数 h()返回数据成员 a的值。 【知识模块】 类和对象 22 【正确答案】 B 【试题解析】 此题考查了常成员函数和友元函数的概念。选项 A中, getRef()函数的返回值和函数函数类型不符,故错误; C选项中 set()常成员函数改变了数据成员的值,这是不允许的: D选项中 show()函数被同时定义成友元函数和常成员函数是错误的。 【知识模块】 类和对象 23 【正确答案】 C 【试题解析】 此题考查的是友元
11、函数和递归函数。因为 fun函数是 Sample类的友元函数,所以 fun函数可以直接访问 Sample类对象的私有成员 x。主函数调用fun函数,构造参数为 0 5。当 n小于 2时, fun函数返回 1,其余返回值为n*fun(n 1)。 n取 0 5的值时 fun(n)依次为 1, 1, 2, 6, 24, 120,累加结果为154。 【知识模块】 类和对象 24 【正确答案】 A 【试题解析】 这段程序是正确的,计算 p距离原点的距离。语句 是类 Point的构造函数,在构造函数中给变量 xx和 yy赋初值 0。语句 是计算点 p距原点的距离的函数 distance。语句 是计算点 p
12、1距离原点的距离并输出。 【知识模块】 类和对象 25 【正确答案】 A 【试题解析】 程序中定义了类 Car和类 Boat,在两个类中分别定义他们的构造函数和友元函数 friend。程序在 VC6 0中编译通过。 【知识模块】 类和对象 26 【正确答案】 C 【试题解析】 考查的是对象数组。选项 A中在建立对象数组时也同样需要调用构造函数:选项 B和 D的类型不匹配, B中不能将指针传给非指针, D中是将非指针传给指针。 【知识模块】 类和对象 27 【正确答案】 C 【试题解析】 在选项 C中定义了类 MyClass对象 数组 arrays2,并用对象MyClass(5)和 MyClass(6)对这个数组中的两个元素赋初值。 【知识模块】 类和对象
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1