C语言基础学习:结构体与数组操作

需积分: 13 1 下载量 151 浏览量 更新于2024-07-15 收藏 15.68MB DOCX 举报
"C语言基础(1-13周)复习资料.docx 是一份针对C语言初学者的复习文档,涵盖了C语言的基础概念和实践应用。文档内容可能包括多个单元(U1-U13),每个单元可能涉及不同的知识点。文档还包含了一段示例代码,演示了如何使用结构体(struct)来存储数据,并实现输入、计算平均分及输出排序的功能。" 这篇复习资料详细介绍了C语言的基础知识,以下是基于提供的部分代码和单元标签的一些关键知识点: 1. **C语言基础**:C语言是一种强大的编程语言,常用于系统开发、软件编程、游戏开发等。它的语法简洁明了,对内存管理有直接控制。 2. **结构体(struct)**:在C语言中,结构体是一种复合数据类型,允许我们将不同类型的数据组合在一起。例如,`struct data`定义了一个包含长整型(long numb)、字符数组(char name[20])、浮点型数组(float score[3])、浮点型(float average)和整型(int rank)的结构。 3. **指针操作**:在C语言中,指针是变量的地址。`*(p+i)`表示解引用操作,获取指针所指向的值。这段代码中,`(*p).numb`和`(*(p+i)).numb`都是访问结构体成员的方式,前者更直观,后者在处理数组时更为常见。 4. **输入与输出**:使用`scanf`函数进行输入,如`scanf("%ld",&(*(p+i)).numb)`读取长整型数值,`scanf("%s",(*(p+i)).name)`读取字符串。输出则可以使用`printf`函数。 5. **数组操作**:`float average[20]`声明了一个浮点型数组,用于存储平均分数。数组索引从0开始,所以`for(i=0;i<5;i++)`循环遍历整个数组。 6. **计算平均分**:`ave`函数计算每个结构体实例的平均分,通过累加`score`数组的三个元素,然后除以3得到平均值。 7. **排序算法**:示例代码中使用了冒泡排序算法(Bubble Sort)对平均分进行升序排列,通过两层`for`循环实现,外层循环遍历所有元素,内层循环进行相邻元素的比较和交换。 8. **函数声明与定义**:`void inputscore(struct data *p)`、`void ave(struct data *p, float average[20])` 和 `void outputscore(struct data *p)`是函数声明,定义了它们接收的参数和返回类型。`main`函数是程序的入口点,负责调用这些函数。 9. **内存管理**:C语言需要程序员手动管理内存,通过`malloc`和`free`等函数分配和释放内存。虽然此代码片段没有涉及内存分配,但了解内存管理对于C语言的学习至关重要。 10. **编程规范**:在实际编程中,应注重代码的可读性和维护性,使用适当的注释来解释代码功能。此外,要注意错误处理,例如在使用`scanf`时检查输入是否成功。 这份复习资料对于初学者来说,提供了从基本语法到实际编程技巧的全面回顾,有助于巩固C语言的基础知识。学习者可以通过这个文档练习编程技能,进一步理解C语言的工作原理。