《C语言程序设计》谭浩强第四版教学案.docx

上传人:b****1 文档编号:14918378 上传时间:2023-06-28 格式:DOCX 页数:51 大小:33.90KB
下载 相关 举报
《C语言程序设计》谭浩强第四版教学案.docx_第1页
第1页 / 共51页
《C语言程序设计》谭浩强第四版教学案.docx_第2页
第2页 / 共51页
《C语言程序设计》谭浩强第四版教学案.docx_第3页
第3页 / 共51页
《C语言程序设计》谭浩强第四版教学案.docx_第4页
第4页 / 共51页
《C语言程序设计》谭浩强第四版教学案.docx_第5页
第5页 / 共51页
《C语言程序设计》谭浩强第四版教学案.docx_第6页
第6页 / 共51页
《C语言程序设计》谭浩强第四版教学案.docx_第7页
第7页 / 共51页
《C语言程序设计》谭浩强第四版教学案.docx_第8页
第8页 / 共51页
《C语言程序设计》谭浩强第四版教学案.docx_第9页
第9页 / 共51页
《C语言程序设计》谭浩强第四版教学案.docx_第10页
第10页 / 共51页
《C语言程序设计》谭浩强第四版教学案.docx_第11页
第11页 / 共51页
《C语言程序设计》谭浩强第四版教学案.docx_第12页
第12页 / 共51页
《C语言程序设计》谭浩强第四版教学案.docx_第13页
第13页 / 共51页
《C语言程序设计》谭浩强第四版教学案.docx_第14页
第14页 / 共51页
《C语言程序设计》谭浩强第四版教学案.docx_第15页
第15页 / 共51页
《C语言程序设计》谭浩强第四版教学案.docx_第16页
第16页 / 共51页
《C语言程序设计》谭浩强第四版教学案.docx_第17页
第17页 / 共51页
《C语言程序设计》谭浩强第四版教学案.docx_第18页
第18页 / 共51页
《C语言程序设计》谭浩强第四版教学案.docx_第19页
第19页 / 共51页
《C语言程序设计》谭浩强第四版教学案.docx_第20页
第20页 / 共51页
亲,该文档总共51页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

《C语言程序设计》谭浩强第四版教学案.docx

《《C语言程序设计》谭浩强第四版教学案.docx》由会员分享,可在线阅读,更多相关《《C语言程序设计》谭浩强第四版教学案.docx(51页珍藏版)》请在冰点文库上搜索。

《C语言程序设计》谭浩强第四版教学案.docx

《C语言程序设计》谭浩强第四版教学案

《C语言程序设计》教案

 

课程名称

C语言程序设计

教材

C语言程序设计(第四版)作者:

谭浩强清华大学出版社

考核方式

考试课程。

总成绩:

课堂参与占10%;试验报告占20%;期末考试占70%(闭卷考试)。

C语言是近年来国内外得到迅速推广使用的一种计算机语言。

C语言程序设计课程是计算机专业和信息管理专业的核心专业基础课,它功能丰富,表达能力强,使用灵活方便,应用面广,目标程序效率高,可移植性好,既具有高级语言的优点,又具有低级语言的优点。

既适用于应用软件编写,又适用于系统软件的编写。

在现代的工业机器人的众多语言中,大多编程风格以C语言非常类似,学生学好C语言,对将来的工作中,从事工业机器人现场编程是非常有帮助的。

课程的性质和任务

《语言程序设计》这门课是我校工业机器人、分布式发电与微电网专业的专业必修课。

作为计算机系的数据结构、c++、单片机编程等课程的前导课程,也是一门实践性很强的课程,既要掌握概念,又要动手编程,还要上机调试运行。

对工业机器人专业来说是一门必修的课程。

  同时,这门课程也是“湖南省非计算机专业学生计算机应用能力水平考试”二级考试的主要语种之一。

课程的教学目标

本课程的教学目标是:

通过理论和实践教学,使学生较好地掌握C语言各方面的知识,掌握基本的程序设计过程和技巧,具备初步的高级语言程序设计能力,并能熟练应用VC++6.0集成环境进行C语言的编写、编译与调试,能应用C语言解决一般编程问题的水平。

一、程序设计和C语言

重点:

