1、二级 C+笔试-409 及答案解析(总分:86.00,做题时间:90 分钟)一、选择题(总题数:35,分数:59.00)1.内部静态变量的作用域是( )。A) 定义该静态变量的文件外部 B) 定义该静态变量的文件内部C) 定义该静态变量的函数外部 D) 定义该静态变量的函数内部(分数:2.00)A.B.C.D.2.有如下程序:#includeiostreamusing namespace std;int main()cout.fill(*);cout.width (6);cout.fill(#);cout123end1;return 0;执行后的输出结果是_ 。A) #123 B) 123#
2、C) *123 D) 123*(分数:2.00)A.B.C.D.3.有如下程序:#includeiostreamusing namespace std;class TestClasspublic:TestClass()cout“default constructor/n“;TestClass(const TestClass ;TestClass userCode(TestClass b)TestClass c(b);return c;int main()TestClass a,d;cout“calling userCode()/a“;d=userCode(a);return 0;在执行过程中,
3、构造函数 TestClass()和 TestClass(const TestClass cout.width(5);coutscientific314.15926535endl;retrun 0;程序运行后,输出的结果是( )。A) 3.141593e+002 B) 3.1416e+002 C) *3.14e+002 D) 314.16(分数:2.00)A.B.C.D.12.下列是重载乘法运算符的函数原型声明,其中错误的是( )。A) MyClass operator*(double,double); B) MyClass operator*(double,MyClass);C) MyClas
4、s operator*(MyClass,double); D) MyClassoperator*(MyClass,MyClass);(分数:2.00)A.B.C.D.13.有如下程序:#include iostream using namespaee std;class Baselpublic :Basel(int d) cout d; Basel () ;class Base2public :Base2 ( int d) cout d ; Base2() ;class Derived : public Base1 ,Base2public :Derived(int a, int b, int
5、 c, int d) :Base1(b), Base2(a), b1(d), b2(e) private :int b1 ;int b2 ;int main()Derived d(1,2,3,4) ;return 0 ;执行这个程序的输出记过是( )。A) 1234 B) 2134 C) 12 D) 21(分数:1.00)A.B.C.D.14.设计数据库的存储结构属于( )。A) 需求分析 B) 概念设计C) 逻辑设计 D) 物理设计(分数:2.00)A.B.C.D.15.面向对象程序设计将数据与( )放在一起,作为一个相互依存、不可分割的整体来处理。A) 对数据的操作 B) 信息C) 数据隐
6、藏 D) 数据抽象(分数:1.00)A.B.C.D.16.以下程序的输出结果是#includeiostreamhvoidmain( )charx=040;cout(x1);A)100B)80C)64D)32(分数:1.00)A.B.C.D.17.在 I/O 类库中,头文件 iostream.h 包括了 _。A) 操作所有输入/输出流所需要的基本信息B) 由用户控制的文件处理操作信息C) 与内核格式化相关的信息D) 含参数的流操纵算子信息(分数:2.00)A.B.C.D.18.下列关于栈的描述中错误的是 A) 栈是先进后出的线性表 B) 栈只能顺序存储 C) 栈具有记忆作用 D) 对栈的插入与删
7、除操作中,不需要改变栈底指针(分数:2.00)A.B.C.D.19.在重载一个运算符为成员函数时,其参数表中没有任何参数,这说明该运算符是 A) 后缀一元运算符 B) 前缀一元运算符 C) 无操作数的运算符 D) 二元运算符(分数:2.00)A.B.C.D.20.如果表达式 x*y+z 中,“*”是作为友元函数重载的,“+”是作为友元函数重载的,则该表达式还可为A) operator+(operator*(x,y),z)B) xoperator+(operator*(x,y),Z)C) yoperator*(operator+(x,y),z)D) xoperator+(operator*(x,
8、y)(分数:1.00)A.B.C.D.21.下面程序的输出结果是( )。#includeiostreamusing namespace std;templateclass TT max(T x,T y)return(x=y ? x:y);void main()coutmax(5,8)endl;coutmax(“zhangsan“,“lisi“);A) 8zhangsanB) 8lisiC) 5zhangsanD) 5lisi(分数:2.00)A.B.C.D.22.有如下程序:#includeiostreamusing namespace std;class BASEpublic:BASE()c
9、out“BASE“;);class DERIVED:public BASEpublic:DERIVED()cout“DERIVED“;int main()DERIVED x;return 0;执行后的输出结果是( )。A) BASE B) DERIVEDC) BASEDERIVED D) DERIVEDBASE(分数:2.00)A.B.C.D.23.以下程序段的输出结果是( )。int x=5;docoutx-vendl;while(!x);A) 5 B) 无任何输出 C) 4 D) 陷入死循环(分数:2.00)A.B.C.D.24.下列关于虚函数的说法中,正确的是( )。A) 如果在重定义虚
10、函数时使用了保留字 virtual,则该重定义函数仍然是虚函数B) 虚函数不得声明为静态函数C) 虚函数不得声明为另一个类的私有函数D) 派生类必须重新定义基类的虚函数(分数:1.00)A.B.C.D.25.有以下程序:#include iostreamusing namespace std;int main()int x=15;while(x10public:A( ):a(0)A(char*aa)/把 aa 所指字符串拷贝到 a 所指向的存储空间a=_;strcpy(a,aa);A( )deletea;横线处应填写的表达式是A) new charstrlen(aa)+1 B) charstr
11、len(aa)+1C) charstrlen(aa) D) new charsizeof(aa)-1(分数:2.00)A.B.C.D.29.NULL 是指A) 0 B) 空格C) 未知的值或无任何值 D) 空字符串(分数:1.00)A.B.C.D.30.在说明一个结构体变量时,系统分配给它的存储空间是( )。A) 该结构体中第一个成员所需的存储空间B) 该结构体中最后一个成员所需的存储空间C) 该结构体中占用最大存储空间的成员所需的存储空间D) 该结构体中所有成员所需存储空间的总和(分数:2.00)A.B.C.D.31.有如下程序: #includelostreanl using namesp
12、ace std; elass MyClass public: MyClass( )+count; MyClass( )-count; static int getCount( )return count; private: static int count; ; int MyClass:count=0; int main( ) MyClass obj; coutobjgetCount( ); MyClass*ptr=new MyClass; coutMyClass:getCount( ); delete ptr; coutMyCiass:getCount( ); return 0; 程序的输出
13、结果是 A) 121 B) 232 C) 221 D) 122(分数:2.00)A.B.C.D.32.索引属于A) 模式 B) 内模式 C) 外模式 D) 概念模式(分数:2.00)A.B.C.D.33.下列关于运算符重载不正确的是A) 运算符重载不能改变运算符的操作数个数B) 运算符重载不能改变运算符的优先级C) 运算符重载不能改变运算符的结合性D) 运算符重载能改变对预定义类型数据的操作方式(分数:1.00)A.B.C.D.34.有如下程序:#include iostreamusing namespace std;int main()cout.fill(*);cout.width(6);c
14、out.fill(#);cout123end1;return 0;执行后的输出结果是A) #123 B) 123#C) *123 D) 123*(分数:2.00)A.B.C.D.35.一个类的友元函数或友元类能够通过成员操作符访问该类的( )。A) 私有成员 B) 保护成员C) 公有成员 D) 公用成员、保护成员和私有成员(分数:2.00)A.B.C.D.二、填空题(总题数:15,分数:27.00)36.数据库系统在其内部分为三级模式,即概念模式、内模式和外模式。其中, 1 是用户的数据视图,也就是用户所见到的数据模式。(分数:2.00)填空项 1:_37.在程序设计阶段应该采取 1 和逐步求
15、精的方法,把一个模块的功能逐步分解,细化为一系列具体的步骤,进而用某种程序设计语言写成程序。(分数:1.00)填空项 1:_38.operator 是运算符重载时必须使用的关键字,它和被重载的运算符连在一起,作为运算符函数的专用函数名,务必把该函数说明为 1 的。(分数:1.00)填空项 1:_39.下面程序的输出为 1。#include iostream.hvoid main2int a10,i, k=0;for(i=0,i10;i+)ai=i;for(i=1;i4;i+)k+=ai+i;coutkend1;(分数:2.00)填空项 1:_40.静态成员函数可以直接访问类的_成员,不能直接访
16、问类的_成员。(分数:2.00)填空项 1:_41.在关系数据库中,用来表示实体之间联系的是 1。(分数:2.00)填空项 1:_42.在结构化分析方法中,用于描述系统中所用到的全部数据和文件的文档称为 1。(分数:1.00)填空项 1:_43.对软件设计的最小单位(模块或程序单元)进行的测试通常称为 1 测试。(分数:2.00)填空项 1:_44.为了在两个关系中提取所有相同的元组,则在交与并这两种关系运算中,应使用 1 运算。(分数:2.00)填空项 1:_45.在下面的类定义中,this 指针的用途是_。#includediostream.hclass Sampleint x,y;pub
17、lic:Sample(int i,int j)x=i;y=j;void assign(Sample sa);void Sample:assign(Sample p)if(this!=p)x=p.x;y=p.y;(分数:2.00)填空项 1:_46.在 C+中,一个函数一般由两部分组成,分别是函数头和 1。(分数:2.00)填空项 1:_47.常用的软件结构设计工具是结构图(SC) ,也称程序结构图。其中,用矩形表示 1,用带空心圆的箭头表示传递的是数据。(分数:2.00)填空项 1:_48.在面对对象方法中,类之间共享属性和操作的机制称为 1。(分数:2.00)填空项 1:_49.下列程序编译
18、错误,是由于划线处缺少某个语句,该语句是_。#includeiostream.hclass Aprivate:int numl;public:A( ):numl(0)A(int i):numl(i);class Bprivate:int num2;public:B( ):num2(0)B(int i):num2(i)int my_math(A obj1, B obj2);int B:my_math(A obj1,B obj2)return(obj1.numl+obj2.num2);void main(void)A objl(4);B obj,obj2(5);cout“obj1+obj2:“ob
19、j.my_math(obj1,obj2);(分数:2.00)填空项 1:_50.下列程序的执行结果是_。#includeiostream.hfloat temp;floatreturn temp;void main( )float a=fn2(5.0);floatb=20;couttempendl;(分数:2.00)填空项 1:_二级 C+笔试-409 答案解析(总分:86.00,做题时间:90 分钟)一、选择题(总题数:35,分数:59.00)1.内部静态变量的作用域是( )。A) 定义该静态变量的文件外部 B) 定义该静态变量的文件内部C) 定义该静态变量的函数外部 D) 定义该静态变量的
20、函数内部(分数:2.00)A.B.C.D. 解析:解析 内部静态变量只被初始化一次,它在定义该变量的函数内部有效。2.有如下程序:#includeiostreamusing namespace std;int main()cout.fill(*);cout.width (6);cout.fill(#);cout123end1;return 0;执行后的输出结果是_ 。A) #123 B) 123# C) *123 D) 123*(分数:2.00)A. B.C.D.解析:解析 根据定义,开始设置的 coutfill(*),被后面的 coutfill(#)替代,所以cout 的输出结果是#123。
21、3.有如下程序:#includeiostreamusing namespace std;class TestClasspublic:TestClass()cout“default constructor/n“;TestClass(const TestClass ;TestClass userCode(TestClass b)TestClass c(b);return c;int main()TestClass a,d;cout“calling userCode()/a“;d=userCode(a);return 0;在执行过程中,构造函数 TestClass()和 TestClass(cons
22、t TestClass 语句又调用了一次拷贝构造函数,由于函数 userCode 返回的不是引用,而是一个 TestClass 变量,所以还需要执行一次拷贝构造函数,所以一共要执行两次普通构造函数(非拷贝构造函数)与三次拷贝构造函数。4.对于模板定义关键宁 class 和 typename 说法不正确的是( )。A) 程序中的 class 并不能都替换为 typenameB) class 和 typename 都可互相替换C) 程序中的 typename 都能替换为 classD) 程序中的部分 class 可以替换为 typename(分数:1.00)A.B. C.D.解析:5.有如下程序:
23、#includeiostreamusing namespace std;class Baseprivate:char c;piblic:Base(char n):c(n)Base()coutC;class DeriVed:public Baseprivate:char c;public:Derived(char n):Base(n+1),c(n)Derived()coutc;int main()Derived obj(x);return 0;执行上面的程序将输出A) xy B) yxC) x D) y(分数:1.00)A. B.C.D.解析:解析 在 C+中,由于析构函数不能被继承,因此在执行
24、派生类的析构函数时,基类的析构函数也将被调用。执行顺序是先执行派生类的析构函数,再执行基类的析构函数,其顺序与执行构造函数的顺序正好相反。在此题的程序中,在主函数 main 结束时,派生类 Derived 对象。obj 将被删除,所以就会调用对象的析构函数。先调用派生类的析构函数,输出 x,然后调用基类的析构函数,输出 y。6.有以下程序:#includeiostreamusing namespace std;class Complexpublic:Complex(dOuble r=0,dOuble i=0):re(r),im(i)doublereal()constreturn re;doub
25、leimag()constreturn im;Complex operator+(Complex c)constreturn Complex(re+c.re,im+c.im);private:double re,im;int main()Complex aComplex(1,1)+Complex(5);couta.real()+a.imag()iendl;return 0;程序执行后的输出结果是( )。A) 6+6i B) 6+1i C) 1+6i D) 1+1i(分数:2.00)A.B. C.D.解析:解析 运算符”+”在类 Complex 中作为成员函数重载,实现两个对象的数据成员的相加。
26、所以main 函数中语句”ComplexaComplex(1,1)+Complex(5);”的作用相当于”Complexa(1+5,1);”即对象 a 的数据成员 re 的值为 6,imag 的值为 l,所以输出为 6+1i。7.如果一个模板声明列出了多个参数,则每个参数之间必须使用逗号隔开,每个参数都必须使用( )关键字来修饰。A) const B) static C) void D) class(分数:2.00)A.B.C.D. 解析:解析 如果一个模板声明列出了多个参数,则每个参数之间必须使用逗号隔开,每个参数都必须使用 class 关键字来修饰。8.一棵二叉树中共有 70 个叶子结点与
27、 80 个度为 1 的结点,则该二叉树中的总结点数为( )。A) 221 B) 219C) 231 D) 229(分数:2.00)A.B. C.D.解析:9.下述说法错误的是A) 对象之间不可以相互赋值 B) 对象可以用作函数参数C) 对象可以用作数组的元素 D) 对象可以用作另一对象的成员(分数:2.00)A. B.C.D.解析:解析 如果重载了赋值运算符后,对象之间是可以赋值的,对象和 C+中其他内置的数据类型一样,可以作为函数参数、数组元素,其他对象的成员存在。10.一棵二叉树中共有 70 个叶子结点与 80 个度为 1 的结点,则该二叉树中的总结点数为A) 219 B) 221 C)
28、229 D) 231(分数:2.00)A. B.C.D.解析:解析 本题考查数据结构中二叉树的性质。二叉树满足如下一条性质,即:对任意一棵二叉树,若终端结点(即叶子结点)数为 n0,而其度数为 2 的结点数为 n2,则 n0=n2+1。根据这条性质可知,若二叉树中有 70 个叶子结点,则其度为 2 的结点数为 70-1,即 69 个。二叉树的总结点数是度为 2、度为 1 和叶子结点的总和,因此,题目中的二叉树总结点数为 69+80+70,即 219。因此,本题的正确答案是选项 A。11.有如下程序:#includeiostreamusing namespace std;int main()co
29、ut.fill(*);cout.width(5);coutscientific314.15926535endl;retrun 0;程序运行后,输出的结果是( )。A) 3.141593e+002 B) 3.1416e+002 C) *3.14e+002 D) 314.16(分数:2.00)A. B.C.D.解析:12.下列是重载乘法运算符的函数原型声明,其中错误的是( )。A) MyClass operator*(double,double); B) MyClass operator*(double,MyClass);C) MyClass operator*(MyClass,double);
30、D) MyClassoperator*(MyClass,MyClass);(分数:2.00)A. B.C.D.解析:解析 此题考查的是乘法运算符的重载函数原型声明。因为操作的对象是类对象,所以重载函数的参数至少有一个是类对象。故选项 A)中两个参数都为 double 型是错误的。13.有如下程序:#include iostream using namespaee std;class Baselpublic :Basel(int d) cout d; Basel () ;class Base2public :Base2 ( int d) cout d ; Base2() ;class Deriv
31、ed : public Base1 ,Base2public :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) ;return 0 ;执行这个程序的输出记过是( )。A) 1234 B) 2134 C) 12 D) 21(分数:1.00)A.B.C.D. 解析:解析 本题考查派生类的构造函数和析构函数,在定义一个派生类的对象时,先调用基类的构造函数,然后再执行派生类的构造函数,对象释放时,先执行派
32、生类的析构函数,再执行基类的析构函数。本题中定义一个派生类对象时,分别调用基类的构造函数,所以分别输出 21。14.设计数据库的存储结构属于( )。A) 需求分析 B) 概念设计C) 逻辑设计 D) 物理设计(分数:2.00)A.B.C.D. 解析:解析 物理设计阶段主要解决选择文件存储结构和确定文件存取方法的问题。物理设计阶段包括:选择存储结构、确定存取方法、选择存取路径、确定数据的存放位置。15.面向对象程序设计将数据与( )放在一起,作为一个相互依存、不可分割的整体来处理。A) 对数据的操作 B) 信息C) 数据隐藏 D) 数据抽象(分数:1.00)A. B.C.D.解析:16.以下程序
33、的输出结果是#includeiostreamhvoidmain( )charx=040;cout(x1);A)100B)80C)64D)32(分数:1.00)A.B.C. D.解析:解析:左移 1 位,相当于乘以 2,题中的 x 的值是一个八进制数,转换为十进制数是 32,再乘以2,x 的值为 64。17.在 I/O 类库中,头文件 iostream.h 包括了 _。A) 操作所有输入/输出流所需要的基本信息B) 由用户控制的文件处理操作信息C) 与内核格式化相关的信息D) 含参数的流操纵算子信息(分数:2.00)A. B.C.D.解析:18.下列关于栈的描述中错误的是 A) 栈是先进后出的线
34、性表 B) 栈只能顺序存储 C) 栈具有记忆作用 D) 对栈的插入与删除操作中,不需要改变栈底指针(分数:2.00)A.B. C.D.解析:解析 栈是一种数据结构,是在某一端进行插入和删除操作的特殊线性表。它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶。在栈顶进行插入和删除操作,不需要修改栈底指针,栈的实现可以采用顺序存储也可以采用链表存储。19.在重载一个运算符为成员函数时,其参数表中没有任何参数,这说明该运算符是 A) 后缀一元运算符 B) 前缀一元运算符 C) 无操作数的运算符 D) 二元运算符(分数:2.00)A.B. C.D.解析:解析 在成员函数重载中,一元
35、函数重载在函数声明中可以没有任何形参,操作数就是对象本身;但是作为后缀运算符重载时,则必须在形参中添加参数。20.如果表达式 x*y+z 中,“*”是作为友元函数重载的,“+”是作为友元函数重载的,则该表达式还可为A) operator+(operator*(x,y),z)B) xoperator+(operator*(x,y),Z)C) yoperator*(operator+(x,y),z)D) xoperator+(operator*(x,y)(分数:1.00)A. B.C.D.解析:解析 C+中用成员函数重载 x*y 为:x.operator * (y),用友元函数重载 x*y 为:o
36、perator *(x,y),用成员函数重载 x+y 为:x.operator+(y),用友元函数重载 x+y 为:operator+(x,y)。21.下面程序的输出结果是( )。#includeiostreamusing namespace std;templateclass TT max(T x,T y)return(x=y ? x:y);void main()coutmax(5,8)endl;coutmax(“zhangsan“,“lisi“);A) 8zhangsanB) 8lisiC) 5zhangsanD) 5lisi(分数:2.00)A. B.C.D.解析:解析 当运行 max(
37、“zhangsan“,“lisi“);时实例化为 char *max(char *x,char *y),返回的是zhangsan 的地址,从而打印出 zhangsan 的结果。22.有如下程序:#includeiostreamusing namespace std;class BASEpublic:BASE()cout“BASE“;);class DERIVED:public BASEpublic:DERIVED()cout“DERIVED“;int main()DERIVED x;return 0;执行后的输出结果是( )。A) BASE B) DERIVEDC) BASEDERIVED D
38、) DERIVEDBASE(分数:2.00)A.B.C.D. 解析:解析 本题考查派生类的定义和使用。当对象被删除时,派生类的析构函数就被执行。由于析构函数不能被继承,因此在执行派生类的析构函数时,基类的析构函数也将被调用。执行顺序是先执行派生类的析构函数,再执行基类的析构函数,其顺序与执行构造函数的顺序正好相反。所以当 main 函数结束时,派生类 DERIVED 的对象 x 将被删除,那么派生类 DERIVED 的析构函数先被调用,输出 DERIVED,然后调用基类的析构函数输出 BASE。23.以下程序段的输出结果是( )。int x=5;docoutx-vendl;while(!x);
39、A) 5 B) 无任何输出 C) 4 D) 陷入死循环(分数:2.00)A. B.C.D.解析:24.下列关于虚函数的说法中,正确的是( )。A) 如果在重定义虚函数时使用了保留字 virtual,则该重定义函数仍然是虚函数B) 虚函数不得声明为静态函数C) 虚函数不得声明为另一个类的私有函数D) 派生类必须重新定义基类的虚函数(分数:1.00)A.B. C.D.解析:解析 使用虚函数时必须注意下列事项:只有类的成员函数才能说明为虚函数。这是因为虚函数仅适用于有继承关系的类对象,所以普通函数不能说明为虚函数。静态成员函数不能是虚函数,因为静态成员函数不受限于某个对象。内联函数不能是虚函数,因为
40、内联函数是不能在运行中动态确定其位置。即使虚函数在类的内部定义,编译时仍将其看作是非内联的。构造函数不能是虚函数,因为构造时对象还是一片未定型的空间。只有在构造完成后,对象才能成为一个类的名副其实的实例。析构函数可以是虚函数,而且通常说明为虚函数。说明虚函数的目的在于;使用 delete 运算符删除一个对象时,能确保析构函数被正确地执行。这是因为设置虚析构函数后,可以利用动态联编方式选择析构函数。一般要求基类中说明了虚函数后,派生类说明的虚函数应该与基类中虚函数的参数个数相等,对应参数的类型相同。如果不相同,则将派生类虚函数的参数类型强制转换为基类中虚函数的参数类型。25.有以下程序:#inc
41、lude iostreamusing namespace std;int main()int x=15;while(x10public:A( ):a(0)A(char*aa)/把 aa 所指字符串拷贝到 a 所指向的存储空间a=_;strcpy(a,aa);A( )deletea;横线处应填写的表达式是A) new charstrlen(aa)+1 B) charstrlen(aa)+1C) charstrlen(aa) D) new charsizeof(aa)-1(分数:2.00)A. B.C.D.解析:解析 对动态分配存储空间的考查,在 C+中,回车键需计一字符,即总的长度为 strle
42、n(aa)+1。29.NULL 是指A) 0 B) 空格C) 未知的值或无任何值 D) 空字符串(分数:1.00)A.B.C. D.解析:解析 此题属于记忆性的题目,NULL 是指未知的值或无任何值。30.在说明一个结构体变量时,系统分配给它的存储空间是( )。A) 该结构体中第一个成员所需的存储空间B) 该结构体中最后一个成员所需的存储空间C) 该结构体中占用最大存储空间的成员所需的存储空间D) 该结构体中所有成员所需存储空间的总和(分数:2.00)A.B.C.D. 解析:31.有如下程序: #includelostreanl using namespace std; elass MyCla
43、ss public: MyClass( )+count; MyClass( )-count; static int getCount( )return count; private: static int count; ; int MyClass:count=0; int main( ) MyClass obj; coutobjgetCount( ); MyClass*ptr=new MyClass; coutMyClass:getCount( ); delete ptr; coutMyCiass:getCount( ); return 0; 程序的输出结果是 A) 121 B) 232 C)
44、 221 D) 122(分数:2.00)A. B.C.D.解析:解析 类的对象在创建时调用构造函数,在撤销时调用析构函数,静态成员为类的不同对象所共享。32.索引属于A) 模式 B) 内模式 C) 外模式 D) 概念模式(分数:2.00)A.B. C.D.解析:解析 内模式(Internal Schema) 又称物理模式(Physical Schema) ,它给出了数据库物理存储结构与物理存取方法,如数据存储的文件结构、索引、集簇及 hash 等存取方式与存取路径。33.下列关于运算符重载不正确的是A) 运算符重载不能改变运算符的操作数个数B) 运算符重载不能改变运算符的优先级C) 运算符重载
45、不能改变运算符的结合性D) 运算符重载能改变对预定义类型数据的操作方式(分数:1.00)A.B.C.D. 解析:解析 考查 C+语言中操作符重载的概念。解题要点 运算符重载的规则是重载时不能改变运算符的操作数个数,不能改变运算符的优先级,不能改变运算符的结合性,不能改变对预定义类型数据的操作方式。考点链接 运算符重载的关键字是 operator。34.有如下程序:#include iostreamusing namespace std;int main()cout.fill(*);cout.width(6);cout.fill(#);cout123end1;return 0;执行后的输出结果是
46、A) #123 B) 123#C) *123 D) 123*(分数:2.00)A. B.C.D.解析:解析 本题考核 I/O 的格式化输出。语句“cout.fill(*);”表示填充字符为*,并且一直有效,直到再次设置填充字符为止。语句“cout.width(6);”用来设置输入输出宽度,当实际数据宽度小于指定的宽度时,多余的位置用填充字符填满;当实际数据的宽度大于设置的宽度时,仍按实际的宽度输出。语句“cout.fill(#);”表示将填充字符改为#(即把之前设置的#改为#),由于数据“123”的实际宽度小于 6,由于输出的初始状态为在输出宽度内右对齐,所以前面将会有 3 个填充字符#。35
47、.一个类的友元函数或友元类能够通过成员操作符访问该类的( )。A) 私有成员 B) 保护成员C) 公有成员 D) 公用成员、保护成员和私有成员(分数:2.00)A.B.C.D. 解析:二、填空题(总题数:15,分数:27.00)36.数据库系统在其内部分为三级模式,即概念模式、内模式和外模式。其中, 1 是用户的数据视图,也就是用户所见到的数据模式。(分数:2.00)填空项 1:_ (正确答案:外模式)解析:37.在程序设计阶段应该采取 1 和逐步求精的方法,把一个模块的功能逐步分解,细化为一系列具体的步骤,进而用某种程序设计语言写成程序。(分数:1.00)填空项 1:_ (正确答案:自顶而下)解析:38.operator 是运算符重载时必须使用的关键字,它和被重载的运算符连在一起,作为运算符函数的专用函数名,务必把该函数说明为 1 的。(分数:1.00)填空项 1:_ (正确答案:pub