# 阶段一:编程属性 # [C 语言任务模块](https://github.com/E1PsyCongroo/HDU_C_Assignments/) 作为一名合格的大学生,更应深谙“纸上得来终觉浅,绝知此事要躬行”的道理,编程语言就像是一个工具,无论你如何熟读说明书(语法、特性),未经实践终究是靠不住的。 - 该任务模块旨在帮助巩固 C 语言基础知识,传递一些编程思维,入门学习请看 [3.4.4C 语言前置概念学习](3.4.4C%E8%AF%AD%E8%A8%80%E5%89%8D%E7%BD%AE%E6%A6%82%E5%BF%B5%E5%AD%A6%E4%B9%A0.md) - 你可以通过使用 git `git clone ``https://github.com/E1PsyCongroo/HDU_C_Assignments.git` 获取任务 - 或者通过下载 zip 获取任务 # 任务一做前必查 1. 理解[3.4.3解决编程问题的普适性过程](3.4.3%E8%A7%A3%E5%86%B3%E7%BC%96%E7%A8%8B%E9%97%AE%E9%A2%98%E7%9A%84%E6%99%AE%E9%80%82%E6%80%A7%E8%BF%87%E7%A8%8B.md) 。 2. 理解 C 语言语法基础:变量、表达式、函数、判断、循环、常用标准库函数。 3. 理解 C 语言中的一切都是数字。 4. 初步理解 C 语言各类数据类型:基本数据类型和复杂自定义数据类型。 5. 初步理解 C 语言数组及字符串。 # 任务二做前必查 1. 深入理解 C 语言指针、数组和字符串。 2. 理解递归思想。 3. 理解复杂自定义数据类型。 ### 请阅读各个任务的 README.md,了解完成任务所需的前置知识。 进阶:评价一个程序,大体分为以下四个层次。 1.程序没有语法错误。 2.程序对于合法的输入数据能够产生满足要求的输入结果。 3.程序对于非法的输入数据能够得出满足规格说明的结果。 4.程序对于精心选择的,甚至刁难的测试数据都有满足要求的输入结果。 在你写完这些代码后会不会感觉你的代码不够优雅呢? 假设你的逻辑更为复杂,需要完成的功能更多,如果全部写在 main 里面你会不会觉得越来越困难呢? 有没有一种方法可以让你更为优雅的把每一个功能拆分开呢? 当然有,在下一章,你会深刻的体会到函数的意义