国家二级C语言机试(选择题)模拟试卷587
选择题
1.过程控制系统属于( )。(B)
A. 批处理系统
B. 实时操作系统
C. 分时操作系统
D. 多道程序系统
解析:实时操作系统是指当外界事件或数据产生时,系统能够接收并以足够快的速度予以处理和响应,能够控制所有任务协调一致运行。目前,有3种典型的实时操作系统:过程控制系统(如工业生产自动控制系统、航空器飞行控制系统和航天器发射控制系统)、信息查询系统(如仓库管理系统、图书资料查询系统)和事务处理系统(如飞机或铁路订票系统、银行管理系统)。故本题答案为B选项。
2.下列叙述中正确的是( )。(B)
A. 能采用顺序存储的必定是线性结构
B. 所有的线性结构都可以采用顺序存储结构
C. 具有两个以上指针的链表必定是非线性结构
D. 循环队列是队列的链式存储结构
解析:所有的线性结构都可以用数组保存,即都可以采用顺序存储结构。而反过来不可以,完全二叉树也能用数组保存(按层次依次存放到数据元素中),但完全二叉树属于非线性结构。双向链表具有两个以上的指针,但其属于线性结构。循环队列是队列的顺序存储结构。故本题答案为B选项。
3.深度为5的完全二叉树的节点数不可能是( )。(A)
A. 15
B. 16
C. 17
D. 18
解析:设完全二叉树的节点数为n,根据深度为k的完全二叉树至多有2k—1个节点,再根据完全二叉树的定义可知,2k—1—1<n≤2k—1。本题中完全二叉树的深度为5,则25—1—1<n≤25—1,即15<n≤31。因此,节点数不能为15。故本题答案为A选项。
4.设顺序表的长度为16,对该表进行简单插入排序。在最坏情况下需要比较的次数为( )。(A)
A. 120
B. 60
C. 30
D. 15
解析:简单插入排序在最坏情况下,即初始排序序列是逆序的情况下,比较次数为n(n—1)/2,移动次数为n(n—1)/2。本题中n=16,16×(16—1)÷2=8×15=120。故本题答案为A选项。
5.下列数据流图构造规则中正确的是( )。(A)
A. 子图的输入输出数据流与父图中处理的相应输入输出数据流必须一致
B. \\
C. \\
D. 父图和子图是指任意上下层的两个数据流图
解析:数据流图应遵循以下构造规则和注意事项。
①对加工处理建立唯一、层次性的编号,且每个加工处理通常要求既有输入又有输出。
②数据存储之间不应有数据流。
③数据流图的一致性。即输入/输出、读/写的对应。
④父图、子图的关系与平衡规则。相邻两层数据流图之间具有父子关系,子图代表父图中某个加式的详细描述,父图代表子图问的接口。子图个数不大于父图中的处理个数。所有子图的输入输出数据流和父图中处理的相应输入输出数据流必须一致。故本题答案为A选项。
6.在数据库管理技术发展的3个阶段中,没有专门的软件对数据进行管理的是( )。(B)
A. 文件系统阶段
B. 人工管理阶段
C. 文件系统阶段和数据库系统阶段
D. 人工管理阶段和文件系统阶段
解析:数据库管理技术发展的3个阶段是人工管理阶段、文件系统阶段和数据库系统阶段。人工管理阶段没有专门的软件对数据进行管理。故本题答案为B选项。
7.关系的实体完整性约束要求关系中不能为空的属性是( )。(A)
A. 主键属性
B. 外键属性
C. 全部属性
D. 候选键属性
解析:关系模型中可以有3类完整性约束:实体完整性约束、参照完整性约束和用户定义的完整性约束。实体完整性约束是指若属性M是关系的主键,则属性M的值不能为空。故本题答案为A选项。
8.以下叙述中错误的是( )。(A)
A. 由3种基本结构构成的程序只能解决简单问题
B. 结构化程序由顺序、分支、循环3种基本结构组成
C. C语言是一种结构化程序设计语言
D. 结构化程序设计提倡模块化的设计方法
解析:由顺序、选择(分支)、循环3种基本结构构成的程序可以解决所有问题,而不只是解决简单问题,所以A选项错误。故本题答案为A选项。
9.以下选项中不能用作C语言中合法常量的是( )。(C)
A. 123
B. \123’
C. 1,234
D. \\
解析:C选项中不能含有逗号,所以\\
10.以下说法正确的是( )。(D)
A. C语言只接受十进制的数
B. C语言只接受二进制、八进制、十六进制的数
C. C语言只接受二进制、十进制、十六进制的数
D. C语言只接受八进制、十进制、十六进制的数
解析:C语言中,整型常量可以用十进制、八进制和十六进制表示。故本题答案为D选项。
11.若变量已正确定义,则语句\\(B)
A. —1
B. 0
C. 1
D. 32
解析:本题考查逻辑异或运算。异或运算只有在两个比较的位不同时其结果为1,否则结果为0。题目中两个值相同,所以结果为O。故本题答案为B选项。
12.以下不能输出字符A的语句是(注:字符A的ASCⅡ值为65,字符a的ASCⅡ值为97)( )。(B)
A. printf(\\
B. printf(\\
C. printf(\\
D. printf(\\
解析:B选项中输出格式为%d,即整型格式,所以输出字符\\
13.设有定义\\(B)
A. scanf(\\
B. scanf(\\
C. scanf(\\
D. scanf(\\
解析:变量a是double类型,输入格式控制字符为%lf;变量d是char类型,输入格式控制字符为%c;变量b是float类型,输入格式控制字符为%f,所以C、D选项错误。由于输入的数据之间使用空格间隔,因此scanf函数的格式控制字符串中,格式控制字符之间也要使用空格。故本题答案为B选项。
14.有以下程序:
#include <stdio.h>
main()
{int t;
scanf(\\(C)
A. 6
B. 8
C. 7
D. 5
解析:后缀自增运算\\
15.有以下程序:
#include <stdio.h>
main()
{
int x=8:
for(;x>0;x——)
{
if(x%3)
{
printf(\\(D)
A. 7,4,2,
B. 8,7,5,2,
C. 9,7,6,4,
D. 8,5,4,2,
解析:coutinue语句
本文档预览:3600字符,共6415字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载