2013年9月全国计算机等级《二级C++》上机模考试卷(8) - 233网校计算机二级题库:在线全真
1、 源程序的文档化不包括( )。
A.符号名的命名要有实际意义
B.正确的文档形式
C.良好的视觉组织
D.正确的程序注释
2、 有以下程序:
#include
usingnamespacestd;
classsample
{
private:
intn;
public:
sample(){}
sample(intm)
{
n=m:
}
sampleadd(samplesl,samples2)
{
this->n=s1.n+s2.n;
return(*this);
}
voiddisp()
{
cout<<"n="<
};
intmain()
{
samples1(10),s2(5),s3;
s3.add(s1,s2);
s3.disp();
return0:
}
程序运行后,输出的结果是( )。
A.n=10
B.n=5
C.n=20
D.n=15
3、 已知数组arr的定义如下:
intarr[5]={1,2,3,4,5};下列语句中输出结果不是2的是( )。
A.cout<<*arr+1<
4、 下列叙述中正确的是( )。
A.一个算法的空间复杂度大,则其时间复杂度必定大
B.一个算法的空间复杂度大,则其时间复杂度必定小
C.一个算法的时间复杂度大,则其空间复杂度必定小
D.上述三种说法都不对
5、 下列排序方法中,最坏情况下比较次数最少的是( )。
A.冒泡排序
B.简单选择排序
C.直接插入排序
D.堆排序
6、 在面向对象方法中,不属于“对象”基本特点的是( )。
A.一致性
B.分类性
C.多态性
D.标识唯一性
7、 下列叙述中正确的是( )。
A.在模块化程序设计中,一个模块应该尽量多地包括与其他模块联系的信息
B.在自顶向下、逐步细化的设计过程中,首先应设计解决问题的第一个细节
C.在模块化程序设计中,一个模块内部的控制结构也要符合结构化原则
D.在程序设计过程中,不能同时采用结构化程序设计方法与模块化程序设计方法
8、 有如下函数模板定义:
template
T1FUN(T2n){returnn*5,0;}
若要求以int型数据9作为函数实参调用该模板,并返回一个double型数据,则该调用应表示为( )。
A.FUN(9)
B.FUN<9>
C.FUN
D.FUN<9>(double)
9、 已知一个有序线性表为(13,18,24,35,47,50,62,83,90,115,134),当用二分法查找值为90的元素时,查找成功的比较次数为( )。
A.1
B.2
C.3
D.9
10、 下列关于运行符重载的描述中,正确的是( )。
A.运算符重载可以改变操作数的个数
B.运算符重载可以改变操作数的优先级
C.运算符重载可以改变运算符的结合性
D.运算符重载可以使运算符实现特殊功能
11、 若AA为一个类,a为该类的非静态数据成员,在该类的一个成员函数定义中访问a时,其书写格式为( )。
A.a
B.AA.a
C.a{}
D.AA:a{}
12、算法的空间复杂度是指( )。
A.算法程序的长度
B.算法程序中的指令条数
C.算法程序所占的存储空间
D.算法执行过程中所需要的存储空间
13、 有下列程序:
#include
structst
{intx,Y,date[2]={1,10,2,20};
voidmain( )
{structst*p=date;
printf("%d,",p->y);printf("%d\n",(++p)
->x);
}
程序的运行结果是( )。
A.10,1
B.20,1
C.10,2
D.20,2
14、有如下程序:
#included
usingnamespacestd;
classTestClass
{private:
intX,y;
public:
TestClass(inti,intj)
{x=i;
y=j;}
voidprint()
{cout<<"printl"<
{cout<<"print2"<
{constTestClassa(1,2);
print();
return0;}
该程序运行后的输出结果是( )。
A.printl
B.print2
C.printlprint2
D.程序编译时出错
15、 有以下类定义:
classMyClass
{
private:
intid;
chargender;
char*phone;
public:
MyClass():id(0),gender('#'),phone(NULl){}
MyClass(intn0,charge='#',char*ph=NULL)
{id=no;gender=ge;phone=ph;}
};
下列类对象定义语句中错误的是( )。
A.MyClassmyObj;
B.MyClassmyObj(11,"13301111155");
C.MyClassmyObj(12,'m');
D.MyClassmyObj(12);
16、
有下列程序:
#include
voidmain( )
{
intx=1,y=0,a=0,b=0;
switch(x)
{case1:
switch(y)
{
Case0:a++;break;
case1:b++break;
}
case2:a++;b++;break;
case3:a++;b++;
}
printf(”a=%d,b=%dn”,a,b);
}
程序的运行结果是( )。
A.a=1,b=0
B.a=2,b=2
C.a=1,b=1
D.a=2,b=1
17、
有3个关系R、S和T如下:
由关系R和S通过运算得到关系T,则所使用的运算为( )。
A.并
B.自然连接
C.笛卡儿积
D.交
18、
若变量已正确定义并赋值,以下符合C++语言语法的表达式是( )。
A.a:=b+1
B.a=b=c+2
C.intl8.5%3
D.a=a+7=c+b
19、
计算机能直接执行的程序是( )。
A.源程序
B.目标程序
C.汇编程序
D.可执行程序
20、
要定义整型数组x,使之包括初值为0的3个元素,下列语句中错误的是( )。
A.intx[3]={0,0,0};
B.intx[]={0};
C.staticintx[3]={0);
D.intx[]={0,0,0};
21、
有下列程序:
#include
intfun(intx,inyy)
{if(x==y)return(x);
elsereturn((x+y)/2);
}
voidmain()
{inta=4,b=5,C=6;
printf("%d\n",fun(2*a,fun(b,c)));
}
程序运行后的输出结果是()。
A.3
B.6
C.8
D.12
22、
下列叙述中错误的是( )。
A.gets函数用于从终端读入字符串
B.getchar函数用于从磁盘文件读入字符
C.fputs函数用于把字符串输出到文件
D.fwrite函数用于以二进制形式输出数据到文件
23、
有如下函数模板声明:
template
TMax(Ta,Tb){return(a>=b)?a.b;}
下列对函数模板Max( )的调用中错误的是( )。
A.Max(3.5,4.5)
B.Max(3.5,4)
C.Max
D.Max
24、
有下列程序:
#include
voidmain( )
{intx;
scanf(”%d”,&x);
if(x<=3);else
if(x!=10)printf("%d\n",x);
}
程序运行时,输入的值在哪个范围才会有输出结果( )。
A.不等于10的整数
B.大于3且不等10的整数
C.大于3或等于10的整数
D.小于3的整数
25、
有以下程序:
classDate
{public:
Date(inty,intm,intd);
{year=Y;
month=m;
day=d;}
Date(inty=2000)
{year=y;
month=10;
day=1;}
Date(Date&d)
{year=d.year;
month=d.month;
day=d.day;}
voidprint()
{cout<
intyear,month,day;};
Datefun(Dated)
{Datetemp;
temp=d;
returntemp;}
intmain()
{Datedatel(2000,1,1),date2(0,0,O);
Datedate3(date1);
date2=fun(date3);
return0;}
程序执行时,Date类的复制构造函数被调用的次数是( )。
A.2
B.3
C.4
D.5
26、下列表示纯虚函数的成员函数是( )。
A.virtualintfunc(int);
B.voidfunc(int)=0;
C.virtualvoidfunc=0;
D.virtualvoidrune(int){}
27、
有如下类定义:
classA{
char*a;
public:
A( ):a(O){}
A(char*aa){//把aa所指字符串拷贝到a所指向的存储空间
a=__;
strcpy(a,aa);
}
~A( ){delete[]a;}
};
横线处应填写的表达式是( )。
A.Dewchar[strlen(aa)+1]
B.char[strlen(aa)+1]
C.char[strlen(aa)]
D.newchar[sizeof(aa)-1]
28、
下列有关类继承的叙述中,错误的是( )。
A.继承可以实现软件复用
B.虚基类可以解决由多继承产生的二义性问题
C.派生类构造函数要负责调用基类的构造函数
D.派生类没有继承基类的私有成员
29、
下面程序输出的结果为( )。
#include"iostream.h"
classA
{public:
A(){cOUt<<"CLASSA"<
ClaSSB:publicA
{public:
B(){cout<<"CLASSB"<
voidmain()
{A*P;
P=newB:
B*q:
q=newB;}
A.CLASSA
B.CLASSA
CLASSBCLASSB
CLASSB
C.CLASSA
D.CLASSA
CLASSBCLASSB
CLASSACLASSB
CLASSBCLASSB
30、
原因排除法属于( )。
A.软件调试方法
B.黑盒测试方法
C.白盒测试方法
D.动态测试方法
31、
下面程序的运行结果是( )。
#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;
cout<
A.0123
B.3120
C.0312
D.3012
32、
有下列程序:
#include
voidfun(int*a,int*b)
{int*C;
c=a;a=b;b=C;
}
voidmain( )
{intx=3,y=5,*p=&x,*q=&y;
fun(p,q);printf("%d,%d,",*P,*q);
fun(&x,&y);printf("%d,%d\n",*P,*q)
}
程序运行后的输出结果是( )。
A.3,5,5,3
B.3,5,3,5
C.5,3,3,5
D.5,3,5,3
33、
C++语言中在C语言的基础上增加的特性不包括( )。
A.结构
B.引用
C.类和对象
D.静态成员函数
34、
在数据库设计中,将E—R图转换成关系数据模型的过程属于( )。
A.需求分析阶段
B.概念设计阶段
C.逻辑设计阶段
D.物理设计阶段
35、有下列程序:
#include
structord
{intx,y;}dt[2]={1,2,3,4};
voidmain( )
{structord*p=dt;
printf("%d,",++P->x);printf("%d,",++P
->y);
}
程序的运行结果是( ).
A.1,2
B.2,3
C.3,4
D.4,1
36、程序流程图中带有箭头的线段表示的是( )。
A.图元关系
B.数据流
C.控制流
D.调用关系
37、
Sample是一个类,执行下面语句后,调用Sample类的构造函数的次数是( )。
Samplea[2],*p=newSample;
A.0
B.1
C.2
D.3
38、
有下列程序段:
charch:intk:
ch='a';k=12;
printf("%c,%d,",ch,ch,k);
printf("k=%d\n",k);
已知字符a的ASCIl十进制代码为97,则执行上述程序段后输出结果是( )。
A.因变量类型与格式描述符的类型不匹配输出无定值
B.输出项与格式描述符个数不符,输出为零值或不定值
C.a,97,12k=12
D.a,97,k=12
39、
有下列程序:
#include
voidmain( )
{
FILE*fp;inta[10]={1,2,3},i,n;
fp=fopen("dl.dat","w");
for(i=0;i<3;i++)fprintf(fp,"%d",a[i]);
fprintf(fp,”\n”);
fclose(fp);
fp=open("dl.dat","r")
fscanf(fp,"%d",&n);
fclose(fp);
printf(”%d\n”,n);
}
程序的运行结果是( )。
A.12300
B.123
C.1
D.321
40、
4种基本结构中,能简化大量程序代码行的是( )。
A.顺序结构
B.分支结构
C.选择结构
D.重复结构
二、程序改错题(18分)
41、使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误,请改正其中的错误,使程序正确运行,并且使程序输出的结果为
0K
注意:错误的语句在//******error******的下面,修改该语句即可。
试题程序:
#include
classTC
{
public:
TC()
{
a=b=0:
}
private:
inta,b;
};
classTCl:publicTC
{
public:
TC1()
{
}
//******error******
virtualvoidfunc();
};
classTC2:publicTCl
{
public:
TC2()
{
a=0:
b=0:
}
voidfunc()
{
//******error******
cout<<"OK"
private:
inta;
intb;
};
voidmain()
{
TC20bj;
//******error******
TCl*p=(TCl*)obj;
p->func();
}
三、简单应用题(24分)
42、使用VC++6.0打开考生文件夹下的源程序文件2.cpp。阅读下列函数说明和代码,补充空出的代码。函数sum(intn)用于计算在n范围内,能被7和11整除的所有整数的和(包括n在内)。
注意:不能修改程序的其他部分,只能补充sum函数。
试题程序:
#include
doublesum(intn)
{
}
voidmain()
{
cout<
}
四、综合应用题(18分)
43、使用VC++6.0打开考生文件夹下的源程序文件3.cpp,其中定义了用于表示日期的类Date,但类Date的定义并不完整,按要求完成下列操作,将类的定义补充完整。
(1)定义私有成员变量year、month、day。分别表示年、月、日,类型为int。请在注释1后添加适当的语句。
(2)完成构造函数,分别给year、month、day赋值,请在注释2后添加适当的语句。
(3)完成重载符号“十=”的定义,请在注释3后添加适当的语句。
(4)完成print打印函数,输出到屏幕和文件的格式相同,请在注释4后添加适当的语句。
注意:仅在函数指定位置添加语句,请勿改动主函数main与其他函数中的任何内容。
程序正常运行,输出的结果为2008年11月813。
试题程序:
#include(iostream.h)
#include(fstream)
#include(iomanip)
#include
voidWriteFile(intc)
{
ofstreamout1;
out1.open("3.txt",ios_base::app);
out1<
}
voidWriteFile(char*str)
{
ofstreamoutl;
out1.open("3.txt",ios_base::app);
out1<
}
voidClearFile()
{
ofstreamout1;
out1.open("3.txt");
out1.close();
}
classDate
{
public:
Date(inty,intm,intd)
{
//********1********
}
voidprint();
//********2********
{
month+=m;
inti=month/12:
intj=month%12;
if(j==0)
{year+=(i-1);
month=12;
}
else
{
year+=i:
month=j;
}
return*this;
}
private:
//********3********
};
voidDate::print()
{
//********4********
WriteFile(year):
WriteFile("年");
WriteFile(month);
WriteFile("月");
WriteFile(day);
WriteFile("日");
}
intmain()
{
ClearFile();
DateOly_day(2008,8,8);
Olyday+=3:
Oly_day.print();
return0;
}
题库优势
相关阅读