计算机类二级C++
2013年9月全国计算机等级《二级C++》上机临考冲刺试卷(8)
43 题含答案C++
1单选题1 / 43
在对象方法中,一个对象请求另一个对象为其服务的方式是通过发送( )来实现。
查看答案
D. 消息
2单选题2 / 43
有下列程序:
#include
intb=2;
intfun(int*k)
{b=*k+b;return(b);)
voidmain( )
{inta[10]={1,2,3,4,5,6,7,8},i;
for(i=2;i<4;i++){b=fun(&a[i])+b;printf
("%d",b);}
printf("\n");
}
程序运行后的输出结果是( )。
查看答案
C. 1028
3单选题3 / 43
阅读以下程序
#include(iostream.h>
voidmain( )
{
charline[10];
cin>>line;
cout<<1ine<
}
如运行时输入“Thisisanexample.”,则程序的输出结果是( )。
查看答案
A. This
4单选题4 / 43
下列运算符中不能在C++中重载的是( )。
查看答案
A. ?:
5单选题5 / 43
有下列程序:
#include
voidmain()
{char*a[]={"abcd","ef","gh","ijk");inti;
for(i=0;i<4;i++)printf("%C",*a[i]);
}
程序运行后的输出结果是( )。
查看答案
A. aegi
6单选题6 / 43
计算斐波那契数列第n项的函数定义如下:
intfib(intn){
if(n==0)returnl;
elseif(n==l)return2:
elsereturnfib(n-1)+fib(n-2);
}
若执行函数调用表达式fib(2),函数fib被调用的次数是( )。
查看答案
C. 3
7单选题7 / 43
下列是软件调试技术的是( )。
查看答案
C. 回溯法
8单选题8 / 43
在下列字符中,不允许作为C++标识符的是( )。
查看答案
D. 2
9单选题9 / 43
以下程序不用第3个变量实现将两个数进行对调的操作,画线处应为( )。
voidmain( )
{inta,b;
scanf("%d%d",&a,&b);
cin>>a>>b;
cout<<"a="<<a<<"b="<
a=a+b;b=a-b;a=_____;
cout<<"a="<}
查看答案
B. a-b
10单选题10 / 43
C++语言类体系中,不能被派生类继承的有( )。
查看答案
B. 构造函数
11单选题11 / 43
在E—R图中,用来表示实体的图形是( )。
查看答案
A. 矩形
12单选题12 / 43
有如下程序:
#include
usingnamespacestd;
classXA{
inta;
public:
staticintb;
XA(intaa):a(aa){b++;}
~XA(){}
intget(){returna;}
};
intXA::b=0
intmain(){
XAdl(1),d2(3);
cout<<dl.get{}+d2.get{}+xa::b<
return0;
}
运行时的输出结果是( )。
查看答案
C. 7
13单选题13 / 43
关于函数中的<返回类型>,下列表述中错误的是( )。
查看答案
B. <返回类型>中有可能包含自定义标识符
14单选题14 / 43
已知枚举类型定义语句为
enHmToken{NAME,NUMBER,PLUS=5,MINUS,PRINT=10};
则下列叙述中错误的是( )。
查看答案
A. 枚举常量NAME的值为1
15单选题15 / 43
若x和y是程序中的两个整型变量,则下列if语句中正确的是( )。
查看答案
A. if(x==O)y=1;elsey=2;
16单选题16 / 43
最简单的交换排序方法是( )。
查看答案
D. 冒泡排序
17单选题17 / 43
下列关于模板形参的描述中,错误的是( )。
查看答案
B. 模板形参表必须用括弧( )括起来
18单选题18 / 43
下列关于模板的说法正确的是( )。
查看答案
D. 类模板中的成员函数全部都是模板函数
19单选题19 / 43
以下类定义中可能会引起错误的语句是( )。
classA
{
public:
~A( ){}//1
inti;//2
private:
intj;//3
A(inti){i++;}//4
};
查看答案
D. 4
20单选题20 / 43
有下列程序:
#include
voidmain( )
{stuctSTU{charname[9];charsex;double
score[2];};
stuctSTUa={"Zha0",'m',85.0,90.0),b={"
Qian",'f',95.0,92.0};
b=a:
printf("%S,%C,%2.0,%2.0\n”,b.name,b.sex,
score[O],bscore[1]);
程序的运行结果是( )。
查看答案
D. Zha0,m,85,90
21单选题21 / 43
下列选项中,不是C++关键字的是( )。
查看答案
B. function
22单选题22 / 43
将前缀运算符“一一”重载为非成员函数,下列原型中,能正确用于类中说明的是( )。
查看答案
C. friendDeer&cperator一一(Deer&);
23单选题23 / 43
数据库应用系统中的核心问题是( )。
查看答案
A. 数据库设计
24单选题24 / 43
下列结构体类型说明和变量定义中正确的是( )。
查看答案
A. typedefstruct;
{intn;charC;)REC;
RECt1,t2;
25单选题25 / 43
当派生类从一个基类保护继承时,基类中的一些成员在派生类中成为保护成员,这些成员在基类中原有的访问属性是( )。
查看答案
B. 公有或保护
26单选题26 / 43
在数据管理技术发展的3个阶段中,数据共享最好的是( )。
查看答案
C. 数据库系统阶段
27单选题27 / 43
以下程序的输出结果是( )。
#include
longfun(intn)
{longs;
if(n=-1‖n==2)s=2;
elses=n-fun(n-l):
returns;
}
voidmain( ){cout<<fun(3);}
查看答案
A. 1
28单选题28 / 43
某系统总体结构如下图所示:
该系统总体结构图的深度是( )。
查看答案
C. 3
29单选题29 / 43
有如下程序:
#include
usingnamespacestd:
classPoint{
intx,y;
public:
Point(intx1=0,inty1=0)):X(X1),y(y1){}
intget( ){returnx+y;)
};
classCircle{
Pointcenter}
intradius;
public:
Circle(intCX,intcy,intr):center(cx,cy),radius(r)
{}
intget( ){returncenter.get( )+radius;}
};
intmain( ){
Circlec(3,4,5);
cout<<
return0;
}
运行时的输出结果是( )。
查看答案
D. 12
30单选题30 / 43
需求分析阶段的任务是确定( )。
查看答案
D. 软件系统功能
31单选题31 / 43
如果类A被说明成类B的友元,则( )。
查看答案
D. 类B不一定是类A的友元
32单选题32 / 43
下列关于成员函数特征的描述中,错误的是( )。
查看答案
A. 成员函数一定是内联函数
33单选题33 / 43
有如下类模板定义:
template
classBigNumber{
longn;
public;
BigNumber(Ti):n(i){}
BigNumberoperator+(BigNumberb){
returnBigNumber(n+b.n):
}
};
已知b1、b2是BigNumber的两个对象,则下列表达式中错误的是( )。
查看答案
C. 3+b1
34单选题34 / 43
关于函数中的<返回类型>。下列表述中错误的是( )。
查看答案
B. <返回类型>中有可能包含自定义标识符
35单选题35 / 43
有如下程序:
#include
usingnamespacestd;
classBASE{
public:
~BASE(){cout<<"BASE";}
};
classDERIVED:publicBASE{
public:
~DERIVED(){cout<<"DERIVED";}
};
intmain(){DERIVEDx;return0;)
执行后的输出结果是( )。
查看答案
D. DERlVEDBASE
36单选题36 / 43
耦合性和内聚性是对模块独或性度量的两个标准。下列叙述中正确的是( )。
查看答案
B. 降低耦合性提高内聚性有利于提高模块的独立性
37单选题37 / 43
有下列程序:
#include
voidfun(inta[],intn)
{inti,t;
for(i=0;i
i];a[n-1-i]=t;}
}
voidmain( )
{intk[10]={1,2,3,4,5,6,7,8,9,10},i;
fun(k,5);
for(i=2,i<8;i++)printf("%d",k[i]);
printf("\n");
}
程序的运行结果是( )。
查看答案
D. 321678
38单选题38 / 43
有三个关系R、S、T如下:
则由关系R和S和到关系T的操作是( )。
查看答案
B. 差
39单选题39 / 43
有如下程序:
#include
usingnamespacestd;
classXA{
inta;
public:
staticintb;
XA(intaa):a(aa){b++;}
~XA(){}
intget(){returna;}
};
intXA::b=0
intmain(){
XAd1(1),d2(3);
cout<<dl.get()+d2.get()+xa::b<
return0;
}
运行时的输出结果是( )。
查看答案
C. 7
40单选题40 / 43
设计程序时,应采纳的原则之一是( )。
查看答案
A. 程序的结构应有助于读者的理解
41主观题41 / 43
使用VC++6.0打开考生文件夹下的源程序文件1.cpp。本程序要求输入一个字符串,然后将其中的小写字母改成大写字母,字符可能输入多行,当输入字符“?”时,默认字符输入结束,最后把结果输出到屏幕中。
注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//******error******的下面。
试题程序:
#include
voidmain()
{
inti=0;
charstr[120];
cout<<"Enterastringendwith'?'."<
//********error********
cin.getline(str,120);
//********error********
while(str)
{
//********error********
if(str[i])='a')
str[i]=str[i]-'a'+'A';
i++;
}
cout<<str<
return;
}
查看答案
(1)应改为“Ein.GEtlinE(str,120,'?'#;”。
(2)应改为“while(str[i])”。
(3)应改为“if(str[i]>='a'&&str#i#<='2')”。
42主观题42 / 43
使用VC++6.0打开考生文件夹下的源程序文件2.cpp。阅读下列函数说明和代码,补充空出的代码。使sum(intn)能计算所有n的因子之和(不包括1和自身)。
注意:不能修改程序的其他部分,只能补充sum函数。
试题程序:
#include
intsum(intn)
{
}
voidmain()
{
cout<cout< cout< return;
}
查看答案
intAll=0:
For(inti=2;i<n;i++)
{
iF(n%i==0)
{
All+=i:
}
}
rEturnAll;
43主观题43 / 43
(1)应添加“BA(intm){a=m;}”。
(2)应添加“PAl(intm,intn):BA(n){b=m;}”。
(3)应添力Ⅱ“PA2(intm,intn,intk):PAl(n,k){C=m;)”。
(4)应添加“cout<<geta()<<""<<getb()<<""<<c<
查看答案
使用VC++6.0打开考生文件夹下的源程序文件3.Cpp,其中定义了类BA、PA1和PA2,其中PA1类由BA类公有派生,PA2类由PA1类公有派生。上述3个类的定义并不完整,请按要求完成下列操作,将程序补充完整。 程序输出结果如下:
1O
5
1057
(1)定义类BA的构造函数,该构造函数有一个整型的参数m,在构造函数中将m赋值给数据成员A。请在注释1之后添加适当的语句。(2)定义类PA1的构造函数,该构造函数有两个整型的参数m和n,在构造函数中将m赋值给数据成员B,将n作为基类BA构造函数的参数值传人。请在注释2之后添加适当的语句。 (3)定义类PA2的构造函数,该构造函数有3个整型的参数m、n和k,在构造函数中请将m赋值给数据成员C,将n和k分别赋值给基类PA1构造函数的参数m和n。请在注释3之后添加适当的语句。(4)完成类PA2的成员函数show的定义,该函数调用基类成员函数,输出基类私有成员A、B及类PA2自身的数据成员C的值,上述3个值在输出时用空格隔开。请在注释4之后添加适当的语句。 注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
试题程序:
#inCluDE(iostrEAm.h>
ClAssBA
{
intA;
puBliC:
//********1********
intGEtA(){rEturnA;}
};
ClAssPAl:puBliCBA
{
intB;
puBliC:
//********2********
intGEtB(){rEturnB;}
};
ClAssPA2:puBliCPAl
{
intC;
puBliC:
//********3********
voiDshow()
{
//********4********
}
};
voiDmAin()
{
PA2A(7,5,10);
Cout<<A.GEtA()<<EnDl;
Cout<<A.GEtB()<<EnDl;
A.show();
}