计算机程序、计算机语言、C语言编译软件的安装、最简单的C语言程序

二、算法:

程序的灵魂

     重点:

简单的算法举例、算法的特性、用流程图表示算法。

三、顺序结构程序设计

     重点:

 C语言的数据类型、C语句的种类、赋值语句、数据的输入输出及输入输出中最常用的控制格式。

四、选择结构程序设计

     重点:

关系运算符与逻辑运算符及其组成的具有逻辑值的表达式、二条分支语句的格式及基本应用、多分支的选择语句。

五、循环结构程序设计

      重点:

C构成循环的四种方法,尤其是后三种方法、break与continue语句的基本作用。

难点:

while语句;do-while语句;for语句;循环的嵌套;break与continue语句。

六、数组

重点:

一维数组、二维数组的定义与引用;字符数组的定义与引用、常用字符串处理函数及字符处理函数;数组的应用

难点:

二维数组的定义与引用;字符数组;数组的应用

七、函数

   重点:

函数的定义;函数的参数和函数的值;函数的调用;函数的嵌套调用;函数的递归调用;数组作为函数参数;变量作用域;量存储类别;

难点:

函数定义、函数调用、函数声明等基本基本概念;函数的嵌套调用与递归调用;数组作为函数的参数、变量的存储类别与作用域。

八、指针

重点和难点:

指针与地址的基本概念、指针与变量的关系;指针与数组;指针与字符串、指针数组与二级指针;指针的应用

九、建立自己的数据类型

 重点和难点:

定义和使用结构体变量、用指针处理链表、共用体类型

十、文件

  重点:

文件的基本知识、fopen、fclose函数打开与关闭文件、顺序读写数据文件、随机读写数据文件

难点:

用二进制方式向文件读写一组数据。

十一、常见错误分析

   重点和难点:

文件的基本概念;文件的打开、关闭、常用读写方法。

 

十二、数组高级应用

重点:

不定长数组与二维数组的应用

难点:

不定长数组与二维数组的应用

十三、综合应用

重点:

数组、if语句、 循环语句、函数知识的综合应用

难点:

二维数组、指针

教材、

参考书

教材:

《C程序设计》(第四版)谭浩强著清华大学出版社2010年6月

参考书:

《C程序设计语言》Kernighan&Ritchie机械工业出版社

《C语言程序设计》教案

第1-2课时

授课内容

第1章C语言概述

教学目的

和要求

了解C历史,名称来源、C特点,掌握C程序基本结构;C语言的版本、C语言的关键字;

重点

难点

C语言的关键字;

引言

语言:

人-人语言交流;聋哑人-手势语;人机-计算机语言

C语言是一种流行的计算机高级语言,C语言适合于编写系统软件,也可以编写应用程序。

讲授

一、语言出现的历史背景

(1)C语言的发展源于人们希望用高级语言编写操作系统。

(C-BCPL第二字母)

ALGOL60(高级语言)->CPL(硬件支持)-BCPC->B->C->标准C->ANSIC->ISOC

(2)语言既具有高级语言特性,又具有低级语言特性-中级语言。

二、C语言的特点

C语言既具有一般高级语言特性,又具有低级语言特性。

8个特点。

1、C语言简洁、紧凑。

2、运算符丰富。

3、数据结构类型丰富。

4、具有结构化的控制语句。

5、语法限制不太严格,程序设计自由度大。

6、C语言允许直接访问物理地址,能实现汇编语言的大部分功能,可以直接对硬件进行操作。

7、生成目标代码质量高,程序执行效率高。

8、与汇编语言相比,用C语言写的程序可移植性好。

三、C语言的关键字

附录C(书本378页)

四、C语言的版本和关键字

auto、inline、restrict、_bool、_Complex、_Imaginary是后来扩充的,有些编译器也扩充了关键词。

五、TurboC编译器的安装与使用

课后自我

总结分析

备注

《C语言程序设计》教案

第3-4课时

授课内容

第1章VC++6.0、VS2015的安装和使用

教学目的

和要求

了解C语言常用的编译器;掌握VC++6.0、VS2015的下载与安装;

掌握VC++6.0、VS2015的使用

重点

难点

重点:

VC++6.0、VS2015的使用

难点:

