2012年计算机二级C++笔试模拟试题及答案
一、选择题
在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)循环链表的主要优点是
A)不再需要头指针了
B)从表中任一结点出发都能访问到整个链表
C)在进行插入、删除运算时,能更好的保证链表不断开
D)已知某个结点的位置后,能够容易的到它的直接前件
(2)栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是
A)ABCED
B)DCBEA
C)DBCEA
D)CDABE
(3)n个顶点的强连通图的边数至少有
A)n-1
B)n(n-1)
C)n
D)n+1
(4)在结构化程序设计思想提出之前,在程序设计中曾强调程序的效率。与程序的效率相比,人们更重视程序的
A)安全性
B)一致性
C)可理解性
D)合理性
(5)模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准则是模块的
A)抽象和信息隐蔽
B)局部化和封装化
C)内聚性和耦合性
D)激活机制和控制方法
(6)软件开发的结构化生命周期方法将软件生命周期划分成
A)定义、开发、运行维护
B)设计阶段、编程阶段、测试阶段
C)总体设计、详细设计、编程调试
D)需求分析、功能定义、系统设计
(7)在软件工程中,白箱测试法可用于测试程序的内部结构。此方法将程序看做是
A)路径的集合
B)循环的集合
C)目标的集合
D)地址的集合
(8)在数据管理技术发展过程中,文件系统与数据库系统的主要区别是数据库系统具有
A)特定的数据模型
B)数据无冗余
C)数据可共享
D)专门的数据管理软件
(9)数据库设计包括两个方面的设计内容,它们是
A)概念设计和逻辑设计
B)模式设计和内模式设计
C)内模式设计和物理设计
D)结构特性设计和行为特性设计
(10)实体是信息世界中广泛使用的一个术语,它用于表示
A)有生命的事物
B)无生命的事物
C)实际存在的事物
D)一切事物
(11)以下都是C++语言标识符的是
A)dsfa,df4,f$
B)huhj,a^,k2
C)3k,h,j_9
D)_ok,jk,k8
(12)C++语言中用于定义类的关键字是
A)class
B)struct
C)default
D)sizeof
(13)设以下变量均为int类型,则值不等于7的表达式是
A)(x=y=6,x+y,x+1)
B)(x=y=6,x+y,y+1)
C)(x=6,x+1,y=6,x+y)
D)(y=6,y+1,x=y,x+1)
(14)以下程序的输出结果是
#include
void main()
{ int a=21,b=11;
cout << --a+b;}
A)30
B)31
C)32
D)33
(15)while 和do-while循环的主要区别是
A)do-while的循环体至少无条件执行一次
B)while的循环控制条件比do-while的循环控制条件更严格
C)do-while允许从外部转到循环体内
D)do-while 的循环体不能是复合语句
(16)与 y=(x>0?1:x<0?-1:0);的功能相同的if语句是
A)if (x>0)y=1;
else if(x<0)y=-1;
else y=0;
B)if(x)
if(x>0)y=1;
else if(x<0)y=-1;
C)y=-1;
if(x)
if(x>0)y=1;
else if(x==0)y=0;
else y=-1;
D)y=0;
if(x>=0)
if(x>0)y=1;
else y=-1;
(17)若二维数组a有m列,则计算任一元素a[i][j]在数组中相对位置的公式为 (假设a[0][0]位于数组的第一个位置上)
A)i*m+j
B)j*m+i
C)i*m+j-1
D)i*m+j+1
(18)下面程序段的运行结果是
#include
void main()
{ char *s="abcde";
s+=2;
cout << &s;}
A)cde
B)字符′c′
C)字符′c′的地址
D)无确定的输出结果
(19)下面叙述不正确的是
A)派生类一般都用公有派生
B)对基类成员的访问必须是无两义性的
C)赋值兼容规则也适用于多重继承的组合
D)基类的公有成员在派生类中仍然是公有的
(20)下面程序应能对两个整型变量的值进行交换。以下正确的说法是
#include
void swap(int p,int q)
{ int t;
t=p;
p=q;
q=t;}
void main()
{ int a=10,b=20;
cout << a << " " << b;
swap(&a,&b);
cout << a << " " << b;}
A)该程序完全正确
B)该程序有错,只要将语句swap(&a,&b);中的参数改为a,b即可
C)该程序有错,只要将swap()函数中的形参p和q以及t均定义为指针(执行语句不变)即可
D)以上说法都不对
(21)关于友元的概念错误的是
A)友元函数没有this指针
B)调用友元函数时必须在它的实参中给出要访问的对象
C)一个类的成员函数也可以作为另一个类的友元函数
D)只能在类的公有段声明友元
(22)关于抽象类下面说法正确的是
A)抽象类就是其中有函数定义但没有实现的类
B)抽象类是可以被实例化的
C)派生类不能成为抽象类
D)抽象类的子类必须实现父类中的纯虚函数
(23)下面程序的结果是
#include
class test { private:
int num;三目条件运算符?:的含义
public:
test();
int getint(){return num;}
~test();};
test :: test()
{ num =0;}
test::~test()
{ cout<<"Destructor is active"< void main()
{ test x[3];
cout<<"Exiting main"< A)Exiting main
Destructor is active
Destructor is active
Destructor is active
B)Exiting main
Destructor is active
Destructor is active
C)Exiting main
Destructor is active
D)Exiting main
(24)如果表达式--x+y中,--是作为成员函数重载的, +是作为成员函数重载的,则该表达式还可为
A)y.operator+(x.operator--(0))
B)y.operator+(x.operator--())
C)y.operator+(operator--(x,0))
D)operator+(x.operator--())
(25)下列语句不能够用于打开C根目录下文件的语句是
A)ifstream fin; fin.open("C:\\");
B)ifstream fin("C:\\");
C)A)和B)
D)ifstream fin; fin("C:\\");
(26)以下哪个基类中的成员函数表示纯虚函数?
A)virtual void vf (int)
B)void vf (int)=0
C)virtual void vf(=0)
D)virtual void yf(int){ }
(27)下面程序输出的结果是
#include
void main()
{ int i;
int a[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
cout << a[i][i] << " ";}
A)1 5 9
B)7 5 3
C)3 5 7
D)5 9 1
(28)派生类继承基类的方式有
A)public
B)private
C)protected
D)以上都对
(29)下列程序的运行结果为
#include
class Location {
protected:
int X, Y;
public:
void SetX(int myx){X=myx;}
void SetY(int myy){Y=myy;}
void showxy(){cout << "X=" << X << " " << "Y=" << Y < class Rectangle : public Location{
private:
int H, W;
public:
void SetH(int myh){H=myh;}
void SetW(int myw){W=myw;}
void show(){ cout << "X=" << X << " " << "Y=" << " " << Y << " " << "H=" << H << " " << "W=" << W << endl;}};
void main()
{ Rectangle r1;
r1.SetX (3);
r1.SetY (5);
r1.SetH (4);
r1.SetW (6);
r1.showxy();
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论