《C语言程序设计》是软件工程专业学生学习的基础课程,主要教授如何使用C语言进行程序开发。本课程的期末考试涵盖了C语言的关键概念和语法,包括但不限于以下知识点:
1. **程序编译与执行**:C语言源代码需要经过编译器转换成机器码才能执行。选项B正确表示了这一点,即C语言编写的代码是一个源程序,需要编译才能运行。
2. **程序结构**:C语言支持顺序、选择和循环三种基本结构,选项A正确。这是结构化编程的基础,用于构建复杂的程序逻辑。
3. **变量声明与初始化**:选项C正确声明了一个整型变量a和一个指向整型的指针b,并将a的地址赋给了b。而其他选项则存在语法错误或不符合C语言规范。
4. **标识符规则**:标识符不能以数字开头,选项D不合法,因为2_int_违反了这一规则。
5. **函数递归调用**:函数funA调用funB,funB又调用funA,这种调用方式称为函数的间接递归调用,选项B正确。
6. **静态存储类别**:局部变量声明为static会延长其生存期,但不会扩大作用域,因此选项A正确。全局变量声明为static会限制其作用域,选项B错误;未初始化的变量值通常是不确定的,但这并不总是如此,例如全局变量会默认初始化为0,选项C错误;形参的存储类别与局部变量不同,形参在每次函数调用时创建,选项D错误。
7. **循环计算阶乘**:选项B中,for循环内部重新将p设为1,导致无法正确累乘,因此不能完成求5!的操作。
8. **字符输出**:程序段会输出'a'和'a'的ASCII值加1,即'b'和'b',因此答案是B。
9. **函数调用**:正确的函数调用应该是传递参数,而不是再次声明或赋值,所以选项C正确。
10. **字符变量赋值**:字符型变量c应赋值为字符,选项C正确,它将c赋值为字符'c'。
11. **一维数组声明**:选项A只声明了数组,但没有指定大小;选项B和C是错误的C语言语法;选项D正确声明了一个大小为100的一维数组。
12. **数组初始化**:选项D正确地初始化了一个3x2的二维数组,其中第一行有两元素,第二行只有一个元素,C语言允许这种不完全初始化。
13. **switch语句**:当执行switch语句时,case 1和case 2都会执行,因为没有break语句来跳出循环,加上default,输出结果为A)011122。
14. **数组遍历与求和**:程序计算数组中所有奇数的和,因此输出结果是D)24,因为11、13和15是奇数。
15. **C语言特性**:C语言是一种中级语言,接近汇编但又具有高级语言的抽象性,选项C正确描述了这一点。
16. **C语言类型系统**:C语言没有逻辑类型,也没有集合类型,选项D正确。
以上知识点体现了C语言的基础,包括变量声明、数据类型、流程控制、函数、数组和字符串处理等方面。学习C语言,需要理解和掌握这些核心概念,以便进行有效的程序设计。