2013年9月全国计算机等级《二级C++》上机临考冲刺试卷(2) - 233网校计算机二级题库:在线
1、 关于结构化程序设计原则和方法的描述错误的是( )。
A.选用的结构只允许有一个入口和一个出口
B.复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现
C.不允许使用GOTO语句
D.语言中所没有的控制结构,应该采用前后一致的方法来模拟
2、 下列程序的运行结果为( )。
#include(iostream.h>
template(classTT>
classFF
{TTa1,a2,a3;
public:
FF(TTb1,TTb2,TTb3){a1=b1;a2=b2.;a3=b3;)
TTSum( ){returna1+a2+a3;}};
voidmain( )
{FF
cout<
B.615
C.615.2
D.6.115
3、 已知intm=10;在下列定义引用的语句中,正确的是( )。
A.int&x=m;
B.inty=&m;
C.int&z;
D.int&t=&m;
4、 有以下程序:
#include(iostream)
usingnamespacestd;
intmain( )
{
intx=15:
while(x>10&&x<50)
{
x++;
if(x/3)
{
x++;break;
}
}
cout<
}
执行后的输出结果是( )。
A.15
B.16
C.17
D.18
5、
函数定义为Fun(int&i),变量定义n=100,则下面调用正确的是( )。
A.Fun(20);
B.Fun(20+n);
C.Fun(n);
D.Fun(&n);
6、
有如下模板声明:
template
下列声明中,与上述声明不等价的是( )。
A.template
B.template
C.template
D.template
7、
有如下程序:
#include
usingnamespacestd;
classMyClass{
public:
MyClass(){++count;)
~MyClass(){--count;)
staticintgetCount(){returncount;}
private:
staticintcount;
};
intMyClass::count=0;
intmain(){
MyClassobj;
cout<
cout<
cout<
}
程序的输出结果是( )。
A.121
B.232
C.221
D.122
8、
下列符号中可以用做C++标识符的是( )。
A._radius
B.foo~bar
C.else
D.3room
9、
有下列程序:
#include
voidfun(char*a,char*b)
{
while(*a=='*')a++;
while(*b=*a){b++;a++;}
}
voidmain( )
{
char*s="*****a*b****",t[80];
fun(s,t);puts(t)
}
程序的运行结果是( )。
A.*****a*b
B.a*b
C.a*b****
D.ab
10、
以下循环体的执行次数是( )。
voidmain( )
{inti,j;
for(i=0,j=1;i<=j+1;i+=2,j--)cout<
}
A.3
B.2
C.1
D.0
11、
某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)( )。
A.3
B.4
C.6
D.7
12、
有如下两个类定义:
ClaSSAA{};
classBB{
AAv1,*v2;
BBv3;
int*v4;
};
其中有一个成员变量的定义是错误的,这个变量是( )。
A.v1
B.v2
C.v3
D.v4
13、
关系模型允许定义3类数据约束,下列不属于数据约束的是( )。
A.实体完整性约束
B.参照完整性约束
C.属性完整性约束
D.用户自定义完整性约束
14、( )既可重载为一元运算符,又可重载为二元运算符。
A.“*”
B.“=”
C.“=”和“*”
D.“*”和“*++”
15、
以下for语句中不是死循环的是( )。
A.for(inti=0;i<1;++i);
B.for(inti=0;;++i);
C.for(inti=1;i>0;++i);
D.for(;;);
16、
已知在一个类体中包含如下函数原型:VOLUMEOPERATOR-(VOLUME)const;,下列关于这个函数的叙述中,错误的是( )。
A.这是运算符一的重载运算符函数
B.这个函数所重载的运算符是一个一元运算符
C.这是一个成员函数
D.这个函数不改变类的任何数据成员的值
17、
下列关于线性链表的叙述中.正确的是( )。
A.各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致
B.各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续
C.进行插入与删除时,不需要移动表中的元素
D.以上三种说法都不对
18、
下面关于C++流的叙述中,正确的是( )。
A.cin是一个输入流对象
B.可以用ifstream定义一个输出流对象
C.执行语句序列char*y="PQMN";cout<
19、
下列关于C++流的描述中,错误的是( )。
A.cout>>'A'表达式中输出字符A
B.eof函数可以检测是否到达文件尾
C.对磁盘文件进行流操作时,必须包含头文件fstream
D.以ios_base::Out模式打开的文件不存在时,将自动建立一个新文件
20、
下列关于完全二叉树的叙述中,错误的是( )。
A.除了最后一层外,每一层上的结点数均达到最大值
B.可能缺少若干个左右叶子结点
C.完全二叉树一般不是满二叉树
D.具有结点的完全二叉树的深度为[log2n]+1
21、
设有两个字符串p和q,求q在p中首次出现位置的运算称为( )。
A.连接
B.模式匹配
C.求子串
D.求串长
22、
有以下程序;
#include
usingnamespacestd;
classComplex
{
public:
Complex(doubler=0,doublei=O):re(r),im(i){}
doublereal()const{returnre;}
doubleimag()const{returnim;}
Complexoperator+(Complexc)const
{returnComplex(re+C.re,im+C.im);}
private:
doublere,im;
};
intmain()
{
Complexa=Complex(1,1)+Complex(5);
cout<
return0;
}
程序执行后的输出结果是( )。
A.6+6i
B.6+1i
C.1+6i
D.1+1i
23、
下面描述中错误的是( )。
A.系统总体结构图支持软件系统的详细设计
B.软件设计是将软件需求转换为软件表示的过程
C.数据结构与数据库设计是软件设计的任务之一
D.PAD图是软件详细设计的表示工具
24、
若有如下程序:
#include
usingnamespaeestd;
classTestClass
{
public:
voidwho(){cout<<"TestClass"<
classTestClassl:publicTestClass
{
public:
voidwho(){cout<<"TestClassl"<
{
TestClass*P;
TestClasslobj1;
p=&obj1;
p->who();
retum0;
}
则该程序运行后的输出结果是( )。
A.TestClassl
B.TestClass
C.0
D.无输出
25、
下列程序段中包含4个函数,其中具有隐含this指针的是( )。
intfunl( );
classTest{
public:
intfun2( );
friendintfun3( );
staticintfun4( );
};
A.funl
B.fun2
C.fun3
D.fun4
26、
两个或两个以上模块之间关联的紧密程度称为( )。
A.耦合度
B.内聚度
C.复杂度
D.数据传输特性
27、有下列程序:
#include
#include”strin9.h”
typedefstruct{charname[9];charsex;floatscore
[2];}STU;
voidf(STUa)
{
STUb={"Zha0",'m',85.0,90.0);inti;
strcpy(a.name,b.name);
sex=b.sex;
for(i=0;i<2;i++)a.score[i]=b.score[i];
}
voidmain( )
{
STUc={"Qian",'f',95.0,92.0);
f(c);
printf("%s,%c,%2.Of,%2.Of\n",C.name,C.sex,
score[O],C.score[1]);
}
程序的运行结果是( )。
A.Qian,f,95,92
B.Qian,m,85,90
C.Zha0,f,95,92
D.Zha0,m,85,90
28、
下列选项中,不是一个算法的基本特征的是( )。
A.完整性
B.可行性
C.有穷性
D.拥有有足够的情报
29、
下列字符串中,正确的C++标识符是( )。
A.foo-1
B.2b
C.new
D._256
30、
软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件),下面属于系统软件的是( )。
A.编辑软件
B.操作系统
C.教务管理系统
D.浏览器
31、
软件生命周期可分为定义阶段、开发阶段和维护阶段。详细设计属于( )。
A.定义阶段
B.开发阶段
C.维护阶段
D.上述3个阶段
32、
下列关于多态性的描述,错误的是( )。
A.C++语言中的多态性分为编译时的多态性和运行时的多态性
B.编译时的多态性可通过函数重载实现
C.运行时的多态性可通过模板和虚函数实现
D.实现运行时多态性的机制称为动态绑定
33、
在C语言中,只有在使用时才占用内存单元的变量,其存储类型是( )。
A.auto和register
B.extern和register
C.auto和static
D.static和register
34、
模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准是模块的( )。
A.抽象和信息隐蔽
B.局部化和封装化
C.内聚性和耦合性
D.激活机制和控制方法
35、
将运算符重载为类成员函数时,其参数表中没有参数,说明该运算符是( )。
A.不合法的运算符
B.一元运算符
C.无操作数的运算符
D.二元运算符
36、
要定义一个引用变量P,使之引用类MyClass的一个对象,正确的定义语句是( )。
A.MyClassp=MyClass;
B.MyClassp=newMyClass;
C.MyClass&p=newMyClass
D.MyClassa,&p=a;
37、
有下列程序:
#include
voidmain( )
{inta=1,b=2,c=3,d=0;
if(a==1&&b++==2)
if(b!=2‖c--!=3)
printf("%d,%d,%d\n",a,b,c);
elseprintf("%d,%d,%d\n",a,b,c);
elseprintf("%d,%d,%d,%d\n",a,b,c);
}
程序运行后的输出结果是( )。
A.1,2,3
B.1,3,2
C.1,3,3
D.3,2,1
38、
若MyTemp是一个具有虚拟类型参数的类模板,且有如下语句序列:
MyTemp
MyTemp
编译系统在处理上面的话句序列时,所生成的模板MyTemp的实例的个数是( )。
A.1
B.2
C.3
D.4
39、
C源程序中不能表示的数制是( )。
A.二进制
B.八进制
C.十进制
D.十六进制
40、
算法的时间复杂度是指( )。
A.算法的执行时间
B.算法所处理的数据量
C.算法程序中的语句或指令条数
D.算法在执行过程中所需要的基本运算次数
二、程序改错题(18分)
41、使用VC++6.0打开考生文件夹下的源程序文件1.cpp,但该程序运行有问题,请改正main()函数中的错误,使该程序的输出结果正确。
程序输出:
8
8
注意:错误的语句在/********error********/的下面。修改该语句即可,其他的语句不能修改。
试题程序:
#include(iostream.h>
classCO
{
public:
/********error********/
staticintn=0:
CO()
{
n++:
}
~CO()
{
n--:
}
}:
/********error********/
intCO::n;
voidmain()
{
COobj;
COobj2[7];
CO*C=NULL:
c=&obj:
/********error********/
eout<
三、简单应用题(24分)
42、使用VC++6.0打开考生文件夹下的源程序文件
2.cpp。请完成函数fun(intx),该函数的功能是将X的值转换成二进制数输出到屏幕,并且在函数中调用写函数WriteFile将结果输出到2.txt文件中。
例如x=6,6的二进制数为110,则输出到屏幕的数为110。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include(iostream)
#include(fstream)
#include(cmath)
usingnamespacestd;
voidWriteFile(char*str)
{
ofstreamout1;
out1.open("2.txt",ios—base::binary|ios_base::app);
for(inti=0;str[i]!=0;i++)
out1.put(str[i]);
out1.close();
}
voidfun(intx)
{
}
voidClearFile()
{
ofstreamout1;
out1.open("2.txt");
out1.close();
}
intmain()
{
ClearFile();
fun(13);
return0;
}
四、综合应用题(18分)
43、使用VC++6.0打开考生文件夹下的源程序文件3.cpp,其中定义了类A、A1和A2,其中A1类由A类公有派生,A2类由A1类公有派生。
(1)定义类A的构造函数,该构造函数有一个整型的参数x,在构造函数中请将x赋值给数据成员a。请在注释“//********1********”之后添加适当的语句。
(2)定义类A1的构造函数,该构造函数有两个整型的参数x和y,在构造函数中请将x赋值给数据成员b,将y作为基类A构造函数的参数值传人。请在注释“//********2********”之后添加适当的语句。
(3)定义类A2的构造函数,该构造函数有3个整型的参数x,y和z,在构造函数中请将x赋值给数据成员C,将y和z分别赋值给基类A1构造函数的参数x和y。请在注释“//********3********”之后添加适当的语句。
(4)完成类A2的成员函数show的定义,该函数调用基类成员函数,输出基类数据成员a和b及类A2自身的数据成员C的值,上述3个值在输出时以空格隔开。请在注释“//********4********”之后添加适当的语句。
程序输出结果如下:
7
3
738
注意:除在指定的位置添加语句之外,请不要改动程序的其他部分。
试题程序:
#include
classA
{
inta;
public:
//********1********
intgeta(){returna;}
};
classA1:publicA
{
intb;
public:
//********2********
intgetb(){returnb;}
};
classA2:publicA1
{
intC;
public:
//****,****3********
voidshow()
{
//********4********
}
};
voidmain()
{
A2a(8.3.7):
cout<
cout<
a.show();
}
题库优势
相关阅读