C语言程序设计教案由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c程序设计第五版教案”。
C语言程序设计教案
课程名称:C语言程序设计
总 学 时:51(其中讲课学时:36,上机学时:15)课程类型:必修课程 专业:06气候
教 材:《C程序设计》(第三版),谭浩强,清华大学出版社,2005.教学参考书:
1.C语言程序设计教程,谭浩强,高等教育出版社 2.C高级实用程序设计,王士元,清华大学出版社
教学目的和要求:
本课程作为非计算机专业的基础课,旨在使学生通过本课程的学习不仅要掌握C语言的基础知识,而且更重要的是掌握进行程序设计的基本方法,提高学生编程的能力。具体要求如下:
1.熟悉并理解程序设计的基本概念和基本方法。理解程序设计的基本思想和思维方法,了解 C程序的基本结构,各种语法成分的作用、语法结构及运用方式。
2. 培养运用C语言基本知识编写简单的程序,解决问题的基本能力。
3. 综合运用多个知识点的内容进行简单的应用程序开发,考察综合解决问题的能力。
总第一讲
第一章 C语言概述(2学时,共一讲)
本讲教学目的:
1.了解C语言程序特点和产生的历史背景。
2.熟悉C语言程序的结构、编译环境和上机调试的过程。
内容纲要:
1. C语言出现的历史背景 2. C语言的特点 3. C语言程序介绍
4. C语言的上机步骤
本讲教学重点与难点:
1.C语言的特点与格式
2. C语言的上机调试的步骤
教学方法、实施步骤及时间分配:
采用多媒体进行教学,具体教学步骤安排如下:
1.引入新课————————————————————————————5’
自我介绍、课程安排与要求。
2.新课教学———————————————————————————90’
介绍C语言发展的历史
介绍C语言的特点 介绍简单C语言程序的结构
介绍C语言上机调试的步骤
3.总结、布置作业及预习内容————————————————————5’
总第二讲
第二章 程序的灵魂——算法(2学时,共一讲)
本讲教学目的:
1.掌握算法的内涵、特性与表示方法。
2.熟悉结构化程序设计方法。
内容纲要:
1.算法的概念 2.算法的特性 3.算法的表示
4.结构化程序设计方法
本讲教学重点与难点:
1.算法的内涵 2.结构化程序设计方法
教学方法、实施步骤及时间分配:
采用多媒体进行教学,具体教学步骤安排如下:
1.回顾上一节课主要内容,引入新课—————————————————5’ 2.新课教学———————————————————————————90’ 3.总结、布置作业及预习内容—————————————————————5’
总第三讲
第三章 数据的类型、运算符与表达式(4学时,共二讲)
第一讲
本讲教学目的:
1.使学生了解数据类型的概念
2. 使学生掌握整型数据,实型数据,字符型数据的数据存储形式和定义、使用方法
内容纲要:
1.C的数据类型
数据类型的概念、C语言中数据类型的分类。2.常量和变量
各种表示形式的整数、实数、字符和字符(串)常量,符号常量的定义和使用。
变量的定义和初始化。
本讲教学重点与难点:
1.C语言的数据类型
2.不同数据类型的使用范围 3.数据的隐式转换问题
教学方法、实施步骤及时间分配:
由于本节内容语法点比较多,所以在教学中结合多个小程序,在练习中掌握各知识点。采用多媒体进行教学,具体教学步骤和时间分配安排如下:
1.回顾上一节课主要内容,引入新课—————————————————5’ 2.新课教学———————————————————————————90’ 3.总结、布置作业及预习内容————————————————————5’
总第四讲
第三章 数据的类型、运算符与表达式
第二讲
本讲教学目的:
1.使学生掌握算术运算符与表达式的使用,赋值、逗号运算符和表达式的使用
2.使学生掌握各类数据类型间的混合运算的规则 3.使学生了解几种位运算符的运算规则
内容纲要:
1.运算符与表达式
运算符的优先级和结合性,表达式的运算规则,包括:算术运算符和算术表达式,赋值运算符和赋值表达式,逗号运算符和逗号表达式,不同类型的数据在计算和赋值时的类型转换规则。
2.位运算
按位与、按位或、按位异或、取反、左移、右移,位运算赋值,不同长度的数据进行位运算的原则。
本讲教学重点与难点:
1.C语言中的运算符和表达式 2.位运算
3.赋值运算符和赋值表达式 教学方法、实施步骤及时间分配:
由于本节内容语法点比较多,所以在教学中结合多个小程序,在练习中掌握各知识点。
采用多媒体进行教学,具体教学步骤和时间分配安排如下:
1.回顾上一节课主要内容,引入新课—————————————————5’ 2.新课教学—————————————————————————-——90’
(1)运算符与表达式(2)位运算
3.总结、布置作业及预习内容———————————————————5’
总第五讲
第四章 顺序程序设计(2学时,共一讲)
本讲教学目的:
1.使学生掌握程序的三种基本结构; 2.使学生掌握格式控制符的含义和作用;
3.使学生会运用赋值语句、输出、输入函数编制简单的程序。
内容纲要:
1.三种基本的程序结构
顺序结构的特点,选择结构的特点,循环结构的特点。2.C语句概述 C语言的语句分类。3.赋值语句
4.字符数据的输入输出 5.格式输入输出
格式输入/输出函数的调用方法和功能,格式控制符的含义和作用。6.顺序结构程序设计举例
本讲教学重点与难点:
1.顺序结构的程序流程
2.格式化输入输出在实际编程中的正确应用
教学方法、实施步骤及时间分配: 通过程序设计操练,熟悉编程基础。通过程序扩展,进行对比学习。采用多媒体进行教学,具体教学步骤和时间分配安排如下:
1.回顾上一节课主要内容,引入新课—————————————————5’ 2.新课教学———————————————————————————90’ 3.总结、布置作业及预习内容 ———————————————————5’
总第六讲
第五章 选择结构程序设计(2学时,共一讲)
本讲教学目的:
1.使学生掌握关系运算符的优先级顺序、关系表达式的值的计算; 2.使学生掌握逻辑运算符的优先级顺序、逻辑表达式的值的计算; 3.使学生掌握条件运算符的使用方法;掌握利用if语句和switch语句进行选择结构程序设计的基本方法。
内容纲要:
1.关系运算符和关系表达式
关系运算符及其优先级,关系表达式的构成和运算规则。2.逻辑运算符和逻辑表达式
逻辑运算符及其优先级,逻辑表达式的构成和运算规则。3.if 语句
if语句的三种形式,if语句的嵌套,条件运算符和条件表达式。4.switch语句
用switch语句实现多分支选择结构。5.选择结构程序举例
本讲教学重点与难点:
1.关系运算符和关系表达式
2.在程序中正确使用if语句构成条件判断 3.条件语句的嵌套
教学方法、实施步骤及时间分配:
从简单的问题着手,先要求学生自己编写简单程序。引入条件语句,同时在程序中讲解相关的语法知识点,提升高度。
采用多媒体进行教学,具体教学步骤和时间分配安排如下:
1.回顾上一节课主要内容,引入新课—————————————————5’ 2.新课教学———————————————————————————90’ 3.总结、布置作业及预习内容—————————————————————5’
总第七讲
第六章 循环控制(3学时,共1.5讲)
本讲教学目的:
1.使学生掌握while语句,do-while语句,for语句的特点和循环结构程序设计的基本方法;
2.使学生熟悉循环的嵌套使用。
内容纲要:
1.while 语句
使用while 语句实现当型循环的程序设计方法。2.do-while语句
使用do-while语句实现直到型循环的程序设计方法。3.for语句
使用for语句实现次数型循环结构的程序设计。4.循环嵌套
本讲教学重点与难点:
1.for 语句在循环结构中的应用
2.While、do while语句在循环结构中的应用 3.多层循环嵌套
教学方法、实施步骤及时间分配:
从简单的问题着手,先要求学生自己编写简单程序。引入循环语句,同时在程序中讲解相关的语法知识点,提升高度。
采用多媒体进行教学,具体教学步骤和时间分配安排如下:
1.回顾上一节课主要内容,引入新课—————————————————5’ 2.新课教学———————————————————————————90’ 3.总结、布置作业及预习内容—————————————————————5’
第七章 数组(4学时,共二讲)
总第八讲
第六章 循环控制(1学时)、第七章 数组(1学时)
本讲教学目的:
1.掌握break语句和continue语句用法; 2.使学生掌握循环编程的方法;
内容纲要:
1.break语句和continue语句
break和continue语句功能和使用方法。2.循环结构程序举例 3.一维数组的定义和引用
一维数组的定义和初始化,,一维数组元素的引用,一维数组的程序举例。
本讲教学重点与难点:
1.break语句和continue语句 2.循环结构程序编程方法 3.一维数组的定义和引用
教学方法、实施步骤及时间分配:
从简单的问题着手,先要求学生自己编写简单程序。引入循环语句,同时在程序中讲解相关的语法知识点,提升高度。
采用多媒体进行教学,具体教学步骤和时间分配安排如下:
1.回顾上一节课主要内容,引入新课—————————————————5’ 2.新课教学———————————————————————————90’ 3.总结、布置作业及预习内容—————————————————————5’
第七章 数组(4学时,共二讲)
总第九讲
第七章 数组(2学时)
本讲教学目的:
1.使学生掌握一维数组、二维数组的定义和引用 2.使学生掌握一维数组、二维数组的初始化 3.使学生掌握字符数组的定义,引用和初始化 4.使学生熟悉字符数组的输入输出
内容纲要:
二维数组的定义和引用:
1. 二维数组的定义和初始化; 2.二维数组元素的引用; 3.二维数组的程序举例。
本讲教学重点与难点:
1.数组的排序; 2.二维数组概念的理解 3.“冒泡法”排序
教学方法、实施步骤及时间分配:
采用实例引入和编程半成品法。通过一个简单的实例引入数组的应用,示范数组的定义、输入操作之后,引导学生自己作出输出解,从中讲解有关数组的知识点,培养学生的编程能力。
采用多媒体进行教学,具体教学步骤和时间分配安排如下:
1.回顾上一节课主要内容,引入新课—————————————————5’ 2.新课教学———————————————————————————90’ 3.总结、布置作业及预习内容—————————————————————5’
第八章 函数(4学时,共二讲)
总第十讲
第七章 数组(1学时)、第八章 函数(1学时)
本讲教学目的:
1.使学生掌握掌握字符处理函数puts, gets, strcat, strcpy, strcmp, strlen 的使用;
2.使学生了解函数strlwr,strupr的功能; 3.使学生了解函数的概念和分类;
4.使学生掌握函数定义的形式,函数的形参和实参的概念,函数的返回值和函数的调用。
内容纲要:
1.字符数组的定义和初始化,字符数组元素的引用,字符串和字符串结束标志,字符数组的输入输出,字符串处理函数,字符数组应用举例; 2.函数的定义方法; 3.函数参数和函数的值
形式参数与实在参数,函数的返回值。4.函数调用——函数的一般调用方式; 5.函数的嵌套调用;
本讲教学重点与难点:
1.字符数组的运算; 2.函数的定义与调用; 3.形参与实参的意义与作用
教学方法、实施步骤及时间分配:
采用实例引入和编程半成品法。通过一个简单的实例引入数组的应用,示范数组的定义、输入操作之后,引导学生自己作出输出解,从中讲解有关数组的知识点,培养学生的编程能力。
通过程序的改造,将程序中的功能模块独立出来而引入函数的介绍。采用多媒体进行教学,具体教学步骤和时间分配安排如下:
1.回顾上一节课主要内容,引入新课—————————————————5’ 2.新课教学———————————————————————————90’ 3.总结、布置作业及预习内容—————————————————————5’
第八章 函数(4学时,共二讲)
总第十一讲 第八章 函数(2学时)
本讲教学目的:
1.使学生掌握函数的调用方法; 2.使学生熟悉函数的嵌套调用; 3.使学生掌握简单的函数递归调用; 4.使学生熟悉数组作为函数参数;
5.使学生掌握局部变量和全局变量的作用范围。
内容纲要:
1.函数的递归调用;
2.函数调用时数据传递方法;
函数调用时的值传递,函数调用时的地址传递,函数调用时的返回值传递方式。
3.局部变量和全局变量。4.变量的存储类别
变量的存储类别(自动、静态、寄存器、外部),局部变量和全局变量的作用域和生存期。
本讲教学重点与难点:
1.函数的定义与调用; 2.形参与实参的意义与作用; 3.参数的两种传递方式。
教学方法、实施步骤及时间分配:
采用多媒体进行教学,具体教学步骤和时间分配安排如下:
1.回顾上一节课主要内容,引入新课—————————————————5’ 2.新课教学———————————————————————————90’ 3.总结、布置作业及预习内容—————————————————————5’
第九章 预处理命令(1学时)
总第十二讲
第八章 函数(1学时)、第九章 预处理命令(1学时)
本讲教学目的:
1.使学生了解内部函数和外部函数的定义和作用范围; 2.使学生熟悉带参数的宏定义,和不带参数的宏定义; 3.使学生了解“文件包含”处理; 4.使学生了解条件编译。
内容纲要:
1.内部函数和外部函数
2.如何运行一个多文件的程序 3.宏定义;
4.“文件包含”处理; 5.条件编译。
本讲教学重点与难点: 1. 内部函数和外部函数;
2.条件编译。
教学方法、实施步骤及时间分配:
采用多媒体进行教学,具体教学步骤和时间分配安排如下: 1.回顾上一节课主要内容,引入新课—————————————————5’ 2.新课教学———————————————————————————90’ 3.总结、布置作业及预习内容—————————————————————5’
第十章 指针(4学时,共二讲)
总第十三讲
本讲教学目的:
1.使学生了解地址和指针的概念;
2.使学生掌握指针变量的定义,引用,指针变量作为函数参数的使用; 3.使学生掌握指向数组元素的指针的含义,通过指针引用数组元素的方法; 4.使学生掌握数组名,指针作为函数参数的使用方法; 5.使学生掌握多维数组中指针的移动规则;
6.使学生掌握字符串不同的表示方式,字符串指针和字符数组作函数参数的比较。
内容纲要:
1.地址、指针和指针变量的概念
指针与地址,指针变量的概念与作用。2.变量的指针和指向变量的指针变量;
3.指向变量的指针变量的定义、初始化、赋值、引用方法,指针变量作为函数的参数;
4.数组的指针和指向数组的指针变量
指向数组的指针变量的定义、初始化、赋值、引用方法;指向多维数组的指针变量的定义、初始化、赋值、引用方法。5.字符串的指针和指向字符串的指针变量 6.指针数组
指针数组的定义、初始化和引用;main函数的参数。
本讲教学重点与难点:
1. 指针变量以及指向数组的指针变量的应用; 2.指针引用数组时指针的定位;
教学方法、实施步骤及时间分配: 结合实例进行教学
采用多媒体进行教学,具体教学步骤和时间分配安排如下:
1.回顾上一节课主要内容,引入新课—————————————————5’ 2.新课教学———————————————————————————90’ 3.总结、布置作业及预习内容—————————————————————5’
第十章 指针(4学时,共二讲)
总第十四讲
本讲教学目的:
1.使学生熟悉指向函数的指针; 2.使学生掌握返回指针值的函数; 3.使学生熟悉指向数组和指向指针的指针。
内容纲要:
1.指向指针的指针变量; 2.返回指针值的函数; 3.指针变量作函数参数;
4.函数的指针和指向函数的指针变量。
本讲教学重点与难点:
1.函数的指针和指向函数的指针变量的区别;
2.指针变量作函数参数和普通变量作函数参数的异同。
教学方法、实施步骤及时间分配: 结合实例进行教学
采用多媒体进行教学,具体教学步骤和时间分配安排如下:
1.回顾上一节课主要内容,引入新课—————————————————5’ 2.新课教学———————————————————————————90’ 3.总结、布置作业及预习内容—————————————————————5’ 第十一章 结构体与共同体(4学时,共二讲,第一讲)
总第十五讲
本讲教学目的:
(1)掌握定义结构体类型的定义方法(2)掌握结构体变量的定义和引用方法(3)掌握结构体数组的定义和初始化(4)掌握指向结构体变量的指针
(5)了解指向结构体的指针作函数的参数的使用方法
内容纲要:
(1)声明一个结构体的一般形式(2)定义结构体类型变量的方法(3)结构体变量的引用(4)结构体变量的初始化(5)结构体数组的定义和初始化(6)指向结构体类型数据的指针
本讲教学重点与难点:.结构体的概念与引用 2.指向结构体类型数据的指针
教学方法、实施步骤及时间分配: 结合实例进行教学
采用多媒体进行教学,具体教学步骤和时间分配安排如下: 1.回顾上一节课主要内容,引入新课—————————————————5’ 2.新课教学———————————————————————————90’ 3.总结、布置作业及预习内容—————————————————————5’
第十一章 结构体与共同体(4学时,共二讲,第二讲)
总第十六讲
本讲教学目的:
(1)使学生了解指向结构体的指针作函数的参数的使用方法(2)掌握链表的建立,输出,删除,插入等操作(3)了解共同体的概念,共同体类型数据的特点(4)熟悉共同体变量的引用方式(5)了解枚举类型的声明方法
内容纲要:
(1)用指针处理链表
链表的概念,处理动态链表所需的函数,链表的建立,输出,删除,插入等操作。(2)共用体的概念
共同体变量的引用方式,共同体类型数据的特点。(3)枚举类型
枚举类型的概念和定义,枚举型变量的定义和引用。
本讲教学重点与难点:.用指针处理链表
教学方法、实施步骤及时间分配: 结合实例进行教学
采用多媒体进行教学,具体教学步骤和时间分配安排如下:
1.回顾上一节课主要内容,引入新课—————————————————5’ 2.新课教学———————————————————————————90’ 3.总结、布置作业及预习内容—————————————————————5’
第十章 文件(2学时,共一讲)
总第十七讲
本讲教学目的:
1.使学生了解文件类型的指针; 2.掌握文件的打开关闭的方法; 3.掌握文件的读写和定位。
内容纲要:
1.文件概述; 2.文件类型指针; 3.文件的打开和关闭; 4.文件的读写;
5.字符的读写函数,字符串的读写函数,数据块的读写函数,格式读写函数;
6.文件的定位;
rewind函数,fseek函数和随机读写。7.文件应用举例。
本讲教学重点与难点:
1.文件概念的内涵; 2.文件的定位。
教学方法、实施步骤及时间分配: 结合实例进行教学
采用多媒体进行教学,具体教学步骤和时间分配安排如下:
1.回顾上一节课主要内容,引入新课—————————————————5’ 2.新课教学———————————————————————————90’ 3.总结、布置作业及预习内容—————————————————————5’