国家二级C语言机试(选择题)模拟试卷372
选择题
1.设数据结构B=(D,R),其中
D={a,b,c,d,e,f}
R={(f,8),(d,b),(e,d),(e,e),(a,c)}
该数据结构为( )。(A)
A. 线性结构
B. 循环队列
C. 循环链表
D. 非线性结构
解析:数据的逻辑结构有两个要素:一是数据元素的集合,通常记为D;二是D上的关系,它反映了D中各数据元素之间的前后件关系,通常记为R。即一个数据结构可以表示成B=(D,R)。其中B表示数据结构。为了反映D中各数据元素之间的前后件关系,一般用二元组来表示。例如,假设a与b是D中的两个数据,则二元组(a,b)表示a是b的前件,b是a的后件。本题中R中的根结点为f,元素顺序为f→a→c→e→d→b,满足线性结构的条件。
2.下列叙述中正确的是( )。(B)
A. 能采用顺序存储的必定是线性结构
B. 所有的线性结构都可以采用顺序存储结构
C. 具有两个以上指针的链表必定是非线性结构
D. 循环队列是队列的链式存储结构
解析:所有的线性结构都可以用数组保存,即都可以采用顺序存储结构。而反过来不可以,完全二叉树也能用数组保存(按层次依次存放到数据元素中),但完全二叉树不属于非线性结构。双向链表具有两个以上的指针,但属于线性结构。循环队列是队列的顺序存储结构。
3.下列对队列的描述中正确的是(D)
A. 队列属于非线性表
B. 队列按“先进后出”原则组织数据
C. 队列在队尾删除数据
D. 队列按“先进先出”原则组织数据
解析:队列(queue)是指允许在一端进行插入、而在另一端进行删除的线性表。允许插入的一端称为队尾;允许删除的一端称为队头。在队列这种数据结构中,最先插入的元素将最先能够被删除;反之,最后插入的元素将最后才能被删除。因此,队列又称“先进先出”或“后进后出”的线性表。
4.数据的存储结构是指( )。(D)
A. 存储在外存中的数据
B. 数据所占的存储空间量
C. 数据在计算机中的顺序存储方式
D. 数据的逻辑结构在计算机中的表示
解析:在对数据进行处理时各数据元素在计算机中的存储关系,即为数据的存储结构。
5.下列叙述中正确的是(C)
A. 线性表链式存储结构的存储空间一般要少于顺序存储结构
B. 线性表链式存储结构与顺序存储结构的存储空间都是连续的
C. 线性表链式存储结构的存储空间可以是连续的,也可以是不连续的
D. 以上都不正确
解析:线性表的存储分为顺序存储和链式存储。在顺序存储中,所有元素所占的存储空间是连续的。而在链式存储的方式中,将存储空间的每一个存储结点分为两部分,一部分用于存储数据元素的值,称为数据域;另一部分用于存储下一个元素的存储序号,称为指针域。所以线性表的链式存储方式比顺序存储方式的存储空间要大一些。
6.下列定义变量的语句中错误的是(A)
A. floatUS$;
B. doubleint_;
C. charFor;
D. int_int;
解析:C语言规定,变量的标识符只能由字*、数字或下划线3种字符组成,且首字符必须为字*或下划线。在C语言中大写字*和小写字*被认为是两个不同的字符。选项B定义的变量标识符int和选项D定义的变量标识符int与C语言的关键字int是不同的,是正确的变量标识。选项C定义的变量标识符For与C语言中的关键字for是两个不同的标识符,而在选项A包含有特殊字符$,因而其不符合C语言的变量命名规定。
7.一般情况下,当对关系R和S进行自然连接时,要求R和S含有一个或者多个共有的( )。(C)
A. 记录
B. 行
C. 属性
D. 元组
解析:自然连接是一种特殊的等值连接,它满足下面的条件:①两关系间有公共域;②通过公共域的等值进行连接,故C选项正确。
8.在面向对象方法中,实现信息隐蔽是依靠( )。(C)
A. 对象的继承
B. 对象的多态
C. 对象的封装
D. 对象的分类
解析:对象的封装性是指从外部看只能看到对象的外部特征,即只需知道数据的取值范围和可以对该数据施加的操作。而不需要知道数据的具体结构以及实现操作的算法。对象的内部,即处理能力的实行和内部状态,对外是不可见的。从外面不能直接使用对象的处理能力,也不能直接修改其内部状态,对象的内部状态只能由其自身改变。
9.下列选项中不属于结构化程序设计原则的是(A)
A. 可封装
B. 自顶向下
C. 模块化
D. 逐步求精
解析:结构化设计方法的主要原则可以概括为自顶向下、逐步求精、模块化、限制使用GOTO语句。
10.有以下稗宇:
#include
main()
{ int a=1,b=2,c=3,x;
x=(a^b.&c:
printf(“%d\n”,x);
}
程序的运行结果是( )。(A)
A. 3
B. 1
C. 2
D. 0
解析:本题考查位运算符以及相关运算。^为按位或,&为按位与,那么a^b为3,再与c按位与仍然为3,所以答案为A选项。
11.程序流程图中带有箭头的线段表示的是(C)
A. 图元关系
B. 数据流
C. 控制流
D. 调用关系
解析:程序流程图是一种传统的、应用广泛的软件过程设计工具,通常也称为程序框图。其中,用带箭头的线段表示控制流,用柜形表示加工步骤,用菱形表示逻辑条件。
12.与数学表达式x≥y≥z对应的C语言表达式是(B)
A. (x>=y>=z)
B. (x>=y)&&(y>=z)
C. (x>=y)!(y>=z)
D. (x>=y)‖(y>=x)
解析:若要表示x大于等于y,同时y大于等于z,需要用逻辑与表达式连接。
13.有以下程序
main(){int a=2,c=5;
printf(\\(B)
A. a=%2,b=%5
B. a=%d,b=%d
C. a=2,b=5
D. a=%%d,b=%%d
解析:输出“%”,可以在格式控制中用“%%”表示,将输出一个“%”,而没有%表示格式符的开始,%%d不能表示格式符,因此仅输出:a=%d,b=%d。
14.以下选项中与if(a==1)a=b;else a++;语句功能不同的switch语句是
A
解析:ifelse语句的含义是,如果变量a的值等于1,则把变量b的值赋给变量a,否则,变量a的值加1。在本题的4个选项中,与其含义不同的是选项A,表示如果变量a的值等于1,则把变量a的值加1,否则,把变量b的值赋给变量a。
15.下面属于整数类Ⅰ实例的是(A)
A. -101
B. 101
C. 101E02
D. 123.456
解析:整数的全体构成整数集,整数集是一个数环。在整数系中,零和正整数统称为自然数。-1、-2、-3、…、-n、…(
本文档预览:3600字符,共10641字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载