计算机类二级C++

2013年9月全国计算机等级《二级C++》上机临考冲刺试卷(2)

43 题含答案C++
共 43 题返回本类
1单选题1 / 43
关于结构化程序设计原则和方法的描述错误的是(  )。
查看答案
C. 不允许使用GOTO语句
2单选题2 / 43
下列程序的运行结果为(  )。
#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(  )
{FFx(int(1.1),2,3),y(int(4.2),5,6);
cout<<<''<<<endl;}
查看答案
B. 615
3单选题3 / 43
已知intm=10;在下列定义引用的语句中,正确的是(  )。
查看答案
A. int&x=m;
4单选题4 / 43
有以下程序:
#include(iostream)
usingnamespacestd;
intmain(  )
{
intx=15:
while(x>10&&x<50)
{
x++;
if(x/3)
{
x++;break;
}
}
cout<<x<
return0;
}
执行后的输出结果是(  )。
查看答案
C. 17
5单选题5 / 43
函数定义为Fun(int&i),变量定义n=100,则下面调用正确的是(  )。
查看答案
C. Fun(n);
6单选题6 / 43
有如下模板声明:
templateclassA;
下列声明中,与上述声明不等价的是(  )。
查看答案
D. templateclassA;
7单选题7 / 43
有如下程序:
#include
usingnamespacestd;
classMyClass{
public:
MyClass(){++count;)
~MyClass(){--count;)
staticintgetCount(){returncount;}
private:
staticintcount;
};
intMyClass::count=0;
intmain(){
MyClassobj;
cout<
MyClass*ptr=newMyClass;
cout<
deleteptr;
cout<
return0;
}
程序的输出结果是(  )。
查看答案
A. 121
9单选题9 / 43
有下列程序:
#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)
}
程序的运行结果是(  )。
查看答案
C. a*b****
10单选题10 / 43
以下循环体的执行次数是(  )。
voidmain(  )
{inti,j;
for(i=0,j=1;i<=j+1;i+=2,j--)cout<<i<
}
查看答案
C. 1
11单选题11 / 43
某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)(  )。
查看答案
D. 7
12单选题12 / 43
有如下两个类定义:
ClaSSAA{};
classBB{
AAv1,*v2;
BBv3;
int*v4;
};
其中有一个成员变量的定义是错误的,这个变量是(  )。
查看答案
C. v3
13单选题13 / 43
关系模型允许定义3类数据约束,下列不属于数据约束的是(  )。
查看答案
C. 属性完整性约束
14单选题14 / 43
(  )既可重载为一元运算符,又可重载为二元运算符。
查看答案
A. “*”
15单选题15 / 43
以下for语句中不是死循环的是(  )。
查看答案
A. for(inti=0;i<1;++i);
16单选题16 / 43
已知在一个类体中包含如下函数原型:VOLUMEOPERATOR-(VOLUME)const;,下列关于这个函数的叙述中,错误的是(  )。
查看答案
B. 这个函数所重载的运算符是一个一元运算符
17单选题17 / 43
下列关于线性链表的叙述中.正确的是(  )。
查看答案
C. 进行插入与删除时,不需要移动表中的元素
18单选题18 / 43
下面关于C++流的叙述中,正确的是(  )。
查看答案
A. cin是一个输入流对象
19单选题19 / 43
下列关于C++流的描述中,错误的是(  )。
查看答案
A. cout>>'A'表达式中输出字符A
20单选题20 / 43
下列关于完全二叉树的叙述中,错误的是(  )。
查看答案
B. 可能缺少若干个左右叶子结点
21单选题21 / 43
设有两个字符串p和q,求q在p中首次出现位置的运算称为(  )。
查看答案
B. 模式匹配
22单选题22 / 43
有以下程序;
#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<<a.real()<<'+'<<a.imag()<<'i'<
return0;
}
程序执行后的输出结果是(  )。
查看答案
B. 6+1i
23单选题23 / 43
下面描述中错误的是(  )。
查看答案
A. 系统总体结构图支持软件系统的详细设计
24单选题24 / 43
若有如下程序:
#include
usingnamespaeestd;
classTestClass
{
public:
voidwho(){cout<<"TestClass"<<endl;}
};
classTestClassl:publicTestClass
{
public:
voidwho(){cout<<"TestClassl"<
intmain()
{
TestClass*P;
TestClasslobj1;
p=&obj1;
p->who();
retum0;
}
则该程序运行后的输出结果是(  )。
查看答案
A. TestClassl
25单选题25 / 43
下列程序段中包含4个函数,其中具有隐含this指针的是(  )。
intfunl(  );
classTest{
public:
intfun2(  );
friendintfun3(  );
staticintfun4(  );
};
查看答案
B. fun2
26单选题26 / 43
两个或两个以上模块之间关联的紧密程度称为(  )。
查看答案
A. 耦合度
27单选题27 / 43
有下列程序:
#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
28单选题28 / 43
下列选项中,不是一个算法的基本特征的是(  )。
查看答案
A. 完整性
30单选题30 / 43
软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件),下面属于系统软件的是(  )。
查看答案
B. 操作系统
31单选题31 / 43
软件生命周期可分为定义阶段、开发阶段和维护阶段。详细设计属于(  )。
查看答案
B. 开发阶段
32单选题32 / 43
下列关于多态性的描述,错误的是(  )。
查看答案
C. 运行时的多态性可通过模板和虚函数实现
33单选题33 / 43
在C语言中,只有在使用时才占用内存单元的变量,其存储类型是(  )。
查看答案
A. auto和register
34单选题34 / 43
模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准是模块的(  )。
查看答案
C. 内聚性和耦合性
35单选题35 / 43
将运算符重载为类成员函数时,其参数表中没有参数,说明该运算符是(  )。
查看答案
B. 一元运算符
36单选题36 / 43
要定义一个引用变量P,使之引用类MyClass的一个对象,正确的定义语句是(  )。
查看答案
D. MyClassa,&p=a;
37单选题37 / 43
有下列程序:
#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);
}
程序运行后的输出结果是(  )。
查看答案
C. 1,3,3
38单选题38 / 43
若MyTemp是一个具有虚拟类型参数的类模板,且有如下语句序列:
MyTempp2;
MyTempp3[2];
编译系统在处理上面的话句序列时,所生成的模板MyTemp的实例的个数是(  )。
查看答案
B. 2
40单选题40 / 43
算法的时间复杂度是指(  )。
查看答案
D. 算法在执行过程中所需要的基本运算次数
41主观题41 / 43
使用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<cout<}
查看答案
(1)“stAtiCintn=O”应改为“stAtiCintn;”。
(2)“intCO::n;”应改为“intCO::n=0;”。
(3)“Cout<<C.n<<EnDl;”应改为“Cout<<C->n<<EnDl;”。
42主观题42 / 43
使用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;
}
查看答案
ChArstr[32];
inti;
For(i=30;i>=0;i--)//计算二进制
{
iF(x%2)str[i]='1';//求余,如果余不为零字符串
str第i位为1Els
Estr#i#='0';//否则为0
x>>=1;
iF#!x#BrEAk;
}
str#31#='\0';//串加尾符
Cout<<&str[i]<<EnDl;
writEFilE#&str[i]#;
43主观题43 / 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<<a.geta()<
cout<<a.getb()<
a.show();
}
查看答案
(1)“A(intx){A=x;}”。
(2)“A1(intx,inty):A(y){B=x;}”。
(3)“A2(intx,inty,intz):A1(y,z){C=x;}”。
(4)“Cout<<GEtA()<<""<<GEtB()<<""<<C<<EnDl;”。
← 上一卷下一卷 →