VC++6.0、VS2015的使用

讲授

一、C语言常用的编译器

(1)32位的WINDOWS操作系统与64位的WINDOWS操作系统

(2)VC++6.0

(2)VS2015

二、文件夹与压缩包

1、文件夹

2、文件的压缩与解压

3、软件的下载

4、软件安装的一般流程

5、产品id号、序列号与破解补丁

三、VC++6.0、VS2015的下载与安装

7、生成目标代码质量高,程序执行效率高。

8、与汇编语言相比,用C语言写的程序可移植性好。

四、VC++6.0、VS2015的使用

VC++6.0、VS2015的使用

五、c4droid编译器的使用

1、基于安卓手机操作系统的C语言编译器

2、c4droid编译器的安装

3、c4droid编译器的使用

六、上机演示及实践操作

在win7电脑上示范VC++6.0、VS2015的编译器的安装和使用

课后自我

总结分析

同学们对计算机基础知识比较缺乏,安装VC++6.0时,不知道如何解压,也不知道如何下载和计算机操作系统版本匹配的VC++6.0或VS2015

备注

《C语言程序设计》教案

第5-6课时

授课内容

第2章算法的基本概念和简单算法举例

教学目的

和要求

了解算法的基本概念、程序设计的一般流程、掌握书写简单的算法流程、了解算法的特性

重点

难点

掌握书写简单的算法流程。

引言(5分钟)

什么是算法?

菜谱、拳谱、歌谱都是广义的算法。

以湘潭去北京开会为例解释算法的优劣。

1+2+3+…100的常规算法和高斯的首尾相加快递算法

讲授

一、简单算法举例(37分钟)

(1)求5!

(10分钟)

常规求解方式的烦琐引出用循环方式求解的方法。

分析用循环方式求5!

的C语言代码

(2)求1×3×4×5×7×9×11(10分钟)

询问同学此题与5!

的异同,引每项是2n-1的通项,在上题的基础上改动少量代码可实现本题的C语言编程。

(3)求2000-2500年间的闰年(10分钟)

图示方式给学生解说闰年要满足的条件,引出要做多次判断的较复杂流程

提问:

能被4整除,也能被100整除,是不是等同能被400整除这一认识误区

再次提问:

2000年是不是闰年,为什么?

2060年是不是闰年,为什么?

检测学生是否了解闰年判断流程。

(4)素数的求法(7分钟)

根据素数的定义来循环判断是否能被一系列数整除,最后判断是不是素数,请学生尝试写出求解流程。

二、算法的特性(3分钟)

1、有穷性。

2、确定性。

3、0个或多少输入。

4、1个或多个输出。

5、有效性。

三、上机演示及实践操作

在讲课的同时切换软件界面调试代码

课后自我

总结分析

通过提问可以了解同学们对知识的掌握程序,互动性的教学设计更有益于教学

备注

《C语言程序设计》教案

第7-8课时

授课内容

第2章算法的表示

教学目的

和要求

掌握用流程图表示算法;了解传统流程图的弊端;掌握N-S流程图表示方法。

重点

难点

重点:

掌握用流程图表示算法;掌握N-S流程图表示方法

难点:

掌握用流程图表示算法;掌握N-S流程图表示方法

讲授

一、用流程图表示算法(15分钟)

1、介绍流程图的图框及含义

起止框、输入输出框、判断框、处理框、流程线、连接点、注释框

2、示范用流程图表示两个分支的if语句

3、将例2.1的算法用流程图表示并分析

4、将例2.2的算法用流程图表示并分析

5、将例2.3的算法用流程图表示并分析

总结:

流程图表示算法比较直观

2、将例2.4多项式求和用流程图表示

(1)、书本求解本题算法的流程图表示

(2)、其它算法的流程图表示

二、三种基本结构和改进的流程图(15分钟)

1、统流程图的弊端

2、三种基本结构

(1)顺序

(2)选择

(3)循环分当型和直到型两种

二、用N—S流程图表示算法(15分钟)

1、N-S流程图的符号

2、将例2.1的算法用N-S流程图表示并分析

3、将例2.2的算法用N-S流程图表示并分析

4、将例2.3的算法用N-S流程图表示并分析

三、实践环节

