2015年9月计算机考试二级C++模拟试题
一、选择题。在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。

(1)假设线性表的长度为n,则在最坏情况下,冒泡排序需要的比较次数为
A)log2n
B)n2
C)O(n1.5)
D)n(n-1)/2
(2)算法分析的目的是
A)找出数据结构的合理性
B)找出算法中输入和输出之间的关系
C)分析算法的易懂性和可靠性
D)分析算法的效率以求改进
(3)线性表L=(a1,a2,a3,…ai,…an),下列说法正确的是
A)每个元素都有一个直接前件和直接后件
B)线性表中至少要有一个元素
C)表中诸元素的排列顺序必须是由小到大或由大到小
D)除第一个元素和最后一个元素外,其余每个元素都有一个且只有一个直接前件和直接后件
(4)在单链表中,增加头结点的目的是
A)方便运算的实现
B)使单链表至少有一个结点
C)标识表结点中首结点的位置
D)说明单链表是线性表的链式存储实现
(5)软件工程的出现是由于
A)程序设计方法学的影响
B)软件产业化的需要
C)软件危机的出现
D)计算机的发展
(6)软件开发离不开系统环境资源的支持,其中必要的测试数据属于
A)硬件资源
B)通信资源
C)支持软件
D)辅助资源
(7)在数据流图(DFD)中,带有名字的箭头表示
A)模块之间的调用关系
B)程序的组成成分
C)控制程序的执行顺序
D)数据的流向
(8)分布式数据库系统不具有的特点是
A)数据分布性和逻辑整体性
B)位置透明性和复制透明性
C)分布性
D)数据冗余
(9)关系表中的每一横行称为一个
A)元组
B)字段
C)属性
D)码
(10)下列数据模型中,具有坚实理论基础的是
A)层次模型
B)网状模型
C)关系模型
D)以上3个都是
(11)下列字符串中可以用作C++语言标识符的是
A)_1234
B)foo~~bar
C)virtual
D)34var
(12)关于C++语言与C语言关系描述中错误的是
A)C++语言是C语言的超集
B)C++语言对C语言进行了扩充
C)C++语言包含C语言的全部语法特征
D)C++语言与C语言都是面向对象的程序设计语言
(13)下列语句的输出结果
cout << strlen("\t\"\065\xff\n");
A)5
B)14
C)8
D)输出项不合法,无正常输出
(14)在C++语言中,不合法的实型数据的是
A)0.123
B)123e3
C)2.1e3.5
D)123.0
(15)若有如下语句
#include
void main()
{
int x=3;
do{
x=x-2;
cout << x;
}while(!(--x));
}
则上面程序段
A)输出的是1
B)输出的是1和-2
C)输出的是3和0
D)是死循环
(16)下面有关for循环的正确描述是
A)for循环只能用于循环次数已经确定的情况
B)for循环是先执行循环体语句,后判断表达式
C)在for循环中,不能用break语句跳出循环体
D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
(17)以下程序中调用cin函数给变量a输入数值的方法是错误的,其错误原因是
#include
void main()
{ int *p,*q,a,b;
p=&a;
cout << "input a:";
cin >> p;
}
A)*p表示的是指针变量p的地址
B)p表示的是变量a的地址,而不是变量a的值
C)*p表示的是指针变量p的值
D)*p只能用来说明p是一个指针变量
(18)假定int类型变量占用两个字节,其有定义int x[10]={0,2,4};,则数组x在内存中所占字节数是
A)3
B)6
C)10
D)20
(19)有以下程序
#include
void fun(int a,int b,int c)
{ a=456,b=567,c=678;}
void main()
{
int x=10,y=20,z=30;
fun(x,y,z);
cout << x << ′,′ << y << ′,′ << z << endl;
}
输出结果是
A)30,20,10
B)10,20,30
C)456,567,678
D)678,567,456
(20)以下叙述正确的是
A)函数可以嵌套定义但不能嵌套调用
B)函数既可以嵌套调用也可以嵌套定义
C)函数既不可以嵌套定义也不可以嵌套调用
D)函数可以嵌套调用但不可以嵌套定义
(21)下列定义中p指向的地址可更改,但*p不能够更改的是
A)const int *p;
B)int * const p;
C)const int *const p;
D)int *p;
(22)下面的语句中错误的是
A)int a = 5; int x[a];
B)const int a = 5; int x[a];
C)int n = 5; int *p = new int [a];
D)const int n = 5; int *p = new int [a];
(23)下面程序的结果是
#include
class A
{
int a;
public:
A():a (1){}
void showa(){cout << a;}
};
class B
{
int a;
public:
B():a (2){}
void showa(){cout << a;}
};
class C : public A, public B
{
int a;
public:
C():a (3){}
void showa(){cout << a;}
};
void main()
{
C c;
c.showa();
}
A)1
B)2
C)3
D)程序有错误
(24)关于二义性的描述错误的是
A)一个子类的两个父类中都有某个同名成员,在子类中对该成员访问可能出现二义性
B)解决二义性可以用对成员名的限定法
C)父类和子类中同时出现同名函数,也可能存在二义性
D)一个子类是从两个父类派生出来的,而这两个父类又有一个共同的父类,对该父类成员进行访问时,可能出现二义性
(25)如果表达式x*y+z中,"*"是作为友元函数重载的,"+"是作为友元函数重载的,则该表达式还可为
A)operator+( operator*(x, y),z)
B)x.operator+( operator*(x, y),z)
C)y.operator*( operator+(x, y),z)
D)x.operator+( operator*(x, y))
(26)函数模板:template
T add(T x,T y){return x+y;}
下列对add函数的调用不正确的是
A)add<>(1,2)
B)add(1,2)
C)add(1.0,2)
D)add(1.0,2.0)
(27)对于语句cout << setfill(′*′)<< setw(10)<< 1 << setfill(′*′)<< setw (2)<< 2;的输出结果是
A)*********1*2
B)********12
C)*******1*2
D)12********
(28)this指针是C++语言实现什么的一种机制?
A)抽象
B)封装
C)继承
D)重载
(29)有如下程序
#include
int func(int a,int b)
{ return(a+b);}
void main()
{ int x=2,y=5,z=8,r;
r=func(func(x,y),z);
cout << r;
}
该程序的输出的结果是
A)12
B)13
C)14
D)15
(30)下列程序的输出结果是
#include
class Myclass{
public:Myclass(int i=0,int j=0)
{ x=i;
y=j;
}
void show(){cout<<"x="<
(31)下列描述中,抽象类的特性是
A)可以说明虚函数
B)可以定义友元函数
C)可以进行构造函数重载
D)不能说明其对象
(32)在C++语言中,打开一个文件就是将这个文件与一个什么建立关联?
A)流
B)类
C)结构
D)对象
(33)下列程序的运行结果是
#include
void fun(int *a, int *b)
{ int *k;
k=a; a=b; b=k;
}
void main()
{ int a=3, b=6, *x=&a, *y=&b;
fun(x,y);
cout << a << " " << b;
}
A)6 3
B)3 6
C)编译出错
D)0 0
(34)执行语句 for(i=1;i++<4;);,后变量 i 的值是
A)3
B)4
C)5
D)不定
(35)判断char型变量c是否为小写字母的正确表达式是
A)′a′<=c<=′z′
B)(c>=A)&&(c<=z)
C)(′a′>=c)||(′z′<=c)
D)(c>=′a′)&&(c<=′z′)
二、填空题。请将每一个空的正确答案写在答题卡序号的横线上,答在试卷上不给分。
(1)在算法正确的前提下,评价一个算法的两个标准是 1 。
(2)将代数式Z= 转换成程序设计中的表达式为 2 。
(3)软件危机出现于60年代末,为了解决软件危机,人们提出了 3 的原理来设计软件,这就是软件工程诞生的基础。
(4) 4 是数据库设计的核心。
(5)在关系模型中,把数据看成一个二维表,每一个二维表称为一个 5 。
(6)一个C++语言程序的开发步骤通常包括编辑、 6 、链接、运行和调试。
(7)若已知a=10,b=20,则表达式!a (8)下面程序的运行结果是 8 和 9 。
#include
#define N 10
#define s(x)x*x
#define f(x)(x*x)
void main()
{ int i1,i2;
i1=1000/s(N); i2=1000/f(N);
cout << i1 << " " << i2;
}
(9)友元类的所有成员函数都是另一个类的 10 。
(10) 11 是实现C++语言编译时多态性的机制, 12 是实现C++语言运行时多态性的机制。
(11)表达式x.operator++()还可写成 13 。
(12)以下程序的输出结果是 14 。
#include
void main()
{ int a=0;
a+=(a=8);
cout << a;
}
(13)若要在C盘根目录下作为二进制文件打开文件test.dat,则应该用的语句是 15 。
【9月计算机考试二级C++模拟试题】相关文章:
2015年9月计算机考试二级C++模拟试题答案及解析09-18
9月计算机考试二级C语言模拟试题11-01
计算机二级C++模拟试题及答案09-22