《C语言程序设计》教学大纲
课程名称:中文名称 :C语言程序设计;英文名称:C Language Programming
课程编码:161002
学    分:分
总 学 时:72学时,其中,理论学时:52学时;上机学时:20学时。
适用专业:全校理工科各专业
先修课程:计算机基础
执 笔 人
审 订 人
一、课程的性质与任务
《C语言程序设计》是为全校所有的理工科专业的学生开设的公共基础课,也是一门重要的必修课。其目的是使学生掌握程序设计的基本方法,培养学生掌握利用计算机处理问题的思维方法与应用能力。要求学生掌握程序的三种基本结构及结构化的程序设计方法,了解并掌握几种典型的算法,并且能够熟练地运用C语言编写各种应用程序,为进一步学习其它相关课程奠定基础。
二、教学内容与学时分配
第一章  程序设计基本概念                                                  (3学时)
本章重点:一、算法及特性;二、结构化程序设计方法。难点:算法设计及其表示。
第一节程序和程序设计
一、程序;二、程序设计。
第二节算法
第三节结构化程序设计方法
    第四节  C语言程序的基本结构
第二章 数据类型、运算符和表达式                                          (5学时)
本章重点:一、标识符的正确使用;二、各种基本数据类型的使用;三、算术运算符的优先级和结合性;四、表达式计算中的类型转换。难点:一、各种类型数据在计算机内存中的存储形式;二、自增自减运算。
第一节  C语言的数据类型
第二节  常量与变量
第三节  整型数据
第四节  实型数据
第五节  字符型数据
第六节  算术运算符与算术表达式
第七节  赋值运算符与赋值表达式
一、赋值运算符和赋值表达式;二、复合的赋值表达式;三、自加、自减运算符;四、赋值运算中的类型转换。
    第八节  逗号运算符与逗号表达式
第三章 顺序结构程序设计                                                (4学时)
本章重点:一、printf函数;二、scanf函数。难点:输入与输出时的格式控制。
第一节 C语句概述
    第二节 赋值语句
第三节 数据的输入与输出
一、printf函数;二、putchar函数;三、scanf函数;四、getchar函数 
    第四节  顺序结构程序举例
第四章 选择结构程序设计                                                    (4学时)
本章重点:一、逻辑值的表示、使用及其运算;二、关系运算符的运算规则及关系表达式;三、逻辑运算符的运算规则及逻辑表达式;四、if语句;五、switch语句的形式与执行过程。难点:一、逻辑表达式求值时的“非完全求解法”;二、条件运算符具有的自右向左的结合性及条件表达式的求解过程;三、if语句的嵌套使用问题;四、switch语句的执行过程及在switch语句中正确使用break语句的方法。
第一节  关系运算和逻辑运算
      一、逻辑量及其在C语言中的表示;二、关系运算符和关系表达式;
      三、逻辑运算符和逻辑表达式。
    第二节  if语句
printf函数是如何实现的
第三节  条件运算符和条件表达式
    第四节  switch语句
    第五节  语句标号和goto语句(本节内容仅要求一般了解)
    第六节  选择结构程序举例
第五章  循环结构程序设计                                                    (6学时)
本章重点:一、while循环、do-while循环及for循环的构成、执行过程及使用方法;二、循环嵌套的使用方法;三、用循环结构实现的典型算法,如:累加、阶乘、穷举法、递推法等。难点:一、for循环使用时的灵活性,如:表达式的缺省及其处理、循环体是空语句等;二、多重循环(即循环嵌套)的使用;三、break语句和continue语句的作用和区别。
第一节  while语句
    第二节  do-while语句
    第三节  for语句
    第四节  循环的嵌套
    第五节 break和continue语句在循环体中的作用
      一、break语句;二、continue语句。
第六节  用if语句和goto语句构成的循环(本节内容仅要求一般了解)
第七节  循环结构程序举例
第六章 数组                                                                (6学时)
本章重点:一、各类数组的定义、 引用及初始化;二、用字符数组来处理字符串;三、数组应用的典型算法,如:求最大/最小值、排序等; 四、字符串处理函数。难点:一、二维数组的存储结构;二、字符数组与字符串的关系;三、字符串的输入输出。
第一节  一维数组
    第二节  二维数组
    第三节  字符数组
一、字符数组的定义与引用;二、字符数组的初始化;三、用字符数组来存放字符串;四、字符数组的输入和输出;五、用于字符串处理的函数;六、字符数组应用举例。
第七章 函数                                                                (6学时)
本章重点:一、库函数的正确使用;二、函数的定义、调用和说明的方法;三、调用函数和被调用函数之间的数据传递规则;四、函数的递归调用方法。难点:一、函数定义、调用和说明三者的关系;二、传值调用、传址调用的含义及使用;三、递归的实现方法。
第一节  库函数
    第二节  函数的定义和返回值
    第三节  函数的调用
第四节  函数的说明
第五节  调用函数和被调用函数之间的数据传递
第六节  函数的递归调用
第七节  程序举例
第八章  用户标识符的作用域和存储类型                                          (4学时)