2013年9月全国计算机等级《二级C++》命题预测试卷一
-
使用VC++6.0打开考生文件夹下的源程序文件3.cpp。请完成以下部分,实现在屏幕上输出为
C3
C2
这个程序需要修改的部分,请按照以下部分实现。
(1)类C0不能被实例化,请定义一个纯虚函数print,在注释1后添加适当的语句。
(2)类C1私有虚继承类C0,请在注释2后添加适当的语句。
(3)类C2公有继承于C0,请在注释3后添加适当的语句。
(4)类c3公有继承于C2与C1,请在注释4后添加适当的语句。
注意:增加代码或者修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。
试题程序:
#include(iostream.h)
classCO
{
//********1********
};
//********2********
classC1:
{
public:
voidprint
{
cout<"”C1"<
}
};
//********3********
classC2:
{
public:
voidprint
{
cout<<"C2"<
}
};
//********4***x****
classC3:
{
public:
voidprint
{
cout<<"C3"<
}
};
voidmain
{
C30bj3;
C20bj2;
obj3.print;
obj2.print;
return;
}
-
使用VC++6.0打开考生文件夹下的源程序文件2.cpp。请完成函数fun(intn),使其实现以下功能:当i等于3时,则打印如下内容。
A
AA
AAA
注意:不能修改程序的其他部分,只能修改fun函数。
试题程序:
#include
voidfun(intn)
{
}
voidmain
{
intn;
cout<<"请输入打印的行数:"<
cin>>n;
if(n<1)
{
cout<<"输入的行数必须大于0"<
return;
}
fun(n);
return;
}
-
负责数据库中查询操作的数据库语言是( )。
- A.数据定义语言
- B.数据管理语言
- C.数据操纵语言
- D.数据控制语言
-
使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错。请改正程序中的错误,使程序输出的结果为
100
37
32
注意:错误的语句在//******error******的下面,修改该语句即可。
试题程序:
#include
//******error******
voidmain
{
//******error******
intm=0142:
//******error******
intn=0X27:
intq=32;
cout<
cout<
cout<
return;
}
-
下列程序的运行结果是( )。
#include
intx=5:
intfun(inta)
{
intC;
C=X*a:
returnC;
}
voidmain( )
{
intx=3,a=4;
x=x+fun(a);
cout<<"x="<
}
- A.x=15
- B.x=17
- C.x=23
- D.x=25
-
面向对象的没计方法与传统的面向过程的方法有本质不同,它的基本原理是( )。
- A.模拟现实世界中不同事物之间的联系
- B.强调模拟现实世界中的算法而不强调概念
- C.使用现实世界的概念抽象地思考问题从而自然地解决问题
- D.鼓励开发者在软件开发的绝大部分中都用实际领域的概念去思考
-
若AA为一个类,a为该类的非静态数据成员,在该类的一个成员函数定义中访问a时,其书写格式为( )。
- A.a
- B.AA.a
- C.a{}
- D.AA::a{}
-
静态成员函数没有( )。
- A.返回值
- B.this指针
- C.指针参数
- D.返回类型
-
下面程序的运行结果为( )。
#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
-
有如下程序:
#include
usingnamespacestd;
classPublication{//出版物类
charname[30];
public:
Publication(char*name=”未知名称”){
~strcpy(this一>name,name);
}
constchar*getName( )const{returnname;}
virtualconstchar*getType( )const{return”未知类型”;}
};
classBook:publicPublication{//书类
public:
Book(char*name):Publication(name){}
virtualconstchar*getType( )const{return"书";}
};
voidshowPublication(Publication&p){
cout<
endl;
}
intmain( ){
Bookbook(”精彩人生”);
showPublication(book);
return0;
}
运行时的输出结果是( )。
- A.未知类型:未知名称
- B.未知类型:精彩人生
- C.书:未知名称
- D.书:精彩人生
-
若有以下程序:
#include
usillgnamespacestd;
classA
{private:
inta;
public:
- A(inti) {a=i;} voiddisp() {cout
- intb; public:
- B(intj) {b=j;} voiddisp() {COUt
- intC; public:
- C(intk):A(k-2),B(k+2) (c=k;) voiddisp() {A::disp();
- B::disp();
- cout<
- intmain() {Cobj(10); obj.disp(); return0;} 程序执行后的输出结果是( )。
- A.10,10,10
- B.10,12,14
- A(inti) {a=i;} voiddisp() {cout
-
是( )。
- A.2*a*b/c/d
- B.a*b/c/d*2
- C.a/c/d*b*2
- D.2*a*b/c*d
-
对于模板定义关键字class和typename说法不正确的是( )。
- A.程序中的class并不能都替换为typename
- B.class和typename都可互相替换
- C.程序中的typename都能替换为class
- D.程序中的部分class可以替换为typename
-
有如下程序:
#include
usingnamespacestd;
classXA{
inta;
public:
staticintb;
XA(intaa):a(aa){b++;}
~XA( ){}
intget( ){returna;}
};
intXA::b=0
intmain( ){
XAd1(1),d2(3);
cout<
return0;
}
运行时的输出结果是( )。
- A.5
- B.6
- C.7
- D.8
-
在软件开发中,需求分析阶段产生的主要文档是( )。
- A.软件集成测试计划
- B.软件详细设计说明书
- C.用户手册
- D.软件需求规格说明书
-
数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是( )。
- A.DB包含DBS和DBMS
- B.DBMS包含DB和DBS
- C.DBS包含DB和DBMS
- D.没有任何关系
-
下列程序的运行结果是( )。
#include
intx=5;
intfun(inta)
{
intc:
c=X*a:
returnC;
}
voidmain()
{
intx=3,a=4;
x=x+fun(a);
cout<<"x="<
}
- A.x=15
- B.x=17
- C.x=23
- D.x=25
-
软件设计中划分模块的一个准则是( )。
- A.低内聚低耦合
- B.高内聚低耦合
- C.低内聚高耦合
- D.高内聚高耦合
-
下面程序的输出结果是( )。
#include
Usingnamespacestd;
ClassBase{
public:
Base(intx=O){cout<
}
};
ClassDerived:publicBase{
public:Derved(intx=0{cout<
}
private;
Baseval;
};
int main(){
Derivedd(1);
retrun0;
}
- A.0
- B.1
- C.01
- D.001
-
有以下程序:
classDate
{
public:
Date(inty,intm,intd);
{
year=Y:
month=m;
day=d;
}
Date(inty=2000)
{
year=y;
month=10;
day=1;
}
Date(Date&d)
{
year=d.year;
month=d.month;
day=d.day;
}
voidprint( )
{
cout<
}
private:
intyear,month,day;
};
Datefun(Dated)
{
Datetemp;
temp=d;
returntemp;
}
intmain( )
{
Datedatel(2000,1,1),date2(0,0,0);
Datedate3(datel);
date2=fun(date3);
return0;
}
程序执行时,Date类的拷贝构造函数被调用的次数是( )。
- A.2
- B.3
- C.4
- D.5
-
以下程序中调用cin函数给变量a输入数值的方法是错误的,其错误的原因是( )。
#include(iostream.h)
voidmain( )
{int*P,*q,a,b;
p=&a;
cout<<"inputa:";
cin>>P;
}
- A.*P表示的是指针变量P的地址
- B.P表示的是变量a的地址,而不是变量a的值
- C.*P表示的是指针变量p的值
- D.*P只能用来说明P是一个指针变量
-
当需要将一个函数boolisnunlber(charc)声明为内联函数时,此内联函数的函数原型为( )。
- A.enumboolisnumber(charc);
- B.defineboolisnumber(charc);
- C.inlineboolisnumber(charc);
- D.extemboolisnumber(charc);
-
有如下程序:
#include
usingnamespacestd;
intmain( ){
inta[6]={23,l5,64,33,40,58};
ints1,s2;
s1=s2=a[0];
for(int*p=a+1;pif(sl>*p)s1=*P;
if(s2<*p)s2=*p;
}
cout<
return0;
}
运行时的输出结果是( )。
- A.23
- B.58
- C.64
- D.79
-
下列选项中不合法的标识符是( )。
- A.print
- B.FOR
- C.&a
- D.-00
-
考虑函数原型voidtest(inta,intb=7,charz='*'),下面的函数调用中,属于不合法调用的是( )。
- A.test(5);
- B.test(5,8);
- C.test(6,'#');
- D.test(0,0,'*');
-
若有以下程序:
#include
usingnamespacestd;
classBase
{public:
Base()
{x=0;}
intx;};
classDerivedl:virtualpublicBase
{public:
Derivedl()
{x=10;}};
classDerived2:virtua11publicBase
{public:
Derived2()
{x=20;}};
classDerived:publicDerivedl,protectedDerived2{};intmain()
{Derivedobj;
cout<
return0;}
该程序运行后的输出结果是( )。
- A.20
- B.30
- C.10
- D.0
-
下面程序的运行结果为( )。#include
voidswap(int&a,intb)
{
inttemp;
temp=a++;
- a=b:
- b=temp: } voidmain() {
- inta=2,b=3; swap(a,b);
- cout<}
- A.2,3
- B.3,2
- C.2,2
- D.3,3
-
对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为( )。
- A.log2n
- B.n/2
- C.n
- D.n+1
-
在E—R图中,用来表示实体联系的图形是( )。
- A.椭圆图
- B.矩形
- C.菱形
- D.三角形
-
下列数据结构中,属于非线性结构的是( )。
- A.循环队列
- B.带链队列
- C.二叉树
- D.带链栈
-
下列描述中,错误的是( )。
- A.公有继承时基类中的公有成员在派生类中仍是公有成员
- B.公有继承时基类中的保护成员在派生类中仍是保护成员
- C.保护继承时基类中的公有成员在派生类中仍是公有成员
- D.保护继承时基类中的保护成员在派生类中仍是保护成员
-
结构化程序所要求的基本结构不包括( )。
- A.顺序结构
- B.GOTO跳转
- C.选择(分支)结构
- D.重复(循环)结构
-
若有表达式“(w)?(--x):(++y)”,则其中与w等价的表达式是( )。
- A.w==1
- B.w==0
- C.W!=1
- D.W!=0
-
C++语言中关于构造函数的说法正确的是( )。
- A.构造函数的函数名不必和类名相同
- B.构造函数只能有一个
- C.每个类必定有构造函数
- D.构造函数必有返回值
-
有如下函数模板声明:
template
TMax(Ta,Tb){return(a>b)?a:b;}
下列对函数模板Max( )的调用中错误的是( )。
- A.Max(3.5,4.5)
- B.Max(3.5,4)
- C.Max
(35,4.5) - D.Max
(3.5,4)
-
有以下结构体说明和变量的定义,且指针P指向变量a,指针q指向变量b。则不能把结点b连接到结点a之后的语句是( )。
structnode
{chardata;
structnode*next;
}a,b,*p=&a,*q=&b;
- A.a.next=q;
- B.P.next=&b;
- C.p->next=&b;
- D.(*p).next=q;
-
假定MyClass为一个类,那么下列的函数说明中,( )为该类的析构函数。
- A.void~MyClass( );
- B.~MyC
- C.ass(intn);
- D.MyClass( );
- E.~MyClass( );
-
数据处理的最小单位是( )。
- A.数据
- B.数据元素
- C.数据项
- D.数据结构
-
数据库系统的三级模式不包括( )。
- A.概念模式
- B.内模式
- C.外模式
- D.数据模式
-
SQL语言又称为( )。
- A.结构化定义语言
- B.结构化控制语言
- C.结构化查询语苦
- D.结构化操纵语言
-
对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是( )。
- A.快速排序
- B.冒泡排序
- C.直接插入排序
- D.堆排序
-
每个C++程序中都必须有且仅有一个( )。
- A.类
- B.预处理命令
- C.主函数
- D.语句
-
算法的空间复杂度是指( )。
- A.算法在执行过程中所需要的计算机存储空间
- B.算法所处理的数据量
- C.算法程序中的语句或指令条数
- D.算法在执行过程中所需要的临时工作单元数