国家二级C++机试(选择题)模拟试卷218
选择题
1.下列叙述中正确的是( )。(B)
A. 算法的效率只与问题的规模有关,而与数据的存储结构无关
B. 算法的时间复杂度是指执行算法所需要的计算工作量
C. 数据的逻辑结构与存储结构是一一对应的
D. 算法的时间复杂度与空间复杂度一定相关
解析:算法的时间复杂度是指执行算法所需要的计算工作量。算法的工作量用算法所执行的基本运算的次数来度量,而算法所执行的基本运算次数是问题规模的函数;算法的空间复杂度一般是指执行这个算法所斋要的内存空间。算法的时间复杂度与空间复杂度并不相关。数据的逻辑结构就是数据元素之间的逻辑关系,它足从逻辑上描述数据元素之间的关系,是独立于计算机的:数据的存储结构是研究数据元素和数据元素之间的关系如何在计算机中表示,它们并非一一对应。算法的执行效率不仅与问题的规模有关,还与数据的存储结构有关。
2.下列数据结构中,能够按照“先进后出”原则存取数据的是(B)
A. 循环队列
B. 栈
C. 队列
D. 二叉树
解析:栈按照“先进后出”(FILO)或“后进先出”(LIFO)组织数据;队列是“先进先出”(FIFO)或“后进后出”(LILO)的线性表。
3.下列叙述中正确的是(D)
A. 栈是“先进先出”的线性表
B. 队列是“先进后出”的线性表
C. 循环队列是非线性结构
D. 有序线性表既可以采用顺序存储结构,也可以采用链式存储结构
解析:本题主要考查了栈、队列、循环队列的概念,栈是先进后出的线性表,队列是先进先出的线性表。根据数据结构中各数据元素之间的前后件关系的复杂程度,一般将数据结构分为两大类型:线性结构与非线性结构。有序线性表既可以采用顺序存储结构,又可以采用链式存储结构。
4.下列叙述中正确的是( )。(D)
A. 栈是一种先进先出的线性表
B. 队列是一种后进先出的线性表
C. 栈与队列都是非线性结构
D. 以上三种说法都不对
解析:栈是先进后出的线性表,队列是先进先出的线性表,二者均为线性结构。
5.下列叙述中正确的是( )。(D)
A. 循环队列有队头和队尾两个指针,因此,循环队列是非线性结构
B. 在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况
C. 在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况
D. 循环队列中元素的个数是由队头指针和队尾指针共同决定
解析:循环队列中元素的个数是由队头指针和队尾指针共同决定的,元素的动态变化也是通过队头指针和队尾指针来反映的。
6.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是( )。(A)
A. 学生成绩管理系统
B. C语言编译程序
C. UNIX操作系统
D. 数据库管理系统
解析:学生成绩管理系统为应用软件。
7.有如下类定义:
class MyClass{
Int value;
public;
MyClass(int n):value(n){}
int gerValueoconst{return value;)
};
则类MyClass的构造函数的个数是( )。(A)
A. 1个
B. 2个
C. 3个
D. 4个
解析:此题考查的是构造函数的概念。构造函数的名字必须与类名相同:构造函数不指定返回值类型;构造函数可以重载;在创建对象时,系统会自动调用构造函数。
8.在类声明中,紧跟在“public:”后声明的成员的访问权限是( )。(B)
A. 私有
B. 公有
C. 保护
D. 默认
解析:类中提供了3种访问控制的权限:公有,私有和保护。其中公有类型定义了类的外部接口,任何一个外部的访问都必须通过外部接口进行。私有类型的成员只允许本类的成员函数访问,来自类外部的任何访问都是非法的,保护类型介于公有类型和私有类型之间,在继承和派生时可以体现出其特点。
9.有如下说明
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
则数值为9的表达式是( )。(B)
A. *p+9
B. *(p+8)
C. *p+=9
D. p+8
解析:此题考查的是指针的运用。选项A中,*p返回的是数组元素a[0]的值,所以最后结果是1+9=10;选项B是指针p后移8个单位位置处的值,即a[8]其值为9;选项C中表达式的值和选项A相同;选项D的值是一个地址值,该值无法确定。
10.语句int*p=&k;定义了指针p,与这个语句等效的语句序列是( )。(A)
A. int*p;p=&k;
B. int*p;p=k;
C. int*p;*p=&k;
D. int*p;*p=k
解析:此题考查的是指针的赋值。题目中的语句int*p=&k;定义了一个int类型的指针p,并将变量k的地址&k赋给指针p。所以等效语句是:int*p;p=&k;。
11.有如下定义:
int a[5]={1,3,5,7,9},*p=a;
下列表达式中不能得到数值5的是( )。(B)
A. a[2]
B. a[3]
C. *(p+2)
D. *p+4
解析:此题考查的是指针引用数组元素。B选项中,a[3]是数组的第四个元素,即7;其它选项的引用均可得到5。
12.有如下程序:
#include
using namespace std;
clas.s Complex
{
double re.im;
public:
Complex(double r,double i):re(r),im(i){}
double real()const{。return re;)
double image()const{return im;}
Complex&operator+=(Complex a)
{
re+=a.re:
im+=a.im;
retum*this:
}
};
ostream&operator<<(ostream&S,const Complex&z)
{
return s<<‘(’<<z.real()<<‘,’<<z.image()<<‘)’;
)
int main()
{
Complex x(1,一2),y(2,3);
cout<<(x+=y)<<endl;
retum 0:
本文档预览:3600字符,共6232字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载