1、void print()constprint2;int main()const TestClass a(1,2);a.print();return 0;该程序运行后的输出结果是( )。(分数:2.00)A.print1B.print2C.print1 print2D.程序编译时出错解析:解析 本题定义TestClass型常对象a,然后调用对象a中的成员函数print()。因为在C+中,如果一个对象被声明为常对象,则不能调用该对象中的非const型成员函数。所以,这里调用的是对象中的const型成员函数void print ()const,输出为print2。2.源程序的文档化不包括( )。A.
2、符号名的命名要有实际意义B.正确的文档形式C.良好的视觉组织D.正确的程序注释解析 源程序的文档化主要包括三点:符号名应具有一定实际的含义,便于理解程序功能;正确的程序注释;良好的视觉组织,利用空格、空行、缩进等技巧使程序层次清晰。3.有下列二叉树,对此二叉树中序遍历的结果是( )。A.B.C.D.解析 对二叉树的中序遍历是指:首先遍历左子树,然后访问根结点,最后遍历右子树。在遍历左、右子树时,注意依旧按照“左子树根结点右子树”的顺序。4.有如下类声明:class XAint x;XA(int n)x=n;class XB:public XAint y;XB(int a,int b);在构造函
3、数XB的下列定义中,正确的是( )。A.XB:XB(int a,int b):x(a),y(b)B.XB:XA(a),y(b)C.XB:x(a),XB(b)D.XB:XA(a),XB(b)解析 本题考查派生类中构造函数的定义。派生类的构造首先要调用基类的构造函数,对基类成员初始化;然后对派生类中的新增成员初始化。格式为,派生类名(构造函数形参表)基类构造函数(形参表)。5.下列叙述正确的是( )。A.算法的执行效率与数据的存储结构无关B.算法的空间复杂度是指算法程序中指令(或语句)的条数C.算法的有穷性是指算法必须能在执行有限个步骤之后终止D.以上三种描述都不对解析 算法的执行效率与数据的存储
4、结构密切相关。算法的空间复杂度是指算法执行过程中所需的存储空间。6.对于拷贝构造函数和赋值操作的关系,正确的是( )。A.拷贝构造函数和赋值操作是完全一样的操作B.进行赋值操作时,会调用类的构造函数C.当调用拷贝构造函数时,类的对象正在被建立并被初始化D.拷贝构造函数和赋值操作不能在同一个类中被同时定义解析 在赋值操作中,将发生对象的拷贝操作,但并不说明两者是完全一样的。一般情况下,如果给类定义了赋值操作符,则应该同时定义合适的拷贝构造函数,除非系统默认生成的拷贝构造函数满足赋值操作。实际上,系统默认的拷贝构造函数仅仅将数据成员进行简单的对应赋值,而在多数特殊应用中,需要程序员重新定义拷贝构造
5、函数。7.设计数据库的存储结构属于( )。A.需求分析B.概念设计C.逻辑设计D.物理设计解析 物理设计阶段主要解决选择文件存储结构和确定文件存取方法的问题。物理设计阶段包括:选择存储结构、确定存取方法、选择存取路径、确定数据的存放位置。8.下面关于C+流的叙述中,正确的是( )。A.cin是一个输入流对象B.可以用ifstream定义一个输出流对象C.执行语句序列char *y=PQMNcouty;将输出字符串PQMN的地址D.执行语句序列char x80;cin.getline(x,80);时,若输入Happy new year,则x中的字符串是“Happy”解析 本题考查C+流的概念和I
6、/O的格式化。cin是istream类的对象,即输入流对象。ifstream是输入文件流,类不能定义个输出流对象。getline函数的功能是允许从输入流中读取多个字符,并且允许指定输入终止,在读取完成后,从读取的内容中删除该终止字符,所以D选项中的语句序列后x中字符串应该是Happy new year。9.下列叙述中正确的是( )。A.在模块化程序设计中,一个模块应该尽量多的包括与其他模块联系的信息B.在自顶向下、逐步细化的设计过程中,首先应设计解决问题的第一个细节C.在模块化程序设计中,一个模块内部的控制结构也要符合结构化原则D.在程序设计过程中,不能同时采用结构化程序设计方法与模块化程序设
7、计方法解析 在模块化程序设计中,模块之间的联系可以通过程序的控制结构来实现。在自顶向下、逐步细化的设计过程中,首先要考虑全局目标,而不是细节。在程序设计中,模块化和结构化可以同时使用,一个模块的内部结构也要符合结构化设计原则。10.继承机制的作用是( )。A.信息隐藏B.数据封装C.定义新类D.数据抽象解析 数据封装就是数据抽象,即信息隐藏;而继承是实现程序复用的基础。11.有如下类声明:_解析 C+中派生类构造函数的一般语法规则为派生类名:派生类名(参数表):基类1(参数表1),基类名n(参数表n),子对象1(子对象参数表1,子对象m(子对象参数表m)派生类新增成的初始化语句;12.有如下数
8、组声明:int num10;,下标值引用错误的是( )。A.num10B.num5C.num3D.num0解析 数组定义中的数字指的是数组的大小,而下标是从0开始的,所以数组的最后一个元素是num9。13.类MyClass的定义如下:class MyClassMyClass()value=0;SetVariable(int i)value=i;int value;则对下列语句序列正确的描述是( )。A.语句p=my;是把对象my赋值给指针变量pB.语句MyClass *p,my;会调用两次类MyClass的构造函数C.对语句*p.SetVariable(5)的调用是正确的D.语句p-SetVa
9、riable(5)与语句my.SetVariable(5)等价解析 选项A,语句p=my;是把对象my的地址值赋值给指针变量P;选项B,语句:MyClass *p,my;中由于p只是一个指向对象的指针,因此定义指针p不调用构造函数,所以此语句只调用一次构造函数:对成员函数的引用可以通过两种形式:指针-成员函数(形参表),或者对象名.成语函数名(形参表),故选项C错误,选项D正确。14.已知在一个类体中包含如下函数原型:VOLUME OPERATOR-(VOLUME)const;,下列关于这个函数的叙述中,错误的是( )。A.这是运算符一的重载运算符函数B.这个函数所重载的运算符是一个一元运算符
10、C.这是一个成员函数D.这个函数不改变类的任何数据成员的值解析 本题考核运算符的重载。题中语句为运算符一这是一个二元运算符,且是作为常成员函数来重载的,所以它不能更新对象的数据成员,也不能调用该类中没有用const修饰的成员函数。15.在对象方法中,一个对象请求另一个对象为其服务的方式是通过发送( )来实现。A.调用语句B.命令C.中令D.消息解析 在面向对象方法中,对象之间通过消息进行通信。消息中只包含传递者的要求,它告诉接受者需要做哪些处理,但并不指示接受者应该怎么完成这些处理,接受者独立决定采用什么方式完成所需的处理。16.下面程序的运行结果为( )。#includeiostream.h
11、void main()char a=3switch(a)case322break;default:1A.3B.321C.31D.32解析 本题主要考查switch语句的使用,在第一个case处,因为满足条件,所以输出字符3,但这个分支没有break语句终止,所以会继续执行下面的分支语句,即输出字符2,这时出现break语句,结束整个语句,即输出32。17.两个或两个以上模块之间联系的紧密程度称为( )。A.耦合性B.内聚性C.复杂性D.数据传输特性解析 耦合性是模块间互相连接的紧密程度的度量,取决于各个模块之间接口的复杂度、调用方式以及哪些信息通过接口。18.下面程序的运行结果是( )。#includediostream.hclass baseprotected:int a;base()cout0class base1:virtual basebase1()coutclass base2:base2()coutclass derived:public base1,public base2derived()coutderived obj;coutendl;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1