C语言程序设计教学大纲 
 一、课程信息 
 课程编号:2010120 
 课程名称:C语言程序设计 
 课程类别:专业核心课 
 学分:5 
 学时:92 
 课堂讲授:56 
 上机实验:36 
 适用范围:计算机科学与技术专业、软件工程专业、软件工程(日语强化)专业、网络工程专业 
 预修课程:计算机科学概论  
 二、课程的性质与任务 
 1.课程性质:C语言是计算机专业一门非常重要的专业核心课 
 2.课程任务:本课程是计算机专业学生的第一门程序设课,对培养学生的编程思想,提高编程技能起着重要作用,为部分后续课程具有铺垫作用。本课程以工程应用为背景,以算法设计为主线,采用典型工程实例为引导的模式组织教学,循序渐进地把C语言主要知识融合到具体工程实例中。内容涵盖了C语言基本数据类型、运算符与表达式;库函数;分支控制结构、循环控制结构;数组;字符串;指针;函数;结构体与链表;文件操作等。 
 修完本课程的学生应达到如下要求: 
 (1)在理论知识方面: 
 熟悉C语言基本的语法知识 
 能运用3种基本的程序结构——顺序、分支和循环 
 熟悉数组的操作 
 熟悉指针的操作 
 熟悉字符串操作 
 熟悉结构体的操作和链表初步知识 
 能够运用函数解决简单工程应用 
 熟悉文件操作 
 (2)在专业技能和素质方面: 
 熟悉C程序的风格,形成良好的编程习惯 
 能够在VC++集成环境下编写和调试程序 
 能够利用流程图或N-S图描述算法 
 能够分析和理解较复杂的C程序 
 能够对照已有程序,进行功能上的扩展和完善 
 能够运用所学知识和技能对一般工程问题进行程序分析和设计 
 初步形成学习新技术的能力  
 三、课程内容、基本要求与学时分配  
 
  
   
    
     | 章 节  | 内容与基本要求  | 课时安排  | 备 注  | 
    
     | 讲授课时  | 上机课时  | 
    
     | 第  1  章  C  语  言  初  步  | 1.1 C语言的背景  1.2 C程序结构  1.3标识符  理解:C程序的基本结构  掌握:标识符的含义;用户自定义标识符的规定  | 2  |  |  | 
    
     | 1.4数据类型  1.5变量  1.6常量  1.7输入/输出  理解:数据类型、变量和常量的概念;输入/输出的含义和机制  掌握:变量的含义、声明和初始化方法;常量的类型、表示方法;printf、scanf、getchar、putchar的用法  | 2  |  |  | 
    
     | 第  2  章  表  达  式  和  简  单  程  序  设  计  | 2.1表达式  理解:运算符和表达式的概念;优先级、结合性的概念  掌握:初级表达式、二元表达式、赋值表达式、后缀表达式、一元表达式、逗号表达式的处理方法  | 2  |  |  | 
    
     | 2.2副作用  2.3表达式求值  2.4混合类型表达式  2.5 C语句  理解:副作用的含义;  掌握:表达式求值方法;隐式类型转换的原则和强制类型转换的方法;  | 2  |  |  | 
    
     | 2.6标准库函数  2.7简单程序设计  2.8 VC++ 6.0开发环境的使用  理解:库函数和用户自定义函数的含义  掌握:常用的库函数;简单程序设计的方法;VC++6.0环境使用方法  | 2  | 2  | 2.8节参见《习题解答与上机指导》P117-124  独立作业-1  | 
    
     | 第  3  章  分  支  程  序  设  计  | 3.0算法概述  理解:算法的含义及算法与程序之间的关系  掌握:算法的结构;算法的特点;算法的描述工具——流程图和N-S图  | 2  | 2  | 3.0节参见《习题解答与上机指导》P134-138  | 
    
     | 3.1关系和逻辑运算  3.2两路分支  理解:逻辑数据类型及其表示方法;分支与分支嵌套的含义  掌握:关系运算和逻辑运算;if语句;if…else语句;嵌套格式;条件表达式  | 2  | 
    
     | 3.3多路分支  理解:多路分支的概念;  掌握:switch语句;if…else-if语句   | 2  | 2  | 独立作业-2  | 
    
     | 第  4  章  循  环  程  序  设  计  | 4.1循环概述  4.2 while语句  4.3 for语句  4.4 do...while语句  理解:循环的含义和分类  掌握:while语句;for语句;do-while语句  | 2  | 2  |  | 
    
     | 4.5循环的嵌套  4.6 break与continue语句  理解:循环嵌套的含义  掌握:循环嵌套;break与continue语句   | 2  | 2  | 独立作业-3  随堂测验-1  | 
    
     | 第  5  章  数  组  | 5.1数组的概念  5.2一维数组  5.5二维数组  理解:数组的概念;二维数组与一维数组的等效关系  掌握:一维数组、二维数组操作方法  | 2  | 2  |  | 
    
     | 5.3顺序查找  5.4冒泡排序  理解:查找和排序的概念  掌握:顺序查找;冒泡排序  | 2  | 2  | 独立作业-4  随堂测验-2  | 
    
     | 第  6  章  指  针  | 6.1指针的概念  6.2指针与变量  6.3多级指针  理解:指针的概念;多级指针的概念  掌握:指针的定义、初始化和使用指针处理单个变量的方法;多级指针的定义、初始化和处理单个变量的方法  | 2  | 2  |  | 
    
     | 6.4指针与数组  理解:指针数组和行指针概念  掌握:掌握指针处理一维数组、二维数组的方法  | 2  | 2  |  | 
    
     | 6.5动态内存分配  理解:静态内存分配与动态内存分配的概念  掌握:常用内存分配函数malloc、free的用法   | 2  | 
    
     | 第  7  章  字  符  串  | 7.1字符串的存储  7.2指针与字符串  7.3字符串输入输出  理解:字符串的概念  掌握:字符串存储方法;使用指针处理字符串的方法;字符串输入输出方法;  | 2  | 2  | 独立作业-5  随堂测验-3  | 
    
     | 7.4字符串处理函数  掌握:常用字符串处理函数strlen、strcpy、strcmp、strcat的用法  | 2  | 
    
     | 第  8  章  函  数  | 8.1结构化程序设计  8.2函数定义  8.3原型声明与函数调用  理解:结构化程序设计的基本原理;C程序的结构化设计方法;模块与函数的关系;数据通讯、参数传递、函数调用等概念  掌握:函数的定义、声明和调用方法  | 2  | 2  |  | 
    
     | 8.4向函数传值  8.5向函数传地址  8.6向函数传数组  8.7向函数传字符串  理解:传值和传地址的概念  掌握:函数间传值和传地址的方法;函数间传数组和传字符串的方法  | 2  | 
    
     | 8.8指针型的函数  8.9函数指针  8.12命令行参数  理解:指针型函数、函数指针、命令行参数的概念  掌握:指针型函数的定义方法;函数指针的定义、初始化和用法;命令行参数及用法  | 2  | 2  |  | 
    
     | 8.10作用域  8.11变量的存储类型  理解:作用域、生命期的概念;  掌握:存储类型与作用域和生命期的关系;不同存储类型的变量定义方法  | 2  | 2  |  | 
    
     | 8.13递归  理解:递归的概念;递归实现的机制  掌握:递归函数的定义、调用方法  | 2  | 
    
     | 第  9  章  结  构  、  联  合  与  枚  举  | 9.1类型定义  9.2结构类型  理解:结构的概念;  掌握:结构的声明;定义结构变量与结构指针的方法;访问结构成员的方法;类型定义方法  | 2  | 2  |  | 
    
     | 9.4复杂结构  理解:嵌套结构的概念;单链表的概念  掌握:复杂结构的声明方法;使用复杂结构解决实际问题的方法;用递归结构创建单链表  | 2  | 
    
     | 9.5结构数组  9.6结构与函数  理解:结构数组的概念;  掌握:结构数组的定义、初始化方法;向函数传递结构的方法  | 2  | 2  |  | 
    
     | 9.7联合  9.8枚举  理解:联合的概念;枚举的概念  掌握:使用联合处理问题的方法;使用枚举处理问题的方法  | 2  | 2  | 独立作业-7  | 
    
     | 第  10  章  文  件  | 10.1文件概述  10.2文件的打开与关闭  理解:文件的概念;文件的分类;文件指针的概念  掌握:文件处理的步骤;文件打开和关闭  | 2  | 2  |  | 
    
     | 10.3文件操作  10.4其他函数  掌握:文本文件、二进制文件的操作方法  | 2  | 2  | 独立作业-8  随堂测验-5  | 
    
     | 合计  | 56  | 36  | 92  | 
   
  
  
 四、推荐教材及参考书目 
 1.教材: 
 《C语言程序设计》,葛日波主编,北京邮电大学出版社 
 《C语言程序设计习题解答与上机指导》,葛日波著,北京邮电大学出版社 
 2.参考书目: 
 《A Book on C》,AlKelley/Ira Pohl,University of California 
 《C程序设计》,谭浩强著(第三版),清华大学出版社 
 《C语言程序设计习题与详解》,葛日波著,北京邮电大学出版社,2009年8月 
 五、授课方式 
 1.理论授课 
 理论授课以1-4个自然班为单位(最好不超过3个)集中在多媒体教室,以投影为主、板书为辅,采用工程用例为导引的任务驱动模式和现场编程演示的方式进行,把知识融入到工程用例中。也就是说,整个课程的所有知识点都是由一系列预先设计好的工程应用实例组织到一起,并紧紧围绕算法设计主线,现场进行编程,避免脱离实际的纸上谈兵式、灌输式的说课,避免让学生通过死记硬背获取生硬的教条,突出“以学生为中心,以教师为主导”的教学理念,通过演示实例和分析算法培养学生独立思考的习惯和解决问题的方法。 
 2.上机 
 上机环节采用课上和课下相结合的方式进行。课上由教师集中指导学生自主练习;课下由老师下达任务、布置作业,由学生独立思考,独立完成编码,教师检查作业的方式进行,着重培养学生的编程能力。上机整个环节任务的下达应该本着两个兼顾:一是兼顾理论授课环节,与理论授课所涉及的工程用例相衔接,并在原有基础上进行适当扩展,或者给出与理论授课所涉及的工程用例相类似的其他工程问题,让学生分析解决。二是兼顾整个上机过程前后内容之间的衔接,用例的引入前后关联,引导学生由浅入深、由简到烦、由小到大逐步完成一个功能较完整的工程应用项目——学生成绩管理系统的设计与实现过程。  
 六、考核办法 
 1.平时成绩:30分  
 
  
   
    
     | 考核项目  | 考核内容  | 考核方式  | 分值  | 
    
     | 学习表现  | 学习态度、笔记、创新意识等  | 教师平时考查  | 5  | 
    
     | 随堂测验  | 重要知识点和技能点  | 教师平时随堂考核  | 5  | 
    
     | 独立作业  | 独立作业  | 教师统一布置8次独立作业,学生课后独立完成,老师至少全批全改4次,每次1-2分  | 8  | 
    
     | 编程  | 编程任务代码提交情况  | 教师统一布置具有实际工程背景的编程任务,学生于上机课或课后独立完成,提交程序代码,老师检查评定成绩,每次1-2分  | 12  | 
    
     | 成绩评定说明  | 
       晚交或不交作业,本次作业计0分;抄袭他人或提供他人抄袭者作业计0分 迟到一次扣3分,迟到三次取消考试资格 旷课一次扣5分,旷课两次取消考试资格  | 
   
  
  
 2.期末成绩:100分折合为总成绩的70% 
 3.考试方式:闭卷考试 
 4.成绩评定:百分制 
 修订日期:2011-3-25  
 编写人:葛日波 
 审核人:张应博