【知识点详解】
1. 栈的基本特性:栈是一种具有“后进先出”(LIFO)特性的数据结构。选项A正确,栈顶元素是最先被添加到栈中的,因此也是最先能被删除的;选项B错误,因为栈顶元素并非最后才能被删除;选项C错误,栈底元素在特定操作下(如全部元素弹出)也可以被删除;选项D错误,因为至少有一个正确选项。
2. 数据结构的分类:线性结构只有一个根结点,而非线性结构可能有多个根结点或没有根结点。选项A错误,有多个根结点的数据结构可能是非线性;选项B正确,一个根结点的数据结构不一定是线性结构,例如树结构;选项C错误,循环链表属于线性结构;选项D错误,双向链表也是线性结构。
3. 二叉树的高度:对于一个有n个结点的二叉树,其高度最小为log2(n+1),最大为n。如果只有一个叶子结点,那么这个二叉树最多只有2个结点(一个根和一个叶子),所以高度为2,但题目中说有7个结点,所以高度至少是3。因此,答案是A)3。
4. 需求分析阶段的文档:在这个阶段,主要产出的文档是软件需求规格说明书(Software Requirements Specification,简称SRS),它详细描述了软件的功能、性能和其他需求。
5. 结构化编程:结构化程序设计强调使用顺序、选择和循环这三种基本结构,而避免使用GOTO语句,因为它可能导致程序的混乱和难以维护。
6. 软件设计:系统总体结构图支持软件的总体设计,而软件设计过程包括将需求转化为软件表示,数据结构与数据库设计是其中的一部分。PAD图(Problem Analysis Diagram)通常用于详细设计阶段。
7. 数据库操作:数据操纵语言(Data Manipulation Language,DML)用于数据库中的查询操作,如SELECT语句。
8. 联系类型:教师和课程之间的联系是一个教师可以教多门课程,一门课程可以由多个教师教,这种关系是多对多(m:n)联系。
9. 关系操作:自然连接、交、并、差等是关系数据库操作。这里的关系R和S得到T的操作是自然连接,因为T包含了R和S中相同属性值的元组。
10. 类型定义:无符号整数类 UInt 只能包含非负整数,所以选项A的-369不是有效的 UInt 值,选项B的369是,选项C的0.369和选项D的整数集合都不是。
11. 高级语言程序的运行方式:C语言程序可以通过编译执行(生成可执行文件后运行)和解释执行(如通过解释器逐行解释运行)两种方式运行。
12. C语言程序执行:C语言程序通常先编译成二进制目标代码,然后链接成可执行文件。在没有集成开发环境的机器上,只要安装了C编译器,依然可以编译运行C程序。
13. C语言常量:选项A的1,234不是合法的整型常量,合法的整型常量不应包含逗号。
14. C语言实数:选项B的3.0e0.2不是一个合法的浮点数,指数部分应为整数;选项C的E9缺少小数点和指数符号;选项D的9.12E缺少指数数字。
15. C语言赋值表达式:选项A的a=(b=4)=3; 是错误的,因为赋值运算符不能连用;选项B、C和D都是正确的赋值表达式。
16. 输入输出:在C程序中,使用scanf进行格式化输入时,name=Lili num=1001会将Lili赋给name,1001赋给num,因此name的值是Lili。
17. if语句:表达式可以是任何产生真或假(非零或零)结果的合法C语言表达式,可以是逻辑值、整数值或其他类型的数值。
18. 自定义整型变量:在C语言中,int x=011;表示八进制数11,对应的十进制数是9,预自增操作后,x变为10。
19. switch语句:在给定的程序中,case 1和case 3没有break,导致连续执行,所以输出是66666。
20. switch语句嵌套:在for循环中,根据输入值进行不同输出。当输入1时,输出6;2时,输出6;3时,输出6,但不继续执行后面的printf;4时,输出5,跳过后续输出;5时,执行到exit(0),程序结束。因此,输出是66656。
总结这些知识点,我们可以看到,这个C语言的笔试真题涵盖了数据结构、数据库操作、程序设计基础、C语言语法等多个方面,这些都是计算机二级考试的重点内容。学习者需要对栈、线性与非线性结构、二叉树、需求分析、程序设计原则、数据库操作、数据类型和常量、程序控制结构、输入输出以及程序调试有深入理解。