【计算机类职业资格】二级C++-216及答案解析.doc
《【计算机类职业资格】二级C++-216及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++-216及答案解析.doc(21页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+-216 及答案解析(总分:68.00,做题时间:90 分钟)一、选择题(总题数:40,分数:68.00)1.有如下程序: #includeiostream using namespace std; class MyClass public: MyClass()cout“A“; MyClass(char c)coutc; MyClass()cout“B“; ; int main() MyClass p1.*p2; p2=new MyClass(“X“); delete p2; return 0; 执行这个程序的输出结果是_。(分数:1.00)A.ABXB.ABXBC.AXBD.AXB
2、B2.下列运算符函数中肯定不属于类 FunNumber 的成员函数的是 _ 。(分数:2.00)A.int operator-(FunNumber);B.FunNumber operator-();C.FunNumber operator-(int);D.int operator-(FunNumber,FunNumber);3.在对象方法中,一个对象请求另一个对象为其服务的方式是通过发送_来实现。(分数:1.00)A.调用语句B.命令C.中令D.消息4.设变量已正确定义并赋值,以下正确的表达式是_。(分数:2.50)A.x=y*5=x+zB.int(15.8%5)C.x=y+z+5,+yD.x
3、=25%5.05.在面向对象方法中,不属于“对象”基本特点的是_。(分数:1.00)A.一致性B.分类性C.多态性D.标识唯一性6.有以下定义,则此数组的元素中不正确的一个赋值结果是 _。 static int a10=1,2,3,4,5;(分数:2.00)A.a10=2B.a0=1C.a3=4D.a7=07.判断字符型变量 ch 是否为大写英文字母,应使用表达式_。(分数:2.00)A.ch=“A“ class Publication/出版物类 char name30; public: Publication(char*name=“未知名称“) strcpy(this-name,name);
4、 const char*getName()constreturn name;) virtual const char*getType()constreturn“未知类型“; ; class Book:public Publication/书类 public: Book(char*namc):Publication(name) viriual const char*getType()constreturn “书“; ; void showPublication(Publicationp) coutp.getType()“:“p.getName()endl; int main() Book boo
5、k(“精彩人生“); showPublication(book); return 0; 运行时的输出结果是_。(分数:2.50)A.未知类型:未知名称B.未知类型:精彩人生C.书:未知名称D.书:精彩人生11.有如下程序: #include iostream using namespace std; class CD public: CD() cout“C“; private: char name80; ; int main() CD a,*b,d2;return 0; 运行时的输出结果是(分数:2.00)A.CCCCB.CCCC.CCDC12.若 AA 为一个类,a 为该类的私有整型数据成员
6、,getA()为该类的一个非静态公有成员函数,功能是返回 a 的值。如果 x 为该类的一个对象,要在类外访问 x 对象中 a 的值,正确的访问格式为_。(分数:2.50)A.AA.getA()B.getA()C.aD.AA:a13.有如下程序: #includeiostream using namespace std; int main() int*p; *p=9; cout“the value at p:“*p; return 0; 编译运行程序将出现的情况是_。(分数:1.00)A.编译时出现语法错误,不能生成可执行文件B.运行时一定输出:The value at p:9C.运行时一定输出
7、:The value at p:*9D.运行时有可能出错14.继承具有 _ ,即当基类本身也是某一个类的派生类时,底层的派生类也会自动继承间接基类的成员。(分数:1.00)A.规律性B.传递性C.重复性D.多样性15.将下面类 TestClass 中的函数 fun()的对象成员 n 值修改为 100 的语句应该是 _ 。 class TcstClass public: TestClass(int x)n=x; void SetNum(int n1)n=n1; private: int n; int fun() TestClass * ptr=new TestClass(45); _; (分数:
8、2.00)A.TestClass(100)B.ptr-SetNum(100)C.SetNum(100)D.ptr-n=10016.Sample 是一个类,执行下面语句后,调用 Sample 类的构造函数的次数是_。 Sample a2,*p=new Sample;(分数:1.00)A.0B.1C.2D.317.C流中重载的运算符是一个(分数:1.00)A.用于输出操作的非成员函数B.用于输入操作的非成员函数C.用于输出操作的成员函数D.用于输入操作的成员函数18.在下列字符中,不允许作为 C+标识符的是_。(分数:2.00)AbBBC._D.219.有三个关系 R、S 和 T 如下: R A
9、B C a 1 2 b 2 1 c 3 1 S A D c 4 T A B C D c 3 1 4 则由关系 R 和 S 得到关系 T 的操作是_。(分数:1.00)A.自然连接B交C.投影D并20.要通过函数实现一种不太复杂的功能,并且要求加快执行速度,则应该选用(分数:2.00)A.重载函数B.内联函数C.静态函数D.虚函数21.有如下程序: #includeiostream using namespace std; class Base private: void fun1()const cout“fun1“; protected: void fun2()const cout“fun2“
10、; public: void fun3() const cout“fun3“; ; class Derived: protected Base public: void fun4() const cout“fun4“; ; int main() Derived obj; obj. fun1();/ obj. fun2();/ obj. fun3();/ obj. fun4();/ return 0; 其中有语法错误的语句是_。(分数:1.00)A.B.C.D.22.针对数组定义 int data10;,下列表述中错误的是(分数:1.00)A.用*data 可访问到数组的首元素B.用 data9
11、可访问到数组的末元素C.用 data10访问数组元素会超出数组边界D.data 共有 10 个元素,其首元素是 data123.如果表达式-x/y 中的“-”和“/”都是作为友元函数重载的运算符,采用运算符函数调用格式时,该表达式应表示为_。(分数:3.00)A.operator/(x.operator-(),y)B.operator/(operator-(x),y)C.operator-().operator/(y)D.operator/(operator-(x)24.有如下程序: #includeiostream #includestring using namespace std; cl
12、ass MyString public: char str80; MyString(const char*s)strepy(str s); MyString return*this; ; ostream int main() MyString x(“abc“), y(“cde“); cout(x+=y)endl; return 0; 运行这个程序的输出结果是_。(分数:2.50)A.abcB.cdeC.abcdeD.abccde25.数据库系统的核心是 _ 。(分数:1.00)A.数据库B.数据库管理系统C.数据模型D.软件工具26.有下列程序: #include stdio.h int fu
13、n(int a,int b) if(b=0) return a; else return(fun(-a,-b); void main() printf(“%d/n“,fun(4,2); 程序的运行结果是_。(分数:2.50)A.1B.2C.3D.427.下列关于 this 指针的描述中,正确的是_。(分数:2.00)A.类的成员函数都有 this 指针B.类的友元函数都有 this 指针C.任何与类相关的函数都有 this 指针D.类的非静态成员函数都有 this 指针28.给出下面程序输出结果_。 #includeiostream.hvoid main() int *p1; int *p2=
14、 int b=20; p1= cout*p2endl; (分数:2.50)A.10B.20C.40D.3029.有以下程序: #include iostream using namespace std; class B private: int a,b; public: B() B(int i,int j); void printb(); ; class A B C; public: A() A(int i,int j); void printa(); ; A:A(int i,int j) :c(i,j) void A:printa() c.printb (); B:B(int i, int
15、j) a=i; b=j; void B: :printb() couta“, “bend1; int main () A m(7,8); m.printa(); return 0; 该程序运行后的输出结果是 _ 。(分数:1.00)A.5,6B.7,8C.8,9D.9,1030.有如下函数定义: void func(int a,intb+; 若执行代码段: int x=0,y=1 func(x,y); 则变量 x 和 y 值分别是_。(分数:2.50)A.0 和 1B.1 和 1C.0 和 2D.1 和 231.已知一函数的形参说明为 int arr56,则与此等效的形参说明为(分数:2.00
16、)A.int arrB.int5C.int*a6D.int(*a)632.下列叙述中正确的是_。(分数:1.00)A.算法就是程序B.设计算法时只需要考虑数据结构的设计C.设计算法时只需要考虑结果的可靠性D.以上三种说法都不对33.有如下程序: #includeiostream.h using namespace std; class Base public: Base()cout“BB“; f(); void f()cout“BF“; ; class Derived:public Base public: Derived()cout“DD“; void f()cout“Df“; ; int
17、main()Derived d;return 0; 执行上面的程序将输出_。(分数:1.00)A.BBBfDDB.BBDfDDDfC.DDD.DDBBBf34.已知类 MyClass 的定义如下: class MyClass public: MyClass(int d)data=d; MyClass() private: int data; ; 下列对 MyClass 类对象数组的定义和初始化语句中,正确的是_。(分数:2.50)A.MyClass array2;B.MyClass array2=MyClass(5);C.MyClass array2=MyClass(5),MyClass(6)
18、,;D.MyClass*arrays=new MyClass2;35.有如下程序: #includeiostream using namespace std; class BASE public: BASE()cout“BASE“;) ; class DERIVED:public BASE public: DERIVED()cout“DERIVED“; ; int main()DERIVED x;return 0; 执行后的输出结果是 _ 。(分数:2.00)A.BASEB.DERIVEDC.BASEDERIVEDD.DERIVEDBASE36.针对数组定义 int data10;,下列表述中
19、错误的是(分数:1.00)A.用*data 可访问到数组的首元素B.用 data9可访问到数组的末元素C.用 data10访问数组元素会超出数组边界D.data 共有 10 个元素,其首元素是 data137.已知在一个类体中包含如下函数原型:VOLUMEOPER ATOR-(VOLUME)const;,下列关于这个函数的叙述中,错误的是_。(分数:1.00)A.这是运算符一的重载运算符函数B.这个函数所重载的运算符是一个一元运算符C.这是一个成员函数D.这个函数不改变类的任何数据成员的值38.有下列程序: #include stdio.h #define PT 3.5; #define S(
20、x) PT*x*x; votd main() int a=1;b=2; prinif(“%4.If/n“,S(a+b); 程序运行后的输出结果是_。(分数:2.50)A.14.0B.31.5C.7.5D.程序有错,无输出结果39.在对函数进行原型声明时,下列语法成分中不需要的是_。(分数:1.00)A.函数返回类型B.函数参数列表C.函数名D.函数体40.有如下定义: int a5=1, 3, 5, 7, 9, *P=a; 下列表达式中不能得到数值 5 的是_。(分数:1.00)A.a2B.a3C.*(P+2)D.*P+4二级 C+-216 答案解析(总分:68.00,做题时间:90 分钟)一
21、、选择题(总题数:40,分数:68.00)1.有如下程序: #includeiostream using namespace std; class MyClass public: MyClass()cout“A“; MyClass(char c)coutc; MyClass()cout“B“; ; int main() MyClass p1.*p2; p2=new MyClass(“X“); delete p2; return 0; 执行这个程序的输出结果是_。(分数:1.00)A.ABXB.ABXBC.AXBD.AXBB 解析:解析 构造函数和析构函数的调用顺序为先构造的后析构,后构造的先析
22、构。所以本题答案为D。2.下列运算符函数中肯定不属于类 FunNumber 的成员函数的是 _ 。(分数:2.00)A.int operator-(FunNumber);B.FunNumber operator-();C.FunNumber operator-(int);D.int operator-(FunNumber,FunNumber); 解析:解析 本题考查的知识点是:运算符“-”的重载。“-”运算符有一元(取负)和二元(减法)两种形式,且均可重载为成员函数和非成员函数。运算符重载为成员函数时,形参个数一般为运算符元数减1,因为此成员函数所属的对象可成为运算符的一个运算分量。重载为非成
23、员函数时,形参个数一般和运算符元数相等。所以“-”运算符重载为成员函数时,参数个数可以是 0 个和 1 个,而重载为非成员函数时,参数个数可以是 1 个或 2 个。3.在对象方法中,一个对象请求另一个对象为其服务的方式是通过发送_来实现。(分数:1.00)A.调用语句B.命令C.中令D.消息 解析:解析 在面向对象方法中,对象之间通过消息进行通信。消息中只包含传递者的要求,它告诉接受者需要做哪些处理,但并不指示接受者应该怎么完成这些处理,接受者独立决定采用什么方式完成所需的处理。4.设变量已正确定义并赋值,以下正确的表达式是_。(分数:2.50)A.x=y*5=x+zB.int(15.8%5)
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 C216 答案 解析 DOC