对“分时问候”的算法绘制N-S流程图

课后自我

总结分析

备注

《C语言程序设计》教案

第9-10课时

授课内容

第3章最简单的C程序设计——顺序程序设计

教学目的

和要求

举例说明顺序程序调序的基本流程、整型数据类型、整型数据的溢出。

重点

难点

重点:

整型数据类型;整型数据的溢出

难点:

整型数据类型;整型数据的溢出

讲授

一、顺序程序设计举例(10分钟)

1、绘制例3.1算法的N-S流程图

2、根据N-S流程图编写代码并调试

二、常量与变量(15分钟)

1、常量概念。

(1)整型常量、整型常量、字符常量、字符串常量

(2)ASCII字符

(3)转义字符

2、变量概念、变量名

(1)先定义,后使用

(2)变量名与变量值概念的异同

三、数据类型概述(5分钟)

1、不同类型的数据在内存中占用的存储单位长度是不同的

VC++6.0为字符型数据分配一个字节长度;为int型(基本型)分配4个字节的长度。

2、存储不同数据类型的方法也是不同的。

四、整型数据(15分钟)

1、整型数据的分类:

(1)基本整型(int型)

(2)短整型(shortint);(3)长整型(longint)

2、整型变量的符号属性

(1)有符号型和无符号型

(2)整型数据常见的存储空间和值的范围

3、整型数据的溢出

五、上机演示及实践操作

在讲课的同时切换编译界面调试整型数据溢出

课后自我

总结分析

备注

《C语言程序设计》教案

第11-12课时

授课内容

第3章最简单的C程序设计——顺序程序设计

教学目的

和要求

举例说明顺序程序调序的基本流程、数据的表现形式及运算、不同数据类型的混合运算。

重点

难点

整型数据类型longint和shortint数据类型、运算符的优级先级、不同数据类型的混合运算

讲授

一、浮点型数据

1、浮点型数据的存储方式

2、浮点型数据的表现形式浮点数据的指数形式

3、浮点型数据的类型

(1)单精度

(2)双精度(3)长双精度

二、字符型数据

1、字符常量表示。

直接表示/转义表示(特殊的转义字符,一般字符也可以转义表示)。

特殊转义字符对显示/打印的控制作用

2、字符变量-1个字节,char关键词。

3、字符数据的存储-ASCII码/二进制存储-C语言可以将字符看做很短的整数处理。

例2-7A,例2-8A可以看出字符数据的具有整数特性。

三、怎样确定常量的类型

1、从常量的表示形式,如精度

2、只要看到单撇号括起来的单个字符或转义字符即字符常量

四、运算符与表达式

1、基本的算术运算符2、自增、自减运算符

3、算术表达式和运算符的优先级与结合性

五、数值型数据混合运算

1、自动隐式转换。

2、强制类型转换。

六、C语句

1、控制语句2、函数调用语句3、表达式语句

4、空语句5、复合语句

七、上机演示及实践操作

在讲课的同时切换编译界面调试整型数据溢出

课后自我

总结分析

备注

《C语言程序设计》教案

第13-14课时

授课内容

第4章

(1)选择结构程序设计

教学目的

和要求

理解条件-产生逻辑值的表达式;熟练绘制选择语句算术的流程图

掌握关系运算符、关系表达式;逻辑运算符、逻辑表达式

重点

难点

重点:

关系运算符、关系表达式;逻辑运算符、关系表达式

难点:

熟练绘制选择语句算术的流程图

讲授

一、选择结构的条件判断

1、理解条件-产生逻辑值的表达式

2、选择结构的流程图绘制

3、二元二次方程求根的算法及程序编写

二、关系运算符与关系表达式

“关系运算”(比较运算)即,将两个值进行比较,判断是否符合或满足给定的条件。

1、关系运算符及其优先次序

a)C语言提供6种关系运算符。

表5-1。

b)关于优先次序:

前4种高于后两种;关系低于算术;关系高于赋值

例5-2。

2、关系表达式

关系表达式的值是逻辑值,即“真”“假”。

C语言没有逻辑型数据,1-“真”,0-“假”。

例5-3。

三、逻辑运算符和逻辑表达式

“关系运算”(比较运算)即,两个逻辑值的运算。

