计算机类二级C++

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

43 题含答案C++
共 43 题返回本类
1单选题1 / 43
有下列程序:
#include
voidfun(char*s)
{while(*s)
{if(*s%2==(1)printf("%C",*s);
s+十:
}
}
voidmain(  )
{chara[]={"good");
fun(a);printf("n");
}
注意:字母a的ASCIl码值为97,程序运行后的输出结果是(  )。
查看答案
A. d
2单选题2 / 43
执行下列程序后,w的值为(  )。
intw='A',x=14,y=15;
w=((x‖y)&&(w<'a'));
查看答案
C. 1
3单选题3 / 43
下面程序的运行结果是(  )。
#include
voidmain(  )
{
inti=1:
while(i<=8)
if(++i%3!=2)continue;
elsecout<
}
查看答案
C. 258
4单选题4 / 43
计算斐波那契数列第n项的函数定义如下:
intfib(intn){
if.(n==0)return1;
elseif(n==1)return2:
elsereturnfib(n-1)+fib(n-2);
}
若执行函数调用表达式fib(2),函数fib被调用的次数是(  )。
查看答案
C. 3
5单选题5 / 43
下列叙述中正确的是(  )。
查看答案
D. 双向链表是非线性结构
6单选题6 / 43
已知类MyClass的定义如下:
classMyClass{
public:
voidfunctionl(MyClass&c){out<<c.data;}
statievoidfunction2(MyClas&c){cout<<c.data;}
voidfunction3(){out<<data;}
statiCvoidfunction4(){COut<<data;}
private:
intdata;
}:
其中有编译错误的函数是(  )。
查看答案
D. function4
7单选题7 / 43
有如下程序:
#include
usingnamespacestd;
classA{
public:
A(inti=O):rl(i){}
voidprint(  ){cout<<'E'<<r1<<'-';)
voidprint(  )const{cout<<'C'<<r1*r1<<'
-';)
voidprint(intx){cout<<'P'<<r1*r1*r1<<'
-';}
private:
intr1;
};
intmain(  ){
Aal:
constAa2(4);
a1.print(2);
a2.print(  );
return0;
}
运行时的输出结果是(  )。
查看答案
D. P0一C16—
8单选题8 / 43
能正确表示逻辑关系”a≥10或a≤0”的C++语言表达式是(  )。
查看答案
D. a>=10||a(=0
9单选题9 / 43
下列程序的运行结果为(  )。
#include
template
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<<x.sum()<<''<<<endl;}
查看答案
B. 615
11单选题11 / 43
有如下程序:
#include
usingnamespacestd;
classPair{
intm,n;
public;
Pair(intj,intk):m(j),n(k){}
intget(){returnm;}
intget()const{returnm+n;}
};
intmain(){
Paira(3,5);
constPairb(3,5);
cout<<a.get()<
return0;
}
运行时的输出结果是(  )。
查看答案
B. 38
12单选题12 / 43
有如下类定义:
classFoo
{
public:
Foo(intv):value(v){}//①
~Foo(){}//②
private:
Foo(){}//③
intvalue=0;//④
};
其中存在语法错误的行是(  )。
查看答案
D. ④
13单选题13 / 43
下列关于栈的描述正确的是(  )。
查看答案
C. 栈是特殊的线性表,只能在一端插入或删除元素
14单选题14 / 43
有下列程序:
#include
voidf(int*P,int*q);
voidmain(  )
(intm=1,n=2,*r=&m;
f(r,&n);printf("%d,%d",m,n);
}
voidf(int*P,int*q)
{p=p+1;*q=*q+1;}
程序运行后的输出结果是(  )。
查看答案
A. 1,3
15单选题15 / 43
有如下模板声明:
templateclassA;
下列声明中,与上述声明不等价的是(  )。
查看答案
D. templateclassA;
16单选题16 / 43
结构化分析方法是面向(  )的自顶向下、逐步求精进行需求分析的方法。
查看答案
C. 数据流
17单选题17 / 43
有下列程序:
#include
voidmain(  )
{chara=4;
printf("%d\n",a=a<<1);
}
程序的运行结果是(  )。
查看答案
C. 8
18单选题18 / 43
若有以下定义:
inta[]={1,2,3,4,5,6,7};
charc1='b',c2='2';
则数值不为2的表达式是(  )。
查看答案
D. c2-0
19单选题19 / 43
若为Fraction类重裁前增1运算符++,应在类体中将其声明为(  )。
查看答案
C. friendFraction&operator++(  ):
20单选题20 / 43
若有定义语句“intm[]={5,4,3,2,1),i=4;”则下列对m数组元素的引用中错误的是(  )。
查看答案
C. m[m[o]]
21单选题21 / 43
下列对重载函数的描述中,错误的是(  )。
查看答案
A. 重载函数中不允许使用默认参数
22单选题22 / 43
有定义语句“chars[10];”,若要从终端给S输入5个字符,错误的输入语句是(  )。
查看答案
D. scanf("%s",s[1]);
24单选题24 / 43
定义如下枚举类型enum{Monday,Tuesday,Wednesday,Thrusday,Friday=2};则下列选项正确的是(  )。
查看答案
A. 表达式Wednesday==Friday的值是true
25单选题25 / 43
负责数据库中查询操作的数据库语言是(  )。
查看答案
C. 数据操纵语言
26单选题26 / 43
有如下类模板定义:
template
classBigNumber{
longn;
public;
BigNumber{Ti}:n(i){}
BigNumberoperator+(BigNumberb){
returnBigNumber{n+b.n);
}
};
已知b1、b2是BigNumber的两个对象,则下列表达中踏误的是(  )。
查看答案
C. 3+b1
27单选题27 / 43
下列关于栈的叙述正确的是(  )。
查看答案
A. 栈顶元素最先被删除
28单选题28 / 43
重载输人流运算符>>必须使用的原型为(  )。
查看答案
A. istream&operator>>(istream&,<类名>&);
29单选题29 / 43
下列关于类模板的描述中,错误的是(  )。
查看答案
D. 类模板中只允许有一个类型参数
30单选题30 / 43
关于continue语句叙述不正确的是(  )。
查看答案
A. continue语句用于循环体中,结束循环
31单选题31 / 43
下列描述中正确的是(  )。
查看答案
C. 软件工程的主要思想是强调在软件开发过程中需要应用工程化原则
32单选题32 / 43
关于静态数据成员的描述中正确的是(  )。
查看答案
D. 类的静态数据成员必须进行初始化
33单选题33 / 43
有如下程序:
#include
#includediomanip>
usingnamespacestd;
intmain(  ){
ints[]={123,234);
cout<<setfill('*')<
for(inti=0;i<2;i++){cout<<s[i]<<endl;)
return0;
}
运行时的输出结果是(  )。
查看答案
B. ***123
234234
34单选题34 / 43
按照“后进先出”原则组织数据的数据结构是(  )。
查看答案
B. 栈
35单选题35 / 43
有如下程序:
#include
usingnamespacestd;
intmain(){
intf,f1=0,f2=1
for(inti=3;i<=6;i++){
f=f1+f2:
f1=f2:f2=f
}
cout<<f<
return0;
}
运行时的输出结果是()。
查看答案
C. 5
36单选题36 / 43
有以下程序:
#include
usingnamespacestd;
#defineP13.14
classPoint
{private:
intX,y;
public:
Point(inta,intb)
{x=a:
y=b;}
intgetx()
{returnX;}
intgety()
{returny;}};
classCircle:publicPoint
{private:
intr;
public:
Circle(inta,intb,intc):Point(a,b)
{r=C;}
intgetr()
{returnr;}
doublearea()
{returnPI*r*r;}};
intmain()
(Circlec1(5,7,10);
cout<<c1.area()<
return0;}
程序执行后的输出结果是(  )。
查看答案
A. 314
37单选题37 / 43
若有定义语句“doublex[5]={1.0,2.0,3.0,4.0,5.0},*p=x”,则错误引用X数组元素的是(  )。
查看答案
B. x[5]
39单选题39 / 43
下列函数的运行结果是(  )。
#include
intadd(inta,intb);
voidmain()
{
externintX,y;
cout<<add(x,y)<
}
intx(20),y(5);
intadd(inta,intb)
{
ints=a+b:
returns;
}
查看答案
A. 25
40单选题40 / 43
数据库设计中,用E—R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的(  )。
查看答案
C. 概念设计阶段
41主观题41 / 43
使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,输出的结果为
Constructor,i=0,
Destructor
注意:错误的语句在//******error******的下面,修改该语句即可。
试题程序:
#include(iostream.h)
classTC
{
inti;
public:
TC();
voiddisplay();
~TC();
};
//******error******
TC:TC()
{
cout<<"Constructor"<<",";
i=0;
)
//******error******
TC:display()
{
tout<<"i="<<i<<","<
}
//******error******
TC:TC()
{
COUI<<"Destructor"<
}
voidmain()
{
TCa;
a.display();
}
查看答案
(1)应改为“TC::TC()”。
(2)应改为“voiDTC::DisplAy()”。
(3)应改为“TC::~TC()”。
42主观题42 / 43
使用VC6打开考生文件夹下的源程序文件2.cpp。阅读下列函数说明和代码,补充空出的代码。函数sum(intn)返回1,2,3,…,n的和。其中n大于0。
程序要求使用递归实现上述功能。
注意:不能修改程序的其他部分,只能补充sum函数。
试题程序:
#include
#include
intsum(intn)
{
}
voidmain()
{
cout<<"1+2+3+…+100="<<sum(100)<<
endl;
return;
}
查看答案
rEturn(n==1)?1:n+sum(n-1);
43主观题43 / 43
使用VC++6.0打开考生文件夹下的源程序文件3.cpp。其中定义的类不完整,按要求完成下列操作,将类的定义补充完整。每卖出一个水果,则计算水果的重量,还要计算所有卖出水果的总重量以及总个数,同时允许退货,请按照以下的操作,把类补充完整。
(1)定义类TCFruit的私有静态数据成员float型变量AllWeight和int型变量AllN0,请在注释1后添加适当的语句。
(2)完成类TCFruit的带一个float型变量w的构造函数,并把这个w加到AllWeight中,并且AllNo自加。请在注释2后添加适当的语句。
(3)在析构函数中,在AllWeight中减去weight,然后AllNo自减,请在注释3后添加适当的语句。
(4)完成静态成员变量的初始化为0,请在注释4后添加适当的语句。
注意:增加或者修改代码的位置已经用符号表示出来,请不要修改其他的程序代码。
试题程序:
#include(iostream.h>
classTCFruit
{
private:
floatWeight;
//********1********
staticintAllNo;
public:
TCFruit(floatw)
{
//********2********
AllWeight+=w:
AllNo++:
}
~TCFruit()
{
//********3********
AllWeight-=Weight:
}
voiddisplay()
{
cout<<"SellaFruitwith"<<weight<<"k9"<<
endl;
cout<<”Allsellnumber:"<<allno<
cout<<"Allsellweight:"<<allweight<<"k9"<<
endl<
}
};
//********4********
floatTCFruit::AllWeight=0.0;
intmain()
{
TCFruitFruitl(1.2);
Fruitl.display();
TCFruitFruit2(2.3);
Fruit2.display();
return0;
}
查看答案
(1)应添加“stAtiCFloAtAllWEiGht;”。
(2)应添加“WEiGht=w;”。
(3)应添加“AllNo--;”。
(4)应添加“intTCFruit::AllNo=0;”。
← 上一卷下一卷 →