niusouti.com
更多“在面向对象方法中,实现信息隐蔽是依靠(  )。”相关问题
  • 第1题:

    单选题
    下述静态数据成员的特征中,错误的是(  )。
    A

    说明静态数据成员时前面要加修饰符static

    B

    静态数据成员要在类体外进行初始化

    C

    引用静态数据成员时,要在静态数据成员名前加<类名>和作用域运算符

    D

    静态数据成员不是所有对象所共用的


    正确答案: B
    解析:
    类的所有对象都只保存类静态数据成员的引用,它们都指向同一块内存区域,因此类的静态数据成员为所有对象所共用。

  • 第2题:

    单选题
    在一棵二叉树中,叶子结点共有30个,度为1的结点共有40个,则该二叉树中的总结点数共有(  )个。
    A

    89

    B

    93

    C

    99

    D

    100


    正确答案: C
    解析:
    对任何一棵二叉树,度为0的叶子结点总是比度为2的结点多一个。在该二叉树中,度为2的结点有29个,所以叶子结点有30个,结点总数共30+29+40=99。答案选择C选项。

  • 第3题:

    单选题
    下列各选项中,不属于序言性注释的是(  )。
    A

    程序标题

    B

    程序设计者

    C

    主要算法

    D

    数据状态


    正确答案: C
    解析:
    注释一般可分为:①序言性注释,常位于程序开头部分,用于描述程序标题、程序功能说明、主要算法、接口说明、程序位置、开发简历、程序设计者、复审者、复审日期及修改日期等;②功能性注释,一般嵌在源程序体之中,用于描述其后的语句或程序的主要功能。答案选择D选项。

  • 第4题:

    单选题
    下列关于运算符重载的叙述中,错误的是(  )。
    A

    有的运算符可以作为非成员函数重载

    B

    所有的运算符都可以通过重载而被赋予新的含义

    C

    不得为重载的运算符函数的参数设置默认值

    D

    有的运算符只能作为成员函数重载


    正确答案: A
    解析:
    运算符重载针对C++中原有运算符进行,不能通过重载创造新的运算符。C++规定,运算符“.”、“.*”、“->”、“::”、“?:”不能重载。

  • 第5题:

    单选题
    下列叙述中正确的是(  )。
    A

    数据的逻辑结构与存储结构必定是一一对应的

    B

    由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构

    C

    程序设计语言中的数据一般是顺序存储结构,因此,利用数组只能处理线性结构

    D

    以上三种说法都不对


    正确答案: A
    解析:
    A项错误,数据的逻辑结构反映数据元素之间逻辑关系,与存储的物理结构并没有一一对应关系;B项错误,线性结构和非线性结构是关于逻辑结构的两种不同分类,存储结构上没有线性和非线性之分 ;C项,利用数组也能处理非线性结构,比如用数组存储二叉树。答案选择D选项。

  • 第6题:

    单选题
    关系数据库管理系统能实现的专门关系运算包括(  )。
    A

    排序、索引、统计

    B

    选择、投影、连接

    C

    关联、更新、排序

    D

    显示、打印、制表


    正确答案: D
    解析:
    关系运算包括:①传统集合运算,包括并、交、差、广义笛卡尔积;②专门关系运算,包括选择、投影、连接、除等。答案选择B选项。

  • 第7题:

    单选题
    下列关于运算符函数的描述中,错误的是(  )。
    A

    运算符函数的名称总是以operator为前缀

    B

    运算符函数的参数可以是对象

    C

    运算符函数只能定义为类的成员函数

    D

    在表达式中使用重载的运算符相当于调用运算符重载函数


    正确答案: C
    解析:
    运算符的操作数是以运算符函数的参数形式出现的。作为成员函数重载的运算符,第一操作数就是参数表中隐含的this指针所指向的对象,因此并不显式地出现在参数表中。作为非成员函数重载的运算符,所有的操作数都必须以参数的形式出现在参数表中。

  • 第8题:

    单选题
    有如下程序:该程序的输出结果是(  )。
    A

    1357

    B

    2468

    C

    3556

    D

    23678


    正确答案: B
    解析:
    程序中第一个for循环是一重循环,将字符串数组str中的值赋值给指针数组p;第二个for循环是二重循环,内层循环变量每次自增2,指针数组p的列下标为0,2,4,6,即指向的值分别为1,3,5,7。执行语句“s=10*s+p[i][j]='0';”,输出1357。

  • 第9题:

    问答题
    使用VC6打开考生文件夹下的源程序文件modi3.cpp,其中定义了用于表示日期的类Date,但类Date的定义并不完整,按要求完成下列操作,将类的定义补充完整。  1.定义私有成员变量year、month、day,分别表示年、月、日,类型为int。请在注释∥********1********后添加适当的语句。  2.完成构造函数,分别给year、month、day赋值,请在注释∥********2********后添加适当的语句。  3.完成重载符号“+=”的定义,请在注释∥********3********后添加适当的语句。  4.完成print()打印函数,如2008年8月8日到屏幕和文件modi3.txt格式相同,请在注释∥********4********后添加适当的语句。  注意:仅在函数指定位置添加语句,请勿改动主函数main与其他函数中的任何内容。

    正确答案: 1.添加语句:int year,month,day;
    2.添加语句:year=y;month=m;day=d;
    3.添加语句:Date & operator+=(int m)
    4.添加语句:cout<<year<<″年″<<month<<″月″<<day<<″日″<<endl;
    解析:1.题目1要求“定义私有成员变量year、month、day”。在C++程序的private区域中添加变量year、month、day的定义,即在第1个标识下添加“int year,month,day;”。
    2.题目2要求“完成构造函数,分别给year、month、 day赋值”。在程序中“Date(int y,int m,int d)”的构造函数中添加给year、month、day赋值的语句,即在第2个标识下添加“year=y;month=m;day=d;”。
    3.题目3要求“完成重载符号“+=”的定义”。在C++中,运算符重载的定义格式为函数operator+重载运算符+,所以这里补全“Date & operator+=(int m)”。
    4.题目4要求“完成函数print()打印函数”。在print()函数中补全其打印功能,即在第四个标识下添加“cout<<year<<″年″<<month<<″月″<<day<<″日″<<endl;”。
    解析: 暂无解析

  • 第10题:

    单选题
    结构化程序由顺序、选择、循环三种基本结构组成,以下相关叙述错误的是(  )。
    A

    三种基本结构不可以嵌套使用

    B

    顺序结构是按语句在程序中的先后顺序逐条执行,没有分支,没有转移

    C

    选择结构是根据不同的条件执行不同分支中的语句

    D

    循环结构是根据条件决定是否重复、重复执行多少次循环体语句


    正确答案: C
    解析:
    结构化程序主要由3种基本控制结构组成,顺序结构是最基本的算法结构,当执行由这些语句构成的程序时,将按这些语句在程序中的先后顺序逐条执行,没有分支,没有转移,没有步骤之间的相互约束,没有对某一步骤的多次使用,完全按照步骤的原有次序依次执行,B选项叙述正确。选择结构根据不同的条件去执行不同分支中的语句,C选项叙述正确。循环结构就是根据各自的条件,使同一组语句重复执行多次,D选项叙述正确。三种结构可以嵌套使用,A选项叙述错误,答案选择A选项。

  • 第11题:

    单选题
    运动会中一个运动项目可以有多名运动员参加,一个运动员可以参加多个运动项目,则实体项目和运动员之间的联系是(  )。
    A

    多对多

    B

    一对多

    C

    多对一

    D

    一对一


    正确答案: D
    解析:
    实体集之间必须通过联系来建立联接关系,可分为:①一对一联系,即1:1;②一对多联系,即1:m;③多对多联系,即m:n。一个运动员可以参加多个运动项目,同时,一个运动项目也可以有多个运动员参加,因此,实体项目和运动员之间的联系是多对多。答案选择A选项。

  • 第12题:

    单选题
    下面叙述错误的是(  )。
    A

    对基类成员的访问能力在private派生类中和public派生类中是不同的

    B

    基类的private成员在public派生类中不可访问

    C

    基类中的public成员在protected派生类中是protected的

    D

    基类中的public成员在protected派生类中仍然是public的


    正确答案: D
    解析:
    基类的公有成员和保护成员在保护派生类中都变成保护成员,基类私有成员被隐藏,派生类是不可以访问。

  • 第13题:

    单选题
    下列叙述中正确的是(  )。
    A

    栈是一种先进先出的线性表

    B

    队列是一种后进先出的线性表

    C

    栈和队列都是非线性结构

    D

    以上三种说法都不对


    正确答案: B
    解析:
    A项错误,栈是一种“先进后出”的特殊线性表;B项错误,队列则是一种“先进先出”的特殊线性表;C项错误,栈和队列都是线性结构。答案选择D选项。

  • 第14题:

    单选题
    待排序的关键码序列为(15,20,9,30,67,65,45,90),要按关键码值递增的顺序排序,采取简单选择排序法,第一趟排序后关键码15被放到第(  )个位置。。
    A

    2

    B

    3

    C

    4

    D

    5


    正确答案: B
    解析:
    简单选择排序的算法可以描述为:将整个待排序序列分为有序和无序两部分,初始时有序部分为空;每一趟排序时扫描无序序列,找到最小的元素,将它与无序序列的首元素交换位置,直到无序序列为空。所以第一趟排序后,将选出的最小元素9与15交换,15被放在第3个位置。答案选择B选项。

  • 第15题:

    单选题
    下列有关运算符重载的叙述中,正确的是(  )。
    A

    运算符重载是多态性的一种表现

    B

    C++中可以通过运算符重载创造新的运算符

    C

    C++中所有运算符都可以作为非成员函数重载

    D

    重载运算符时可以改变其结合性


    正确答案: B
    解析:
    A项正确,C++中运算符重载是多态性的一种表现;B项错误,运算符重载是针对C++原有运算符进行的,不能通过重载创造出新的运算符;C项错误,“=”、“[]”、“->”及所有的类型转换运算符只能作为成员函数重载;D项错误,运算符重载不可改变其结合性、操作数个数和优先级。

  • 第16题:

    单选题
    在数据库系统中,考虑数据库实现的数据模型是(  )。
    A

    概念数据模型

    B

    逻辑数据模型

    C

    物理数据模型

    D

    关系数据模型


    正确答案: B
    解析:
    数据模型按照不同的应用层次分为:①面向客观世界、面向用户的概念数据模型,它与具体的数据库管理系统和具体的计算机平台无关;②面向数据库系统的逻辑数据模型,着重于在数据库系统一级的实现;③面向计算机物理实现的物理数据模型,它给出了数据模型在计算机物理结构上的表示。答案选择B选项。

  • 第17题:

    单选题
    在软件开发中,需求分析阶段产生的主要文档是(  )。
    A

    数据字典

    B

    详细设计说明书

    C

    数据流图说明书

    D

    软件需求规格说明书


    正确答案: D
    解析:
    A项,数据字典是需求分析阶段的工具;B项,软件详细设计说明书是设计阶段生成的;C项,数据流图是结构化分析方法中使用的工具,是需求分析阶段产生的结果;D项,需求分析阶段只能生成需求分析规格说明书。答案选择D选项。

  • 第18题:

    单选题
    下列关于模板的叙述中,错误的是(  )。
    A

    调用模板函数时,在一定条件下可以省略模板实参

    B

    可以用int、double这样的类型修饰符来声明模板参数

    C

    模板声明中的关键字class都可以用关键字typename替代

    D

    模板的形参表中可以有多个参数


    正确答案: A
    解析:
    在声明函数模板时,关键字typename和class可以互换,两者是等价的;但在类模板声明中,替换可能会引起麻烦。

  • 第19题:

    单选题
    有如下程序:输入字符+时,程序的运行结果是(  )。
    A

    ***

    B

    ###

    C

    ***###

    D

    无输出


    正确答案: B
    解析:
    双分支选择语句的执行流程是首先计算if后表达式的值,如果表达式的值为非零,则执行if后面的分支,否则执行与其匹配的else后面的分支。a='+'是赋值表达式,if条件不成立,执行else输出语句“###”后回车。

  • 第20题:

    单选题
    设循环队列为Q(1:m),其初始状态为front=rear=m。经过一系列入队与退队运算后,front=20,rear=15,要在该循环队列中寻找最小值的元素,最坏情况下需要比较的次数为(  )。
    A

    5

    B

    6

    C

    m-5

    D

    m-6


    正确答案: D
    解析:
    循环队列是队列的一种顺序存储结构,用队尾指针rear指向队列中的队尾元素,用队首指针指向队首元素的前一个位置,因此,从队首指针front指向的后一个位置直到队尾指针rear指向的位置之间所有的元素均为队列中的元素,队列初始状态为front=rear=m,当front=20,rear=15时,队列中有m-20+15=m-5个元素,最坏情况下需要比较次数为m-6次。答案选择D选项。

  • 第21题:

    单选题
    下列叙述中正确的是(  )。
    A

    循环队列属于队列的链式存储结构

    B

    双向链表是二叉树的链式存储结构

    C

    非线性结构只能采用链式存储结构

    D

    有的非线性结构也可以采用顺序存储结构


    正确答案: A
    解析:
    循环队列是队列的一种顺序存储结构,A项错误。双向链表为顺序存储结构,二叉树通常采用链式存储结构,B项错误。完全二叉树是属于非线性结构,但其最佳存储方式是顺序存储方式,C项错误。答案选择D选项。

  • 第22题:

    单选题
    算法的时间复杂度是指(  )。
    A

    算法的执行时间

    B

    算法所处理的数据量

    C

    算法程序中的语句或指令条数

    D

    算法在执行过程中所需要的基本运算次数


    正确答案: B
    解析:
    算法的复杂度主要包括时间复杂度和空间复杂度。算法的时间复杂度,是指执行算法所需要的计算工作量,即基本运算次数;算法的空间复杂度,一般是指执行这个算法所需要的内存空间。答案选择D选项。

  • 第23题:

    单选题
    下列情况中,不会调用拷贝构造函数的是(  )
    A

    用一个对象去初始化同一类的另一个新对象时

    B

    将类的一个对象赋值给该类的另一个对象时

    C

    函数的形参是类的对象,调用函数进行形参和实参结合时

    D

    函数的返回值是类的对象,函数执行返回调用时


    正确答案: B
    解析:
    此题考查的是复制构造函数的概念。用一个已知的对象初始化一个正在创建的同类对象时,就会发生复制构造函数。因此,选项A)、C)、D)均会调用复制构造函数,而只有选项B)没有创建的动作,不调用复制构造函数。

  • 第24题:

    单选题
    软件生命周期可分为定义阶段、开发阶段和维护阶段。详细设计属于(  )。
    A

    定义阶段

    B

    开发阶段

    C

    维护阶段

    D

    上述三个阶段


    正确答案: C
    解析:
    软件生命周期可分为:①定义阶段,包括可行性研究、需求分析;②开发阶段,包括概要设计、详细设计、实现、测试;③维护阶段,包括使用、维护、退役。答案选择B选项。