1、逻辑运算符。

(1)&&逻辑与,

(2)||逻辑或,(3)!

逻辑非

2、逻辑运算符的优先顺序:

3、逻辑表达式

四、条件运算符与条件表达式

1、单目运算符、双目运算符、三目运算符的概念

2、C语言唯一的三目运算符构成的条件表达式

课后自我

总结分析

备注

《C语言程序设计》教案

第15-16课时

授课内容

第4章

(2)选择结构程序设计

教学目的

和要求

选择结构的嵌套;switch语句实现多分支选择结构

重点

难点

重点:

选择结构的嵌套;switch语句实现多分支选择结构

难点:

选择结构的嵌套;switch语句实现多分支选择结构

讲授

一、if语句的嵌套

1、在if语句中又包含一个或多个if语句称为if语句的嵌套。

2、如果if与else的数目不一致,为了体现程序设计者的思想,可加花括号来确定配对的关系。

3、利用代码缩进增强代码的可读性,养成良好的编程风格

4、例4.5阶跃函数用if语句的嵌套实现

(1)绘制流程图

(2)将流程图编写成程序

二、用switch语句实现多分支选择结构

如果条件分支较多,利用if语句显得程序冗长,且可读性降低。

因此,C语言设计了switch语句。

1、switch语句的一般形式

2、例4.6输出考试成绩的ABCD段等级

(1)绘制流程图

(2)将流程图编写成程序

3、例4.7用switch语句处理菜单命令

三、选择结构程序设计综合举例

例4.8判断某一年是否是闰年

例4.9求二元二次方程的实根

四、上机演示及实践操作

在讲课的同时切换软件界面调试代码

课后自我

总结分析

备注

《C语言程序设计》教案

第17-18课时

授课内容

第5章

(1)循环结构程序设计

教学目的

和要求

掌握while当型循环、dowhile直到型循环、for循环

重点

难点

while当型循环、dowhile直到型循环、for循环的形式、执行过程、使用注意问题

引言

重复执行就是循环。

重复工作是计算机特别擅长工作之一。

重复执行不是简单地重复,每次重复,操作的数据(状态、条件)都可能发生变化。

重复的动作是受控制的,C语言提供三种循环控制语句,构成了三种基本的循环结构。

讲授

一、while语句(当型循环)

1、while语句的一般形式是:

2、执行过程是:

(流程图、N-S图)

3、使用while注意的问题。

例5-1:

利用while语句,编写程序计算1+2+3+…+100。

二、do-while语句(直到型循环)

1、do-while语句的一般形式

2、do-while执行过程(流程图)

3、do-while说明:

例5-4:

利用do-while语句计算机1+1/2+1/4+…+1/50。

三、for语句(当型循环)

1、for语句的一般形式(给出while循环的对应结构)

2、for循环执行过程(流程图)

例5-6:

写一个程序,计算半径为0.5,1.5,2.5,3.5,4.5,5.5mm时圆的半径。

例5-7:

求正整数n的阶乘n!

其中n由用户输入。

3、for语句最容易理解、最常用的形式

4、for语句说明(6点)。

C语言的for语句功能强大,使用灵活。

四、上机演示及实践操作

在讲课的同时切换软件界面调试代码

课后自我

总结分析

备注

《C语言程序设计》教案

第19-20课时

授课内容

第5章

(2)循环结构程序设计

教学目的

和要求

掌握条件运算符、条件表达式

掌握switch-case语句

重点

难点

switch-case语句

引言

a)复习关系运算、逻辑运算、if语句

b)引入简单的条件运算符及表达式、以及开关语句

讲授

一、条件运算符、条件表达式

在if语句中,在表达式为“真”和“假”时,都只执行一个赋值语句给同一个变量赋值时,可以使用简单的条件运算符来处理。

例如:

if(a>b)max=a;elsemax=b;<=>max=a>b?

a:

b;

(1)条件表达式的一般形式:

表达式1?

表达式2:

表达式3

(2)条件表达式说明(5点)

例5-4.

二、switch-case语句(多分支选择语句/开关语句)

3、switch一般形式

4、switch语句说明。

(1)-(7)

三、分支程序例子

例5.5写程序,判断某一年是否是闰年。

