计算机类二级C++

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

43 题含答案C++
共 43 题返回本类
1单选题1 / 43
算法的空间复杂度是指(  )。
查看答案
A. 算法在执行过程中所需要的计算机存储空间
3单选题3 / 43
对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是(  )。
查看答案
D. 堆排序
4单选题4 / 43
数据库系统的三级模式不包括(  )。
查看答案
D. 数据模式
5单选题5 / 43
SQL语言又称为(  )。
查看答案
C. 结构化查询语苦
7单选题7 / 43
假定MyClass为一个类,那么下列的函数说明中,(  )为该类的析构函数。
查看答案
D. ~MyClass(  );
8单选题8 / 43
有以下结构体说明和变量的定义,且指针P指向变量a,指针q指向变量b。则不能把结点b连接到结点a之后的语句是(  )。
structnode
{chardata;
structnode*next;
}a,b,*p=&a,*q=&b;
查看答案
B. P.next=&b;
9单选题9 / 43
若有表达式“(w)?(--x):(++y)”,则其中与w等价的表达式是(  )。
查看答案
D. W!=0
10单选题10 / 43
有如下函数模板声明:
template
TMax(Ta,Tb){return(a>b)?a:b;}
下列对函数模板Max(  )的调用中错误的是(  )。
查看答案
B. Max(3.5,4)
11单选题11 / 43
C++语言中关于构造函数的说法正确的是(  )。
查看答案
C. 每个类必定有构造函数
12单选题12 / 43
下列描述中,错误的是(  )。
查看答案
C. 保护继承时基类中的公有成员在派生类中仍是公有成员
13单选题13 / 43
结构化程序所要求的基本结构不包括(  )。
查看答案
B. GOTO跳转
15单选题15 / 43
下列数据结构中,属于非线性结构的是(  )。
查看答案
C. 二叉树
16单选题16 / 43
对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为(  )。
查看答案
C. n
17单选题17 / 43
下面程序的运行结果为(  )。#include
voidswap(int&a,intb)
{
inttemp;
temp=a++;
a=b:
b=temp:
}
voidmain()
{
inta=2,b=3;
swap(a,b);
cout<<a<<","<<b<
}
查看答案
D. 3,3
18单选题18 / 43
若有以下程序:
#include
usingnamespacestd;
classBase
{public:
Base()
{x=0;}
intx;};
classDerivedl:virtualpublicBase
{public:
Derivedl()
{x=10;}};
classDerived2:virtua11publicBase
{public:
Derived2()
{x=20;}};
classDerived:publicDerivedl,protectedDerived2{};intmain()
{Derivedobj;
cout<<obj.x<
return0;}
该程序运行后的输出结果是(  )。
查看答案
A. 20
20单选题20 / 43
考虑函数原型voidtest(inta,intb=7,charz='*'),下面的函数调用中,属于不合法调用的是(  )。
查看答案
C. test(6,'#');
21单选题21 / 43
当需要将一个函数boolisnunlber(charc)声明为内联函数时,此内联函数的函数原型为(  )。
查看答案
C. inlineboolisnumber(charc);
22单选题22 / 43
有如下程序:
#include
usingnamespacestd;
intmain(  ){
inta[6]={23,l5,64,33,40,58};
ints1,s2;
s1=s2=a[0];
for(int*p=a+1;p<a+6;p++){
if(sl>*p)s1=*P;
if(s2<*p)s2=*p;
}
cout<<s1+s2<
return0;
}
运行时的输出结果是(  )。
查看答案
D. 79
23单选题23 / 43
以下程序中调用cin函数给变量a输入数值的方法是错误的,其错误的原因是(  )。
#include(iostream.h)
voidmain(  )
{int*P,*q,a,b;
p=&a;
cout<<"inputa:";
cin>>P;
}
查看答案
B. P表示的是变量a的地址,而不是变量a的值
24单选题24 / 43
有以下程序:
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<<year<<"."<(month<<"."<<day<
}
private:
intyear,month,day;
};
Datefun(Dated)
{
Datetemp;
temp=d;
returntemp;
}
intmain(  )
{
Datedatel(2000,1,1),date2(0,0,0);
Datedate3(datel);
date2=fun(date3);
return0;
}
程序执行时,Date类的拷贝构造函数被调用的次数是(  )。
查看答案
B. 3
25单选题25 / 43
下面程序的输出结果是(  )。
#include
Usingnamespacestd;
ClassBase{
public:
Base(intx=O){count<
}
};
ClassDerived:publicBase{
public:Derved(intx=0{count<
}
private;
Baseval;
};
intmina(){
Derivedd(1);
retrun0;
}
查看答案
C. 01
26单选题26 / 43
软件设计中划分模块的一个准则是(  )。
查看答案
B. 高内聚低耦合
27单选题27 / 43
下列程序的运行结果是(  )。
#include
intx=5;
intfun(inta)
{
intc:
c=X*a: </year<<"."<(month<<"."<<day<
returnC;
}
voidmain()
{
intx=3,a=4;
x=x+fun(a);
cout<<"x="<<x<
}
查看答案
C. x=23
28单选题28 / 43
数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是(  )。
查看答案
C. DBS包含DB和DBMS
29单选题29 / 43
在软件开发中,需求分析阶段产生的主要文档是(  )。
查看答案
D. 软件需求规格说明书
30单选题30 / 43
有如下程序:
#include
usingnamespacestd;
classXA{
inta;
public:
staticintb;
XA(intaa):a(aa){b++;}
~XA(  ){}
intget(  ){returna;}
};
intXA::b=0
intmain(  ){
XAd1(1),d2(3);
cout<<
return0;
}
运行时的输出结果是(  )。
查看答案
C. 7
32单选题32 / 43
对于模板定义关键字class和typename说法不正确的是(  )。
查看答案
B. class和typename都可互相替换
33单选题33 / 43
下面程序的运行结果为(  )。
#include
ClassA
{
public:A(  ){cout<<"1";}
~A(  ){cout<<"2";}
};
ClassB:public:A
{
public:
B(  ){cout<<"3";}
~B(  ){cout<<"4";}
};
Voidmain(  )
{
Bb;
}
查看答案
C. 1342
34单选题34 / 43
有如下程序:
#include
usingnamespacestd;
classPublication{//出版物类
charname[30];
public:
Publication(char*name=”未知名称”){
~strcpy(this一>name,name);
}
constchar*getName(  )const{returnname;}
virtualconstchar*getType(  )const{return”未知类型”;}
};
classBook:publicPublication{//书类
public:
Book(char*name):Publication(name){}
virtualconstchar*getType(  )const{return"书";}
};
voidshowPublication(Publication&p){
cout<<<":"<<<
endl;
}
intmain(  ){
Bookbook(”精彩人生”);
showPublication(book);
return0;
}
运行时的输出结果是(  )。
查看答案
D. 书:精彩人生
35单选题35 / 43
若有以下程序:
#include
usillgnamespacestd;
classA
{private:
inta;
public:
A(inti)
{a=i;}
voiddisp()
{cout<<a<<",";}};
classB
{private:
intb;
public:
B(intj)
{b=j;}
voiddisp()
{COUt<<b<<",";}};
classC:publicB,publicA
{private:
intC;
public:
C(intk):A(k-2),B(k+2)
(c=k;)
voiddisp()
{A::disp();
B::disp();
cout<<c<
intmain()
{Cobj(10);
obj.disp();
return0;}
程序执行后的输出结果是(  )。
查看答案
D. 8,12,10
36单选题36 / 43
若AA为一个类,a为该类的非静态数据成员,在该类的一个成员函数定义中访问a时,其书写格式为(  )。
查看答案
A. a
38单选题38 / 43
下列程序的运行结果是(  )。
#include
intx=5:
intfun(inta)
{
intC;
C=X*a:
returnC;
}
voidmain(  )
{
intx=3,a=4;
x=x+fun(a);
cout<<"x="<<x<
}
查看答案
C. x=23
39单选题39 / 43
面向对象的没计方法与传统的面向过程的方法有本质不同,它的基本原理是(  )。
查看答案
C. 使用现实世界的概念抽象地思考问题从而自然地解决问题
40单选题40 / 43
负责数据库中查询操作的数据库语言是(  )。
查看答案
C. 数据操纵语言
41主观题41 / 43
使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错。请改正程序中的错误,使程序输出的结果为
100
37
32
注意:错误的语句在//******error******的下面,修改该语句即可。
试题程序:
#include
//******error******
voidmain
{
//******error******
intm=0142:
//******error******
intn=0X27:
intq=32;
cout<<m<
cout<<n<
cout<<q<
return;
}
查看答案
(1)“voiDmAin()”。
(2)“intm=0144;”。
(3)“intn=OX25;”或“intn===0x25;”。
42主观题42 / 43
使用VC++6.0打开考生文件夹下的源程序文件2.cpp。请完成函数fun(intn),使其实现以下功能:当i等于3时,则打印如下内容。
A
AA
AAA
注意:不能修改程序的其他部分,只能修改fun函数。
试题程序:
#include
voidfun(intn)
{
}
voidmain()
{
intn;
cout<<"请输入打印的行数:"<
cin>>n;
if(n<1)
{
cout<<"输入的行数必须大于0"<
return;
}
fun(n);
return;
}
查看答案
inti;
For(i=0;i<n;i++)//外层循环,要打印的行数
{
intj;
For(j=0;j(n-i-1;j++)//循环打印空格
{
Cout<<'';
}
For(;j<n;j++)//循环打印A
{
Cout<<"A":
}
Cout<<EnDl;//打印每一行的回车符
}
43主观题43 / 43
使用VC++6.0打开考生文件夹下的源程序文件3.cpp。请完成以下部分,实现在屏幕上输出为
C3
C2
这个程序需要修改的部分,请按照以下部分实现。
(1)类C0不能被实例化,请定义一个纯虚函数print,在注释1后添加适当的语句。
(2)类C1私有虚继承类C0,请在注释2后添加适当的语句。
(3)类C2公有继承于C0,请在注释3后添加适当的语句。
(4)类c3公有继承于C2与C1,请在注释4后添加适当的语句。
注意:增加代码或者修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。
试题程序:
#include(iostream.h)
classCO
{
//********1********
};
//********2********
classC1:
{
public:
voidprint()
{
cout<"”C1"<
}
};
//********3********
classC2:
{
public:
voidprint()
{
cout<<"C2"<
}
};
//********4***x****
classC3:
{
public:
voidprint()
{
cout<<"C3"<
}
};
voidmain()
{
C30bj3;
C20bj2;
obj3.print();
obj2.print();
return;
}
查看答案
(1)应添加“virtuAlvoiDprint()=0,”。
(2)“ClAssC1:”应改为“ClAssC1:virtuAlprivAtEC0”。
(3)“ClAssC2:”应改为“ClAssC2:puBliCC0”。
(4)“ClAssC3:”应改为“ClAssC3:puBliCC2,puBliCC1”。
← 上一卷下一卷 →