2013年9月全国计算机等级《二级C++》上机模考试卷(3)

时长:120分钟 总分:100分

67浏览 0人已完成答题

题型介绍
题型 单选题 简答题
数量 40 3
一、选择题(每小题1分,共40分)
1.
有下列程序:
#include
intb=2:
intfun(int*k)
{b=*k+b;return(b);}
voidmain()
{inta[1O]={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");
}
程序运行后的输出结果是(  )。
问题详情




2.
有下列二叉树,对此二叉树中序遍历的结果县(  )。
  
问题详情




3.
若变量已正确定义,有下列程序段
inta=3,b=5,c=7;
if(a>b)a=b;c=a;
if(C!=a)C=b;
printf(”%d,%d,%d\n”,a,b,c);
其输出的结果是(  )。
问题详情




4.
若已定义
inta[]={1,2,3,4,5,6,7,8,9,10},p=a,i=5;
则对数组元素不正确的引用是(  )。
问题详情




5.
数据的存储结构是指(  )。
问题详情




6.
下列有关模板的叙述中,正确的是(  )。
问题详情




7.
设有表示学生选课的3张表,学生S(学号、姓名、性别、年龄、身份证号)、课程C(课号、课名)、选课SC(学号、课号、成绩),则表SC的关键字(键或码)为(  )。
问题详情




8.
结构化程序所要求的基本结构不包括(  )。
问题详情




9.
已知主函数中通过如下语句序列实觋对函数模板swap的调用:
inta[10],b[1O];
swap(a,b,10);
下列对函数模板swap的声明中,会导致上述语句序列发生编译错误的是(  )。
问题详情




10.
定义无符号整数为Uint,下面可以作为类Uint实例化值的是(  )。
问题详情




11.
下列叙述中,不属于软件需求规格说明书的作用的是(  )。
问题详情




12.
下列数据结构中,能够按照“先进后出”原则存取数据的是(  )。
问题详情




13.
有如下程序:
#include
usingnamespacestd;
classVAC{
public;
intf()const(return3;}
intf(){return5;}
};
Intmain(){
VACv1:
constVACv2;
cout<<v1.f()<
return0;
}
运行时的输出结果是()。
问题详情




14.
将E—R图转换为关系模式时,实体和联系都可以表示为(  )。
问题详情




15.
在函数中,可以用aut0、extern、register和static这四个关键字中的一个来说明变量的存储类型,如果不说明存储类型,则默认的存储类型是(  )。
问题详情




16.
下列关于函数模板的描述中,正确的是(  )。
问题详情




17.
下列关于文件流的描述中,正确的是(  )。
问题详情




18.
下列说法正确的是(  )。
问题详情




19.
有下列程序:
#include
voidmain(  )
{FILE*pf;
char*s1="China",*s2="Beijing";
pf=fopen("abc.dat","wb+");
fwrite(s2,7,1,pf);
rewind(pf);/*文件位置指针回到文件开头*/
fwrite(s1,5,1,pf);
fclose(pf);
}
以上程序执行后abc.dat文件的内容是(  )。
问题详情




20.
下列叙述中正确的是(  )。
问题详情




21.
设有定义语句int(*f)(int);,则下列叙述正确的是(  )。
问题详情




22.
为类Matrix重载下列运算符号时,只能作为Matrix类成员函数重载的运算符是(  )。
问题详情




23.
有两个关系R和T如下所示:
  
则由关系R得到关系T的操作是(  )。
问题详情




24.
下列叙述中错误的是(  )。
问题详情




25.
下列程序的执行结果是(  )。
#include
classSample
{
intx,y;
public:
Sample(){x=y=0;}
Sample(inta,intb){x=a;y=b;}
~Sample()
{
if(x==y)
cout<<"x=y"<
else
cout<<"x!=y"<
}
voiddisp()
{
cout<<"x="<<x<<",y="<<y<<endl;}
};
voidmain()
{
Samples1(2,3);
s1.disp();
}
问题详情




26.
有如下程序:
#included
usingnamespqcestd;
classTestClass
{
private;
charC;
public;
TestClass(charn):c(n){}
~TestClass()
{
cout<
}
};
classTestClassl:publicTestClass
{
private:
charC;
public:
TestClassl(charn):TestClass(n+1),c(n){}~TestClassl()
{
cout<
}
};
intmain()
{
TestClasslobj('X');
return0;
}
执行上面的程序将输出(  )。
问题详情




27.
已知类MyClass的定义如下:
ClassMyClass{
public:
MyClass(intd){data=d;}
~MyClass(){}
private:
intdata;
};
下列对MyClass类对象数组的定义和初始化语句中,正确的是(  )。
问题详情




28.
下列关于二叉树的叙述中,正确的是(  )。
问题详情




29.
下列是关于派生类声明的开始部分,其中正确的是(  )。
问题详情




30.
针对数组定义intdata[10];,下列表述中错误的是(  )。
问题详情




31.
下列关于纯虚函数与抽象类的描述中,错误的是(  )。
问题详情




32.
若要对Date类中重载的加法运算符成员函数进行声明,下列选项中正确的是(  )。
问题详情




33.
下列关于构造函数和析构函数的描述,错误的是(  )。
问题详情




34.
设有如下三个关系表:
  
下列操作中正确的是(  )。
问题详情




35.
类模板的使用实际上是将类模板实例化成一个具体的(  )。
问题详情




36.
有如下程序:
#included
usingnamespacestd;
classTestClass{
protected:
TestClass(  ){cout<<'X';}
TestClass(charc){cout<
classTestClassl:publicTestClass{
public:
TestClassl(charc){cout<
intmain(  ){
TestClassld1('y');
return0;}
执行这个程序,屏幕上将显示输出(  )。
问题详情




37.
下面程序的运行结果是(  )。
#include
classbase{
protected:
inta;
public:
base(){cout<<"0";}
};
classbasel:virtualbase{
public:
basel(){cout<<"1";}
};
classbase2:virtualbase{
public:
base2(){cout<<"2";}
};
classderived:publicbasel,publicbase2{
public:
derived(){cout<<"3";}
};
voidmain()
{
derivedobj;
eout<
}
问题详情




38.
下列字符串中可以用作C++语言标识符的是(  )。
问题详情




39.
下列有关数据库的叙述,正确的是(  )。
问题详情




40.
下面有关重载函数的描述中正确的是(  )。
问题详情




二、程序改错题(18分)
41.
使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错.请改正其中的错误,使程序正常运行,并使程序输出的结果为
Maxis7
提示:max函数用于找出两个数中的最大值,并作为函
数值返回。
注意:错误的语句在//******error******的下面,修改该语句即可。
试题程序:
#include
usingnamespacestd;
//******error******
intmax(inta,intb)
{
if(a<b)
{
intt=a;
a=b:
b=t;
}
returnb;
}
intmain()
{
intm=-3:
intn=7:
//******error******
max(-3,n);
cout<<"Maxis"<<m<
return0;
}
问题详情
三、简单应用题(24分)
42.
使用VC++6.0打开考生文件夹下的源程序文件2.cpp。阅读下列函数说明和代码,完成空出部分的程序。实现函数sort(intA[],intn),用冒泡法对数组数据进行排序。所谓冒泡法,就是每次把相邻的两个数交换,较大的数交换到后面。这样下标从0到n-1的数与其后面相邻的数交换,可以把最大的数交换到数组的末端。进行n次下标从0到n-1的交换,则数组变成有序的,并且按由大到小排序。
注意:不能修改和删除程序的其他部分,也不能修改程序的结构。
试题程序:
#include
#defineN10
voidsort(intA[N],intn)
{
}
intmain()
{
intA[N]={1,50,17,69,87,42,90,-6,O,-11};
sort(A,10);
for(inti=0;i<sizeof(a)/sizeof(int);i++)
{
cout<<a[i]<<'';
}
cout<
return0;
}
问题详情
四、综合应用题(18分)
43.
使用VC++6.0打开考生文件夹下的源程序文件3.cpp。其中定义的类并不完整,按要求完成下列操作,将类
的定义补充完整,使得程序的输出结果为21。
(1)增加静态私有变量Num,类型为int,请在注释1后添加适当的语句。
(2)增加静态变量Num并初始化为10,请在注释2后添加适当的语句。
(3)完成静态函数get的定义,请在注释3后添加适当的语句。
(4)完成对象obj对静态函数get的调用,使得输出结果
为21,请在注释4后添加适当的语句。
注意:增加或者修改代码的位置已经用符号表示出来,请不要修改其他的程序代码。
试题程序:
#include
classTC
{
//********1********
intOwn;
public:
TC(inti)
{
Own=i;
}
//********2********
{
returnNum+obj->Own;
}
};
//********3********
intmain()
{
TCobj(11);
//********4********
cout<<<
return0;
}
问题详情