二级C语言笔试-421
(总分97, 做题时间90分钟)
一、选择题
1. 
下面不属于软件设计原则的是
   A) 抽象    B) 模块化    C) 自底向上    D) 信息隐蔽
    分值: 2
答案:C
[解析] 软件设计遵循软件工程的基本目标和原则,建立了适用于在软件设计中应该遵循的基本原理和与软件设计有关的概念,它们具有抽象、模块化、信息隐蔽和数据独立性。自底向上是集成测试中增量测试的一种。
2. 
对于循环队列,下列叙述中正确的是
   A) 队头指针是固定不变的
   B) 队头指针一定大于队尾指针
   C) 队头指针一定小于队尾指针
   D) 队头指针可以大于队尾指针,也可以小于队尾指针
    分值: 2
答案:D
[解析] 循环队列是将顺序队列首尾相连形成的,随着插入元素或删除元素的进行,其队头指针及队尾指针是在不断变化的,有时可能会出现队头指针大于队尾指针的情况,也可能是队尾指针大于队头指针。
3. 
软件(程序)调试的任务是(    )。
   A.诊断和改正程序中的错误    B.尽可能多地发现程序中的错误
   C.发现并改正程序中的所有错误    D.确定程序中错误的性质
    分值: 1
printf函数的执行顺序答案:A
[解析] 调试的目的是发现错误或导致程序失效的错误原因,并修改程序以修正错误。调试是
测试之后的活动。
4. 
下面描述中,不属于软件危机表现的是
   A) 软件过程不规范    B) 软件开发生产率低
   C) 软件质量难以控制    D) 软件成本不断提高
    分值: 2
答案:A
[解析] 本题考查软件危机的表现形式。软件危机表现在软件需求的增长得不到满足,软件开发的成本和进度无法控制,软件质量难以保证,软件不可维护或者维护的程度很低,软件成本不断提高,软件开发的发展赶不上硬件的发展。所以选项A不属于软件危机的表现。
5. 
对长度为n的线性表进行顺序查,在最坏的情况下所需要的比较次数为______。
   A) log2n    B) n/2    C) n    D) n+1
    分值: 1
答案:C
[解析] 对线性表进行顺序查时,最差情况下的比较次数为线性表的长度n,因此,答案C是正确的。
6. 
有下列二叉树,对此二叉树前序遍历的结果为(    )。
 
   A) ACBEDGFH    B) ABDGCEHF
   C) HGFEDCBA    D) ABCDEFGH
    分值: 2
答案:B
[解析] 对二叉树的前序遍历是指先访问根结点,然后访问左子树,最后访问右子树,并且,在访问左、右子树时,先访问根结点,再依次访问其左、右子树。
7. 
下面关于对象概念的描述中,错误的是
   A) 对象就是C语言中的结构体变量    B)对象代表着正在创建的系统中的一个实体
   C) 对象是一个状态和操作(或方法)的封装体    D) 对象之间的信息传递是通过消息进行的
    分值: 2
答案:A
[解析] 对象是由数据和容许的操作组成的封装体,与客观实体有直接的对应关系,对象之间通过传递消息互相联系,从模拟现实世界中不同事物彼此之间的联系,B)、C)、D)是正确的,对象的思想广泛应用于C++、Java等语言中,因此A)错误。
8. 
关于结构化程序设计原则和方法的描述错误的是(    )。
   A) 选用的结构只准许有一个入口和一个出口
   B) 复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现
   C) 不允许使用GOTO语句
   D) 语言中所没有的控制结构,应该采用前后一致的方法来模拟
    分值: 1
答案:C
[解析]限制使用GOTO语句是结构化程序设计的原则和方法之一,但不是绝对不允许使用GOTO语句。其他三项为结构化程序设计的原则。
9. 
在一棵二叉树上第5层的结点数最多是(    )。
   A) 8    B) 16    C) 32    D) 15
    分值: 1
答案:B
[解析] 根据二叉树的性质:二叉树第i(i≥1)层上至多有2i-1个结点,得到第5层的结点数最多是16。
10. 
数据的完整性是指数的正确性、有效性和______。
      A) 可维护性    B) 独立性    C) 安全性    D) 相容性
    分值: 2
答案:D
[评析] 数据模型的完整性规则是始定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态及其状态的变化,以保证数据的正确性、有效性和相容性。
11. 
有下列二叉树,对此二叉树前序遍历的结果为(    )。
                             
   A) ACFXDBEYZ    B) ABEFXYZCD
   C) ABCDEFXYZ    D) ABDYECFXZ
    分值: 2
答案:D
[解析] 对二叉树的前序遍历是指:先访问根结点,然后访问左子树,最后访问右于树,并且,在访问左、右子树时,先访问根结点,再依次访问其左、右子树。记住3种遍历的顺序:①前序,访问根一按前序遍历左子树一按前序遍历右子树:②中序,按中序遍历左子树一访问根一按中序遍历右子树;③后序,按后序遍历左子树呻按后序遍历右子树一访问根。
12. 
下列说法正确的是(    )。
   A) 一个C程序可以有多个主函数
   B) 一个C语言的函数中只允许有一对花括号
   C) C程序的书写格式是自由的,一个语句可以写在一行上,也可以写在多行内
   D) 在对C程序进行编译时,可以发现注释行中的拼写错误
    分值: 2
答案:C
[解析] 本题涉及C语言基本的3个知识点:①C语言规定一个程序只允许有一个主函数,一个函数内可以允许有多个花括号:②C语言的标识符是由字母、数字、下画线组成的,可以是大写字母,而且标识符区分字母的大小写;⑧C程序的注释部分仅仅是方便程序员阅读,提高程序的可读性和可移植性,它并不参与程序的编译,所以编译器也就不会发现注释行中的错误。