国家二级C语言机试(选择题)模拟试卷328
选择题
1.下列叙述中正确的是( )。(B)
A. 能采用顺序存储的必定是线性结构
B. 所有的线性结构都可以采用顺序存储结构
C. 具有两个以上指针的链表必定是非线性结构
D. 循环队列是队列的链式存储结构
解析:所有的线性结构都可以用数组保存,即都可以采用顺序存储结构。而反过来不可以,完全二叉树也能用数组保存(按层次依次存放到数据元素中),但完全二叉树属于非线性结构。双向链表具有两个以上的指针,但属于线性结构。循环队列是队列的顺序存储结构。
2.以下语句定义正确的是( )。
D
解析:本题考查的是如何对二维数组进行赋值。选项A)中数组第二维的大小是4,但却给赋了5个元素;选项B)中C语言规定,对于二维数组,只可以省略第一个方括号中的常量表达式而不可以省略第二个方括号中的常量表达式;选项C)中数组第一维的大小是2,但是赋值却超过了2;选项D)中在对二维数组元素赋初值时,可以只对部分元素赋初值,未赋初值的元素自动取0。
3.下列叙述中正确的是(D)
A. 栈是一种先进先出的线性表
B. 队列是一种后进先出的线性表
C. 栈与队列都是非线性结构
D. 栈与队列都是线性结构
解析:栈是先进后出,队列是先进先出。栈和队列都是一种线性表,属于线性结构。
4.下面描述中不属于软件需求分析阶段任务的是( )。(B)
A. 撰写软件需求规格说明书
B. 软件的总体结构设计
C. 软件的需求分析
D. 软件的需求评审
解析:软件需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。需求分析阶段的工作可以分为4个方面:需求获取、需求分析、编写需求规格说明书和需求评审。软件的总体结构设计属于软件设计阶段的任务。
5.在黑盒测试方法中,设计测试用例的根据是( )。(D)
A. 数据结构
B. 模块间的逻辑关系
C. 程序调用规则
D. 软件要完成的功能
解析:黑盒测试方法也称功能测试或数据驱动测试。黑盒测试是对软件已经实现的功能是否满足需求进行测试和验证。它完全不考虑程序内部的逻辑结构和内部特征,只依据程序的需求和功能规格说明,检查程序的功能是否符合它的功能要求。
6.设二叉树的前序序列为ABDEGHCFIJ,中序序列为DBGEHACIFJ。则按层次输出(从上到下,同一层从左到右)的序列为(A)
A. ABCDEFGHIJ
B. DGHEBIJFCA
C. JIHGFEDCBA
D. GHIJDEFBCA
解析:前序遍历中,第一个字母是根结点,也就是A是根结点;在中序遍历中,根结点前面的是左子树、后面的是右子树。前序中,B在A的后面,中序中在左子树中,可知B为A的左结点。中序中D在B的前面,前序中在B的后面,可知D为B的左结点,GEH为B的右子树。前序中顺序为EGH,由此可知,E为B的右结点,G为E的左结点、H为E的右结点。右子树中,前序中C在最前,因为右子树根结点,也就是A的右结点,根据前序中的子树FIJ和中序中的IFJ子树可知F为C的右结点,I为F的左结点、J为F的右结点。由此可画出这个二叉树,然后根据二叉树,可知按层次输出(从上到下,同一层从左到右)的序列为:ABCDEFGHIJ。
7.与数学表达式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,需要用逻辑与表达式连接。
8.下列叙述中错误的是( )。(A)
A. 系统总体结构图支持软件系统的详细设计
B. 软件设计是将软件需求转换为软件表示的过程
C. 数据结构与数据库设计是软件设计的任务之一
D. PAD图是软件详细设计的表示工具
解析:详细设计的任务是为软件结构图而非总体结构图中的每一个模块确定实现算法和局部数据结构、用某种选定的表达工具表示算法和数据结构的细节,因此A选项描述错误。
9.if语句的基本形式是:if(表达式)语句,以下关于’’表达式’’值的叙述中正确的是(C)
A. 必须是整数值
B. 必须是正数
C. 可以是任意合法的数值
D. 必须是逻辑值
解析:在if语句中,表达式可以是任意合法的数值。当其值为非零时,执行if语句,为0时执行else语句。
10.有三个关系R、S和T如下:
(A)
A. 自然连接
B. 交
C. 投影
D. 并
解析:选择是单目运算,其运算对象是一个表。该运算按给定的条件,从表中选出满足条件的行形成一个新表作为运算结果。投影也是单目运算,该运算从表中选出指定的属性值组成一个新表。自然连接是一种特殊的等价连接,它将表中有相同名称的列自动进行记录匹配。自然连接不必指定任何同等连接条件。
11.下面不属于结构化程序设计原则的是(C)
A. 模块化
B. 自顶向下
C. 可继承性
D. 逐步求精
解析:结构化程序设计(structured progranlming)是进行以模块功能和处理过程设计为主的详细设计的基本原则。结构化程序设计是过程式程序设计的一个子集,它对写入的程序使用逻辑结构,使得理解和修改更有效更容易。结构化程序设计原则是:自顶向下、逐步求精、模块化和结构化编码。
12.若有定义:float x=1.5;int a=1,b=3,c=2;,则正确的switch语句是( )。
A
解析:B选项中switch((int)x);语句中不应该有最后的分号。switch(expr1)中的expr1不能用浮点类型或long类型,也不能为一个字符串,所以C选项错误。case后面必须为常量表达式,所以D选项错误。
13.以下程序的输出结果是( )。
#include
main()
{ int a=8,b=6,m=1;
switch(a%4)
{ case 0:m++; break;
case 1:m++;
switch(b%3)
{default:m++;
case 0:m++;break;
}}
printf(\\(B)
A. 1
B. 2
C. 3
D. 4
解析:本题考查switch语句。因为a=8,a%4=0,所以执行case 0后面的语句,将m加1,遇到break语句跳出switch。
14.有以下程序
#include
main()
{ int s,t,A=10;
double B=6;
s=sizeof(A);
t=sizeof(B);
printf(\\(A)
A. 4,8
<本文档预览:3600字符,共11102字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载