【计算机类职业资格】二级C++-222及答案解析.doc
《【计算机类职业资格】二级C++-222及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++-222及答案解析.doc(22页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+-222 及答案解析(总分:66.00,做题时间:90 分钟)一、选择题(总题数:38,分数:66.00)1.假定 MyClass 为一个类,那么下列的函数说明中, _ 为该类的析构函数。(分数:2.50)A.voidMyClass();B.MyClass(int n);C.MyClass();D.MyClass();2.有以下程序: #includeiostream using namespace std; Class sample private: int n; public: sample() sample(int m) n=m; sample add(sample s1,sa
2、mplc s2) this-n=s1.n+s2.n; return(*this); void disp() cout“n”nendl; ; int main() sample s1(10),s2(5),s3; s3.add(s1,s2); s3.disp(); return 0; 程序运行后,输出的结果是 _ 。(分数:2.00)A.n10B.n5C.n20D.n=153.在重载一个运算符时,如果其参数表中有一个参数,则说明该运算符是_。(分数:2.00)A.一元成员运算符B.二元成员运算符C.一元友元运算符D.B 或 C4.下列有关运算符重载的叙述中,正确的是_。(分数:1.00)A.运算符
3、重载是多态性的一种表现B.C+中可以通过运算符重载创造新的运算符C.C+中所有运算符都可以作为非成员函数重载D.重载运算符时可以改变其结合性5.软件(程序)调试的任务是_。(分数:2.50)A.诊断和改正程序中的错误B.尽可能多地发现程序中的错误C.发现并改正程序中的所有错误D.确定程序中错误的性质6.有下列程序: #include stdio.h #include stdlib.h int fun(int n) int * p; p=(int*)malloc(sizeof(int); *p=n; return*p; void main() int a; a=fun(10); printf(“
4、d/n“,a+fun(10); 程序的运行结果是_。(分数:2.50)A.0B.10C.20D.出错7.以下哪个不是 C+语言中的有效标识符?(分数:2.00)A.34aB._ABC.A_BD.A258.有以下程序: #includeiostream using namespace std; class A public: A()cout“A“;) ; classBpublic:B()cout“B“; classC:public A B b: public: C()(cout“C“;) ; int main() C obj; return 0; 执行后的输出结果是_。(分数:2.50)A.CB
5、AB.BACC.ACBD.ABC9.在 C+中既可以用于文件输入又可以用于文件输出的流类是_。(分数:2.00)A.fstreamB.ifstreamC.ofstreamD.iostream10.数据流程图(DFD 图)是 _ 。(分数:2.00)A.软件概要设计的工具B.软件详细设计的工具C.结构化方法的需求分析工具D.面向对象方法的需求分析工具11.C+系统预定义了 4 个用于标准数据流的对象,下列选项中不属于此类对象的是_。(分数:1.00)A.coutB.cinC.cerrD.cset12.有如下类定义: class Point int x_,y_; public: Point( ):
6、x_(0),y_(0) Point(int x,int y=0):x_(x),y_(y) ; 若执行语句: Point a(2),b3,*c4; 则 Point 类的构造函数被调用的次数是(分数:2.00)A.2 次B.3 次C.4 次D.5 次13.下列控制格式输入/输出的操作符中,能够设置浮点数精度的是_。(分数:1.00)A.setprecisionB.setwC.setfillD.showpoint14.数据库设计的 4 个阶段是:需求分析、概念设计、逻辑设计和(分数:2.00)A.编码设计B.测试阶段C.运行阶段D.物理设计15.有如下程序: #includeiostream usi
7、ng 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.DERIVEDBASE16.有如下类声明: class XA int x; public: XA(int n)x=n; ; class XB:public XA int y; public: XB(i
8、nt a,int b); ; 在构造函数 XB 的下列定义中,正确的是_。(分数:1.00)A.XB:XB(int a,int b):x(a),y(b)B.XB:XB(int a,int b):XA(a),y(b)C.XB:XB(int a,int b):x(a),XB(b)D.XB:XB(int a,int b):XA(a),XB(b)17.下列叙述中正确的是_。(分数:1.00)A.软件测试应该由程序开发者来完成B.程序经调试后一般不需要再测试C.软件维护只包括对程序代码的维护D.以上三种说法都不对18.下面关于 C+流的叙述中,正确的是_。(分数:1.00)A.cin 是一个输入流对象B
9、.可以用 ifstream 定义一个输出流对象C.执行语句序列 char*y=“PQMN“;couty;将输出字符串 PQMN 的地址D.执行语句序列 char x80;cin.getline(x,80);时,若输入 Happy new year,则 x 中的字符串是“Happy”19.有如下程序: # includeiostream usmg namespace std; class A public: A(int i): r1(i) void print()(cout“E“r1“-“; void print()constcout“C“r1*r1“一“; private: int r1; ;
10、 int main() A a1(2); const A a2(4); a1.print(); a2.print(); return 0; 运行时的输出结果是_。(分数:2.50)A.运行时出错B.E2-Cl6-C.C4-C16-D.E2-E4-20.有如下程序: #include iostream using namespace std; class AA int n; public: AA(int k):n(k) int get()return n; int get()constreturn n+1; int main() AA a(5); const AA b(6); couta.get
11、()b.get(); return 0; 执行后的输出结果是 _ 。(分数:2.00)A.55B.57C.75D.7721.下列关于函数的描述中,错误的是_。(分数:2.00)A.函数可以没有返回值B.函数可以没有参数C.函数可以是一个类的成员D.函数不能被定义为模板22.有 3 个关系 R、S 和 T 如下表所示: (分数:2.50)A.自然连接B交C除D并23.有如下程序: #includeiostream using namespace std; class B public: virtual void show( )cout“B“; ; class D:public B public:
12、 void show( )cout“D“; ; void funl(B*ptr)ptr-show( ); void fun2(B class MyClass public: MyClass()+count; MyClass()-count; static int getCount()return count; private: static int count; ; int MyClass:count=0; int main() MyClass obj; Coutobj.getCount(); MyClass*ptr=new MyClass; coutMyClass:getCount(); d
13、elete ptr; coutMyClass:getCount(); return 0; 程序的输出结果是_。(分数:1.00)A.121B.232C.221D.12226.下面是类 Shape 的定义: class Shape public: virtual void Draw()=0; ; 下列关于 Shape 类的描述中,正确的是_。(分数:2.50)A.类 Shape 是虚基类B.类 Shape 是抽象类C.类 Shape 中的 Draw 函数声明有误D.语句“Shape s;”能够建立 Shape 的一个对象 s27.有如下语句序列: char str10; cinstr; 当从键盘
14、输入“I love this game”时,str 中的字符串是_。(分数:1.00)A.“I love this game“B.“I love thi“C.“I love“D.“I“28.有如下程序: #includeiostream using namespace std; class Music public: void setTitle(char*str)strcpy(title,str); protected: char type10; private: char title20; ; class Jazz:public Music public: void set(char*str
15、) strcpy(type,“Jazz“); / strcpy(title,str); / ; 下列叙述中正确的是_。(分数:2.50)A.程序编译正确B.程序编译时语句出错C.程序编译时语句出错D.程序编译时语句和都出错29.下列描述正确的是_。(分数:1.00)A.表示 mn 为 true 或 mn 为 true 的表达式为 mnmnB.switch 语句结构中必须有 default 语句C.if 语句结构中必须有 else 语句D.如果至少有一个操作数为 true,则包含|运算符的表达式为 true30.下列叙述中,错误的是_。(分数:2.50)A.false 是一个逻辑型常量B.“b”
16、是一个字符型常量C.365 是一个 int 常量D.3.1415926 是一个 double 常量31.下列语句中,错误的是_。(分数:1.00)A.const int buffer=256;B.const double*point;C.int const buffer=256;D.double*const point;32.下面叙述中错误的是(分数:2.00)A.软件测试的目的是发现错误并改正错误B.对被调试的程序进行“错误定位”是程序调试的必要步骤C.程序调试通常也称为 DebugD.软件测试应严格执行测试计划,排除测试的随意性33.有如下程序: #include iostream usi
17、ng namespaee std; class Basel public : Basel(int d) cout d; Basel () ; class Base2 public : Base2 ( int d) cout d ; Base2() ; class Derived : public Base1 ,Base2 public : Derived(int a, int b, int c, int d) :Base1(b), Base2(a), b1(d), b2(e) private : int b1 ; int b2 ; ; int main() Derived d(1,2,3,4)
18、 ; return 0 ; 执行这个程序的输出记过是 _ 。(分数:1.00)A.1234B.2134C.12D.2134.若 PAT 是一个类,则程序运行时,语句“PAT(*ad)3;”调用 PAT 的构造函数的次数是_。(分数:2.50)A.0B.1C.2D.335.有如下程序: #includeiostream using namespace std; int main() void function(double val); double val; function(val); coutval; return 0; void function(double val) val=3; 编译
19、运行这个程序将出现的情况是_。(分数:1.00)A.编译出错,无法运行B.输出:3C.输出:3.0D.输出一个不确定的数36.下面有关重载函数的说法中,正确的是 _ 。(分数:1.00)A.重载函数必须具有不同的返回值类型B.重载函数形参个数必须不同C.重载函数必须有不同的形参列表D.重载函数名可以不同37.下列虚基类的声明中正确的是 _。(分数:2.00)A.class virtual B: public AB.class B: public A virtualC.class B: public virtual AD.virtual class B: public A38.有如下程序: #i
20、ncludeiostream.h void main() char ch25=“6937“,“8254“),*p2; int i,j,s=0; for(i=0;i2;i+)pi=chi; for(i=0;i2;i+) for(j=0;pij“/0“;j+=2 s=10*s+pij-“0“; couts; 该程序的输出结果是_。(分数:1.00)A.69825B.63825C.6385D.693825二级 C+-222 答案解析(总分:66.00,做题时间:90 分钟)一、选择题(总题数:38,分数:66.00)1.假定 MyClass 为一个类,那么下列的函数说明中, _ 为该类的析构函数。(
21、分数:2.50)A.voidMyClass();B.MyClass(int n);C.MyClass();D.MyClass(); 解析:解析 C+语言中析构函数为符号”加类名,且析构函数没有返回值和参数,故前不加 void关键字。所以正确的形式应该是MyClass()。2.有以下程序: #includeiostream using namespace std; Class sample private: int n; public: sample() sample(int m) n=m; sample add(sample s1,samplc s2) this-n=s1.n+s2.n; re
22、turn(*this); void disp() cout“n”nendl; ; int main() sample s1(10),s2(5),s3; s3.add(s1,s2); s3.disp(); return 0; 程序运行后,输出的结果是 _ 。(分数:2.00)A.n10B.n5C.n20D.n=15 解析:解析 本题考查 this 指针的使用类成员函数 add 中通过 this 指针实现私有数据成员 n 的赋值。3.在重载一个运算符时,如果其参数表中有一个参数,则说明该运算符是_。(分数:2.00)A.一元成员运算符B.二元成员运算符C.一元友元运算符D.B 或 C 解析:解析
23、二元的成员操作符的第一个参数是类对象本身,因此选项 B 和 C 都有可能。4.下列有关运算符重载的叙述中,正确的是_。(分数:1.00)A.运算符重载是多态性的一种表现 B.C+中可以通过运算符重载创造新的运算符C.C+中所有运算符都可以作为非成员函数重载D.重载运算符时可以改变其结合性解析:解析 重载运算符的规则如下:C+不允许用户自己定义新的运算符,只能对已有的 C+运算符进行重载;C+不能重载的运算符只有 5 个;重载不能改变运算符运算对象的个数;重载不能改变运算符的优先级和结合性;重载运算符的函数不能有默认的参数;重载的运算符必须和用户定义的自定义类型的对象一起使用,至少应有一个是类对
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 C222 答案 解析 DOC