例5.6求一元二次方程ax2+bx+c=0的根。

例5.7运输公司对用户计算运费。

六、应用举例

例6-14:

从键盘输入一个大于2的整数n,判断是不是素数。

例6-15:

求100-200之间的所有素数。

例6-16:

输出下三角99乘法表

七、上机演示及学生操作

在讲课的同时切换软件界面调试代码

课后自我

总结分析

备注

《C语言程序设计》教案

第21-22课时

授课内容

第6章

(1)一维组的应用

教学目的

和要求

数组的基本概念;

一维数组定义、初始化、引用;最大值、冒泡排序、选择排序算法。

重点

难点

重点:

一维数组定义、初始化、引用;求最大值、冒泡排序、选择排序算法;矩阵操作

难点:

冒泡排序、选择排序算法

引言

基本数据类型-构造类型的数据-数组

数组、数组元素、数组的下标、数组的维数

例如:

inta[10];一维数组可以看作一个数列,向量。

例如:

floatb[3][3];二维数组可以看作一个矩阵。

讲授

一、定义和引用一维数组

1、一维数组的定义类型说明数组名[整型常量表达式]

2、一维数组定义说明下标从0开始

3、数组元素的引用

例6.1利用数组输出1-10

(1)循环语句

(2)数组下标越界

4、一维数组的初始化的几种形式

(1)定义时赋初值

(2)部分赋初值

(3)数组元素全部置0(4)数组元素如全部赋值可不指定长度

5、给数组元素赋初值和给数组集合赋初值的异同

(1)给数组元素赋初值inttemp[1]=9;

(2)给数组集合赋初值inttemp[10]=(1,2,3);

二、一维数组的应用例子

例6-2:

用数组来处理斐波那契数列

例6-3:

采用“冒泡法”对任意输入的10个整数按由小到大的顺序排序。

例6-4:

采用“选择法”对任意输入的10个整数按由大到小的顺序排序。

三、动态内存分配法实现不定长一维数组

某些情境需要定义一个数组,但数组的长度不定,因为这个长度是根据某些其他条件确定的,这时我们需要定义一个长度不定的数组。

如读取不同声音的语音数据序列。

课后自我

总结分析

备注

《C语言程序设计》教案

第23-24课时

授课内容

第6章

(2)二维数组和多维数组的应用

教学目的

和要求

二维数组定义、初始化、引用;多维数组

重点

难点

重点:

二维数组定义、初始化、;双重for循环读取二维数组;二维数组1维和2维的分辨;

难点:

双重for循环读取二维数组、二维数组1维和2维的分辨

二、二维数组(注意:

类比一维数组)

1、二维数组的应用场景

2、二维数组的定义

3、二维数组元素的内存分布

二、二维数组元素的引用

例6-5:

二维数组元素的引用的例子(自学)-构造、打印单位矩阵。

思考:

下标是从1开始使用的,哪些元素在此例子中未使用?

它们的值是多少?

(随机值)

三、二维数组的初始化的几种形式

(1)分行给二维数组赋值

(2)将所有数组写在一个花括号内

(3)对部分元素赋值

(4)对全部元素赋初值,二维数组的1维长度可以省略,2维长度不能省略

四、双重for循环法读取二维数组

比较抽象,图解较直观

五、二维数组应用举例

例6-4:

将二维数组的行和列互换,存到另一个数组里。

例6-5:

找出矩阵所有元素中的最大值。

例6-附加分别计算矩阵的两条对角线(主、辅对角线)上的元素之和。

六、多维数组的应用

1、多维数组的定义

2、多维数组元素的引用

3、多维数组的初始化

七、不定长二维数组的实现

某些情境需要定义一个二维数组,但二维数组的长度不定,因为这个长度是根据某些其他条件确定的,这时我们需要定义一个长度不定的二维数组。

如读取不同尺寸图像点的像素值。

八、上机演示及学生操作

在讲课的同时切换软件界面调试代码

课后自我

总结分析

备注

《C语言程序设计》教案

第25-26课时

授课内容

第6章(3)字符数组

教学目的

和要求

字符数组定义、初始化、引用;字符串与字符数组;字符串处理函数;字符数组应用

重点

难点

重点:

字符串与

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2