




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第七套1、数据库管理系统是 。A、操作系统的一部分B在操作系统支持下的系统软件C一种编译系统D种操作系统 数据库管理系统是数据库的机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维 护、控制及保护和数据服务等。故本题答案为 B。2、对于循环队列,下列叙述中正确的是 。A、队头指针是固定不变的B队头指针一定大于队尾指针C队头指针一定小于队尾指针D队头指针可以大于队尾指针,也可以小于队尾指针 所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队 列循环使用。在循环队列中, 用队尾指针 rear 指向队列中的队尾元素, 用排头指针 front 指向排
2、头元素的前一个位置。 循环队列主要有两种基本运算:入队运算与退队运算。每进行一次入队运算,队尾指针就进一。每进行一次退队运算,排头指针就进一。当rear或front的值等于队列的长度+1时,就将rear或front的值置为1 一般情况下, rear 大于 front ,因为入队的元素肯定比出队的元素多。 特殊的情况是 rear 到达数组的上限之 后又从数组的低端开始,此时, rear 是小于 front 的。故本题答案为 D。3、算法的空间复杂度是指 。A、算法在执行过程中所需要的计算机存储空间B算法所处理的数据量C算法程序中的语句或指令条数D算法在执行过程中所需要的临时工作单元数 一个算法的
3、空间复杂度,一般是指执行这个算法所需要的内存空间。 故本题答案为 A。4、下列数据结构中,能够按照 先进后出 原则存取数据的是 。A、循环队列B栈C队列D二叉树 在栈中,允许插入与删除的一端称为栈顶,而不允许插入与删除的另一端称为栈底。栈顶元素总是最 后被插入的元素,从而也是最先能被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被 删除的元素。即栈是按照 先进后出 或后进先出 的原则组织数据的。故本题答案为 B。5、 在 E-R 图中,用来表示实体联系的图形是 。A、椭圆形B矩形C菱形D三角形在E-R图中用矩形表示实体集,用椭圆形表示属性,用菱形表示联系。故本题答案为Co6、有三个
4、关系R, S和T如下:RTABCa12b21G3tABC(j32ABa312b21匚31d32其中关系T由关系R和S通过某种操作得到,该操作为 oA、选择B投影C交D并并:设关系R和关系S具有相同的目n (即两个关系都有n个属性),且相应的属性取自同一个域,则关 系R与关系S的并由属于R或属于S的元组组成。本题中,关系 T是关系R和关系S进行并运算得到的。故本题答案为Do7、软件设计中划分模块的一个准则是 oA、低内聚低耦合B高内聚低耦合C低内聚高耦合D高内聚高耦合耦合性与内聚性是模块独立性的两个定性标准。在程序结构中,各模块的内聚性越强,则耦合性越弱一般较优秀的软件设计,应尽量做到高内聚,低
5、耦合,即减弱模块之间的耦合性和提高模块内的内聚性, 有利于提高模块的独立性。故本题答案为Bo8 下列数据结构中,属于非线性结构的是 oA、循环队列B带链队列C二叉树D带链栈如果一个非空的数据结构满足下列两个条件:(1)有且只有一个根结点;(2)每一个结点最多有一个前件,也最多有一个后件。则称该数据结构为线性结构。本题中循环队列、带链队列和带链栈都是线性 结构,二叉树是非线性结构。故本题答案为Co9、 下列选项中不属于结构化程序设计原则的是 oA、可封装 B自顶向下 C模块化 D逐步求精结构化程序设计方法的主要原则可以概括为自顶向下,逐步求精,模块化,限制使用goto语句。故本题答案为Ao10、
6、软件详细设计产生的图如下:A N-S 图B PAD图C程序流程图D E-R 图程序流程图是一种传统的、应用广泛的软件过程设计表示工具,通常也称为程序框图,箭头表示控制 流,矩形表示加工步骤,菱形表示逻辑条件。故本题答案为Co11、有如下程序:#include#includeusing namespace std;int main()int s=123,234;coutvrightvvsetfill(*)vvsetw(6);for(int i=0;iv2;i+) coutvvsivvendl;return 0;运行时的输岀结果是oA 123234*123234C*123*234D、*123234
7、 *本题主要考查了输岀格式控制。right设置在设定的宽度内右对齐输岀(默认对齐方式),用填充字符填充左边。setfill(*) 设置填充字符为* o setw(6)指定输出宽度为6,在一个数据输出完后,宽度自动恢复为默认值0 (表示按数据实际宽度输入输出)。因此第一行输出结果为*123,第2行输出结果为234o故本题答案为Bo12、有如下程序:#include using namespace std;class C1public:C1() cout1;class C2:public C1public:C2()cout2;int main()C2 cb2;C1 *cb1;return 0; 运
8、行时的输出结果是 。A、121B、21C、211D、12本题主要考查了派生类析构函数的执行顺序。析构函数用来完成对象被删除前的一些清理工作,在对象的生存期即将结束的时候由系统自动调用。 删除派生类对象时,析构函数的执行顺序如下:(1)执行派生类的析构函数;( 2)执行派生类成员对象所在类的析构函数;(3)执行基类析构函数。在 main()函数中,第一条语句定义了派生类C2的对象cb2 ,第二条语句声明对象指针cb1,声明指针,只是得到了用于存储地址的指针变量,不会创建对象,故本程序 只创建了一个对象cb2。当main()函数结束时,派生类对象cb2被删除前,系统先执行派生类C2的析构函数, 输
9、出2,然后调用基类C1的析构函数,输出1。故本程序运行时的输出结果是 21。故本题答案为 B。13、 在下列枚举符号中,用来表示 相对于当前位置 文件定位方式的是 。A、ios_base:curB、ios_base:begC、ios_base:outD、ios_base:end本题主要考查了文件流的定位。C+ 流的定位方式(也就是指针移动方式)有三种:ios_base:beg :相对于文件首。ios_base:cur :相对于当前位置(负数表示当前位置之前)。ios_base:end :相对于文件尾。故本题答案为 A。14、 Sample是一个类,执行下面语句后,调用Sample类的构造函数的
10、次数是 。Sample a2, *p=new Sample;A、0B、1C、2D、3 本题主要考查了构造函数。构造函数在对象被创建的时候由系统自动调用。本题定义了一个含有2个元素的对象数组a和一个指向动态创建对象的指针p,因此共创建了 3个对象。故Sample类的构造函数被调用3次。 故本题答案为 D。15、 已知函数FA调用FB,若要把这两个函数定义在同一个文件中,则 。A FA必须定义在FB之前B FB必须定义在FA之前C若FA定义在FB之后,则FA勺原型必须出现在FB的定义之前D若FB定义在FA之后,则FB的原型必须出现在FA的定义之前 本题主要考查了函数原型。在C+中,函数在使用之前要
11、预先声明原型。因此如果函数FB定义在函数FA之后,则必须在函数FA之前声明函数FB勺原型,才可以在函数 FA中调用函数FBo故本题答案为 D。16、有如下程序段:int i=1;while(1)i+;if(i=10) break;if(i%2=0) cout*;执行这个程序段输出字符 * 的个数是 oA、10B、3C、4D、5本题主要考查了 while循环和if语句。在while循环中,变量i的值从1开始,按步长值1递增,当i的值等于10时退出while循环,当i的值为2 的整数倍且 i 的值不等于 10时,输出字符 *,故执行这个程序段输出字符 *的个数为 4o故本题答案为 Co17、有如下
12、模板声明:template class A;下列声明中,与上述声明不等价的是 oA、template class A;B、template class A;C、template class A;D、template class A;本题主要考查了类模板的声明。在C+中,类模板声明的语法形式为:template class 类名 ;每个模板形参具有下面几种形式:(1 )typename (2)class (3)类型修饰 在这三种形式中,前两种是等价的:在声明模板参数时,关键字typename与class可以互换。因此选项A B、C和该题模板声明等价。故本题答案为 D。18、有如下程序:#incl
13、udeusing namespace std;class Apublic:A(int i):r1(i) void print() cout Er1-;void print() const cout Cr1*r1-;private:int r1;int main()A a1(2); const A a2(4);a1.print();a2.print();return 0;运行时的输出结果是 。A、运行时出错B、E2-C16-C、C4-C16-D、E2-E4-本题主要考查了常对象和常成员函数。使用 const 关键字修饰的对象称为常对象,使用 const 关键字说明的成员函数称为常成员函数, co
14、nst 关键字可以用于对重载函数的区分。本题在A类中说明了两个同名函数 print ,其中一个是常函数。在主函数main中说明了两个对象al和a2,其中a2是常对象。如果将一个对象说明为常对象,则通过该常对象只能 调用它的常成员函数,不能调用其他成员函数,因此通过对象al调用的是没有用const修饰的函数print ,输出E2-,而通过对象a2调用的是用const修饰的常函数print ,输出C16-。故本题程序运行时的输出结果是 E2-C16-。故题答案为 B。19、下列关于虚基类的描述中,错误的是 。A、使用虚基类可以消除由多继承产生的二义性 B构造派生类对象时,虚基类的构造函数只被调用一
15、次C 声明class B:virtual public A说明类B为虚基类D建立派生类对象时,首先调用虚基类的构造函数本题主要考查了虚基类。 当一个派生类从多个基类派生,而这些基类又有一个共同的基类,当对该基类中说明的成员进行访问 时,可能出现二义性。虚基类就是为了解决这种二义性问题提出来的,因此选项A正确。使用虚基类解决二义性问题的关键是在派生类中只产生一个虚基类子对象,因此,在建立派生类的一 个对象时,为保证虚基类子对象只被初始化一次,这个虚基类构造函数必须只被调用一次,因此选项B正确。虚基类的说明格式如下:class :virtual 选项C中声明class B:virtual publ
16、ic A说明类A为虚基类,因此选项 C错误。建立派生类对象时,根据派生类构造函数的执行顺序,应首先调用基类构造函数,因此选项D正确。故本题答案为 C。20、 下列关于运算符重载的描述中,错误的是 。A、: 运算符不能重载B类型转换运算只能作为成员函数重载C将运算符作为非成员函数重载时必须定义为友元D重载运算符应完成”下标访问”操作本题主要考查了运算符重载。C+语言规定,除了 .、.*、-*、:、?:这五个运算符外,其他运算符都可以重载,因此选项A是正确;在C+中,运算符函数重载一般有两种形式:重载为类的成员函数和重载为类的非成员函数。非成员函数通常是友元。 (可以把一个运算符作为一个非成员、非
17、友元函数重载。但是,这样的运算符函数访问类的私 有和保护成员时,必须使用类的公有接口中提供的设置数据和读取数据的函数,调用这些函数时会降低性 能。),因此选项C错误;=、()、- 以及所有的类型转换运算符只能重载为成员函数,因此选项B正确;重载的应完成”下标访问操作,使得向指定下标处的元素赋值或取值成为可能,因此选项D正确。故本题答案为 C。21、计算斐波那契数列第n项的函数定义如下:int fib(int n)if(n=0) return 1;else if(n=1) return 2;else return fib(n-1)+fib(n-2);若执行函数调用表达式 fib(2) ,函数 f
18、ib 被调用的次数是 。A、1B、2C、3D、4 本题主要考查了递归函数。如果一个函数在其函数体内直接或间接地调用了自己,该函数就称为递归函数。若执行函数调用表达 式fib(2),则执行表达式fib(2-1)+fib(2-2),即执行表达式fib+fib(O),故函数fib共被调用了 3次:fib(2) 、fib(1)和 fib(0)。故本题答案为 C。22、 下列关于模板形参的描述中,错误的是 。A、模板形参表必须在关键字template之后B模板形参表必须用括弧 ()括起来C可以用class修饰模板形参D可以用type name修饰模板形参本题主要考查了模板。在C+中,模板分为函数模板和类
19、模板。声明一个函数模板的格式是:template 声明一个类模板的格式是:template 所有模版的定义都以关键字template开始,模板形参表必须在关键字 template之后,因此选项A正确; 必须用一对尖括号 括起来,因此选项B错误。每个 具有下面几种形式:(1)typename( 2 ) class( 3 )类型修饰 在这三种形式中,前两种是等价的:在声明模板参数时,关键字typename与class可以互换,因此选项C D正确。故本题答案 B。23、已知数组 arr 的定义如下: int arr5=1,2,3,4,5;下列语句中输出结果不是 2的是 。A、cout*arr+1en
20、dl;B、cout*(arr+1)endl;C、coutarr1endl;D、cout*arr A 表达式可输出字符 AB、eof() 函数可以检测是否到达文件尾C、 对磁盘文件进行流操作时,必须包含头文件fstreamD以ios_base:out模式打开的文件不存在时,将自动建立一个新文件本题主要考查了 C+流ocout 是C+流预定义的标准输出流对象。插入运算符 是提取运算符,用于从一个输入流对象获取字节。故选项A的描述错误。故本题答案是 Ao25、 下列关于运算符函数的描述中,错误的是 oA、运算符函数的名称总是以operator为前缀B运算符函数的参数可以是对象C运算符函数只能定义为类
21、的成员函数D在表达式中使用重载的运算符相当于调用运算符重载函数本题主要考查了运算符重载。运算符函数的函数名是由运算符前加关键字operator构成的,因此选项A正确;运算符的重载形式有两种,重载为类的成员函数和重载为类的友元函数,因此选项C错误;在表达式中使用重载的运算符相当于调用运算符重载函数,因此选项 D正确;运算符函数的参数可以是对象,因此选项B正确。故本题答案为 Co26、有如下程序:#include using namespace std;class AApublic:AA()cout 1;class BB:public AAint k;public:BB():k(0)cout2;B
22、B(int n):k(n)cout 3;int main()BB b(4),c;return 0; 运行时的输出结果是 。A、1312B、132C、32D、1412本题主要考查了类的继承与派生。建立派生类对象时,构造函数的执行顺序如下:( 1)执行基类的构造函数,调用顺序按照各个基类被继承时声明的顺序(自左向右);(2)执行成员对象的构造函数,调用顺序按照各个成员对象在类中声明的顺序(自上而下);( 3)执行派生类的构造函数。在 main() 函数中,第一条语句定义了两个派生类 BB 的对象:b和c,并初始化对象b。创建对象b时构造函数的执行顺序:执行基类AA勺构造函数,输出1,然后执行派生类
23、BB的带参数的构造函数,输出3;创建对象c时构造函数的执行顺序为:执行基类AA勺构造函数,输出1,然后执行派生类BB的不带参数的构造函数,输出 2。故程序运行时的输出结果是1312。故本题答案为 A。27、有如下程序: #include using namespace std;class Namechar name20;public:Name()strcpy(name,); cout?;Name(char *fname)strcpy(name,fname); cout?;int main()Name names3=Name( 张三 ),Name( 李四 );return 0;运行此程序输出符号
24、 ?的个数是 。A、0B、1C、2D、3本题主要考查了构造函数。构造函数在对象被创建的时候由系统自动调用。本题的构造函数有两种重载形式:有参数的和无参数 的,无参数的构造函数也称为默认形式的构造函数。 main() 函数中, 第一条语句定义了一个含有 3个元素的 Nam类对象数组names,即创建了三个Nam类对象,建立前两个对象时,给出初始值,因此调用有参数的构 造函数,输出 2个?,建立第三个对象时调用无参数的构造函数,输出1个?,因此运行此程序输出符号 ?的个数是 3。故本题答案为 D。28、 下列字符串中可以用作 C+标识符的是。A、2009varB、gotoC、test-2009D、
25、_123 本题主要考查了标识符。 标识符的组成要符合一定的规则: 标识符是一个以字母或下划线开头的,由字母、数字、下划线组成的字符串; 标识符不能与任意一个关键字同名; 标识符中的字母区分大小写; 标识符不宜过长。选项A的第一个字符是数字, 选项B是关键字,选项C中的字符-不合法。只有选项D可以用作C+标识符。 故本题答案为 D。29、 下列枚举类型的定义中,包含枚举值3的是。A、enum testRED,YELLOW,BLUE,BLACK;B、enum testRED,YELLOW=4,BLUE,BLACK;C、enum testRED=-1,YELLOW,BLUE,BLACK;D、enum
26、 testRED,YELLOW=6,BLUE,BLACK;本题主要考查了枚举常量。 枚举常量是枚举类型中定义的值, 即枚举值。 枚举类型实际上是 int 类型的一个子集, 其每一个枚举值 代表一个整数;n个枚举值全部未赋常量值时,它们自左至右分别与整数0,1n-1对应;若第i个枚举值赋常量值为m则其未赋常量值的后续枚举值分别与整数m+1, m+2对应,直到下一个赋了值的枚举值或结束。因此只有选项A包含枚举值3。故本题答案为 A。30、有如下类定义:class XX int xdata;public:XX(int n=0):xdata(n) ;class YY:public XXint ydat
27、a;public:YY(int m=0,int n=0):XX(m),ydata(n) ;YY类的对象包含的数据成员的个数是 。A、1B、2C、3D、4本题主要考查了类的继承与派生。派生类继承了基类的全部数据成员和 除了构造、析构函数 之外的全部成员函数。在一个派生类中,其成员由两部分构成:一部分是从基类继承得到的,另一部分是自己定义的新成员。因此派生类YY的数据成员有两个:一个是从基类 XX继承得到的xdata,另一个是自己定义的新数据成员ydata。故本题答案为 B。31、有如下程序: #include using namespace std; class Publication / 出版
28、物类 char name30;public:Publication(char *name= 未知名称 )strcpy(this-name,name);const char * getName() constreturn name;virtual const char * getType()constreturn 未知类型 ;class Book:public Publication /书类public:Book(char *name):Publication(name)virtual const char * getType()constreturn 书 ;void showPublicati
29、on(Publication &p)coutp.getType() : p.getName()endl;int main()Book book( 精彩人生 );showPublication(book);return 0; 运行时的输出结果是 。A、未知类型:未知名称B未知类型:精彩人生C书:未知名称D书:精彩人生本题主要考查了虚函数与多态性。在C+中,一个基类指针(或引用)可以用于指向它的派生类对象,而且通过这样的指针(或引用)调 用虚函数时,被调用的是该指针(或引用)实际所指向的对象类的那个重定义版本。在实函数的情况下, 通过基类指针(或引用)所调用的只能是基类的那个函数版本,无法调用到派
30、生类中的重定义函数。在main() 函数中,第一条语句定义了派生类 Book的对象book,建立派生类对象时,构造函数的执行顺序:先执行基 类的构造函数,初始化基类数据成员数组name为字符串”精彩人生”,然后执行派生类的构造函数。第二条语句以派生类对象book为实参调用函数showPublication(),函数showPublication()的形参为基类引用p,即基类引用p指向派生类对象book。基类Publication 的成员函数getType()被定义成虚函数,这个虚函数在 派生类Book中被重定义。因此p.getType()调用的是派生类的那个重定义版本,函数返回值为”书。成员函
31、数getName()为实函数,p.getName()调用的是基类的那个版本,函数返回值为基类的数据成员,即精彩人生。故程序运行时的输出结果是书:精彩人生。故本题答案为 D。32、 将运算符重载为类成员函数时,其参数表中没有参数,说明该运算符是。A、不合法的运算符B 一元运算符C无操作数的运算符D二元运算符本题主要考查了运算符重载。运算符的重载形式有两种,重载为类的成员函数和重载为类的友元函数。运算符重载为成员函数时, 因为此成员函数所属的对象可成为运算符的一个运算分量, 所以形参个数一般为运算符的元数减 1。因此将 运算符重载为类的成员函数时,其参数表中没有参数,说明该运算符是一元运算符。故本
32、题答案为 B。33、有如下两个类定义:class AA;class BBAA v1,*v2;BB v3;int *v4;其中有一个成员变量的定义是错误的,这个变量是 。A、v1B、v2C、v3D、v4本题主要考查了类和对象。C+规定,在提供一个完整的类声明之前,不能声明该类的对象。本题在完整声明类BB之前声明了类BB的对象v3,故成员变量v3的定义是错误的。故本题答案为 C。34、有如下程序:#include using namespace std; class Toy public:Toy(char* _n)strcpy(name,_n); count+;Toy()count-;char*
33、GetName() return name;static int getCount() return count;private:char name10;static int count;int Toy:count=0;int main()Toy t1(Snoopy),t2(Mickey),t3(Barbie);coutt1.getCount()endl;return 0; 运行时的输出结果是 。A、1B、2C、3D运行时出错本题主要考查了静态数据成员。一个类的静态数据成员被这个类的所有对象所共享, 但它不属于类的任何一个对象。它的作用域是类范围。本题中,Toy类定义了一个静态数据成员coun
34、t,并被初始化为0。main函数的第一条语句定义了 3个 Toy类对象t1、t2和t3,因为每创建一个Toy类对象,系统自动调用一次Toy类的构造函数,count的值就增1, 故第一条语句执行结束后,静态数据成员 count 的值为 3,第二条语句调用静态成员函数 getCount() ,在屏 幕上输出 count 的值, 最后执行 return 语句返回,整个程序执行结束。 因此本题程序运行时的输出结果是 3。故题答案为 C。35、有如下类定义:class Achar *a;public:A():a(0) A(char *aa) /把aa所指字符串拷贝到a所指向的存储空间a=;strcpy(
35、a,aa);A() delete a; 横线处应填写的表达式是 。A、new charstrlen(aa)+1B、charstrlen(aa)+1C、charstrlen(aa)D、new charsizeof(aa)-1本题主要考查了动态存储分配。动态存储分配功能在C+中是通过new和delete运算符来实现的。运算符new用于申请动态存储空间,它 的操作数为某种数据类型且可以带有初值表达式或元素个数。new返回一个指向其操作数类型变量的指针。使用new对某种类型变量进行动态分配的语法格式为:=new啖型;其中,类型表示要分配的变量类型(如char、int、double); 指针表示指向 类
36、型类型变量的指 针(如 char* 、 int* 、 double* 等)。类A的带参数构造函数的功能是把 aa所指字符串拷贝到指针a所指向的存储空间,根据待填空的下一条 语句可以判断横线处表达式的功能应为申请分配用于存放拷贝aa所指字符串的存储空间,函数 strlen的功能是获得字符串有效字符的个数,字符串应以字符 0 结束,而字符串结束符 0 也占用一个字符空间, 故横线处的表达式为 new charstrlen(aa)+1 。故本题答案为 A。36、 软件开发过程主要分为需求分析、设计、编码与测试四个阶段,其中 阶段产生 软件需求规格说 明书。标准答案为:需求分析软件需求规格说明书是需求
37、分析阶段产生的最后成果,是软件开发中的重要文档之一。37、 程序流程图中的菱形框表示的是 。标准答案为: 逻辑条件 或 逻辑判断 程序流程图是一种传统的、应用广泛的软件过程设计表示工具,通常也称为程序框图,箭头表示控制 流,矩形表示加工步骤,菱形表示逻辑条件。38、 人员基本信息一般包括:身份证号,姓名,性别,年龄等。其中可以作为主关键字的是。标准答案为:身份证号主关键字能惟一标识每条记录。主关键字可以是一个字段,也可以是一组字段。本题中能惟一标识一 条记录的是身份证号。39、某二叉树有 5 个度为 2 的结点以及 3 个度为 1 的结点,则该二叉树中共有 个结点。标准答案为:14或14或十四
38、二叉树的性质 3:在任意一棵二叉树中,度为0 的结点(即叶子结点)总是比度为 2 的结点多一个。本题中度为 0 的结点数为 5+1=6,该二叉树中的总结点数为 5+3+6=14。40、 在数据库技术中,实体集之间的联系可以是一对一或一对多或多对多的,那么学生和可选课程 的联系为 。标准答案为:多对多 或 m:n 或 n:m 或 m: n 或 n : m41 、 有如下类定义:class Samplepublic:Sample();Sample();private:static int data;将静态数据成员 data 初始化为 0的语句是 。标准答案为: int Sample:data=0;
39、本题主要考查了静态数据成员。类Sample的数据成员data为静态数据成员,静态数据成员为类的所有对象所共享,但它不属于类的任 何一个对象。静态数据成员初始化的一般格式如下: :=因此将静态数据成员 data 初始化为 0 的语句是 int Sample:data=0; 。42、如下程序定义了 ”单词类Word,类中重载了 运算符,用于比较”单词”的大小,返回相应的逻辑值。程 序的输出结果为: After Sorting: Happy Welcome,请将程序补充完整。#include #include using namespace std;class Wordpublic:Word(str
40、ing s):str(s)string getstr()return str; const return (strw.str);friend ostream& operator(ostream& output,const Word &w)outputw.str; return output;private:string str;int main()Word w1(Happy),w2(Welcome);coutAfter sorting: ;if(w1w2) coutw1 w2;else coutw2 w1;return 0;标准答案为: bool operator(Word w) 或 bool
41、 operator(Word& w)本题主要考查了运算符重载。C+把重载的运算符视为特殊的函数,称为运算符函数,函数名就是在运算符前加上保留字operator ,因此运算符 的函数名为operator 。由函数体语句return (strvw.str);可知:运算符函数的返回值类型为bool,str为成员函数所属对象的数据成员,对象w为运算符函数的参数,故运算符 data=data; 或 Sample:data=data;本题主要考查了变量的作用域和可见性。类 Sample 的私有数据成员 data 具有类作用域, 其构造函数形参 data 具有块作用域, 该类作用域包含 块作用域,因为在两个
42、或多个具有包含关系的作用域中声明了同名标识符,则外层标识符在内层不可见, 所以在构造函数中直接使用 data 引用的是形参变量 data ,而不是 Sample 类的数据成员 data 。此时, 有两 个方法可以引用到 Sample 类的数据成员:一是通过 this 指针,在类的成员函数中, this 指针是成员函数 所属对象的指针,它指向类对象的地址,故本题可以填 this-data=data; 。二是通过作用域运算符 : 明 确指出访问的是 Sample 类的成员,故还可以填 Sample:data=data; 。45、请将下列模板类 Data 补充完整。templateclass Dat
43、apublic:void put(T v) val=v; get() / 返回数据成员 val 的值,返回类型不加转换return val;private:T val;标准答案为: T本题主要考查了类模板。根据题意,横线处应填函数 get 的返回值类型。根据函数体语句 return val; 以及该语句的注释,函 数 get 的返回值类型应为数据成员 val 的类型 T 。因此横线处应填 T。46、下面是一个递归函数,其功能是使数组中的元素反序排列。请将函数补充完整。void reverse(int *a,int size)if(size2) return;int k=a0;a0=asize-1;asize-1=k;reverse(a+1,);标准答案为: size-2本题主要考查了递归函数。递归函数 reverse 有两个参数:第一个参数 a 是指向待反序数组的首元素地址的指针, 第二个参数 size
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 客户停送电管理制度
- 宣传部统一管理制度
- 家具送货单管理制度
- 个人学习远程培训总结-1
- 彩钢厂安全管理制度
- 循环水使用管理制度
- 心理检测科管理制度
- 快递员业务管理制度
- 总分包安全管理制度
- 总裁班培训管理制度
- 2025至2030中国寺庙经济市场深度调研与未来前景发展研究报告
- 金融监管沙盒模拟测试
- 《2025年拍卖师职业资格考试核心考点预测》
- 2025年全国低压电工作业证(复审)考试练习题库(600题)附答案
- 混凝土预制构件项目可行性研究报告参考范文
- 2025漳浦县国企招聘考试题目及答案
- 知识产权相关的国际法的试题及答案
- 低压电工复审培训
- 钢结构墙板拆除施工方案
- 2025年养老护理员专业知识测试卷:养老护理员护理技能操作试题集
- 新能源汽车充电系统故障诊断与维修技术研究
评论
0/150
提交评论