程序设计是理工类专业学生必须掌握的技能之一,而C语言又因在科学计算和信息处理等方面具有简洁、高效等优点被广泛使用。所以,《C语言程序设计》是所有理工类专业学习必修的一门很重要的公共基础课,也是后续专业课程的重要基础。学生学习后应掌握熟练地使用开发环境进行程序设计和调试,能够利用C语言解决简单的实际问题,为后续课程打下一定的基础。
平时成绩由慕课学习情况、测验与作业等决定,占总成绩的30%。
期末考试占总成绩的70%
大学计算机基础或计算机导论课程,尤其是其中编码、内存、算法及程序设计方法等章节的内容。
(一)C语言概述
1.了解C语言的历史、发展现状和C语言的特点及功能。
2.掌握简单C程序的组成。理解注释、编译预处理命令、语句等概念,掌握输出函数的用法。
3. 掌握VC编程环境,以及C程序的编程步骤及上机步骤。了解VC之外的其它环境。(要求学生必须在个人电脑上完成至少一种编程环境的安装和使用)。
4. 了解本课程要求、学习方法和考核方式。
实验一 VC环境及简单C程序
(二)顺序结构程序设计
1.掌握常见的三种数据类型,以及三种数据类型的编码原理。理解标识符、变量与常量的概念及表示方法,掌握变量定义的方法和内存分配情况。
2.掌握常用运算符和表达式的写法。了解类型溢出和舍入误差的概念。理解运算符的优先级与结合性等概念,掌握表达式的计算过程。
3.掌握不同类型(char、float(double)、int)数据间的混合运算规则,强制类型转换和自动类型转换规则。
4.理解语法错误与逻辑错误的概念,掌握C程序的调试方法。
5.掌握三种基本类型的输入/出方法,尤其是printf()/ scanf(),getchar()/putchar()等函数的具体使用方法。
6.掌握常用数学函数的用法,并了解其它C库函数的用法。
7.自学算法及其表示方法,掌握三种基本结构的算法描述方法。
(注:本部分与语法相关的知识点比较琐碎,教师一定要结合例题讲解)
实验二 顺序结构程序设计
(三)选择结构程序设计
1.理解算法的概念及其表示方法,掌握三种基本结构的算法描述方法。
2.掌握if-else语句的用法,以及选择结构程序的调试方法和简单的程序测试方法。
3.掌握关系运算符和逻辑运行符及其表达式的写法,理解关系表达式和逻辑表达式的计算过程和结果表示。
4.了解数据合法性检查方法,了解程序测试的基本方法,学会选择测试用例。
5.掌握多分支结构程序设计,掌握switch语句的用法,理解用switch语句和用if-else嵌套解决多分支结构的区别。
实验三 选择结构程序设计
(四)循环结构程序设计
1.掌握简单循环程序设计,主要是三种循环语句while,do-while,for语句的写法。结合上机,理解循环结构程序的运行过程。了解for语句,以及与while语句的对应关系。
2.理解break,continue语句的含义和用法。
3.理解循环嵌套的概念以及程序的运行过程。掌握复杂循环程序设计。
4.掌握常见算法:穷举法和迭代法。
(本部分是本课程的重点及难点,教师应从读程序题目开始,让学生掌握基本的语法和循环结构程序的运行过程,然后通过更多的编程练习,让学生进行循环结构的程序设计。)
实验四 循环结构编程
(五)函数
1.了解模块化和分而治之的思想,了解模块化的必要性。
2.理解函数定义、函数调用和函数原型(函数声明)的相关概念,学会通过调试工具观察函数调用的过程,理解形参与实参的对应关系、参数传递过程及函数返回过程。掌握函数定义、函数调用和函数原型(函数声明)的语法。
2.了解模块划分原则,掌握多函数程序设计。
3.结合调试工具,理解内部变量、全局变量,以及static变量的概念,以及它们的特点及适用条件。
3.理解嵌套调用的过程。
4.理解递归调用过程,掌握递归函数的特点和定义方法。理解递归法和抚迭代法的区别。
5.理解带参数的宏定义,以及其与函数的区别。
6.了解C库函数的用法
(本部分是本课程的重点及难点,教师要通过例题让学生理解编写多函数程序的必要性和好处,并要求学生必须逐渐习惯编写多函数程序。)
实验五 函数
(六)数组与指针
对本部分,要求重点掌握一维数组与一级指针的关系。本部分是学生对本课程是否掌握的关键衡量内容。教师要尽量精心组织一套有效方法,提高学生的理解水平。
1.掌握一维数组的定义方法、一维数组元素引用方法和输入(出)方法,理解数组名和首地址的关系,结合调试工具理解数组元素在内存中的存放方式。
2.掌握一维数组的基本应用,包括:统计,求最大(小)值,查找,简单排序方法(至少掌握冒泡法和选择法排序)等。了解数组的插入与删除等操作。掌握编写和调试稍大规模程序的方法。
3.掌握字符串的存储方法和相关应用。
4.理解指针的概念,掌握指针作函数参数。
5.掌握二维数组的定义,数组元素的引用和初始化以及相关应用。
6.理解指向一维数组与指针的关系。
7.了解二维数组与指针的关系,了解二级指针和行指针的概念,了解指针数组的定义和应用,了解返回指针值的函数和指向函数的指针,了解动态内存分配及动态数组。
(其中,一维数组和字符串的相关应用是本课程的重点,教师要教会学生把每一个应用分别定义函数实现并单独测试,最终实现让学生逐步完成一个较大程序的设计和调试。另外,指针及相关内容是本课程的难点,教师要结合调试工具,引导学生观测指针变量和间接引用的结果,然后再引导学生学会使用指针。)
实验六 数组与指针编程
(七)结构体与共用体等
1.理解结构体的概念,掌握结构体类型和结构体变量的定义方法,掌握结构体类型变量和成员变量的引用方法。
2.掌握结构体数组的相关应用,并指导学生编写多函数程序
3.了解指向结构体的指针,了解链表结点的结构形式,链表的基本操作
4.了解共同体的含义,共用体与结构体的区别、枚举类型和位段的相关用法
实验七 结构体编程
(八) 文件
了解文件的概念、文件的读写过程,了解与文件操作相关的库函数及其使用方法。
实验八 综合编程
在线资源:
https://www.fenby.com/courses/cyu-yan-ji-chu-ke-cheng/
https://www.icourse163.org/course/zju-9001#/info。翁凯.中国大学MOOC网站慕课课程《C语言程序设计》.
参考书:
(美)琼斯,艾特肯. 《 21天学通C语言》(第6版). 信达工作室译. 人民邮电出版社. 2003(优点:循序渐进,深入浅出,结构合理,更适合自学)
Brian W.Kernighan,Dennis Ritchie. 《C 程序设计语言(英文影印版)》(第二版). 清华大学出版社或机械工业出版社.(优点:由C语言的开发者编写,最专业、最准确)
颜晖. 《C语言程序设计实验指导》. 高等教育出版社. 2008(优点:调试过程截图丰富,便于学生课下自学)