欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2023年《C语言程序设计》_谭浩强版精品讲义.pdf

    • 资源ID:92547295       资源大小:1.42MB        全文页数:28页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2023年《C语言程序设计》_谭浩强版精品讲义.pdf

    C 语言程序设计 _谭浩强版教案 C 语言程序设计教案 单 位:湖南理工职业技术学院 学院(教研室):风能工程学院 工业机器人专业 授课教师:周常欣 职 称:助教 课程名称 C 语言程序设计 教材 C 语言程序设计(第四版)作者:谭浩强 清华大学出版社 考核方式 考查课程。总成绩:课堂参与占 10%;试验报告占 20%;期末考试占 70%(闭卷考试:程序编写题目)。教 学 基 本 目 的 与 要 求 C 语言就是近年来国内外得到迅速推广使用的一种计算机语言。C 语言程序设计课程就是计算机专业与信息管理专业的核心专业基础课,它功能丰富,表达能力强,使用灵活方便,应用面广,目标程序效率高,可移植性好,既具有高级语言的优点,又具有低级语言的优点。既适用于应用软件编写,又适用于系统软件的编写。在现代的工业机器人的众多语言中,大多编程风格以 C 语言非常类似,学生学好 C 语言,对将来的工作中,从事工业机器人现场编程就是非常有帮助的。课程的性质与任务 语言程序设计这门课就是我校工业机器人、分布式发电与微电网专业的专业必修课。作为计算机系的数据结构、c+、单片机编程等课程的前导课程,也就是一门实践性很强的课程,既要掌握概念,又要动手编程,还要上机调试运行。对工业机器人专业来说就是一门必修的课程。同时,这门课程也就是“湖南省非计算机专业学生计算机应用能力水平考试”二级考试的主要语种之一。课程的教学目标 本课程的教学目标就是:通过理论与实践教学,使学生较好地掌握 C 语言各方面的知识,掌握基本的程序设计过程与技巧,具备初步的高级语言程序设计能力,并能熟练应用VC+6、0 集成环境进行 C 语言的编写、编译与调试,能应用 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 语言程序设计 _谭浩强版教案 C 语言程序设计教案 第 1-2 课时 授课内容 第 1 章 C 语言概述 教学目的 与要求 了解 C 历史,名称来源、C 特点,掌握 C 程序基本结构;C 语言的版本、C 语言的关键字;重点 难点 C 语言的关键字;教 学 安 排 引言 语言:人人语言交流;聋哑人手势语;人机计算机语言 C 语言就是一种流行的计算机高级语言,C 语言适合于编写系统软件,也可以编写应用程序。讲授 一、语言出现的历史背景(1)C 语言的发展源于人们希望用高级语言编写操作系统。(C-BCPL第二字母)ALGOL60(高级语言)-CPL(硬件支持)-BCPC-B-C-标准 C-ANSI C-ISO C(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 就是后来扩充的,有些编译器也扩充了关键词。五、Turbo C 编译器的安装与使用 课后自我 总结分析 备注 C 语言程序设计 _谭浩强版教案 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 语言程序设计教案 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 语言程序设计教案 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 课时 C 语言程序设计 _谭浩强版教案 授课内容 第 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)短整型(short int);(3)长整型(long int)2、整型变量的符号属性(1)有符号型与无符号型(2)整型数据常见的存储空间与值的范围 3、整型数据的溢出 五、上机演示及实践操作 在讲课的同时切换编译界面调试整型数据溢出 课后自我 总结分析 备注 C 语言程序设计教案 第 11-12 课时 C 语言程序设计 _谭浩强版教案 授课内容 第 3 章 最简单的 C 程序设计顺序程序设计 教学目的 与要求 举例说明顺序程序调序的基本流程、数据的表现形式及运算、不同数据类型的混合运算。重点 难点 整型数据类型 long int 与 short int 数据类型、运算符的优级先级、不同数据类型的混合运算 教 学 安 排 讲授 一、浮点型数据 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 课时 C 语言程序设计 _谭浩强版教案 授课内容 第 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)选择结构程序设计 C 语言程序设计 _谭浩强版教案 教学目的 与要求 选择结构的嵌套;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 当型循环、do while 直到型循环、for 循环 C 语言程序设计 _谭浩强版教案 重点 难点 while 当型循环、do while 直到型循环、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 语句 C 语言程序设计 _谭浩强版教案 重点 难点 switch-case 语句 教 学 安 排 引言 a)复习关系运算、逻辑运算、if 语句 b)引入简单的条件运算符及表达式、以及开关语句 讲授 一、条件运算符、条件表达式 在 if 语句中,在表达式为“真”与“假”时,都只执行一个赋值语句给同一个变量赋值时,可以使用简单的条件运算符来处理。例如:if(ab)max=a;else max=b;max=ab?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)一维组的应用 教学目的 与要求 数组的基本概念;一维数组定义、初始化、引用;最大值、冒泡排序、选择排序算法。C 语言程序设计 _谭浩强版教案 重点 难点 重点:一维数组定义、初始化、引用;求最大值、冒泡排序、选择排序算法;矩阵操作 难点:冒泡排序、选择排序算法 教 学 安 排 引言 基本数据类型构造类型的数据数组 数组、数组元素、数组的下标、数组的维数 例如:int a10;一维数组可以瞧作一个数列,向量。例如:float b33;二维数组可以瞧作一个矩阵。讲授 一、定义与引用一维数组 1、一维数组的定义 类型说明 数组名 整型常量表达式 2、一维数组定义说明 下标从 0 开始 3、数组元素的引用 例 6、1 利用数组输出 1-10(1)循环语句(2)数组下标越界 4、一维数组的初始化的几种形式(1)定义时赋初值(2)部分赋初值(3)数组元素全部置 0(4)数组元素如全部赋值可不指定长度 5、给数组元素赋初值与给数组集合赋初值的异同(1)给数组元素赋初值 int temp1=9;(2)给数组集合赋初值 int temp10=(1,2,3);二、一维数组的应用例子 例 6-2:用数组来处理斐波那契数列 例 6-3:采用“冒泡法”对任意输入的 10 个整数按由小到大的顺序排序。例 6-4:采用“选择法”对任意输入的 10 个整数按由大到小的顺序排序。三、动态内存分配法实现不定长一维数组 某些情境需要定义一个数组,但数组的长度不定,因为这个长度就是根据某些其她条件确定的,这时我们需要定义一个长度不定的数组。如读取不同声音的语音数据序列。课后自我 总结分析 备注 C 语言程序设计教案 第 23-24 课时 授课内容 第 6 章(2)二维数组与多维数组的应用 教学目的 与要求 二维数组定义、初始化、引用;多维数组 C 语言程序设计 _谭浩强版教案 重点 难点 重点:二维数组定义、初始化、;双重 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)字符数组 教学目的 与要求 字符数组定义、初始化、引用;字符串与字符数组;字符串处理函数;字符数组应用 C 语言程序设计 _谭浩强版教案 重点 难点 重点:字符串与字符数组;字符串处理函数 难点:字符串与字符数组;字符串处理函数 教 学 安 排 引言 复习数组概念,数组定义、初始化、元素引用方法。引入字符数组(元素为字符)。讲授 一、字符数组 1、字符数组的定义 2、字符数组的初始化 3、字符数组的引用 4、二维字符数组的应用举例 二、字符与字符串结束标志 1、字符串与字符数组的区别 2、字符串结束标记志 系统对字符串常量也自动加一个 0 作为结束符。例如 C Program”共有 9 个字符,但在内存中占 10 个字节,最后一个字节 0 就是系统自动加上的。(通过 sizeof()函数可验证)三、字符数组的输入与输出(1)逐个字符输入输出(2)将整个字符串输出(3)利用字符串的结束符批量输出 四、字符串概述 1、字符串的输出(1)“%s”格式符(2)print 语句的输出项参数用字符数组名,而非数组元素名 2、字符串的引用 五、由字符数组来构造字符串 根据定义,可由字符数组添加一个 0 符形成字符串。六、二维字符数组 1、二维字符数组的定义 2、二维字符数组的初始化 3、二维字符数组的引用 课后自我 总结分析 备注 C 语言程序设计教案 第 27-28 课时 授课内容 第 6章(4)字符串函数的应用 教学目的 与要求 字符数组定义、初始化、引用;字符串与字符数组;字符串处理函数;字符数组应用 C 语言程序设计 _谭浩强版教案 重点 难点 重点:字符串与字符数组;字符串处理函数 难点:字符串与字符数组;字符串处理函数 教 学 安 排 讲授 一、使用字符串处理函数 1、puts 函数 2、gets 函数 3、strcat 函数:字符串截取函数 4、strcopy 与 strncopy 函数:字符串复制函数 5、strcmp 函数:字符串比较函数 6、strlen 测试字符串长度函数 7、strlwr 函数:转换为小写的函数 8、strupr 函数:转换为大写的函数 二、字符数组应用举例 例 6、8:由键盘任意输入一个字符串与一个字符,要求从该字符串中删除所指定的字符。例 6、9:由键盘输入三个字符串,找出其中的最大串。(字符串库函数的应用)三、学会阅读 C 标准函数手册 附录 F C 库函数 1、引用预编译头文件 include(包含头文件)2、学会阅读函数库函数的函数类型与参数 四、字符数组函数的综合练习 1、打印杨辉三角形 2、有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中。3、魔方阵,要求输出 1 n2 4、找出二维数组的鞍点,即该位置上的元素在该行上最在、在该列上最小,也可能没有鞍点。5、编一程序,将两个字符串连接起来,不要用 strcat 函数。四、上机演示及学实践操作 在讲课的同时切换软件界面调试代码 课后自我 总结分析 备注 C 语言程序设计教案 第 29-30 课时 授课内容 第 7 章(1)函数及函数的调用 教学目的 与要求 掌握函数定义、调用、声明;函数参数传递方式;了解函数递归调用 C 语言程序设计 _谭浩强版教案 重点 难点 重点:函数定义、调用、声明;函数参数传递方式 难点:函数参数传递方式传址(尚未学习指针,用数组举例)教 学 安 排 讲授 一、函数概述 1、C 语言的函数。C 语言的函数就是子程序的总称,包括函数与过程。C 语言函数可以分为库函数、用户自定义函数 2、C 语言的程序由函数组成,函数就是 C 语言程序的基本单位,程序的总体功能通过函数的调用来实现。其中,main 起点(图)3、函数的一些概念:主函数、其它函数;主调函数、被调函数;库函数、用户自定义函数;无参函数、有参函数;无返回值函数、有返回值函数 二、函数的一般形式 函数应当先定义,后调用。函数定义的一般形式及说明(1)(2)例 7-1:输入三个整数,求三个整数中的最大值,打印。思考问题。三、函数的参数与返回值 1、形式参数 2、实际参数 3、参数的传递。2、函数返回值。return 语句及说明。四、函数的调用 1、函数调用的一般形式及说明(单独语句/表达式中、参数相容)例 7-3:以表达式的形式进行函数的调用。(自学)2、函数调用时数据的传递-参数传递、函数的返回值、全局变量 例 7-4:求学生平均成绩。P110、(注意参数传递的就是数组的地址)3、函数的声明 例 7-5:函数声明例子。P112、五、函数的嵌套调用与递归调用 函数允许嵌套调用与递归调用。递归调用就是嵌套调用的特例。(1)函数的嵌套调用 例 7-6:计算两整数的最小公倍数。P113、(2)函数的递归调用 例 7-7:用递归法求 n!(P、114)课后自我 总结分析 备注 C 语言程序设计教案 第 31-32 课时 授课内容 第 7 章(2)函数变量的作用域与生命周期 教学目的 与要求 掌握变量作用域、生命期 掌握插入排序 C 语言程序设计 _谭浩强版教案 重点 难点 重点:变量作用域、生命期;插入排序 难点:变量作用域、生命期;插入排序 教 学 安 排 讲授 六、变量的作用域(有效范围、可见性)变量的作用域:变量的有效范围或者变量的可见性。变量定义的位置决定了变量的作用域。变量从作用域(变量的有效范围,可见性)的角度可以分为:局部变量,全局变量。1、局部变量(函数体内变量、形参变量、复合语句内变量)互不干预、动态分配 例 7-8:各函数局部变量同名的应用示例。P116-117、2、全局变量(所有函数之外文件作用域、程序作用域)全局变量可以与局部变量同名坐井观天 例 7-9:全局变量、局部变量同名的应用示例。P118。例 7-10:全局变量、局部变量的应用示例。P118。七、变量的存储类别(生存期、生命期)变量从空间上分为局部变量、全局变量。从变量存在的时间的长短(即变量生存期)来划分,变量还可以分为:动态存储变量、静态存储变量。变量的存储方式决定了变量的生存期。C 语言变量的存储方式可以分为:动态存储方式、静态存储方式。全局变量全部就是静态的;局部变量可以就是静态,也可以就是动态(auto,register)。例 7-11:寄存器局部变量的应用、P120、(完成 n+(n-1)+(n-2)+、+1)例 7-12:静态局部变量的应用示例。P121、八、内部函数与外部函数 默认就是外部函数 九、函数应用举例 例 7-14:字符串逆序。P124、例 7-15:求矩阵最大元素。P124-125、例 7-16:利用插入法将 10 个字符从小到大进行排序。P125-126、课后自我 总结分析 备注 C 语言程序设计教案 第 33-34 课时 授课内容 第 8 章(1)指针概述及指针作为函数参数 教学目的 与要求 指针的基本概念,变量访问方式;指针变量定义、赋值、引用。指针作为函数参数。C 语言程序设计 _谭浩强版教案 重点 难点 重点:指针的基本概念;指针变量定义、赋值、引用;指针作为函数参数 难点:指针的基本概念 教 学 安 排 讲授指针基础 一、指针变量的定义(变量先定义后使用)1、定义格式:2、说明:(1)指针变量基类型-指针变量指向数据的类型(2)指针变量存放地址值,本身占用空间 2 字节 二、指针变量的赋值(使用未赋值指针等同于向一个随机的内存中写入数据)1、将地址直接赋值给指针变量。例如,float*f=malloc(4);2、将变量地址赋值给指针变量。例如:float a,*p;p=&a;三、指针变量的引用 1、&运算符(取地址运算符)2、*运算符(指针运算符、间接访问运算符)例 9-1,P137、指针变量定义、赋值、引用例子。四、指针变量作为函数的参数 变量可以作为函数参数,指针变量同样可以作为函数参数。使用指针作为函数参数,可以在函数中对指针所指向变量的值进行处理(修改)。指针作为函数参数,本质上同样就是单向传值,但就是由于传递的就是地址值,所以可以通过地址值间接修改形参、实参共同指向的变量。例 9-2:输入 a,b 两个数交换后输出。在 swap 函数中使用两个指针作为函数参数,对两个指针所指向变量值进行交换。结论:1、要在被调用函数中,修改主调函数的变量值应当:(1)将主调函数变量的地址传递给被调用函数,就就是说函数应当传递的就是变量的地址。(2)被调用函数的形参应当使用指针变量接受主调函数的地址值。(3)在被调用函数中通过形参指针变量间接访问,修改实参、形参地址所共同指向的变量。本例的操作就是交换两个指针变量所指向的变量。2、函数使用指针作为参数,可以增加主调函数与被调函数之间数据沟通的渠道。课后自我 总结分析 备注 C 语言程序设计教案 第 35-36 课时 授课内容 第 8 章(2)通过指针引用数组 教学目的 与要求 通过指针引用数组元素;数组的指针变量”作为函数参数;通过指针指向多维数组 C 语言程序设计 _谭浩强版教案 重点 难点 重点:数组的指针变量”作为函数参数;通过指针指向多维数组 难点:数组的指针变量”作为函数参数;通过指针指向多维数组 教 学 安 排 讲授 一、数组元素的指针 每个数组元素都在内存中占有存储单元,它们都有相应的地址,所谓数组元素的指针就就是数组元素的地址。二、在引用指针元素时指针的运算 1、在一定条件下允许对指针进行加与减的运算。2、在指针指向数组元素时,可以对指针进行加与自加,减与自减运算。三、通过指针引用数组元素 1、下标法 2、指针法 例 8、7 通过指针变量输出整型数组 a 的 10 个元素。四、用数组名与“数组的指针变量”作为函数参数 例 8、8 将数组 a 中 n 个整数按相反顺序存放。例 8、9 将例 8、8 写成指针变量作实参 例 8、10 用指针法对 10 个整数按从大到小顺序排序 五、通过指针指向多维数组 1、多维数组的地址 2、指向多维数组元素的指针(1)指向数组元素的指针变量 例 8、12 有一个 3 4 的二维数组,要求用指向元素的指针变量输出二维数组各元素的值。(2)指向由 m个元素组成的一维数组的指针变量 3、用指向数组的指针作函数参数 例 8、14 有一个班,3 个学生,各学 4 门课程,计算总平均分数以及第 n 个学生的成绩。例 8、15 在例 8、14 的基础上,查找有 1 门以上课程不及格的学生,输出她们全部课程的成绩。课后自我 总结分析 备注 C 语言程序设计教案 第 37-38 课时 授课内容 第 8章(3)通过指针引用字符串 教学目的 与要求 掌握字符指针作为函数参数;理解使用字符指针变量与字符数组的异同 C 语言程序设计 _谭浩强版教案 重点 难点 重点:字符指针作为函数参数;理解使用字符指针变量与字符数组的异同 难点:字符指针作为函数参数;理解使用字符指针变量与字符数组的异同 教 学 安 排 讲授 一、字符串的引用方式 1、可通过字符数组名与下标引用字符串中的一个字符。2、也可以通过数组名与格式声明%s 输出该字符串 例 8、16 定义一个字符数组,在其中存放字符串“I love China!”,输出该字符串与第 8 个字符。C 语言中只有字符变量,没有字符串变量。例 8、18 将字符串 a 复制为字符串 b,然后输出字符串 b。例 8、19 例 8、18 改用指针变量来处理 二、字符指针作为函数参数 例 8、20 用函数调用实现字符串的复制(1)用字符数组名作为函数的参数(2)用字符指针变量作为函数的参数 其实编译系统把字符数组名按指针变量处理的,只就是表示形式不同。三、使用字符指针变量与字符数组的比较 1、字符数组由若干个元素组成,每个元素中放一个字符,而字符指针变量中存放的就是地址。2、赋值方式。可以对字符指针变量赋值,但不能对数组名赋值 3、初始化含义 4、存储单元内容 5、指针变量的值就是可以改变的,而数组名代表一个固定的值 6、字符数组中各元素的值就是可以改变的。7、引用数组元素 四、随堂练习 写一函数,实现两个字符串的比较。int strcmp(char*p1,char*p2)五、上机演示及学实践操作 在讲课的同时切换到编译器界面调试代码 课后自我 总结分析 备注 C 语言程序设计教案 第 39-40 课时 授课内容 第 8 章(4)动态内存管理与指向它的指针变量 教学目的 与要求 掌握用函数指针变量调用函数;掌握用指向函数的指针作函数参数 C 语言程序设计 _谭浩强版教案 重点 难点 重点:用函数指针变量调用函数;用指向函数的指针作函数参数 难点:用函数指针变量调用函数;用指向函数的指针作函数参数 教 学 安 排 讲授 一、指向函数的指针 编译系统为函数代码分配一段存储空间,这段存储空间的起始地址,称为这个函数的指针 二、用函数指针变量调用函数 例 8、22 求两个整数的最大值 讲解通过函数名调用函数与通过指针变量访问它所指向的函数的异同。三、怎样定义与使用指向函

    注意事项

    本文(2023年《C语言程序设计》_谭浩强版精品讲义.pdf)为本站会员(C****o)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开