2013年9月全国计算机等级《二级C++》考前冲刺试卷八
-
使用VC++6.0打开考生文件夹下的源程序文件2.cpp。阅读下列函数说明和代码,补充空出的代码。使sum(intn)能计算所有n的因子之和(不包括1和自身)。
注意:不能修改程序的其他部分,只能补充sum函数。
试题程序:
#include
intsum(intn)
{
}
voidmain
{
cout<
cout<
cout<
return;
}
-
(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<
【解析】根据第1处要求,构造函数的函数名和类名一致,显然BA构造函数的名称为BA,在BA中通过参数m完成对成员变量a的赋值,因此构造函数的名称为BA(intm),在函数内部对成员a赋值,故第1处的语句应添加“BA(intm){a=m;)”。根据第2处的要求,构造函数的形式为“PAl(intm,intn)”,m赋值给PA1类成员b,将n作为基类BA构造函数的参数值传入,故第2处应添加“PA1(intm,intn):BA(n){b=m;}”。根据第3处的要求,函数形式为PA2(intm,intn,intk),在构造函数中将m赋值给数据成员c,将n和k分别赋值给基类PA1构造函数的参数m和n,因此第3处应添加“PA2(intm,intn,intk):PA1(n,k){C=m;}”。根据第4处的要求,PA2类公有派生于PA1,而PA1公有派生于BA,因此在PA2类中可以调用基类的geta和getb来获得基类私有成员a和b,再输出PA2的私有成员C即满足要求,因此第4处应添加“cout<
-
设计程序时,应采纳的原则之一是( )。
- A.程序的结构应有助于读者的理解
- B.限制goto语句的使用
- C.减少或取消注释行
- D.程序越短越好
-
使用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<
return;
}
-
有三个关系R、S、T如下:
则由关系R和S和到关系T的操作是( )。
- A.自然连接
- B.差
- C.交
- D.并
-
有如下程序:
#include
usingnamespacestd;
classXA{
inta;
public:
staticintb;
XA(intaa):a(aa){b++;}
~XA(){}
intget(){returna;}
};
intXA::b=0
intmain(){
XAd1(1),d2(3);
cout<
return0;
}
运行时的输出结果是( )。
- A.5
- B.6
- C.7
- D.8
-
有如下程序:
#include
usingnamespacestd;
classBASE{
public:
~BASE(){cout<<"BASE";}
};
classDERIVED:publicBASE{
public:
~DERIVED(){cout<<"DERIVED";}
};
intmain(){DERIVEDx;return0;)
执行后的输出结果是( )。
- A.BASE
- B.DERlVED
- C.BASEDERIVED
- D.DERlVEDBASE
-
耦合性和内聚性是对模块独或性度量的两个标准。下列叙述中正确的是( )。
- A.提高耦合性降低内聚性有利于提高模块的独立性
- B.降低耦合性提高内聚性有利于提高模块的独立性
- C.耦合性是指一个模块内部各个元素间彼此结合的紧密程度
- D.内聚性是指模块间互相连接的紧密程度
-
有下列程序:
#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");
}
程序的运行结果是( )。
- A.345678
- B.876543
- C.1098765
- D.321678
-
有如下类模板定义:
template
classBigNumber{
longn;
public;
BigNumber(Ti):n(i){}
BigNumberoperator+(BigNumberb){
returnBigNumber(n+b.n):
}
};
已知b1、b2是BigNumber的两个对象,则下列表达式中错误的是( )。
- A.b1+b2
- B.b1+3
- C.3+b1
- D.3+3
-
关于函数中的<返回类型>。下列表述中错误的是( )。
- A.<返回类型>中有可能包含关键字int
- B.<返回类型>中有可能包含自定义标识符
- C.<返回类型>中衣可能包含字符*
- D.<返回类型>中可能包含[]
-
如果类A被说明成类B的友元,则( )。
- A.类A的成员即类B的成员
- B.类B的成员即类A的成员
- C.类A的成员函数不得访问类B的成员
- D.类B不一定是类A的友元
-
下列关于成员函数特征的描述中,错误的是( )。
- A.成员函数一定是内联函数
- B.成员函数可以重载
- C.成员函数可以设置参数的默认值
- D.成员函数可以是静态的
-
有如下程序:
#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;
}
运行时的输出结果是( )。
- A.5
- B.7
- C.9
- D.12
-
需求分析阶段的任务是确定( )。
- A.软件开发方法
- B.软件开发工具
- C.软件开发费用
- D.软件系统功能
-
某系统总体结构如下图所示:
该系统总体结构图的深度是( )。
- A.7
- B.6
- C.3
- D.2
-
在数据管理技术发展的3个阶段中,数据共享最好的是( )。
- A.人工管理阶段
- B.文件系统阶段
- C.数据库系统阶段
- D.3个阶段相同
-
以下程序的输出结果是( )。
#include
longfun(intn)
{longs;
if(n=-1‖n==2)s=2;
elses=n-fun(n-l):
returns;
}
voidmain( ){cout<
- A.1
- B.2
- C.3
- D.4
-
下列结构体类型说明和变量定义中正确的是( )。
- A.typedefstruct; {intn;charC;)REC; RECt1,t2;
- B.structREC; {intn;charC;} RECt1,t2;
- C.typedefstructREC; {intn=0;charc='A';}t1,t2
- D.struct (intn;charc;)REC; RECt1,t2
-
当派生类从一个基类保护继承时,基类中的一些成员在派生类中成为保护成员,这些成员在基类中原有的访问属性是( )。
- A.任何
- B.公有或保护
- C.保护或私有
- D.私有
-
下列选项中,不是C++关键字的是( )。
- A.class
- B.function
- C.friend
- D.viruual
-
将前缀运算符“一一”重载为非成员函数,下列原型中,能正确用于类中说明的是( )。
- A.Deer&operator一一{int};
- B.Decroperator一一(Decr&,int);
- C.friendDeer&cperator一一(Deer&);
- D.friendDeeroperacor一一(Deer&,int);
-
数据库应用系统中的核心问题是( )。
- A.数据库设计
- B.数据库系统设计
- C.数据库维护
- D.数据库管理员培训
-
以下类定义中可能会引起错误的语句是( )。
classA
{
public:
~A( ){}//1
inti;//2
private:
intj;//3
- A(inti){i++;}//4 };
- A.1
- B.2
- C.3
- D.4
-
有下列程序:
#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]);
程序的运行结果是( )。
- A.Qian,f,95,92
- B.Oian,m,85,90
- C.Zha0,f,95,92
- D.Zha0,m,85,90
-
下列关于模板形参的描述中,错误的是( )。
- A.模板形参表必须在关键字template之后
- B.模板形参表必须用括弧( )括起来
- C.可以用class修饰模板形参
- D.可以用typename修饰模板形参
-
下列关于模板的说法正确的是( )。
- A.模板的实参在任何时候都可以省略
- B.类模板与模板类所指的是同一概念
- C.类模板的参数必须是虚拟类型的
- D.类模板中的成员函数全部都是模板函数
-
最简单的交换排序方法是( )。
- A.快速排序
- B.选择排序
- C.堆排序
- D.冒泡排序
-
已知枚举类型定义语句为
enHmToken{NAME,NUMBER,PLUS=5,MINUS,PRINT=10};
则下列叙述中错误的是( )。
- A.枚举常量NAME的值为1
- B.枚举常量NUMBER的值为1
- C.枚举常量MINUS的值为6
- D.枚举常量PRINT的值为10
-
若x和y是程序中的两个整型变量,则下列if语句中正确的是( )。
- A.if(x==O)y=1;elsey=2;
- B.if(x==0)theny=1elsey=2
- C.if(x==O)y=1elsey=2;
- D.ifx==0y=1elsey=2;
-
关于函数中的<返回类型>,下列表述中错误的是( )。
- A.<返回类型>中有可能包含关键字int
- B.<返回类型>中有可能包含自定义标识符
- C.<返回类型>中有可能包含字符*
- D.<返回类型>中可能包含[]
-
有如下程序:
#include
usingnamespacestd;
classXA{
inta;
public:
staticintb;
XA(intaa):a(aa){b++;}
~XA(){}
intget(){returna;}
};
intXA::b=0
intmain(){
XAdl(1),d2(3);
cout<
return0;
}
运行时的输出结果是( )。
- A.5
- B.6
- C.7
- D.8
-
以下程序不用第3个变量实现将两个数进行对调的操作,画线处应为( )。
voidmain( )
{inta,b;
scanf("%d%d",&a,&b);
cin>>a>>b;
cout<<"a="
cout<<"a="<}
- A.a+b
- B.a-b
- C.b*a
- D.a/b
-
C++语言类体系中,不能被派生类继承的有( )。
- A.转换函数
- B.构造函数
- C.虚函数
- D.静态成员函数
-
在E—R图中,用来表示实体的图形是( )。
- A.矩形
- B.椭圆形
- C.菱形
- D.三角形
-
下列是软件调试技术的是( )。
- A.错误推断
- B.集成测试
- C.回溯法
- D.边界值分析
-
在下列字符中,不允许作为C++标识符的是( )。
- A.b
- B.B
- C._
- D.2
-
有下列程序:
#include
voidmain()
{char*a[]={"abcd","ef","gh","ijk");inti;
for(i=0;i<4;i++)printf("%C",*a[i]);
}
程序运行后的输出结果是( )。
- A.aegi
- B.dfhk
- C.abcd
- D.abcdefghijk
-
计算斐波那契数列第n项的函数定义如下:
intfib(intn){
if(n==0)returnl;
elseif(n==l)return2:
elsereturnfib(n-1)+fib(n-2);
}
若执行函数调用表达式fib(2),函数fib被调用的次数是( )。
- A.1
- B.2
- C.3
- D.4
-
下列运算符中不能在C++中重载的是( )。
- A.?:
- B.+
- C.-
- D.<=
-
阅读以下程序
#include(iostream.h>
voidmain( )
{
charline[10];
cin>>line;
cout<<1ine<
}
如运行时输入“Thisisanexample.
”,则程序的输出结果是( )。 - A.This
- B.Thisis
- C.Thisisa
- D.Thisisanexample
-
有下列程序:
#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");
}
程序运行后的输出结果是( )。
- A.1012
- B.810
- C.1028
- D.1016
-
在对象方法中,一个对象请求另一个对象为其服务的方式是通过发送( )来实现。
- A.调用语句
- B.命令
- C.中令
- D.消息