计算机类二级C++

2014年全国计算机等级《二级C++》考前押密试卷(1)

43 题含答案C++
共 43 题返回本类
1单选题1 / 43
假定int类型变量占用两个字节,其有定义int x[10]={0,2,4};,则数组x在内存中所占字节数是( )。
查看答案
D. 20
2单选题2 / 43
有两个关系R,S如下:
  
由关系R通过运算得到关系s,则所使用的运算为(  )。
查看答案
B. 投影
3单选题3 / 43
对于循环队列,下列叙述中正确的是( )。
查看答案
D. 队头指针可以大于队尾指针,也可以小于队尾指针
4单选题4 / 43
下列有关函数重载的叙述中,错误的是(  )。
查看答案
C. 重载函数的返回值类型必须不同
5单选题5 / 43
有三个关系R S和T如下
  
则由关系R和S得到关系T的操作是( )。
查看答案
D. 差
6单选题6 / 43
下面关于类和对象的描述中,错误的是( )。
查看答案
A. 类就是C语言中的结构体类型,对象就是C语言中的结构体变量
7单选题7 / 43
有如下程序:
#inClude using namespaCe std; Class test{
private: int a;
publiC:
test(  ){Cout<<”ConstruCtor”<<ENDL;}&NBSP;&NBSP;&NBSP; test(int A.{Cout<<a<<endl;}
test(Const test&_test){ a=test.a:
Cout<<”Copy ConstruCtor”<<ENDL:&NBSP;&NBSP;&NBSP; }
test(  ){Cout<<”destruCtor”<<ENDL;}
};
int main(  ){ test A(3); return 0;
}
执行这个程序的输出结果是(  )。
查看答案
D. 3
destruCtor
8单选题8 / 43
有如下函数模板:
template
T east(U u)i return u;}
其功能是将U类型数据转换为T类型数据。已知i为int型变量,下列对模板函数cast的调用中正确的是(  )。
查看答案
D. east(i);
9单选题9 / 43
下面程序的运行结果是(  )。
#include
void fun(int *a,int *B. {
int x=*a:
*a=*b;*b=X;
cout<<*a<<*b<<””:
void main() {
int X=1,Y=2; fun(&x,&y);
cout<<X<<Y<
}
查看答案
D. 21 21
10单选题10 / 43
在C++语言中,打开一个文件就是将这个文件与一个( )建立关联。
查看答案
A. 流
11单选题11 / 43
下列语句中,错误的是( )。
查看答案
B. const int temp;
12单选题12 / 43
下列程序的输出结果为( )。
#include
void main()
{
char*a[]={”hell0”,”the”,”world”};
char** pa = a:
pa++;
cout<<*pa<
}
查看答案
B. the
13单选题13 / 43
关于运算符重载,下列表述中正确的是(  )。
查看答案
C. 在类型转换符函数的定义中不需要声明返回类型
14单选题14 / 43
可以用P.a的形式访问派生类对象P的基类成员a,其中a是( )。
查看答案
D. 公有继承的公有成员
15单选题15 / 43
在下列原型所示的C++函数中,按“传值”方式传递参数的是(  )。
查看答案
A. void fl(int X);
16单选题16 / 43
以下关键字不能用来声明类的访问权限的是(  )。
查看答案
B. static
17单选题17 / 43
下面程序的运行结果为( )。
#include class A
{
int hum;
public:
A(int i){nuln=i;}
A(A&A.{num=a.num十+;} void print(){eout(
void main()
A a(1),b(A.; a.print();
A print();
查看答案
C. 21
18单选题18 / 43
下面是重载为非成员函数的运算符的函数原型,其中错误的是( )。
查看答案
C. Fraction&operator=(Fraction&,Fraction);
19单选题19 / 43
下列语句中错误的是( )。
查看答案
A. Const int a;
20单选题20 / 43
下列关于函数的描述中,错误的是( )。
查看答案
D. 函数不能被定义为模板
21单选题21 / 43
下列语句都是程序运行时的第1条输出语句,其中一条语句的输出效果与其他三条语句不同,该语句是( )。
查看答案
D. cout<<SETW(6)<
22单选题22 / 43
有三个关系R、S和T如下:
  
则由关系R和S得到关系T的操作是( )。
查看答案
B. 差
23单选题23 / 43
有如下程序:
#include
using namespace std;
class VAC{
public:
intf()const{return 3;}
int f(){retum 5;}
};
int main()
{
VAC vl;
const VAC v2;
cout<<VL.F()<
return 0;
}
执行这个程序的输出结果是( )。
查看答案
A. 53
24单选题24 / 43
一间宿舍可住多个学生,则实体宿舍和学生之间的联系是(  )。
查看答案
B. 一对多
25单选题25 / 43
下列关于二叉树的叙述中,正确的是( )。
查看答案
B. 叶子结点总是比度为2的结点多一个
26单选题26 / 43
有以下语句,则对a数组元素的引用不正确的是(0≤i≤9)( )。
int a[10]={0,1,2,3,4,5,6,7,8,9},*P=a;
查看答案
D. *(*(a+i))
27单选题27 / 43
下列程序的运行结果为( )。
#include
void print(double A.
{
cout<<++a:
}
void print(int atint B.
{
cout<<B<
}
void main()
{
print(1.2);
eout<<””:
print(3,4);
}
查看答案
D. 2.2 43
28单选题28 / 43
存在定义int a[10],x,* pa;,若pa=&a[0],下列的( )选项和其他3个选项不是等价的。
查看答案
A. x=*pa;
29单选题29 / 43
下列叙述中正确的是(  )。
查看答案
D. 循环队列中元素的个数是由队头指针和队尾指针共同决定
30单选题30 / 43
通常拷贝构造函数的参数是( )。
查看答案
C. 某个对象的引用名
31单选题31 / 43
如果在表达式++x/y中,“++”是作为友元函数重载的,…/”是作为成员函数重载的,则该表达式还可为( )。
查看答案
A. (operator++(x)).operator/(Y)
32单选题32 / 43
一个函数功能不太复杂但要求被频繁调用,应选用( )。
查看答案
A. 内联函数
33单选题33 / 43
数据库应用系统中的核心问题是(  )。
查看答案
A. 数据库设计
34单选题34 / 43
有如下程序: Class Base{ publiC:
int data; };
Class Derivedl:publiC Base{};
Class Derived2:proteCted Base{};
int main(  ) {
Derivedl dl; Derived2 d2; dl.data=0;//①
d2.data=0;//② retum 0;
}
下列关于程序编译结果的描述中,正确的是(  )。
查看答案
C. ①无编译错误,②有编译错误
35单选题35 / 43
下列关于基类和派生类关系的叙述中,正确的是(  )。
查看答案
D. 派生类除了继承基类的成员,还可以定义新的成员
36单选题36 / 43
结构化程序所要求的基本结构不包括( )。
查看答案
B. GOT0跳转
37单选题37 / 43
将E—R图转换为关系模式时,实体和联系都可以表示为(  )。
查看答案
C. 关系
38单选题38 / 43
下面是一个模板声明的开始部分:
templatedouble…由此可知( )。
查看答案
A. 这可能是一个函数模板的声明
39单选题39 / 43
有如下程序:
#include
using namespace std;
class AA{
int k;
protected:
int n;
void setK(int k){this一>k=k;}
public:
void setN(int n){this一>n=n;}
};
class BB:public AA{/*类体略*/};
int main()
}
BB X;
A n=1;//1
B setN(2);//2
C k=3;//3
D setK(4);//4
return 0;
}
在标注号码的四条语句中正确的是( )。
查看答案
B. 2
40单选题40 / 43
有如下头文件:
int fl();
static int f2();
class MA{
public:
int f3();
static int f4();
};
在所描述的函数中,具有隐含的this指针的是( )。
查看答案
C. f3
41主观题41 / 43
请使用VC6或使用【答题】菜单打开考生文件夹projl下的工程projl,该工程中包含程序文件main.epp,其中有类Door(“门”)和主函数main的定义。程序中位于每个“//ERROR****found ****”之后的一行语句有错误,请加以改正。改正后程序的输出结果应为:
打开503号门…门是锁着的,打不开。
打开503号门的锁…锁开了。
打开503号门…门打开了。
打开503号门…门是开着的,无须再开门。
锁上503号门…先关门...门锁上了。
注意:只修改每个“//ERROR***********found **********”下的那一行,不要改动程序中的其他内容。
#include
using namespace std;
class Door{
int Bum;//门号
bool closed;//true表示门关着
bool locked://true表示门锁着
public:
Door(int nHm){
//ERROR***********found***********
nun=this一>ann:
closed=locked=true:
}
bool isClosed()const{rehlrn closed;}
//门关着时返回true,否则返回false
bool isOpened()const{return!closed;}
//门开着时返回true,否则返回false
b001 isLocked()const{retum locked;}
//门锁着时返回true,否则返回false
bool isUnlocked()const{return!locked;}
//门未锁时返回true,否则返回false
void open(){ //开门
cout<<ENDL<<”打开”<<NNM<
//ERROR***********found***********
if(closed)
cout<<”门是开着的,无须再开门。”;
else if(10cked)
cout<<”门是锁着的,打不开。”;
else{
closed=false;
eout<<”门打开了。”;
}
}
void close(){//关门
cout<<ENDL<<”关上”<<NUM<
if(closed)
cout<<”门是关着的,无须再关门。”;
else{
closed=true;
cout<<”门关上了.";
}
}
//ERROR************found************
void lock()const{//锁门
cout<<ENDL<<”锁上”<<NUM<
if(locked)
cout<<”门是锁着的,无须再锁门。”;
else{
if(!closed){
cout<<”先关门...”;
closed=true;
}
locked=true:
cout<<”门锁上了。”;
}
}
wild unlock(){//开锁
cout<<ENDL<<”开”<<NUM<
if(!locked)
cout<<”门没有上锁,无须再开锁。”;
else{
locked=false;
cout<<”锁开了。”;
}
};
int main(){
Door door(503);
door.open();
door.unlock();
door.open();
door.open();
floor.10ck();
return 0;
}
查看答案
(1)this—>num=num;
(2)iF(!ClosED)
(3)voiD loCk(){
42主观题42 / 43
请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2,该工程中包含一个程序文件 main.cpp,其中有类CPolygon(“多边形”)、CRectangle(“矩形”)、CTriangle(“三角形”)的定义。请在横线处填写适当的代码并删除横线,以实现上述类定义。该程序的正确输出结果应为: 注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“//****found****”。 #include
{tout<<——<
int area(void){return(width *height);}
class CTriangle:public CPolygon{
int length;//三角形一边长 int height;//该边上的高
public:
CTriangle(int l,int h):length(1),height(h){}
//*********found*********
int area(void){return(——)/2;}
};
int main(){
CRectangle rect(4,5); CTriangle trgl(4,5);
//*********found********* ______ *ppolyl,* ppoly2; ppolyl=&rect;
ppoly2=&trgl;
ppolyl->printarea(); ppoly2->printarea(); retun 0;
查看答案
(1)virtuAl int ArEA(voiD)=0;
(2)ArEA()
(3)lEnGth*hEiGht
(4)CPolyGon
43主观题43 / 43
请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程proj3,其中声明的DataList类,是一个用于表示数据表的类。s0rt成员函数的功能是将当前数据表中的元素升序排列。请编写这个sort函数。程序的正确输出应为:
排序前:7,1,3,11,6,9,12,10,8,4,5,2 排序后:l,2,3,4,5,6,7,8,9,10,11,12
要求:
补充编制的内容写在“//********33********”与“//********666********”两行之问。不得修
改程序的其他部分。
注意:程序最后将结果输出到文件。ut.dat中。输出函数writeToFile已经编译为。obj文件,并且在本程序
调用。
//DataList.h
#inClude using namespaCe std; Class DataList{//数据表类
int len;
double*d: publiC:
DataList(int len,double data[]=NULL);。DataList(){delete[]d;}
int length(Constt retum len;}//数据表长度(即数据元素的个数) double getElement(int i)Const{return d[i];}
void sort();//数据表排序
void show()Const;//显示数据表}.
void writeToFile(Char*,Const DataList&).//main.Cpp
#inClude”DataList.h”
DataList::DataList(int len,double data[]):len(1en){ d=new double[1en];
for(int i_0;i<LEN;I++)
d[i]=(data==NULL?0.0:data[i]);
}
void DataList::sort(){//数据表排序//********333********
//********666********}
void DataList::show()Const{//显示数据表
for(int i=0;i<LEN一1;I++)COUT<<D[I]<<”,”;&NBSP;&NBSP;&NBSP;
}
int main(){
double S[]={7,1,3,11,6,9,12,10,8,4,5,2}; DataList list(12,S);
Cout<<”排序前:”; list.show();
list.sort();
Cout<<ENDL<<”排序后:”;&NBSP;
writeToFile(””,list); return 0;
}
查看答案
For(inti=0;i<lErl;++i)//从头遍历数组D
for(int j=i;j<len:++j)
//从i+1处遍历数组d
if(d[i]>d[j])
//d[j]和d[j]比较人,如果大于,就d[i]和d[j]值交换{inttemp=d[i];
//把临时整型变量temp赋值为cJ[i]d[i]=d[j];
//把d[j]赋值给d[i]d[j]=temp;//把temp值赋给d[j]
}
← 上一卷下一卷 →