11在黑盒测试方法中,设计测试用例的主要根据是( )。
A.程序内部逻辑B.程序外部功能C.程序数据结构D.程序流程图
参考答案:B
参考解析:黑盒测试是对软件已经实现的功能是否满足需求进行测试和验证,黑盒测试完全不考虑程序内部的逻辑结构和内部特性,只根据程序的需求和功能规格说明,检查程序的功能是否符合它的功能说明,所以本题选择B。
12在面向对象方法中,不属于“对象”基本特点的是( )。
A.一致性B.分类性C.多态性D.标识唯一性
参考答案:A
参考解析:对象有如下一些基本特点:标识唯一性、分类性、多态性、封装性、模块独立性好。所以选择A。
13有以下程序:
#include
void fun(int a,int b,int C.
{ a=456,b=567,c=678;}
void main()
{
int X=10,Y=20,Z=30;
fun(X,Y,z);
aout<
}
输出结果是( )。
A.30,20,10B.10,20,30C.456,567,678D.678,567,456
参考答案:B
参考解析:本题考查函数中变量的作用范围,在主函数中给变餐x、Y、Z赋值,然后将其作为实参传递给了函数fun(),虽然在函数fun()中改变了这3个变量的值,但只是同名的局部变量,不影响函数中变量的值,所以在调用函数fun()结束后,主函数3个变量的值未改变。
14对类的构造函数和析构函数描述正确的是( )。
A.构造函数可以重载,析构函数不能重载
B.构造函数不能重载,析构函数可以重载
C.构造函数可以重载,析构函数也可以重载
D.构造函数不能重载,析构函数也不能重裁
参考答案:A
参考解析:一个类中只能定义一个析构函数,否则会造成对同…对象的多次删除;而构造函数可以根据不同的参数个数和类型进行多次重载。
15通过运算符重载,可以改变运算符原有的( )。
A.操作数类型B.操作数个数C.优先级D.结合性
参考答案:A
参考解析:重载运算符的规则如下:①c++不允许用户自己定义新的运算符,只能对已有的C++运算符进行重载;②C++不能重载的运算符只有5个;③重载不能改变运算符运算对象的个数;④重载不能改变运算符的优先级和结合性;⑤重载运算符的函数不能有默认的参数;⑥重载的运算符必须和用户定义的自定义类型的对象一起使用,至少应有一个是类对象,即不允许参数全部是c++的标准类型。故本题答案为A。
16下列关于c++流的描述中,错误的是( )。
A.cout>>’A’表达式可输出字符A
B.eof()函数可以检测是否到达文件尾
C.对磁盘文件进行流操作时,必须包含头文件fstream
D.以ios_base::0ut模式打开的文件不存在时,将自动建立一个新文件
参考答案:A
参考解析:本题考查c++流,想要输出字符“A”,则应该是cout<<“A”,所以本题答案为A。
17耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是( )。
A.提高耦合性降低内聚性有利于提高模块的独立性
B.降低耦合性提高内聚性有利于提高模块的独立性
C.耦合性是指一个模块内部各个元素间彼此结合的紧密程度
D.内聚性是指模块间互相连接的紧密程度
参考答案:B
参考解析:模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。一般较优秀的软件设计,应尽量做到高内聚、低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性,所以A错误,B正确。耦合性是模块间互相连接的紧密程度的度量而内聚性是指一个模块内部各个元素间彼此结合的紧密程度,所以C与D错误。
18若有如下类声明:
Class MyClass{ publiC:
MyClass( ){Cout<<1;} };
执行下列语句
MyClass a,b[2],*p[2]; 程序的输出结果是( )。
A.11B.111C.1111D.11111
参考答案:B
参考解析:本题考查默认构造函数和带参数的构造函数,题目中定义一一个对象a以及对象数组b[2],共执行3次构造函数,对象指针不调用构造函数。所以本题答案为B。
19下列函数模板的定义中,合法的是( )。
A.templateT abs(T X){return x<07-x:X;}
B.template ClassT abs(T x){return x<07-X:x;}
C.template Tabs(T X){return x<07-x:X;}
D.template T abs(T x){return X<0?-X:x;}
参考答案:A
参考解析:本题考查模板函数的基本概念.根据模板函数的定义,所以答案为A。
20有如下程序:
#include
using namespace std;
class Base{
int x:
public:
Base(int n=0):x(n){cout<
int getX()const{return x;}
};
cjass Derived:public Base{
int Y:.
J;;Iublic:
Derived(int m,int n):y(m),Base(n){cout<
Derived(int m):Y(m){cout<
};
int main()
{
Derived dl(3),d2(5,7);
retum 0;
}
执行这个程序的输出结果是( )。
A.375B.357C.0375D.0557
参考答案:C
参考解析:本题考查派生类的构造函数和析构函数,在定义一个派生类的对象时,先调用基类的构造函数,然后再执行派生类的构造函数,对象释放时,先执行派生类的析构函数。再执行基类的析构函数。本题中定义了一个对象d1,先执行基类的构造函数输出0,再执行派生类的构造函数输出3,然后定义了一个对象d2(5,7),其中需要调用基类的构造函数输出7.最后输出5,所以答案为c。