2013年9月全国计算机等级《二级C++》上机模考试卷(6) - 233网校计算机二级题库:在线全真
2013-12-20来源/作者:管理员点击次数:897
一、选择题(每小题1分,共40分)
1、 将E-R图转换到关系模式时,实体与联系都可以表示成( )。
A.属性
B.关系
C.键
D.域
2、 下列叙述中正确的是( )。
A.C程序的基本组成单位是语句
B.C程序中的每一行只能写一条语句
C.简单C语句必须以分号结束
D.C语句必须在一行内写完
3、 下列选项合法的标识符是( )。
A.1_1
B.1-j
C._11
D.1__
4、 有如下程序
#include(iostream.h>
voidmain( )
{charch[2][5]={"6937","8254"),*p[2];
inti,j,s=0;
for(i=0;i<2;i++)p[i]=ch[i];
for(i=0;i<2;i++)
for(j=0;p[i][j])'\0';j+=2)
s=10*s+p[i][j]一'0';
cout<
该程序的输出结果是( )。
A.69825
B.63825
C.6385
D.693825
5、 有如下程序:
#included
usingnamespacestd;
classA{
public:
virtualvoidfuncl(){cout<<"A1";)
voidrune2(){cout<<"A2";}};
classB:publicA{
public:
voidfuncl(){cout<<:"B1";}
voidfunc2(){eout<<"B2";}};
intmain(){
A*p=newB;
p->func1();
P->func2();
return0;}
执行该程序,屏幕上将显示输出( )。
A.B1B2
B.A1A2
C.B1A2
D.A1B2
6、一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是( )。
A.12345ABCDE
B.EDCABA54321
C.ABCDE12345
D.54321EDCBA
7、 下面是关于派生类声明的开始部分,其中正确韵是( )。
A.classvirtualB:publicA
B.virtualclassB:publicA
C.classB:publicAvirtual
D.classB:virtualpublicA
8、 若有说明:inta[3][4];则对a数组元素的非法引用是( )。
A.a[0][2*1]
B.a[1][3]
C.a[4-2][0]
D.a[0][4]
9、 继承机制的作用是( )。
A.信息隐藏
B.数据封装
C.定义新类
D.数据抽象
10、有如下程序:
#include
usingnamespacestd;
classB{
public:
B(intxx):x(xx){++count;x+=10;}
virtualvoidshow( )const
{cout<
protected:
staticintcount;
private:
intx;
};
classD:publicB{
public:
D(intxx,intyy):B(XX),y(yy){++count;y+=
100;)
virtualvoidshow( )const
{cout<
private:
inty;
};
intB::count==0;
intmain( ){
B*ptr=newD(10,20);
ptr->show( );
deleteptr;
return0;
}
运行时的输出结果是( )。
A.1_120
B.2_120
C.1_20
D.2_20
11、 有下列程序:
#include
voidfun(int*S,intn1,intn2)
{
inti,j,t;
i=n1;j=n2
while(i
--;}
}
voidmain( )
{
inta[10]={1,2,3,4,5,6,7,8,9,0),k;
fun(a,0,3);fun(a,4,9);fun(a,0,9);
for(k=0;k<10;k++)printf(”%d”,a[k]);printf
("\n");
}
程序的运行结果是( )。
A.0987654321
B.4321098765
C.5678901234
D.0987651234
12、 下面程序的运行结果为( )。
#include
voidmain()
{
chara='3':
switch(a)
{
case'3':cout<<"3";
case'2':cout<<"2";break;
default:cout<<"1";
}
}
A.3
B.321
C.31
D.32
13、 下列关于析构函数的描述中,错误的是( )。
A.析构函数可以重载
B.析构函数由系统自动调用
C.每个对象的析构函数只被调用一次
D.每个类都有析构函数
14、 在学生管理的关系数据库中,存取一个学生信息的数据单位是( )。
A.文件
B.数据库
C.字段
D.记录
15、 下列选项中不属于结构化程序设计原则的是( )。
A.可封装
B.自顶向下
C.模块化
D.逐步求精
16、 下列叙述中,错误的是( )。
A.false是一个逻辑型常量
B.“b”'是一个字符型常量
C.365是一个int常量
D.3.1415926是一个double常量
17、 在C++语言中函数返回值的类型是由( )决定的。
A.调用该函数时系统临时
B.return语句中的表达式类型
C.定义该函数时所指定的函数类型
D.调用该函数时的主调函数类型
18、 关于类和对象描述错误的是( )。
A.对象(Object)是现实世界中的客观事物,对象具有确定的属性
B.类是具有相同属性和行为的一组对象的集合
C.对象是类的抽象,类是对象的实例
D.类是对象的抽象,对象是类的实例
19、 下列叙述中正确的是( )。
A.一个逻辑数据结构只能有一种存储结构
B.数据的逻辑结构属于线性结构,存储结构属于非线性结构
C.一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率
D.一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率
20、 字符串“a+b=12\n\t”的长度为( )。
A.12
B.10
C.8
D.6
21、 树是结点的集合,它的根结点的数目是( )。
A.有且只有1个
B.1或多于1
C.0或1
D.至少有2个
22、 有以下程序:
#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
23、 若有如下语句
#include
voidmain( )
{
intx=3:
do{
x=X-2:
cout<
}while(!(--x));
}
则上面程序段( )。
A.输出的是1
B.输出的是1和-2
C.输出的是3和0
D.是死循环
24、 下列数据模型中,具有坚实理论基础的是( )。
A.层次模型
B.网状模型
C.关系模型
D.以上3个都是
25、 程序调试的任务是( )。
A.设计测试用例
B.验证程序的正确性
C.发现程序中的错误
D.诊断和改正程序中的错误
26、 以下叙述中正确的是( )。
A.构成C++语言程序的基本单位是类
B.可以在一个函数中定义另一个函数
C.main()函数必须放在其他函数之前
D.所有被调用的函数一定要在调用之前进行定义
27、 下列关于运算符重载的描述中,错误的是( )。
A.::运算符不能重载
B.类型转换运算符只能作为成员函数重载
C.将运算符作为非成员函数重载时必须定义为友元
D.重载口运算符应完成“下标访问”操作
28、 下列程序执行结果是( )。
#include(iostream.h)
classA
{public:
inta;
A( ):a(10){cout< };
voidmain( )
{Aobj1;
Aobj2(obj1);
cout<<""<
}
A.1010
B.编译错误缺少拷贝构造函数
C.10随机数
D.随机数随机数
29、有如下类定义:
classAA{
inta:
public:
AA(intn=0):a(n)()
};
classBB:publicAA{
pubilc:
BB(intn)____
};
其中横线处缺失部分是()。
A.:a(n){}
B.:AA(n){}
C.{a(n);}
D.{a=n;}
30、 有下列程序:
#include
voidmain( )
{inta[]={1,2,3,4),y,*p=&a[3];
--p;y=*p;printf("y=%d\n",y);
}
程序的运行结果是( )。
A.y=0
B.y=1
C.y=2
D.y=3
31、 下列描述正确的是( )。
A.表示m>n为true或mn&&m B.switch语句结构中必须有default语句
C.if语句结构中必须有else语句
D.如果至少有一个操作数为true,则包含‖运算符的表达式为true
32、 有定义语句“chars[10];”,若要从终端给s输入5个字符,错误的输入语句是( )。
A.gets(&sO);
B.scanf("%s",s+1);
C.gets(s);
D.scanf("%s",s[1]);
33、 若有定义“inta[2][3];”,下列选项中对a数组元素正确引用的是( )。
A.a[2][!1]
B.a[2][3]
C.a[0][3]
D.a[1>2][!1]
34、 有如下程序:
#include
usingnamespacestd;
classPair{
intm,n;
public;
Pair(intj,intk):m(j),n(k){}
intget( ){returnIn;}
intget( )const{returnm+n;}
};
intmain( ){
Paira(3,5);
constPairb(3,5);
cout< return0;
}
运行时的输出结果是( )。
A.33
B.38
C.83
D.88
35、 下列不是软件工程基本目标的照( )。
A.付出较低的维护费用
B.达到要求的功能
C.不管时间限制,只要最终把用户要求的产品交出来
D.产品的性能比较好
36、 有如下程序:
#include
#include
usingnamespacestd;
intmain()(
cout<
return0;
}
运行时的输出结果是( )。
A.***123***456
B.***123456***
C.***123456
D.123456
37、 要定义一个引用变量P,使之引用类MyClass的一个对象,正确的定义语句是( )。
A.MyClassp=MyClass;
B.MyClassp=newMyClass;
C.MyClass&p=newMyClass;
D.MyClassa,&p=a;
38、 下列关于虚基类的描述中,错误的是( )。
A.使用虚基类可以消除由多继承产生的二义性
B.构造派生类对象时。虚基类的构造函数只被调用一次
C.声明“classB:virtualpublicA”说明类B为虚基类
D.建立派生类对象时,首先调用虚基类的构造函数
39、 要利用C++流实现输入输出的各种格式控制,必须在程序中包含的头文件是( )。
A.fatream
B.istream
C.ostream
D.iomanip
40、 结构化程序设计的基本原则不包括( )。
A.多态性
B.自顶向下
C.模块化
D.逐步求精
二、程序改错题(18分)
41、使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误,请改正程序中的错误,使得程序输出为
10
TC1
注意:不要改动main函数,不能增加或删除行,也不能
更改程序的结构,错误的语句在//******error******的下面。
试题程序:
#include
classTC1
{
public:
TC1()
{
}
//********error********
private:
virtual~TC1()
{
usingnamespacestd;
cout<<"TCl"<
}
};
classTC2:publicTC1
{
public:
//********error********
explicitTC2(inti)
{
m_i=i;
}
TC2&operator()(inti)
{
this->m_i=i;
}
voidprint()
{
//********error********
cout<
}
private:
intm_i;
};
voidfun(TC2C1)
{
C1.print();
}
intmain()
{
fun(TC2(10));
return0;
}
三、简单应用题(24分)
42、使用VC++6.0打开考生文件夹下的源程序文件2.cpp。请完成函数fun(intx)的定义,该函数功能是判定x的所有约数,并且在函数中调用写函数WriteFile将结果输出到2.txt文件中。
例如:x=100的约数为124510202550100。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include
#include(fstream)
#include(cmath)
usingnamespacestd;
voidWriteFile(intc)
{
ofstreamout1;
out1.open("2.txt",ios_base::binary|ios_base::app);
out1<
out1.close();
}
voidfun(intx)
{
}
voidClearFile()
{
ofstreamout1;
out1.open("2.txt");
out1.close();
}
intmain()
{
ClearFile();
fun(100);
return0;
}
四、综合应用题(18分)
43、使用VC++6.0打开考生文件廷下的源程序文件3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整,使其输出的结果为
TCA
TCB
TCC
(1)完成类B虚继承于A,请在注释1后添加适当的语句。
(2)完成类C虚继承于A,请在注释2后添加适当的语句。
(3)完成类D继承于B,C,请在注释3后添加适当的语句。
(4)函数fun通过调用基类的fun,完成所输出的内容,请在注释4后添加适当的语句。
注意:增加或者修改代码的位置已经用符号表示出来,请不要修改其他的程序代码。
试题程序:
#include
classTCA
{
public:
voidfun()
{
cout<<"TCA"<
}
};
//********1********classTCB
{
public:
voidfun()
{
cout<<"TCB"<
}
};
//********2********classTCC
{
public:
voidfun()
{
cout<<"TCC"<
}
};
//********3********classTCD
{
public:
voidfun()
{
//********4********}
};
voidmain()
{
TCDtest;
test.fun();
return;
};
1、 将E-R图转换到关系模式时,实体与联系都可以表示成( )。
A.属性
B.关系
C.键
D.域
2、 下列叙述中正确的是( )。
A.C程序的基本组成单位是语句
B.C程序中的每一行只能写一条语句
C.简单C语句必须以分号结束
D.C语句必须在一行内写完
3、 下列选项合法的标识符是( )。
A.1_1
B.1-j
C._11
D.1__
4、 有如下程序
#include(iostream.h>
voidmain( )
{charch[2][5]={"6937","8254"),*p[2];
inti,j,s=0;
for(i=0;i<2;i++)p[i]=ch[i];
for(i=0;i<2;i++)
for(j=0;p[i][j])'\0';j+=2)
s=10*s+p[i][j]一'0';
cout<
A.69825
B.63825
C.6385
D.693825
5、 有如下程序:
#included
usingnamespacestd;
classA{
public:
virtualvoidfuncl(){cout<<"A1";)
voidrune2(){cout<<"A2";}};
classB:publicA{
public:
voidfuncl(){cout<<:"B1";}
voidfunc2(){eout<<"B2";}};
intmain(){
A*p=newB;
p->func1();
P->func2();
return0;}
执行该程序,屏幕上将显示输出( )。
A.B1B2
B.A1A2
C.B1A2
D.A1B2
6、一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是( )。
A.12345ABCDE
B.EDCABA54321
C.ABCDE12345
D.54321EDCBA
7、 下面是关于派生类声明的开始部分,其中正确韵是( )。
A.classvirtualB:publicA
B.virtualclassB:publicA
C.classB:publicAvirtual
D.classB:virtualpublicA
8、 若有说明:inta[3][4];则对a数组元素的非法引用是( )。
A.a[0][2*1]
B.a[1][3]
C.a[4-2][0]
D.a[0][4]
9、 继承机制的作用是( )。
A.信息隐藏
B.数据封装
C.定义新类
D.数据抽象
10、有如下程序:
#include
usingnamespacestd;
classB{
public:
B(intxx):x(xx){++count;x+=10;}
virtualvoidshow( )const
{cout<
staticintcount;
private:
intx;
};
classD:publicB{
public:
D(intxx,intyy):B(XX),y(yy){++count;y+=
100;)
virtualvoidshow( )const
{cout<
inty;
};
intB::count==0;
intmain( ){
B*ptr=newD(10,20);
ptr->show( );
deleteptr;
return0;
}
运行时的输出结果是( )。
A.1_120
B.2_120
C.1_20
D.2_20
11、 有下列程序:
#include
voidfun(int*S,intn1,intn2)
{
inti,j,t;
i=n1;j=n2
while(i
}
voidmain( )
{
inta[10]={1,2,3,4,5,6,7,8,9,0),k;
fun(a,0,3);fun(a,4,9);fun(a,0,9);
for(k=0;k<10;k++)printf(”%d”,a[k]);printf
("\n");
}
程序的运行结果是( )。
A.0987654321
B.4321098765
C.5678901234
D.0987651234
12、 下面程序的运行结果为( )。
#include
voidmain()
{
chara='3':
switch(a)
{
case'3':cout<<"3";
case'2':cout<<"2";break;
default:cout<<"1";
}
}
A.3
B.321
C.31
D.32
13、 下列关于析构函数的描述中,错误的是( )。
A.析构函数可以重载
B.析构函数由系统自动调用
C.每个对象的析构函数只被调用一次
D.每个类都有析构函数
14、 在学生管理的关系数据库中,存取一个学生信息的数据单位是( )。
A.文件
B.数据库
C.字段
D.记录
15、 下列选项中不属于结构化程序设计原则的是( )。
A.可封装
B.自顶向下
C.模块化
D.逐步求精
16、 下列叙述中,错误的是( )。
A.false是一个逻辑型常量
B.“b”'是一个字符型常量
C.365是一个int常量
D.3.1415926是一个double常量
17、 在C++语言中函数返回值的类型是由( )决定的。
A.调用该函数时系统临时
B.return语句中的表达式类型
C.定义该函数时所指定的函数类型
D.调用该函数时的主调函数类型
18、 关于类和对象描述错误的是( )。
A.对象(Object)是现实世界中的客观事物,对象具有确定的属性
B.类是具有相同属性和行为的一组对象的集合
C.对象是类的抽象,类是对象的实例
D.类是对象的抽象,对象是类的实例
19、 下列叙述中正确的是( )。
A.一个逻辑数据结构只能有一种存储结构
B.数据的逻辑结构属于线性结构,存储结构属于非线性结构
C.一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率
D.一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率
20、 字符串“a+b=12\n\t”的长度为( )。
A.12
B.10
C.8
D.6
21、 树是结点的集合,它的根结点的数目是( )。
A.有且只有1个
B.1或多于1
C.0或1
D.至少有2个
22、 有以下程序:
#include
usingnamespacestd;
classsample
{
private:
intX;
public:
sample(inta)
{
X=a:
}
frienddoublesquare(samples);
};
doublesquare(samples)
{
returnS.x*S.X:
}
intmain()
{
samples1(20),s2(30);
cout<
}
执行结果是( )。
A.20
B.30
C.900
D.400
23、 若有如下语句
#include
voidmain( )
{
intx=3:
do{
x=X-2:
cout<
}
则上面程序段( )。
A.输出的是1
B.输出的是1和-2
C.输出的是3和0
D.是死循环
24、 下列数据模型中,具有坚实理论基础的是( )。
A.层次模型
B.网状模型
C.关系模型
D.以上3个都是
25、 程序调试的任务是( )。
A.设计测试用例
B.验证程序的正确性
C.发现程序中的错误
D.诊断和改正程序中的错误
26、 以下叙述中正确的是( )。
A.构成C++语言程序的基本单位是类
B.可以在一个函数中定义另一个函数
C.main()函数必须放在其他函数之前
D.所有被调用的函数一定要在调用之前进行定义
27、 下列关于运算符重载的描述中,错误的是( )。
A.::运算符不能重载
B.类型转换运算符只能作为成员函数重载
C.将运算符作为非成员函数重载时必须定义为友元
D.重载口运算符应完成“下标访问”操作
28、 下列程序执行结果是( )。
#include(iostream.h)
classA
{public:
inta;
A( ):a(10){cout< };
voidmain( )
{Aobj1;
Aobj2(obj1);
cout<<""<
A.1010
B.编译错误缺少拷贝构造函数
C.10随机数
D.随机数随机数
29、有如下类定义:
classAA{
inta:
public:
AA(intn=0):a(n)()
};
classBB:publicAA{
pubilc:
BB(intn)____
};
其中横线处缺失部分是()。
A.:a(n){}
B.:AA(n){}
C.{a(n);}
D.{a=n;}
30、 有下列程序:
#include
voidmain( )
{inta[]={1,2,3,4),y,*p=&a[3];
--p;y=*p;printf("y=%d\n",y);
}
程序的运行结果是( )。
A.y=0
B.y=1
C.y=2
D.y=3
31、 下列描述正确的是( )。
A.表示m>n为true或m
C.if语句结构中必须有else语句
D.如果至少有一个操作数为true,则包含‖运算符的表达式为true
32、 有定义语句“chars[10];”,若要从终端给s输入5个字符,错误的输入语句是( )。
A.gets(&sO);
B.scanf("%s",s+1);
C.gets(s);
D.scanf("%s",s[1]);
33、 若有定义“inta[2][3];”,下列选项中对a数组元素正确引用的是( )。
A.a[2][!1]
B.a[2][3]
C.a[0][3]
D.a[1>2][!1]
34、 有如下程序:
#include
usingnamespacestd;
classPair{
intm,n;
public;
Pair(intj,intk):m(j),n(k){}
intget( ){returnIn;}
intget( )const{returnm+n;}
};
intmain( ){
Paira(3,5);
constPairb(3,5);
cout< return0;
}
运行时的输出结果是( )。
A.33
B.38
C.83
D.88
35、 下列不是软件工程基本目标的照( )。
A.付出较低的维护费用
B.达到要求的功能
C.不管时间限制,只要最终把用户要求的产品交出来
D.产品的性能比较好
36、 有如下程序:
#include
#include
usingnamespacestd;
intmain()(
cout<
}
运行时的输出结果是( )。
A.***123***456
B.***123456***
C.***123456
D.123456
37、 要定义一个引用变量P,使之引用类MyClass的一个对象,正确的定义语句是( )。
A.MyClassp=MyClass;
B.MyClassp=newMyClass;
C.MyClass&p=newMyClass;
D.MyClassa,&p=a;
38、 下列关于虚基类的描述中,错误的是( )。
A.使用虚基类可以消除由多继承产生的二义性
B.构造派生类对象时。虚基类的构造函数只被调用一次
C.声明“classB:virtualpublicA”说明类B为虚基类
D.建立派生类对象时,首先调用虚基类的构造函数
39、 要利用C++流实现输入输出的各种格式控制,必须在程序中包含的头文件是( )。
A.fatream
B.istream
C.ostream
D.iomanip
40、 结构化程序设计的基本原则不包括( )。
A.多态性
B.自顶向下
C.模块化
D.逐步求精
二、程序改错题(18分)
41、使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误,请改正程序中的错误,使得程序输出为
10
TC1
注意:不要改动main函数,不能增加或删除行,也不能
更改程序的结构,错误的语句在//******error******的下面。
试题程序:
#include
classTC1
{
public:
TC1()
{
}
//********error********
private:
virtual~TC1()
{
usingnamespacestd;
cout<<"TCl"<
};
classTC2:publicTC1
{
public:
//********error********
explicitTC2(inti)
{
m_i=i;
}
TC2&operator()(inti)
{
this->m_i=i;
}
voidprint()
{
//********error********
cout<
private:
intm_i;
};
voidfun(TC2C1)
{
C1.print();
}
intmain()
{
fun(TC2(10));
return0;
}
三、简单应用题(24分)
42、使用VC++6.0打开考生文件夹下的源程序文件2.cpp。请完成函数fun(intx)的定义,该函数功能是判定x的所有约数,并且在函数中调用写函数WriteFile将结果输出到2.txt文件中。
例如:x=100的约数为124510202550100。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include
#include(cmath)
usingnamespacestd;
voidWriteFile(intc)
{
ofstreamout1;
out1.open("2.txt",ios_base::binary|ios_base::app);
out1<
}
voidfun(intx)
{
}
voidClearFile()
{
ofstreamout1;
out1.open("2.txt");
out1.close();
}
intmain()
{
ClearFile();
fun(100);
return0;
}
四、综合应用题(18分)
43、使用VC++6.0打开考生文件廷下的源程序文件3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整,使其输出的结果为
TCA
TCB
TCC
(1)完成类B虚继承于A,请在注释1后添加适当的语句。
(2)完成类C虚继承于A,请在注释2后添加适当的语句。
(3)完成类D继承于B,C,请在注释3后添加适当的语句。
(4)函数fun通过调用基类的fun,完成所输出的内容,请在注释4后添加适当的语句。
注意:增加或者修改代码的位置已经用符号表示出来,请不要修改其他的程序代码。
试题程序:
#include
classTCA
{
public:
voidfun()
{
cout<<"TCA"<
};
//********1********classTCB
{
public:
voidfun()
{
cout<<"TCB"<
};
//********2********classTCC
{
public:
voidfun()
{
cout<<"TCC"<
};
//********3********classTCD
{
public:
voidfun()
{
//********4********}
};
voidmain()
{
TCDtest;
test.fun();
return;
};
- 只看不练,假把式······
- 进入233题库【模拟考场】,在线做题测试,在线查看成绩及详细答案解析!
- 马上进入
题库优势
- 更好的做题体验
- 233计算机二级题库有四种做题模式,可选择自己的喜欢和当前适合的做题模式进行训练。
- 更多的习题、真题
- 233计算机二级题库题量储备百万道,包含历年真题,模拟试题等题型,题题结合考试大纲贴近考试 考点。
- 更专业的试题解析
- 233计算机二级题库结合考试大纲,将各试题划分了详细的章节知识,更全面的详细的展示答案解析。
- 进入计算机二级模拟考场>>