【知识点详解】
1. **栈和队列**:栈是一种后进先出(LIFO)的数据结构,而队列则是先进先出(FIFO)的数据结构。在选择题(1)中,正确答案是A)栈是“先进后出”的线性表。栈常用于子程序调用和表达式求值等场景,而队列则适用于任务调度和数据缓冲。
2. **二叉树的性质**:在二叉树中,如果一个节点的度为z,那么它的叶子结点(度为0的节点)数量是z+1。在选择题(3)中,若二叉树有5个度为2的节点,叶子结点数应为5+1=6,正确答案是C)6。
3. **排序算法**:在最坏情况下比较次数最少的排序算法是堆排序,它的时间复杂度为O(nlogn),而冒泡排序、简单选择排序和直接插入排序在最坏情况下都是O(n^2)。选择题(4)的正确答案是D)堆排序。
4. **软件分类**:应用软件是为特定目的而设计的软件,如C)教务管理系统。系统软件包括操作系统(B)、编译程序(A)和汇编程序(D)。
5. **软件测试与调试**:软件测试的目的是发现错误,但改正错误通常是程序员的任务。选项A)的描述是错误的,正确答案是A)。
6. **模块独立性**:耦合性指的是模块之间的相互依赖程度,而内聚性指模块内部元素的紧密程度。提高内聚性和降低耦合性有利于增强模块的独立性,所以B)是正确的。
7. **数据库应用系统**:数据库应用系统设计的核心是数据库设计,即如何创建满足需求的数据库结构。正确答案是A)数据库设计。
8. **关系运算**:从关系R通过选择运算(A)可以选择满足一定条件的元组,从而得到关系S。
9. **E-R图转换**:在将E-R图转换为关系模式时,实体和联系都可以表示为关系(C)。
10. **C++重载函数**:在C++中,重载函数的区分依据不包括返回值类型(C),而是参数类型(A)、参数个数(B)以及常成员函数关键字等。
11. **类与对象**:类A的实例a是const类型的,不允许修改其成员,因此B)a.SetData(10)是错误的。
12. **继承访问权限**:ChildB类从Parents类私有继承,所以ChildB的实例b无法访问Parents的私有成员。正确答案是D)cout<<b.privateData<<endl;。
13. **运算符重载**:在重载运算符时,不需要保持的性质是操作数类型(B),因为可以为不同类型的对象重载同一运算符。
14. **函数模板**:B)对于常规参数所对应的模板实参,在某些情况下可以省略,如类型推断。错误答案是B)。
15. **文件流**:在C++中,建立并打开文件流通常使用构造函数,如ifstream fin("file.dat"); 或者ifstream fin; fin.open("file.dat"); 选项A和D是错误的表达方式。
以上内容详细解释了计算机等级考试二级C语言真题中的相关知识点,涵盖了数据结构、软件工程、数据库设计、C++编程等多个方面。