国家二级(C++)机试模拟试卷151
选择题
1.下列数据结构中,属于非线性结构的是( )。(C)
A. 循环队列
B. 带链队列
C. 二叉树
D. 带链栈
解析:树是简单的非线性结构,所以二叉树作为树的一种也是一种非线性结构。
2.下列数据结构中,能够按照“先进后出”原则存取数据的是( )。(B)
A. 循环队列
B. 栈
C. 队列
D. 二叉树
解析:栈是按先进后出的原则组织数据的。队列是先进先出的原则组织数据。
3.对于循环队列,下列叙述中正确的是( )。(D)
A. 队头指针是固定不变的
B. 队头指针一定大于队尾指针
C. 队头指针一定小于队尾指针
D. 队头指针可以大于队尾指针,也可以小于队尾指针
解析:循环队列的队头指针与队尾指针都不是固定的,随着入队与出队操作要进行变化。因为是循环利用的队列结构所以队头指针有时可能大于队尾指针有时也可能小于队尾指针。
4.算法的空间复杂度是指( )。(A)
A. 算法在执行过程中所需要的计算机存储空间
B. 算法所处理的数据量
C. 算法程序中的语句或指令条数
D. 算法在执行过程中所需要的临时工作单元数
解析:算法的空间复杂度是指算法在执行过程中所需要的内存空间。所以选择A。
5.软件设计中划分模块的一个准则是( )。(B)
A. 低内聚低耦合
B. 高内聚低耦合
C. 低内聚高耦合
D. 高内聚高耦合
解析:一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。
6.下列选项中不属于结构化程序设计原则的是( )。(A)
A. 可封装
B. 自顶向下
C. 模块化
D. 逐步求精
解析:结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以选择A。
7.软件详细设计产生的图如下:
(C)
A. N-S图
B. PAD图
C. 程序流程图
D. E-R图
解析:N-S图提出了.帑方框图来代替传统的程序流程图,所以A不对。PAD图是问题分析图,它是继承程序流程图和方框图之后提出的又一种主要用于描述软件详细设计的图形表示工具,所以B不对。E—R图是数据库中的用于表示E—R模型的图示工具,所以D不对。根据图中所示表示方法是进行软件详细设计时使用的程序流程图。
8.数据库管理系统是( )。(B)
A. 操作系统的一部分
B. 在操作系统支持下的系统软件
C. 一种编译系统
D. 一种操作系统
解析:数据库管理系统是数据库的机构,它是一种系统软件,负责数据库中数据组织、数据操纵、数据维护、控制及保护和数据服务等。是一种在操作系统之上的系统软件。
9.在E-R图中,用来表示实体联系的图形是( )。(C)
A. 椭圆形
B. 矩形
C. 菱形
D. 三角形
解析:在E-R图中实体集用矩形,属性用椭圆,联系用菱形。
10.有三个关系R,S和T如下:
(D)
A. 选择
B. 投影
C. 交
D. 并
解析:并关系T中包含了关系R与s中的所有元组,所以进行的是并的运算。
11.下列符号中可以用做C++标识符的是( )。(A)
A. _radius
B. foo~bar
C. else
D. 3room
解析:本题考查C++标识符的命名规则,其规则有如下几点:①所有标识符必须由字母、数字或下画线组成,且必须由字母或下画线开头;②所有标识符不能使用C++已有的关键字;③大、小写字母表示不同意义,即代表不同的标识符。选项B包含了字符“~”,选项C是关键字,选项D不能以数字开头。故答案为A。
12.下列各组类型声明符中,含义相同的一组是( )。(B)
A. unsigned long int和long
B. signed short int和short
C. unsigned short和short
D. short int和int
解析:本题考查整型变量的类型,A、C选项中前者为无符号的,后者为有符号的,D选项中short int为2个字节,int为4个字节。
13.必须用一对大括号括起来的程序段是( )。(D)
A. switch语句中的case标号语句
B. if语句的分支
C. 循环语句的循环体
D. 函数的函数体
解析:本题考查C++基本控制结构,A、B、C三个选项中的大括号不是必须的,而D选项中的函数体必须使用大括号。
14.语句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;
解析:本题考查指针和地址,题目中定义了一个指向变量k的一个指针p,那么与题目中等效的表达式A选项,即先定义一个指向整型的指针,然后指向k的地址。
15.执行下列语句段后,输出字符“*”的个数是( )。
for(int i=50;i>1;i-=2)cout<<’*’;(B)
A. 24
B. 25
C. 26
D. 50
解析:本题考查for循环语句,题目中每执行完循环体后,i都会减2,那么只有50到2之间的偶数才能输出“*”,所以总共输出25次。
16.下列关于运算符重载的叙述中,错误的是( )。(B)
A. 有的运算符可以作为非成员函数重载
B. 所有的运算符都可以通过重载而被赋予新的含义
C. 不得为重载的运算符函数的参数设置默认值
D. 有的运算符只能作为成员函数重载
解析:重载运算符的规则如下:①C++不允许用户自己定义新的运算符,只能对已有的C++运算符进行重载;②C++不能重载的运算符只有5个;③重载不能改变运算符运算对象的个数;④重载不能改变运算符的优先级和结合性;⑤重载运算符的函数不能有默认的参数;⑥重载的运算符必须和用户定义的自定义类型的对象一起使用,至少应有一个是类对象,即不允许参数全部是C++的标准类型。所以答案为B。
17.对C++编译器区分重载函数无任何意义的信息是( )。(C)
A. 参数类型
B. 参数个数
C. 返回值类型
D. 常成员函数关键字const
解析:所谓函数重载是指同一个函数名可以对应多个函数的实现。每种实现对应一个函数体,这些函数的名字相同,其参数类型或个数不同,但不能出现函数
本文档预览:3600字符,共18936字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载