非计算机专业
《C语言程序设计》课程(本科)教学大纲
《The C Language Programming Design》
课程编号:040105
课程类型:(必修课、限选课)
课程学时:48学时(其中,理论教学32学时/2学分,实践教学16学时/1学分)
适用专业:非计算机科学与技术专业先修课程:计算机文化基础课程性质与任务
《C语言程序设计》是以上专业的一门很重要基础课,它是现今应用最为广泛的几种语言之一。在实际编程中,它有其他语言无法比拟的优势,特别是与计算机硬件接口方面。在学好语法的同时,更主要是培养优良的编程风格,掌握基本的编程方法、基本的算法、可以熟练地用 C 做出课后的习题以及基本的程序设计。
教学主要内容及学时分配
(一)C语言概述(2学时)
1.C语言的特点、发展历史、简单C程序
2,算法与数据结构、三种基本结构、算法的不同表示方法、软件工程
3.函数是功能模块。概述C语言语句分类。C语言的输入输出是靠专门功能模块(格式输入输出函数)实现
4.C程序的上机步骤
5.C的关键字、标识符
实验1 C程序的运行环境(2学时)
(二)数据类型、运算符和表达式(5学时)
1.C的几种基本数据类型
2.标识符的概念,常量、变量的概念及其分类
3.整型、长整型、短整型、无符号整型数据的定义与存储特点
4.单精度、双精度浮点数的定义与存储特点
5.字符型数据的的定义与存储特点,整型数据与字符型数据间的关系。ASCII表
6.指向基本数据类型变量的指针变量
7.不同类型数据间的混合运算规则。自动转换、强制转换
8.不同运算符(算术、关系、逻辑运算符等)的使用特点、清楚每种运算符的优先级与结合性。运算符优先级表
9.表达式的含义与使用要点
10.下列运算符的概念与使用:算术运算符、自增自减运算符、赋值运算符、逗号运算符、关系运算符、条件运算符、逻辑运算符、取地址运算符、指针运算符、类型长度运算符、位运算符
11.混合表达式
实验2 C语言的各种运算符 (2学时)
(三) 三种基本结构程序设计(5学时)
1.格式输入/输出函数的使用方法(掌握c,s,d,f等基本格式)
2.几个字符数据的输入/输出函数介绍
3.IF语句
4,SWITCH语句
5,WHILE语句与DO WHILE语句的结构与使用方法
6.FOR语句的结构,熟练掌握其使用方法
7.循环嵌套形式
8.熟悉BREAK语句和CONTINUE语句,了解GOTO语句
9.编写相应的程序(交换、冒泡法、迭代、矩形法、梯形法、素数等)
10.三种算法结构对应三种程序结构
实验3、实验4 三种结构编程 (两次实验各2学时)
(四)数组与指针(6学时)
1.一维数组
2.通过指针引用一维数组元素
3.二维数组的定义,数组元素的引用
4.通过指针引用二维数组元素
5.字符数组与字符串的概念与定义方法,熟悉常用的字符串处理函数
6.应用数组和指针进行应用程序的设计的一般方法与典型算法
7.指向字符串的指针的定义和应用
8.指针的指针、指针数组
实验5 数组与指针编程 (2学时)
(五)函数(5学时)
1.函数的定义、声明、调用、功能。形参、实参和返回值的概念
2.参数、返回值的传递方法:直接、数组、指针
3.函数嵌套调用与函数递归调用的一般过程与方法
4、变量名、数组名、指针等作为函数的参数
5.指向函数的指针的定义和用法
6.返回指针值的函数的定义和应用,它与指向函数的指针变量的区别
7.局部变量与全局变量,动态变量与静态变量及其存储类别
8.了解main函数带参数的使用方法
9,了解内部函数与外部函数的概念
10.编写相应的程序(n!、∑n、hannoi塔等)
实验6 编写模块化程序 (2学时)
(六) 预处理命令(1学时)
1.预编译的概念,掌握宏定义的方法。符号常量
2.“文件包含”,了解多个C文件的运行方法
3.条件编译
(七)结构体与共用体(5学时)
1.结构体的含义、定义、引用方法、初始化
2.共同体的含义、定义、引用方法、初始化。与结构体的区别
3.结构体数组的定义、初始化、引用
4,结构体、共同体指针,指向结构体类型数据的指针的概念及使用
5,位段的概念与使用
6.链表结点的结构形式,链表的基本操作,以及相关的内存管理函数
7.枚举类型的定义,及枚举类型的输入输出
8,用typedef定义类型
(八)文件(2学时)
1.文件的概念与分类
2.文件类型指针的定义和含义
3.文件操作的相关标准函数
4.文件的定位操作及相关的标准函数
实验7 编写文件类程序(2学时)
(九) 综合全书知识点(1学时)
1.贯穿整个C语言的全部知识点
2.扩展对C程序的综合编程技巧
实验8 综合编程训练 (2学时)
说明:1.详细的实验细节由实验室主持制定,并由理论老师参与的、与实验老师共同协商制定。
2.本大纲中的理论教学与实验教学为一个整体,不可分割。实验教学的进度与顺序安排完全按照这个大纲进行。
教学基本要求
(一)了解C语言的特点,掌握简单的C程序。了解软件工程的概念、了解数据结构及其算法表示方法。
实验1:熟悉TC环境,在TC环境下输入简单C程序并运行程序查看结果,了解C程序的特点
(二)掌握C的几种基本数据类型的定义与存储特点,了解指针的概念,掌握指针变量,及掌握不同运算符(算术、关系、逻辑运算符、位运算符、条件运算符等)的使用特点、清楚每种运算符的优先级与结合性。
实验2:复习TC环境,掌握C语言的各种运算符的使用,表达式的使用等
(三)C程序的三种基本结构:掌握C程序的顺序结构、选择结构、循环结构。熟练掌握格式输入/输出函数的使用方法。
(四)熟练掌握IF语句和SWITCH语句,掌握WHILE语句与DO WHILE语句及FOR 语句的结构与使用方法并能编写相应的程序。
实验3、实验4:熟练掌握IF语句、SWITCH语句、WHILE语句、DO WHILE语句及FOR 语句,运用三种结构编程,熟悉常用的算法。
(五)掌握一维数组及二维数组的定义,数组元素的引用方法。掌握指向数组的指针变量、指向字符串的指针、指针数组指针的指针,掌握应用数组及相应指针进行应用程序的设计的一般方法与典型算法。
实验5:运用数组编程,能读懂用指向数组的指针所编的程序,掌握相应的编程方法和典型算法。
(六)函数定义的一般形式和函数调用的几种形式。掌握指向函数的指针、返回指针值的函数,掌握函数的递归调用,应用这些知识点进行模块化程序设计。
实验6:熟练掌握函数的定义、函数的调用及函数的声明,编写模块化程序,正确定义函数和调用函数。
(七)了解预编译的概念,掌握宏定义、“文件包含”和条件编译的方法。
(八)理解结构体和共同体的含义,掌握结构体类型变量和共同体类型变量的定义方法及结构体数组和枚举类型。
(九)了解文件的概念,掌握文件操作的相关标准函数。
实验7:熟练掌握文件操作的相关标准函数,编写与文件相关的程序。
实验8:综合本书所学知识,编写一个基于文件处理数据库综合程序。
课程内容的重点和深广度要求重点掌握C语言运算符、表达式、结构化编程方法、数组与指针、函数等概念及其应用。结构体、共用体、文件、链表等内容要求掌握其概念和简单的应用,但这部分内容要求有一定的广度,并且了解其在实际应用中的作用和重要性。
对学生课外作业的要求理论课作业要求学生将教材每章节后的习题全部完成,教师可根据实际情况批改部分作业。实验课作业由教师根据具体学习内容布置相关习题并进行辅导。
本课程与后续课程的关系本科成为后续课程如C++、Visual C++等打下基础。
对学生能力培养的要求要求培养学生的自学能力、编程能力。掌握基本的算法、编程思想和方法等。
教材及主要参考书
1.龙昭华等编著.C语言程序设计.重庆大学出版社,2004
2.苏小红等编著.C语言程序设计.电子工业出版社,2002
3.潭浩强编著.C语言程序设计(第一版).清华大学出版社,1992
4.马鸣远编著.程序设计与C语言.西安电子科技大学出版社,2003
教学方法和教学媒体的使用本课程的教学重点应放在提高学生对面向过程编程思想的掌握,在教学过程中引导、精讲实例、启发学生的学习兴趣,培养学生阅读程序代码、编写程序代码的能力,为进一步学习C++、Visual C++等打下基础。充分发挥多媒体教学手段,通过实例把三种结构、数组、指针、结构体等形象化,达到生动的教学效果。总之,采用启发式教学,结合学生的实际情况和实际水平,使得教与学都生动有趣而不枯燥,使得学生能真正提高运用C语言的能力。对不同的专业,具体内容的课时分配可由上课教师具体掌握。
学习方法与建议建议学生多阅读课外相关书籍和杂志,组织C程序编程兴趣小组,互相探讨、解决实际问题,培养编程能力。