国家二级(C++)机试模拟试卷140
选择题
1.下列关于栈叙述正确的是( )。(A)
A. 栈顶元素最先能被删除
B. 栈顶元素最后才能被删除
C. 栈底元素永远不能被删除
D. 栈底元素最先被删除
解析:栈是先进后出的数据结构,所以栈顶元素最后入栈却最先被删除。栈底元素最先入栈却最后被删除。所以选择A。
2.下列叙述中正确的是( )。(C)
A. 在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化
B. 在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化
C. 在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化
D. 以上说法都不正确
解析:栈是先进后出的数据结构,在整个过程中,栈底指针不变,入栈与出栈操作均由栈顶指针的变化来操作,所以选择c。
3.某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)( )(D)
A. 3
B. 4
C. 6
D. 7
解析:根据二叉树的基本性质3:在任意一棵二叉树中,度为0的叶子结点总比度为2的结点多一个,所以本题中度为2的结点为1—1=0个,所以可以知道本题目中的二叉树的每一个结点都有一个分支,所以共7个结点共7层,即度为7。
4.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是( )。(A)
A. 学生成绩管理系统
B. C语言编译程序
C. UNIX操作系统
D. 数据库管理系统
解析:软件按功能可以分为:应用软件、系统软件、支撑软件。操作系统、编译程序、汇编程序、网络软件、数据库管理系统都属于系统软件。所以B、C、D都是系统软件,只有A是应用软件。
5.结构化程序所要求的基本结构不包括( )。(B)
A. 顺序结构
B. GOTO跳转
C. 选择(分支)结构
D. 重复(循环)结构
解析:1966年Boehm和Jacopini证明了程序设计语言仅仅使用顺序、选择和重复三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。
6.下面描述中错误的是( )。(A)
A. 系统总体结构图支持软件系统的详细设计
B. 软件设计是将软件需求转换为软件表示的过程
C. 数据结构与数据库设计是软件设计的任务之一
D. PAD图是软件详细设计的表示工具
解析:详细设计的任务是为软件结构图中而非总体结构图中的每一个模块确定实现算法和局部数据结构,用某种选定的表达工具表示算法和数据结构的细节,所以A错误。
7.负责数据库中查询操作的数据库语言是( )。(C)
A. 数据定义语言
B. 数据管理语言
C. 数据操纵语言
D. 数据控制语言
解析:数据定义语言:负责数据的模式定义与数据的物理存取构建;数据操纵语言:负责数据的操纵,包括查询及增、删、改等操作;数据控制语言:负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能。
8.一个教师可讲授多门课程,一门课程可由多个教师讲授。则实体教师和课程间的联系是( )。(D)
A. 1:1联系
B. 1:m联系
C. m:1联系
D. m:n联系
解析:因为一个教师可讲授多门课程,而一门课程又能由多个老师讲授,所以他们之间是多对多的关系,可以表示为m:n。
9.有三个关系R、S和T如下:
(D)
A. 自然连接
B. 并
C. 交
D. 差
解析:关系T中的元组是关系R中有而关系S中没有的元组的集合,即从关系R中除去与关系S中相同元组后得到的关系T。所以做的是差的运算。
10.定义无符号整数类为UInt,下面可以作为类UInt实例化值的是( )。
B
解析:只有B选项中369可以用无符号整数来表示和存储。A选项中一369有负号,选项C中0.369是小数都不能用无符号整数类存储。选项D是一个整数集合得用数组来存储。
11.C++语言对C语言做了很多改进,C++语言相对于C语言的最根本的变化是( )。(D)
A. 增加了一些新的运算符
B. 允许函数重载,并允许设置默认参数
C. 规定函数说明符必须用原型
D. 引进了类和对象的概念
解析:C++语言最重要的特点是其为一种面向对象的程序设计语言,但是C++语言也包含了C语言的全部特征。
12.下列( )是C++语言的有效标识符。(A)
A. _Nol
B. No.1
C. 12345
D. int
解析:标识符是一个以字母或下画线开始的,由字母、下画线和数字组成的字符串,标识符不能与任意关键字同名。
13.设有定义int x;float y;,则10+x+y值的数据类型是( )。(C)
A. int
B. double
C. float
D. 不确定
解析:由算术运算符组成的表达式中,若含有不同类型的操作数,则系统隐含地将低类型转化为高类型,由低至高的顺序为int→float→double。
14.下列程序的执行结果为( )。
#include
void main()
{
int a=3,b=0;
int*p=&a;
b=+a++:
cout<<*p<<\\(B)
A. 3,4
B. 4,3
C. 3,4
D. 4,4
解析:*p为所指对象a的值,语句“b=+a++;”等价于“b=b+a;a=a+1;”。
15.下面程序的运行结果为( )。
#include
void main()
{
for(int a=0,x=0;!x&&a<=10;a++)
{
a++:
}
cout<<a<<endl;
}(C)
A. 10
B. 11
C. 12
D. 0
解析:在进入最后一次循环时a=10,在循环体内执行“a++;”后a=11,执行完该次循环体计算for循环的增量部分后a=12小于10,循环结束。
16.下面有关for循环的正确描述是( )。(D)
A. for循环只能用于循环次数已经确定的情况
B. for循环是先执行循环体语句,后判断表达式
C. 在for循环中,不能用break语句跳出循环体
D. 在for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
解析:选项A中for循环可以用于循环次数不确定的情况;选项B中for循环是先判断表达式,后执行循环体语句;选项C中fo
本文档预览:3600字符,共15322字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载