【计算机类职业资格】二级C++笔试-250及答案解析.doc
《【计算机类职业资格】二级C++笔试-250及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++笔试-250及答案解析.doc(34页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+笔试-250 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:30,分数:70.00)1.为了使程序的输出的正确结果为:Now is 20047.10 10:10:10那么应在下列程序划线处填入的正确语句是( )。那么应在下列程序划线处填入的正确语句是( )。 #include iostreamusing namespace std;class TIME;class DATEpublic:DATE(int y=2004,int m=1,int d=1)year=y;month=m;day=d;friend void DateTime(DATE private
2、:int year, month, day;class TIMEpublic: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“:“t.minute:t.second.end1;int main ( )DATE d(2004,7,10);TIME t(10, 10, 10);DateTime(d,t);re
3、turn 0;(分数:2.00)A.void DateTime(DATE class Bprivate:int a,b;public:B()B(int i,int j);void printb();class AB 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 j)a=i;b=j;void B: :printb()couta“, “bend1;int main ()A m(7,8);m.printa();return 0;该程
4、序运行后的输出结果是( )。(分数:2.00)A.5,6B.7,8C.8,9D.9,104.若有以下函数调用语句:f(m+n,x+y,f(m+n,z,(x,y);在此函数调用语句中实参的个数是( )。(分数:2.00)A.6B.5C.4D.35.“or(int x=0,y=0;!xint main ()char s=“/n123/“;coutstrlen (s) “, “sizeof (s) end1;return 0;(分数:2.00)A.赋初值的字符串有错B.6,7C.5,6D.6,68.在进行了任何 C+流的操作后,都可以用 C+流的有关成员函数检测流的状态,其中用于是否进行了非法操作的
5、函数名是( )。(分数:2.00)A.failB.eofC.badD.good9.有以下程序:#include iostreamusing namespace std;class Basepublic:Base()virtual void who()cout“Base Class“end1;Base();class Derivel : public Basepublic:void who()cout“Derivel Class“end1;class Derive2 : public Basepublic:void who ()cout“Derive2 Class“end1;int main (
6、)Base *p;Derivel obj1;Derive2 obj2;p=p=p-who ( );return 0;执行程序后的输出结果是( )。(分数:2.00)A.Base ClassB.Derivel ClassC.Derive2 ClassD.程序编译时出错10.实现运行时的多态性要使用( )。(分数:2.00)A.重载函数B.析构函数C.构造函数D.虚函数11.若有以下程序:#include iostreamusing namespace std;class Aprivate:int x;protected:int y;public:int z;void setx(int i)x=i
7、;int getx ()return x;class B : protected Apublic:void setvalue(int a, int b, int c) setx ((分数:2.00)A.;t = t = p; *p = *q; *q = *t;void main ()float x = 8.0;y = 9.0;swap (coutx“, “yend1;B.void swap (float *p, float *q)float a;a = *p; *p = *q; *q = a;void main()float x = 8.0;y = 9.0;swap (coutx“, “yen
8、d1;C.void swap (float *p, float *q)float x;x = *p; *p = *q; *q = x;void main()float a,b.;*a = 8.0;*b = 9.0;swap (a,b) ;coutx“, “yend1;D.void swap (float a = p; p = q; q = a;void main()float a = 8.0,b = 9.0;swap (a,b);coutx“, “yend1;14.在结构化程序设计使用 goto 语句的原则是( )。(分数:2.00)A.限制B.鼓励C.禁止D.滥用15.下列对模板的声明中,正
9、确的是( )。(分数:2.00)A.temvlateTB.templateclassT1,T2C.temvlateclassT1,classT2D.templateclassT1;classT216.字符串常量“hello“的字符个数是( )。(分数:2.00)A.3B.4C.5D.617.下列关于类和对象描述中,错误的是( )。(分数:2.00)A.对象(Object)是现实世界中的客观事物,对象具有确定的属性B.类是具有相同属性和行为的一组对象的集合C.对象是类的抽象,类是对象的实例D.类是对象的抽象,对象是类的实例18.若有如下程序:#include iostreamusing name
10、space std;int s=0;class samplestatic int n;public:sample (int i)n=i;static void add()s+=n;int sample: :s=0;int main ()sample a(2),b(5);sample: add ();coutsend1;return 0;程序运行后的输出结果是( )。(分数:2.00)A.2B.5C.7D.319.关系表中的每一横行成为一个( )。(分数:2.00)A.元组B.字段C.属性D.码20.下列关于链式存储的叙述中,错误的是( )。(分数:2.00)A.链式存储结构的空间可以是不连续的
11、B.数据节点的存储顺序与数据元素之间的逻辑关系可以不一致C.链式存储方式只可用于线性结构D.链式存储也可用于非线性结构21.在数据库设计的 4 个阶段中,为关系模式选择存取方法(建立存取路径)的阶段是( )。(分数:3.00)A.需求分析B.概念设计C.逻辑设计D.物理设计22.软件详细设计的主要任务是( )。(分数:3.00)A.确定每个模块的算法和使用的数据结构B.确定每个模块外部的接口C.确定每个模块的功能D.编程23.下列说法中,正确的是( )。(分数:3.00)A.在线性表中插入一个元素后,线性表长度不变B.在线性表中删除一个元素后,线性表长度不变C.在线性表中插入一个元素后,线性表
12、长度加 1D.在线性表顺序存储的情况下插入一个元素的效率较高24.下列关于类概念的描述中,错误的是( )。(分数:3.00)A.类是抽象数据类型的实现B.类是具有共同行为的若干对象的统一描述体C.类是创建对象的模板D.类就是 C 语言中的结构类型25.若有以下程序:#include iostreamusing namespace std;class Aprotected:int a;public:A()a=10;class A1 : public Apublic:A1()a=a+1;class A2 : public Apublic:A2 ()a=a+2;class B : public A1
13、,public A2public:B()void print()coutaend1;int main ( )B obj;obj.print();return 0;程序运行后的输出结果是( )。(分数:3.00)A.产生语法错误B.11C.12D.1026.若有以下程序段:#include iostreamusing namespace std;int main ()int a=1,4,5;int *p=for (y=0; y3; y+)z= ( (* (p+y) x) ? *(p+y) :x);coutzend1;return 0;程序运行后的输出结果是( )。(分数:3.00)A.1B.4C
14、.5D.227.软件是一种( )。(分数:3.00)A.程序B.数据C.逻辑产品D.物理产品28.对一个已经排好序的序列进行排序,采用( )比较适宜。(分数:3.00)A.冒泡法B.直接选择法C.直接插入法D.归并法29.在函数声明中,下面哪项是不必要的( )。(分数:3.00)A.函数参数的类型和参数名B.函数名C.函数的类型D.函数体30.有如下程序段,请指出”p 所代表的是( )。int *p,*s,k=20;S = class TIME;class DATEpublic:DATE(int y=2004,int m=1,int d=1)year=y;month=m;day=d;frien
15、d void DateTime(DATE private:int year, month, day;class TIMEpublic: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“:“t.minute:t.second.end1;int main ( )DATE d(2004,7,10);TIME t(
16、10, 10, 10);DateTime(d,t);return 0;(分数:2.00)A.void DateTime(DATE class Bprivate:int a,b;public:B()B(int i,int j);void printb();class AB 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 j)a=i;b=j;void B: :printb()couta“, “bend1;int main ()A m
17、(7,8);m.printa();return 0;该程序运行后的输出结果是( )。(分数:2.00)A.5,6B.7,8 C.8,9D.9,10解析:解析 本题考核类的定义和应用。程序首先定义了两个类 A 和 B。在类 A 中,其私有数据成员 c为类 B 的对象。类 A 的成员函数 printa()中,调用私有成员对象 c 的成员函数 printb()输出类 B 私有数据成员 a 和 b 的值。4.若有以下函数调用语句:f(m+n,x+y,f(m+n,z,(x,y);在此函数调用语句中实参的个数是( )。(分数:2.00)A.6B.5C.4D.3 解析:解析 本题考察对函数参数表的掌握程度。
18、调用函数时,在函数名后面跟参数,参数用逗号隔开。调用时,实参与形参的个数相等,类型一致,且按顺序一一对应传递数据,同时实参是实际调用函数时所给定的有确定值的常量、变量或表达式。根据以上知识点,可以得到此函数调用语句中实参的个数是 3。故本题答案是:D。5.“or(int x=0,y=0;!xint main ()char s=“/n123/“;coutstrlen (s) “, “sizeof (s) end1;return 0;(分数:2.00)A.赋初值的字符串有错B.6,7C.5,6 D.6,6解析:解析 本题考核字符串的长度和字符型数组所占的字节数。本题在定义字符数组时没有定义数组长度
19、,但赋给数组初值,初值的个数即为数组的长度。故数组长度为 6(包括/0)。字符串的长度为有效字符的个数,为 5。所以程序最后输出 5,6。8.在进行了任何 C+流的操作后,都可以用 C+流的有关成员函数检测流的状态,其中用于是否进行了非法操作的函数名是( )。(分数:2.00)A.failB.eofC.bad D.good解析:解析 C+中可以用文件流对象的下列成员函数来判别文件流的当前状态。函数 is open 判定流对象是否与一个打开的文件相联系,若是,返回 true,否则返回 false。函数 good 刚进行的操作成功时返回 true,否则返回 false。函数 fail 与 good
20、()相反,刚进行的操作失败时返回 true,否则返回 false。函数 bad 如果进行了非法操作返回 true,否则返回 false。函数 eof 进行输入操作时,若到达文件尾返回 true,否则返回 false。其中,eof 函数只能用于输入流操作。9.有以下程序:#include iostreamusing namespace std;class Basepublic:Base()virtual void who()cout“Base Class“end1;Base();class Derivel : public Basepublic:void who()cout“Derivel Cl
21、ass“end1;class Derive2 : public Basepublic:void who ()cout“Derive2 Class“end1;int main ()Base *p;Derivel obj1;Derive2 obj2;p=p=p-who ( );return 0;执行程序后的输出结果是( )。(分数:2.00)A.Base ClassB.Derivel ClassC.Derive2 Class D.程序编译时出错解析:解析 本题考核虚函数的应用。本题中,先定义了一个基类 Base,它含有一个虚成员函数 who(),随后定义的类 Derivel 和 Derive2 都
22、是基类 Base 的公有派生类。在主函数中定义了一个指向 Base 类的指针,它也被允许指向其派生类。在执行过程中,不断改变它所指向的对象,p-who 就能调用不同的函数实现。这是因为使用了虚函数,因而进行动态联编。程序最后把指针 p 指向派生类 Derive2 的对象,由于函数 who()在基类 Base 中是虚函数,所以系统调用Derive2 中的 who()函数,最后输出 Derive2Class。10.实现运行时的多态性要使用( )。(分数:2.00)A.重载函数B.析构函数C.构造函数D.虚函数 解析:解析 本题考核虚函数的应用。动态联编一直要到程序运行时才能确定调用哪个函数。虚函数
23、是实现动态联编的必要条件之一。没有虚函数一定不能实现动态联编,但有虚函数存在时,必须同时满足下列条件,才能实现动态联编:类之间满足子类型关系;调用虚函数操作的是指向对象的指针或对象引用,或者是由成员函数调用虚函数。11.若有以下程序:#include iostreamusing namespace std;class Aprivate:int x;protected:int y;public:int z;void setx(int i)x=i;int getx ()return x;class B : protected Apublic:void setvalue(int a, int b,
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 笔试 250 答案 解析 DOC
