试卷详情
-
计算机二级考试C++模拟题五2014年
-
[单项选择]下列叙述中正确的是( )。
A. 一个逻辑数据结构只能有一种存储结构
B. 逻辑结构属于线性结构,存储结构属于非线性结构
C. 一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率
D. 一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率
-
[单项选择]下面程序的输出结果是( )。
#include
Usingnamespacestd;
ClassBase{
public:
Base(intx=O){count< }
};
ClassDerived:publicBase{
public:Derved(intx=0{count< }
private;
Baseval;
};
intmina(){
Derivedd(1);
retrun0;
}
A. 0
B. 1
C. 01
D. 001
-
[单项选择]下面程序的运行结果为( )。
#include
ClassA
{
public:A( ){cout<<"1";}
~A( ){cout<<"2";}
};
ClassB:public:A
{
public:
B( ){cout<<"3";}
~B( ){cout<<"4";}
};
Voidmain( )
{
Bb;
}
A. 1234
B. 1324
C. 1342
D. 3142
-
[单项选择]计算斐波那契数列第n项的函数定义如下:
intfib(intn){
if.(n==0)return1;
elseif(n==1)return2:
elsereturnfib(n-1)+fib(n-2);
}
若执行函数调用表达式fib(2),函数fib被调用的次数是( )。
A. 1
B. 2
C. 3
D. 4
-
[单项选择]下列函数的运行结果是( )。
#include
intadd(inta,intb);
voidmain()
{
externintX,y;
cout< }
intx(20),y(5);
intadd(inta,intb)
{
ints=a+b:
returns;
}
A. 25
B. 30
C. 20
D. 15
-
[单项选择]下面有关重载函数的描述中正确的是( )。
A. 重载函数必须具有不同的返回值类型
B. 重载函数形参个数必须不同
C. 重载函数必须具有不同的形参列表
D. 重载函数名可以不同
-
[单项选择]有如下类定义:
classFoo
{
public:
Foo(intv):value(v){}//①
~Foo(){}//②
private:
Foo(){}//③
intvalue=0;//④
};
其中存在语法错误的行是( )。
A. ①
B. ②
C. ③
D. ④
-
[单项选择]执行语句:cout<
A. 123*******0K
B. 123#######OK
C. 123********0K********
D. 123#######OK########
-
[单项选择]语句ofstreamf("DATA.DAT",ios_base::app|ios_base::binary);的功能是建立流对象f,试图打开文件DA-TA.DAT并与之连接,而且( )。
A. 若文件存在,将文件指针定位于艾件首;若文件不存在,建立一个新文件
B. 若文件存在,将其截为空文件;若文件不存在,打开失败
C. 若文件存在,将文件指针定位于文件尾;若文件不存在,建立一个新文件
D. 若文件存在,打开失败;若文件不杉在,建立一个新文件
-
[单项选择]使用白盒测试法时,确定测试数据应该根据( )和指定的覆盖标准。
A. 程序的内部逻辑
B. 程序的复杂结构
C. 使用说明书
D. 程序的功能
-
[单项选择]若有如下程序:
#include
usingnamespaeestd;
classTestClass
{
public:
voidwho(){cout<<"TestClass"< };
classTestClassl:publicTestClass
{
public:
voidwho(){cout<<"TestClassl"< intmain()
{
TestClass*P;
TestClasslobj1;
p=&obj1;
p->who();
retum0;
}
则该程序运行后的输出结果是( )。
A. TestClassl
B. TestClass
C. 0
D. 无输出
-
[单项选择]下列程序的运行结果是( )。
#include
classA
{
inta;
public:
A(){a=0;}
A(){intaa}
{a=aa;
cout< }
};
voidmain()
{
Ax,y(2),z(3);
cout< }
A. 00
B. 23
C. 34
D. 25
-
[单项选择]有以下程序:
#include
usingnamespaeestd;
classMyClass
{
public:
MyClass(intn){number=n;}
//拷贝构造函数
MyClass(MyClass&other){number=other.number;}
~MyClass(){}
private:
intnumber;
};
MyClassfun(MyClassp)
{
MyClasstemp(p);
returntemp;
}
intmain()
{
MyCIassobj1(10),obj2(O);
MyClassobj3(obj1);
obj2=fun(obj3);
return0;
程序执行时,MyClass类的拷贝构造函数被调用的次数是( )。
A. 5
B. 4
C. 3
D. 2
-
[单项选择]实现运行时的多态性要使用( )。
A. 重载函数
B. 析构函数
C. 构造函数
D. 虚函数
-
[单项选择]下列说法正确的是( )。
A. 内联函数在运行时将该函数的目标代码插入每个调用该函数的地方
B. 内联函数在编译时将该函数的目标代码插入每个调用该函数的地方
C. 类的内联函数必须在类体内定义
D. 类的内联函数必须在类体外通过加关键字inline定义
-
[单项选择]下列选项中不属于软件生命周期开发阶段任务的是( )。
A. 软件测试
B. 概要设计
C. 软件维护
D. 详细设计
-
[单项选择]将运算符重载为类成员函数时,其参数表中没有参数,说明该运算符是( )。
A. 不合法的运算符
B. 一元运算符
C. 无操作数的运算符
D. 二元运算符
-
[单项选择]下列字符串中,正确的C++标识符是( )。
A. foo-1
B. 2b
C. new
D. _256
-
[简答题]使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,并使程序输出的结果为:
sizeof(S1)=5
sizeof(s2)=10
sizeof(s3)=1
注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//******error******的下面。
(1)不能删除assert()语句。
(2)只能修改后面的数字。
提示:assert函数如果为假,则会产生一个中断异常。
试题程序:
#include
#include
voidmain()
{
char*s1="abc":
//********error********
assert(sizeof(s1)==3):
cout<<"sizeof(s1)=5"< chars2[10]="ab":
//********error********
assert(sizeof(s2)==2);
cout<<"sizeof(s2)=10"< chars3=23:
//********error********
assert(sizeof(s3)==4);
cout<<"sizeof(s3)=1"< return;
}
-
[单项选择]数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是( )。
A. DB包括DBS和DBMS
B. DBMS包括DB和DBS
C. DBS包括DB和DBMS
D. 没有任何关系
-
[单项选择]设有定义:
classC
{public:
intvalue;
…
};
intX,*P;
则以下引用形式中,正确的是( )。
A. x=value;
B. x=C://:value;
C. p=&value
D. p=C://:value
-
[单项选择]下列关于虚基类的描述中,错误的是( )。
A. 使用虚基类可以消除由多继承产生的二义性
B. 构造派生类对象时,虚基类的构造函数只被调用一次
C. 声明“classB:virtualpublicA”说明类B为虚基类
D. 建立派生类对象时,首先调用虚基类的构造函数
-
[单项选择]下列关于虚函数的描述中,正确的是( )。
A. 虚函数是一个static类型的成员函数
B. 虚函数是一个非成员函数
C. 基类中采用virtual说明一个虚函数后,派生类中定义相同原型的函数时可不必加virtual说明
D. 派生类中的虚函数与基类中相同原型的虚函数具有不同的参数个数或类型
-
[单项选择]最简单的交换排序方法是( )。
A. 快速排序
B. 选择排序
C. 堆排序
D. 冒泡排序
-
[单项选择]有如下程序:
#include
usingnamespacestd;
intmain()
{
int*P;
*P=9:
cout<<"ThevalueatP:"<<*P;
return0;
}
编译运行程序将出现的情况是( )。
A. 编译时出现语法错误,不能生成可执行文件
B. 运行时一定输出ThevalueatP:9
C. 运行时一定输出ThevalueatP:*9
D. 运行时有可能出错
-
[单项选择]下列运算符中不能在C++中重载的是( )。
A. :
B. +
C. -
D. <=
-
[单项选择]下列是重载为非成员函数的运算符函数原型,其中错误的是( )。
A. Fractionoperator+(Fraction,Fraction);
B. Fractionoperator-(Fraction);
C. Fraction&operator=(Fraction&,Fraction);
D. Fraction&operator+=(Fraction&,Fraction):
-
[单项选择]有如下模板声明:
templateclassA;
下列声明中,与上述声明不等价的是( )。
A. templateclassA;
B. templateclassAt;
C. templateclassA;
D. templateclassA;
-
[单项选择]有以下程序:
#include
usingnamespacestd;
classsample
{
private:
intX;
public:
sample(inta)
{
X=a:
}
frienddoublesquare(samples);
};
doublesquare(samples)
{
returnS.x*S.X:
}
intmain()
{
samples1(20),s2(30);
cout< return0;
}
执行结果是( )。
A. 20
B. 30
C. 900
D. 400
-
[单项选择]考虑函数原型voidtest(inta,intb=7,charz=’*’),下面的函数调用中,属于不合法调用的是( )。
A. test(5);
B. test(5,8);
C. test(6,’#’);
D. test(0,0,’*’);
-
[单项选择]下列关于构造函数和析构函数的描述,错误的是( )。
A. 析构函数中调用虚函数采用静态联编
B. 对虚析构函数的调用可以采用动态联编
C. 当基类的析构函数是虚函数时,其派生类的析构函数也一定是虚函数
D. 构造函数可以声明为虚函数
-
[单项选择]已知chara;intb;floatC;doubled;则表达式a*b+c-d的结果为( )。
A. double
B. int
C. float
D. char
-
[简答题]使用VC++6.0打开考生文件夹下的源程序文件3.cpp。其中定义的类不完整,按要求完成下列操作,将类的定义补充完整。
(1)定义类的公有数据成员函数N0、Name[32],其中N0是int型的数据,Name[32]为字符型。请在注释1后添加适当的语句。
(2)完成函数Set的定义,分别设置N0和Name的值,请在注释2后添加适当的语句。
(3)完成函数print,请在注释3后添加适当的语句,输出结果如下:
N0=12345
Name=HelloWorld!
(4)添加默认构造函数,设置N0为0,Name为空,请在注释4后添加适当的语句。
注意:增加或者修改代码的位置已经用符号表示出来,请不要修改其他的程序代码。
试题程序:
#include
classTC
{
public:
//********1********
//********2********
{
No=no;
for(inti=0;strName[i]!=0;i++)
{
Name[i]=strName[i];
Name[i+1]=0;
}
}
voidprint()
{
//********3********
}
TC()
{
//********4********)
};
intmain()
{
TCstu:
stu.Set(12345,"HelloWorld!");stu.print();
return0;
}
-
[单项选择]已知一函数的形参说明为intarr[5][6],则与此等效的形参说明为( )。
A. intarr[][]
B. int[5][]
C. int*a[6]
D. int(*a)[6]
-
[单项选择]要定义一个引用变量P,使之引用类MyClass的一个对象,正确的定义语句是( )。
A. MyClassp=MyClass;
B. MyClassp=newMyClass;
C. MyClass&p=newMyClass
D. MyClassa,&p=a;
-
[单项选择]下面是关于派生类声明的开始部分,其中正确韵是( )。
A. classvirtualB:publicA
B. virtualclassB:publicA
C. classB:publicAvirtual
D. classB:virtualpublicA
-
[简答题]使用VC++6.0打开考生文件夹下的源程序文件2.cpp。阅读下列函数说明和代码,完成空出部分程序。函数fun(intn)的功能是在n行n列的矩阵中,每行都有最大的数,本程序求这n个最大数中的最小一个,并作为参数返回。
注意:不能修改程序的其他部分,只能修改fun函数。
试题程序:
#include
#defineN100
inta[N][N];
intfun(intn)
{
}
voidmain()
{
intn;
cout<<"pleaseinputN:"< ein>>n;
for(inti=0;i for(intj=0;j {
cout<<"pleaseinputaNumber:"< cin>>a[i][j];
}
eout<<"Theminofmaxnumbersis"< }
-
[单项选择]算法的空间复杂度是指( )。
A. 算法程序的长度
B. 算法程序中的指令条数
C. 算法程序所占的存储空间
D. 算法执行过程中所需要的存储空间
-
[单项选择]下列工具中为需求分析常用工具的是( )。
A. PAD
B. PFD
C. N-S
D. DFD