国家二级C语言机试(选择题)模拟试卷296
选择题
1.计算机能直接执行的程序是(B)
A. 目标程序
B. 可执行程序
C. 汇编程序
D. 源程序
解析:把由高级语言编写的程序称为”源程序”,由二进制代码表示的程序称为”目标程序”(后缀名为.obi),由汇编语言编写的程序称为”汇编程序”。为了把源程序转换成机器能接受的目标程序,软件工作者编制了一系列软件,通过这些软件可以把用户按规定语法写出的语句一一翻译成二进制的机器指令。这种具有翻译功能的软件称为”编译程序”,每种高级语言都有与它对应的编译程序。c源程序经过C编译程序编译之后生成一个后缀为.obi的二制进文件(称为目标文件),这个F1标程序要和C语言的库函数相链接生成一个后缀为.exe的文件,这个文件可以在操作系统中直接执行,称为可执行程序。
2.在线性表的链式存储结构中,其存储空间一般是不连续的,并且( )。(C)
A. 前件结点的存储序号小于后件结点的存储序号
B. 前件结点的存储序号大于后件结点的存储序号
C. 前件结点的存储序号可以小于也可以大于后件结点的存储序号
D. 以上三种说法均不正确
解析:在线性表的链式存储结构中,各数据结点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致,因此前件结点的存储序号与后件结点的存储序号之间不存在大小关系。
3.有二又树如下图所示:
(A)
A. ABDEGCFH
B. DBGEAFHC
C. DGEBHFCA
D. ABCDEFGH
解析:前序遍历首先访问根结点,然后遍历左子树,最后遍历右子树;在遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。故本题前序序列是ABDEGCFH。
中序遍历首先遍历左子树,然后访问跟结点,最后遍历右子树;在遍历左、右子树时,仍然先遍历左子树,然后访问跟结点,最后遍历右子树。故本题的中序序列是DBGEAFHC。
后序遍历首先遍历左子树,然后遍历右子树,最后访问根结点;在遍历左、右子树时,仍然先遍历左子树,然后遍历右子树,最后访问根结点。故本题的后序序列是DGEBHFCA。
4.下列定义变量的语句中错误的是(A)
A. float US$;
B. double int;
C. charFor;
D. int_int;
解析:C语言规定,变量的标识符只能由字母、数字或下划线3种字符组成,且首字符必须为字母或下划线。存C语言中大写字母和小写字母被认为是两个不同的字符。选项B)定义的变量标识符int和选项D)定义的变量标识符int与C语言的关键字jnt是不同的,是正确的变量标识。选项C)定义的变量标识符For与C语言中的关键字for是两个不同的标识符,而在选项A)包含有特殊字符$,因而其不符合C语言的变量命名规定。
5.某二叉树共有12个结点,其中叶子结点只有1个。则该二叉树的深度为(根结点在第1层)(D)
A. 3
B. 6
C. 8
D. 12
解析:根据二叉树的性质,度为0的结点(即叶子结点)总是比度为2的结点多一个。题目中的二叉树的叶子结点为1,因此度为2的结点的数目为0,故该二叉树为12层,每层只有一个结点。
6.软件生存周期中,解决软件“做什么”的阶段是( )。(A)
A. 需求分析
B. 软件设计
C. 软件实现
D. 可行性研究
解析:软工生命周期可细化为可行性研究和计划制定、需求分析、软件设计(总体设计和详细设计)、编码、软件测试、运行和维护等阶段。需求分析是对待开发软件提出的需求进行分析并给出详细定义,是解决软件“做什么”的阶段。软件设计是解决软件“怎么做”的阶段。
7.以下不能输出字符A的语句是(注:字符A的ASCII码值为65,字符a的ASCII码值为97)(B)
A. printf(\\
B. printf(\\
C. printf(\\
D. printf(\\
解析:在选项B)的输出函数中,大写字符’A’以整型数据的形式输出。
8.下列叙述中正确的是(A)
A. 链表结点中具有两个指针域的数据结构可以是线性结构,也可以是非线性结构
B. 线性表的链式存储结构中,每个结点必须有指向前件和指向后件的两个指针
C. 线性表的链式存储结构中,每个结点只能有一个指向后件的指针
D. 线性表的链式存储结构中,叶子结点的指针只能是空
解析:在链式存储方式中,每个结点由两部分组成:数据域和指针域,指针域用于指向该节点的前一个或后一个结点,所以选项B、C、D说法错误。选项A中,例如双向链表就具有两个指针,也属于线性结构,所以选项A正确。
9.程序测试的目的是( )。(C)
A. 为被测程序设计正确的测试用例
B. 发现并改正程序中的错误
C. 发现程序中的错误
D. 改正程序中的错误
解析:程序测试是使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别,即为发现错误而执行程序的过程,而不是改正错误。故正确答案为C。
10.以下选项中非法的C语言字符常量是(C)
A. ’\b’
B. ’\007’
C. ’aa’
D. ’\xaa’
解析:一个字符常量代表ASCII字符集中的一个字符,在程序中用单引号把一个字符括起来作为字符常量。
11.若变量X、Y已正确定义并赋值,以下符合C语言语法的表达式是(A)
A. ++x,y=x–
B. x+1=y
C. x=x+10=x+y
D. double(x)/10
解析:用逗号将表达式连接起来的式予称为逗号表达式。其表达式的一般形式为:表达式1,表达式2,……,表达式n。最后一个表达式的值就是此逗号表达式的值。所以选项A)为C语言中的逗号表达式。赋值表达式的左侧只能是变量,不能是常最或表达式。强制类型转换表达式的形式为:(类型名)(表达式),其中(类型名)称为强制类型转换运算符,数据类型两边的圆括号不能省略。
12.下列结构中为非线性结构的是(A)
A. 树
B. 向量
C. 二维表
D. 矩阵
解析:线性结构是一个有序数据厄素的集合。常用的线性结构有:线性表,栈,队列,双队列,数组,串。常见的非线性结构有:二维数组,多维数组,广义表,树二叉树等),图。
13.设有定义:
int x[2][3];
则以下关于二维数组x的叙述中错误的是( )。(C)
A. 元素x[0]可看作由3个整型元素组成的一维数组
B. 数组x可以看作由x[0]和x[1]两个元素组成的一维数组
C. 可以用x[0]=0;的形式为数组所有元素赋初值0
D. x[0]和x[1]是数组名,分别代表一个地址常量
解析:x[0]可看作由3个整型元素组成的一维数组,不可以用语句x[0]=0;为数组所有元素赋初值0。故C选项正确。
14.表达式a+=a一=a=9的值是( )。(C)
A. 18
B. 一9
C. 0
D. 9<
本文档预览:3600字符,共11459字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载