1、二级 C+笔试-107 及答案解析(总分:98.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.下列有关类继承的叙述中,错误的是( )。(分数:2.00)A.继承可以实现软件复用B.虚基类可以解决由多继承产生的二义性问题C.派生类构造函数要负责调用基类的构造函数D.派生类没有继承基类的私有成员2.数据库设计包括两个方面的设计内容,他们是( )。(分数:2.00)A.概念设计和逻辑设计B.模式设计和内模式设计C.内模式设计和物理设计D.结构特性设计和行为特性设计3.在函数中,可以用 auto、extern、register 和 static 这四个关键字中的一个来说明
2、变量的存储类型,如果不说明存储类型,则默认的存储类型是( )。(分数:2.00)A.autoB.externC.registerD.static4.有如下程序:#includeiostreamusing namespace std;class Bpublic:virtual void show()cout“B“;class D:public Bpublic:void show()cout“D“;void fun1(B *ptr)ptr-show();void fun2(Bref)ref.show();void fun3(B B)b.show();int main()B b,*p=new D;D
3、 d;fun1(p);fun2(b);fun3(d);return 0:程序的输出结果是( )。(分数:2.00)A.BBBB.BBDC.DBBD.DBD5.派生类的成员函数不能访问基类的( )。(分数:2.00)A.公有成员和保护成员B.公有成员C.私有成员D.保护成员6.下列叙述中,不属于测试的特征的是( )。(分数:2.00)A.测试的挑剔性B.完全测试的不可能性C.测试的可靠性D.测试的经济性7.若已定义:int a=0,1,2,3,4,5,6,7,8,9,*p=a,i;其中 0i9,则对 a 数组元素不正确的引用是( )。(分数:2.00)A.ap-aB.*(ai)C.piD.a10
4、8.数据处理的最小单位是( )。(分数:2.00)A.数据B.数据元素C.数据项D.数据结构9.在计算机中,算法是指( )。(分数:2.00)A.查询方法B.加工方法C.解题方案的准确而完整的描述D.排序方法10.以三级模式为框架形成的三种数据库中,真实存在于计算机外存的数据库是( )。(分数:2.00)A.概念数据库B.用户数据库C.物理数据库D.逻辑数据库11.下列运算符函数中肯定不属于类 FunNumber 的成员函数的是( )。(分数:2.00)A.mt operator(FunNumber);B.FunNumber operator();C.FunNumber operator(in
5、t);D.int operator(FunNumber,FunNumber);12.有如下函数模板定义:templatetypename T1,typename T2,typename T3T2 plus(T1 t1,T3 t3)return t1+t3;则以下调用正确的是( )。(分数:2.00)A.plus(3,5L);B.plus(3,5L);C.plusint(3,5L);D.plusint,double(3,5L);13.SQL 语言又称为( )。(分数:2.00)A.结构化定义语言B.结构化控制语言C.结构化查询语言D.结构化操纵语言14.有以下结构体说明和变量的定义,且指针 p
6、指向变量 a,指针 q 指向变量 b。则不能把结点 b 连接到结点 a 之后的语句是( )。struet nodechar data;struct node *next;a,b,*p=a,*q=b;(分数:2.00)A.next=q;B.next=b;C.p-next=b;D.(*p).next=q;15.有如下四个语句:coutAsetfill(*)leftsetw(7)Bendl:coutsetfill(*)leftsetw(7)ABendl;coutAserfill(*)rightsetw(7)Bendl;coutsetfill(*)rightsetw(7)ABendl;其中能显示 A*
7、B 的是( )。(分数:2.00)A.和B.和C.和D.和16.下列关于模板的说法正确的是( )。(分数:2.00)A.模板的实参在任何时候都可以省略B.类模板与模板类所指的是同一概念C.类模板的参数必须是虚拟类型的D.类模板中的成员函数全部都是模板函数17.下列各组类型声明符中,含义相同的一组是( )。(分数:2.00)A.unsigned long int 和 longB.signed short 和 shortC.unsigned short 和 shortD.short int 和 int18.有如下程序:#includeiostreamusing namespace std;clas
8、s Basepublic:Base(int x=0)coutx;class Derived:public Basepublic:Derived(int x=0)coutx;private:Base val;int main()Derived d(1);return 0;程序执行后的输出结果是( )。(分数:2.00)A.100B.000C.010D.00119.对下列二叉树(分数:2.00)A.B.C.D.20.已知 Value 是一个类,Value 是 Value 的一个对象。下列以非成员函数形式重载的运算符函数原形中,正确的是( )。(分数:2.00)A.Value operator+(V
9、alue v,int i);B.Value operator+(Value v=value,int i);C.Value operator+(Value vint i=0);D.Value operator+(Value v=value,int i=0);21.定义如下枚举类型 enumMonday,Tuesday,Wednesday,Thrusday,Friday=2);则下列选项正确的是( )。(分数:2.00)A.表达式 wednesday=Friday 的值是 trueB.Day day;day=3;C.Day day;day=Monday+3;D.Day day;day=Tuesda
10、y+10;22.有如下程序:#includeiostreamusing namespace std;class VACpublic;int f()constreturn 3;int f()return 5;Int main()VAC v1:const VAC v2;coutv1.f()v2.f();return 0;运行时的输出结果是( )。(分数:2.00)A.53B.35C.55D.3323.下列有关模板的叙述中,正确的是( )。(分数:2.00)A.函数模板不能含有常规形参B.函数模板的一个实例就是一个函数定义C.类模板的成员函数不能是模板函数D.用类模板定义对象时,绝对不能省略模板实参
11、24.下面程序的输出结果是( )。#includeiostream.h#includestring.hvoid main()char p110,p210;strcpy(p1,“abc“);strcpy(p2,“ABC“);char str50=“xyz“;strcpy(str+2,strcat(p1,p2);coutstr;(分数:2.00)A.xyzabcABCB.zabcABCC.xyabcABCD.yzabcABC25.下列叙述中,不属于软件需求规格说明书的作用的是( )。(分数:2.00)A.便于用户、开发人员进行理解和交流B.反映出用户问题的结构,可以作为软件开发工作的基础和依据C.
12、作为确认测试和验收的依据D.便于开发人员进行需求分析26.下列关于运算符重载的描述中,正确的是( )。(分数:2.00)A.运算符重载为成员函数时,若参数表中无参数,重载的是一元运算符B.一元运算符只能作为成员函数重载C.二元运算符重载为非成员函数时,参数表中有一个参数D.C+中可以重载所有的运算符27.以下叙述中正确的是( )。(分数:2.00)A.构成 C+语言程序的基本单位是类B.可以在一个函数中定义另一个函数C.main()函数必须放在其他函数之前D.所有被调用的函数一定要在调用之前进行定义28.有以下程序:#includeiostreamusing namespaee std;cla
13、ss sampleprivate:int n;public:sample()sample(int m)n=m;sample add(sample s1,sample 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.n=10B.n=5C.n=20D.n=1529.函数定义为 Fun(int i),变量定义 n=100,则下面调用正确的是( )。
14、(分数:2.00)A.Fun(20);B.Fun(20+n);C.Fun(n);D.Fun(n);30.下列不是软件工程基本目标的是( )。(分数:2.00)A.付出较低的维护费用B.达到要求的功能C.不管时间限制,只要最终把用户要求的产品交出来D.产品的性能比较好31.下列关于类和对象的叙述中,错误的是( )。(分数:2.00)A.一个类只能有一个对象B.对象是类的具体实例C.类是对某一类对象的抽象D.类和对象的关系是一种数据类型与变量的关系32.有以下程序:#includeiostreamusing namespace std;class Complexpublic:Complex(dou
15、ble r=0,double i=0):re(r),im(i)double real()constreturn re;double imag()constreturn im;Complex operator+(Complex c)constreturn Complex(re+c.re,im+c.im);private:double re,im;int main()Complex a=Complex(1,1)+Complex(5);couta.real()+a.imag()iendl;return 0;程序执行后的输出结果是( )。(分数:2.00)A.6+6iB.6+1iC.1+6iD.1+1
16、i33.下列选项中不属于结构化程序设计方法的是( )。(分数:2.00)A.自顶向下B.逐步求精C.模块化D.可复用34.有如下程序:#includeiostreamusing namespace std;class MyClasspublic: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;
17、coutMyClass:getCount();delete ptr;coutMyClass:getCount();return 0;程序的输出结果是( )。(分数:2.00)A.121B.232C.221D.12235.下列程序中横线处应填入的语句是( )。class Basepublic:vold fun()cout“Base of fun“endl;class Derived:public Basevoid fun()/显示基类的成员函数 funcout“Derived of fun“endl;(分数:2.00)A.fun();B.Base.fun();C.Base:fun();D.Bas
18、e-fun();二、填空题(总题数:14,分数:28.00)36.数据管理技术发展过程经过人工管理、文件系统和数据库系统三个阶段,其中数据独立性最高的是 1阶段。(分数:2.00)填空项 1:_37.在关系模型中,把数据看成是二维表,每一个二维表称为一个 1。(分数:2.00)填空项 1:_38.软件结构是以 1 为基础而组成的一种控制层次结构。(分数:2.00)填空项 1:_39.数据字典是各类数据描述的集合,它通常包括五个部分,即数据项、数据结构、数据流、 1 和处理过程。(分数:2.00)填空项 1:_40.在一个容量为 25 的循环队列中,若头指针 front=9,尾指针 rear=1
19、6,则该循环队列中共有 1 个元素。(分数:2.00)填空项 1:_41.如果使用数组名称为函数参数,形实结合时,传递的是 1。(分数:2.00)填空项 1:_42.如果要把返回值为 void 的函数 A 声明为类 B 的友元函数,则应在类 B 的定义中加入的语句是 1。(分数:2.00)填空项 1:_43.与成员访问表达式 p-name 等价的表达式是 1。(分数:2.00)填空项 1:_44.已知有函数 f 的定义如下:int f()static int s=0;s+=2;return s;则在某程序中第二次执行函数调用语句 f();时,函数 f 的返回值是_。(分数:2.00)填空项 1
20、:_45.如下程序声明了一个电话号码类 PhoneNumber,重载了流插入运算符,以便于电话号码的输出。请将程序补充完整。#includeiostream#includeiomanip#includestringusing namespace std;class PhoneMunberpublic:void setNumber(string number)this-number=number; /重载流插入操作符friend_(ostream output,const PhoneNumber num)outputnum.number; return output; private:strin
21、g number;int main()PhoneNumber phone;phone.setNumber(“8008100598“);eout“The phone number is:“phoneendl;return 0;(分数:2.00)填空项 1:_46.如下程序声明了一个使用两个通用数据类型的模板类 dataClass,其中构造函数用于初始化两个数据成员,成员函数 show 用于输出两个数据成员的数值。#includeiostreamusing namespace std;_T1 i;T2 j;public:dataClass(T1 a T2 b)i=a;j=b;void show()
22、couti“,“jn;int main()dataClassint,doubleob1(10,0.23);dataClasschar,char*ob2(X,“my data“);ob1.show();ob2.show();return 0;请将程序补充完整,使程序在运行时输出:10,0.23X,my data(分数:2.00)填空项 1:_47.有如下程序:#includeiostreamusing namespace std;class Apublic:A()cout“A“;A()cout“A“;class BA a;public:B()tout“B“;B()cout“B“;int main
23、()B b;return 0;程序的输出结果是_。(分数:2.00)填空项 1:_48.请将下列栈类 Stack 补充完整。class Stackprivate:int pList100; /int 数组,用于存放栈的元素int top; /栈顶元素(数组下标)public:Stack():top(0)void Push(const int item); /新元素 item 压入栈int Pop(void); /将栈顶元素弹出栈;void Stack:Push(const int item)if(top=99) /如果栈满,程序终止exit(1);top+; /栈顶指针增 1_;int Sta
24、ck:Pop()if(top0) 如果栈空,程序终止exit(1);return pListtop-;(分数:2.00)填空项 1:_49.在下面程序的横线处填上适当的内容,使程序执行后的输出结果为 ABCD。#includeiostream.husing namespace std;class Apublic:A()coutA;class B:_public:B()coutB;class C:_public:C()coutC;class D:public B,public Cpublic:D()coutD;void main()D obj;(分数:2.00)填空项 1:_二级 C+笔试-10
25、7 答案解析(总分:98.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.下列有关类继承的叙述中,错误的是( )。(分数:2.00)A.继承可以实现软件复用B.虚基类可以解决由多继承产生的二义性问题C.派生类构造函数要负责调用基类的构造函数D.派生类没有继承基类的私有成员 解析:解析 本题考查类继承。派生类继承了基类的全部数据成员和私有成员,只是基类的私有成员在派生类中是隐藏的,只能在基类内部访问。2.数据库设计包括两个方面的设计内容,他们是( )。(分数:2.00)A.概念设计和逻辑设计 B.模式设计和内模式设计C.内模式设计和物理设计D.结构特性设计和行为特性设
26、计解析:解析 数据库设计包括数据库概念设计和数据库逻辑设计两个方面的内容。3.在函数中,可以用 auto、extern、register 和 static 这四个关键字中的一个来说明变量的存储类型,如果不说明存储类型,则默认的存储类型是( )。(分数:2.00)A.auto B.externC.registerD.static解析:解析 变量在使用之前其数据类型必须加以说明,而存储类型则可默认说明或显式说明。显式说明指直接在变量说明前加上存储类型标志,如 auto,register,static,extern 等。关键字 auto 通常省略。4.有如下程序:#includeiostreamus
27、ing namespace std;class Bpublic:virtual void show()cout“B“;class D:public Bpublic:void show()cout“D“;void fun1(B *ptr)ptr-show();void fun2(Bref)ref.show();void fun3(B B)b.show();int main()B b,*p=new D;D d;fun1(p);fun2(b);fun3(d);return 0:程序的输出结果是( )。(分数:2.00)A.BBBB.BBDC.DBB D.DBD解析:解析 本题考查的知识点是虚函数与多
28、态性。在成员函数声明的前面加上 virtual 修饰,即把该函数声明为虚函数。在 C+中,一个基类指针(或引用)可以用于指向它的派生类对象,而且通过这样的指针(或引用)调用虚函数时,被调用的是该指针(或引用)实际所指向的对象类的那个重定义版本。故本题最终输出结果为 DBB。5.派生类的成员函数不能访问基类的( )。(分数:2.00)A.公有成员和保护成员B.公有成员C.私有成员 D.保护成员解析:解析 基类的私有成员在派生类中都是不可见的,如果一个派生类要访问基类中声明的私有成员,可以将这个派生类声明为友元。6.下列叙述中,不属于测试的特征的是( )。(分数:2.00)A.测试的挑剔性B.完全
29、测试的不可能性C.测试的可靠性 D.测试的经济性解析:解析 软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定。软件测试有三个重要特征:测试的挑剔性、完全测试的不可能性及测试的经济性。没有测试的可靠性这一说法。7.若已定义:int a=0,1,2,3,4,5,6,7,8,9,*p=a,i;其中 0i9,则对 a 数组元素不正确的引用是( )。(分数:2.00)A.ap-aB.*(ai)C.piD.a10 解析:解析 通常,引用一个数组元素可以用下标法,如 ap-a形式,或指针法,如*(ai)的形式。本题中 a9=9,a10显然超出了数组范围,数组的下标是从 0
30、 开始的。8.数据处理的最小单位是( )。(分数:2.00)A.数据B.数据元素C.数据项 D.数据结构解析:解析 数据处理的最小单位是数据项。9.在计算机中,算法是指( )。(分数:2.00)A.查询方法B.加工方法C.解题方案的准确而完整的描述 D.排序方法解析:解析 计算机算法是指解题方案的准确而完整的描述,它的基本特征分别是:可行性、确定性、有穷性和拥有足够的情报。10.以三级模式为框架形成的三种数据库中,真实存在于计算机外存的数据库是( )。(分数:2.00)A.概念数据库B.用户数据库C.物理数据库 D.逻辑数据库解析:解析 以概念模式为框架所组成的数据叫概念数据库;以外模式为框架
31、所组成的数据库叫用户数据库;以内模式为框架所组成的数据库叫物理数据库。这三种数据库只有物理数据库是真实存在于计算机外存中。11.下列运算符函数中肯定不属于类 FunNumber 的成员函数的是( )。(分数:2.00)A.mt operator(FunNumber);B.FunNumber operator();C.FunNumber operator(int);D.int operator(FunNumber,FunNumber); 解析:解析 本题考查的知识点是运算符一的重载。一运算符有一元(取负)和二元(减法)两种形式,且均可重载为成员函数和非成员函数。运算符重载为成员函数时,形参个数一
32、般为运算符元数减 1,因为此成员函数所属的对象可成为运算符的一个运算分量。重载为非成员函数时,形参个数一般和运算符元数相等。所以一运算符重载为成员函数时,参数个数可以是 0 个和 1 个,而重载为非成员函数时,参数个数可以是 1 个或 2 个。12.有如下函数模板定义:templatetypename T1,typename T2,typename T3T2 plus(T1 t1,T3 t3)return t1+t3;则以下调用正确的是( )。(分数:2.00)A.plus(3,5L);B.plus(3,5L);C.plusint(3,5L);D.plusint,double(3,5L); 解
33、析:解析 C+中对函数模板的调用有时候只使用了函数实参,而没有使用模板实参,模板实参都被省略了,但模板实参的省略并不是必然的,而是有条件的:从模板函数实参表获得的信息有矛盾;需要获得特定类型的返回值,而不管参数的类型如何;虚拟类型参数不出现在模板函数的形参中;函数模板含有常规形参。题中定义的函数模板中虚拟类型参数 T2 没有出现在模板函数的形参列表中,所以在调用时不能省略,D 选项的调用省略了 T3,这是允许的。13.SQL 语言又称为( )。(分数:2.00)A.结构化定义语言B.结构化控制语言C.结构化查询语言 D.结构化操纵语言解析:解析 SQL 语言的全称为 Structured Qu
34、ery Language,它是一种介于关系代数与关系演算之间的结构化查询语言,是一种面向数据库的通用数据处理语言规范。它包含数据查询语言、数据操纵语言、数据定义语言和数据控制语言四个部分。14.有以下结构体说明和变量的定义,且指针 p 指向变量 a,指针 q 指向变量 b。则不能把结点 b 连接到结点 a 之后的语句是( )。struet nodechar data;struct node *next;a,b,*p=a,*q=b;(分数:2.00)A.next=q;B.next=b;C.p-next=b;D.(*p).next=q; 解析:解析 要把结点 b 连接到结点 a 之后,必须把 b
35、的地址给 a 的 next 指针,选项 A 中,指针变量 q保存的就是变量 b 的地址,选项 B 中的 p 是指针变量,应该是 p-next=b;在选项 D 中,用*运算符取出结构体变量,并且保存的就是 b 的地址,所以正确。15.有如下四个语句:coutAsetfill(*)leftsetw(7)Bendl:coutsetfill(*)leftsetw(7)ABendl;coutAserfill(*)rightsetw(7)Bendl;coutsetfill(*)rightsetw(7)ABendl;其中能显示 A*B 的是( )。(分数:2.00)A.和B.和C.和 D.和解析:解析 本题
36、考查 C+流的使用。setfill()的作用是设置填充字符;left 的作用是使输出数据在指定宽度内左对齐;right 的作用是使输出数据在指定宽度内右对齐。16.下列关于模板的说法正确的是( )。(分数:2.00)A.模板的实参在任何时候都可以省略B.类模板与模板类所指的是同一概念C.类模板的参数必须是虚拟类型的D.类模板中的成员函数全部都是模板函数 解析:解析 在 C+中规定如果一个类被声明为类模板,那么其中的所有成员函数就都成为了模板函数。17.下列各组类型声明符中,含义相同的一组是( )。(分数:2.00)A.unsigned long int 和 longB.signed short
37、 和 short C.unsigned short 和 shortD.short int 和 int解析:解析 本题考查的知识点是基本类型的派生类型的定义。派生类型声明符是由基本类型关键字char、int、float、double 前面加上类型修饰符组成的。类型修饰符包括 short 短类型,缩短字长;long 长类型,加长字长;signed 有符号类型,取值范围包括正负值;unsigned 无符号类型,取值范围只包括正值。其中 signed 和 unsigned 只能同时出现一个,如果省略则默认为 signed。short 和 long 也只能同时出现一个,如果修饰的类型是 int,则可以省
38、略 int。unsigned long int 的省略形式为 unsigned long;选项 B 中,signed short int 的省略形式就是 short,正确;unsigned short int 的省略形式是unsigned short;short int 的省略形式是 short。故本题选 B。18.有如下程序:#includeiostreamusing namespace std;class Basepublic:Base(int x=0)coutx;class Derived:public Basepublic:Derived(int x=0)coutx;private:B
39、ase val;int main()Derived d(1);return 0;程序执行后的输出结果是( )。(分数:2.00)A.100B.000C.010D.001 解析:解析 本题考查的知识点是类的构造。建立一个类的对象时,构造函数的执行顺序如下:执行基类的构造函数,调用顺序按照各个基类被继承时声明的顺序(自左向右);执行成员对象的构造函数,调用顺序按照各个成员对象在类中声明的顺序(自上而下);执行自身的构造函数。本题 Derived 类继承于 Base 类,所以首先会构造基类 Base,但 Derived 类的构造函数没有初始化列表,所以将调用 Base 类的默认构造函数,输出一个 0
40、。接下来由于它的成员中还定义了一个 Base 类的对象,而构造函数也没有显示初始化这个对象,所以再次调用 Base 类的默认构造函数输出一个 0。最后构造自身,因为主函数中传入了构造参数 1,所以构造自身时输出了一个 1。故最终输出结果为 001。19.对下列二叉树(分数:2.00)A. B.C.D.解析:解析 二叉树的遍历有三种:前序、中序和后序。中序遍历首先遍历左子树或左子结点,然后访问根结点,最后遍历右子树或右子结点。分析本题二叉树,对其进行中序遍历,结果为 ACBDFEG。20.已知 Value 是一个类,Value 是 Value 的一个对象。下列以非成员函数形式重载的运算符函数原形
41、中,正确的是( )。(分数:2.00)A.Value operator+(Value v,int i);B.Value operator+(Value v=value,int i); C.Value operator+(Value vint i=0);D.Value operator+(Value v=value,int i=0);解析:解析 非成员函数的重载运算符函数的格式为 operator+(),是运算符+重载函数。21.定义如下枚举类型 enumMonday,Tuesday,Wednesday,Thrusday,Friday=2);则下列选项正确的是( )。(分数:2.00)A.表达式
42、 wednesday=Friday 的值是 true B.Day day;day=3;C.Day day;day=Monday+3;D.Day day;day=Tuesday+10;解析:解析 枚举类型定义了一些整型符号常量的集合,使用枚举类型时应该注意以下几点:枚举类型的第一个常量默认值是 O;枚举类型常量的值允许彼此相同;虽然枚举类型常量是整数类型,但是不允许使用整数直接赋值给枚举类型变量,也不允许与整数进行运算,只可以与整数进行比较。22.有如下程序:#includeiostreamusing namespace std;class VACpublic;int f()constretur
43、n 3;int f()return 5;Int main()VAC v1:const VAC v2;coutv1.f()v2.f();return 0;运行时的输出结果是( )。(分数:2.00)A.53 B.35C.55D.33解析:解析 本题考查常成员函数的应用。VAC 类中说明了两个函数,一个是常成员函数,一个是普通函数;在主函数中说明了两个对象,通过普通对象 v1 调用的是普通函数,输出 5;通过常对象 V2 调用的是常成员函数,输出 3。23.下列有关模板的叙述中,正确的是( )。(分数:2.00)A.函数模板不能含有常规形参B.函数模板的一个实例就是一个函数定义 C.类模板的成员函
44、数不能是模板函数D.用类模板定义对象时,绝对不能省略模板实参解析:解析 本题考查的是模板的概念。函数模板可以含有常规形参;函数模板的一个实例就是一个函数定义;类模板中的成员函数都是模板函数;在用类模板定义对象时,由于没有像函数实参表这样的额外信息渠道,因此无法按函数模板的方式省略模板形参,但是可以为类模板的参数设置默认值。24.下面程序的输出结果是( )。#includeiostream.h#includestring.hvoid main()char p110,p210;strcpy(p1,“abc“);strcpy(p2,“ABC“);char str50=“xyz“;strcpy(str
45、+2,strcat(p1,p2);coutstr;(分数:2.00)A.xyzabcABCB.zabcABCC.xyabcABC D.yzabcABC解析:解析 该函数的调用方式是 strcpy(字符数组,字符串),其中字符串可以是串常量,也可以是字符数组。函数的功能是将字符串完整地复制到字符数组中,字符数组中原有内容被覆盖。使用该函数时注意:字符数组必须定义得足够大,以便容纳复制过来的字符串,复制时,连同结束标志0 一起复制;连接前两个字符串都有结束标志/0,连接后“字符数组“中存储的字符串的结束标志/0被舍弃,只在目标串的最后保留一个/0;不能用赋值运算符=将一个字符串直接赋值给一个字符数
46、组,只能用strcpy()函数来处理,strcat(字符数组,字符串)的功能是把字符串连接到字符数组中的字符串尾端,并存储于字符数组中,字符数组中原来的结束标志,被字符串的第一个字符覆盖,而字符串在操作中未被修改。25.下列叙述中,不属于软件需求规格说明书的作用的是( )。(分数:2.00)A.便于用户、开发人员进行理解和交流B.反映出用户问题的结构,可以作为软件开发工作的基础和依据C.作为确认测试和验收的依据D.便于开发人员进行需求分析 解析:解析 使用软件需求规格说明书的目的是便于用户、开发人员进行理解和交流,它能够反映出用户问题的结构,可以作为软件开发工作的基础和依据,而且可以作为确认测
47、试和验收的依据。它是需求分析的结果,而不是为了便于开发人员进行需求分析。因此答案是选项 D。26.下列关于运算符重载的描述中,正确的是( )。(分数:2.00)A.运算符重载为成员函数时,若参数表中无参数,重载的是一元运算符 B.一元运算符只能作为成员函数重载C.二元运算符重载为非成员函数时,参数表中有一个参数D.C+中可以重载所有的运算符解析:解析 本题考查的知识点是运算符的重载。运算符重载为成员函数时,形参个数一般为运算符的元数减 1,因为此成员函数所属的对象可成为运算符的一个运算分量。重载为非成员函数时,形参个数一般和运算符元数相等。所以,二元运算符重载为非成员函数时,参数表中应有两个参数,运算符重载为成员函数时,若参数表中无参数,重载的是一元运算符。一元运算符中,一取负运算符、+