c程序设计 第11章 结构体、联合体与枚举类型.ppt
《c程序设计 第11章 结构体、联合体与枚举类型.ppt》由会员分享,可在线阅读,更多相关《c程序设计 第11章 结构体、联合体与枚举类型.ppt(56页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、c程序设计 第11章 结构体、联合体与枚举类型 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望课程地位与学习方法v课程地位:在软件设计中具有基础性地位培养计算思维-用计算机求解问题时特有的思维方式。“C通百通”!v编程高手秘笈上机思考上机思考程序设计是“练”出来的!v考核办法:平时上机实践(60%)+期终闭卷笔试(40%)第1讲我与程序设计有个美丽的约会-初识C语言v课程重要性学习方法v编程入门知识v赋值语句的用法vif判断的用法v实例:比大小程序设计入门知识v计
2、算机程序的执行过程:v冯.诺依曼计算机模型数据的二进制表示存储程序、自动执行、顺序串行v程序是怎样炼成的?编写代码编译执行程序修改程序是“改”出来的!v其他应用程序与操作系统的关系应用程序与内存、外存的关系初识C语言v赋值 赋值运算符“=”a=b+c;先读取b和c的值并作加法运算,将结果写到变量a中取。计算机存取数据的特点:v无论多少次“读”操作不会改变被读数据v写操作将使用新的值覆盖原来的值,原来的数据丢失。v比较与判断If语句的用法常用的比较运算符:,=,=应用实例v求两个数的和v交换两个变量的值v求2个数中的较大值v求3个数中的最大值v求4个数、5个数v思考:求100个数,1000个数中
3、的最大值。第2讲机器擅长(重复和存储)-循环与数组(初步)v赋值运算符vfor循环的运用v数组的基本用法第3讲:初识程序的魅力 -机器擅长之循环v1、求2个数的最大值,求5个数的最大值,求100个数的最大值,到n个数中的最大值。v2、如何从重复语句过渡到循环语句。v3、for语句的4个要素:变量初识化,循环条件,循环变量改变,循环体。v4、实例:求最高分v5、实例:倒计时v6、实例:简单统计第4讲:复杂逻辑的基础-循环与判断的结合(1)v1:循环的基本应用、累加算法的实现:实例:游乐园的收入、证件的连续编号、大奖赛计分、简单统计v2:for 与if配合:龟兔赛跑v3:for循环的嵌套:关键:理
4、解内外循环的含义v4:双重循环举例:九九乘法表第5讲 我想与我得(进阶)-分支与循环的综合运用(2)v1:for 与if配合v2:双精度double型的保留小数问题,整型到double型的转换问题。v3:循环:证件的连续编号、龟兔赛跑、性别比v4:双重循环举例:九九乘法表第6讲:我想即我得(复杂逻辑表达之一)-循环与分支的运用v总结实验课上机情况v1:分支结构的串联和嵌套:学生成绩的等级,有这样的日期吗?闰年的判断。v2:循环结构的串联和嵌套:九九乘法表的四种表现形式。v3:图案的输出:实心矩形图案,空心矩形图案,横卧的空心菱形v总结:循环的嵌套和if的嵌套:串联表示前后的顺序关系,而嵌套表示
5、逻辑的递进和乘性关系。v展示曲线图案v课后思考题:竖立的空心菱形、余弦曲线图案,余弦与相交直线的图案,圆的图案。第7讲:我想即我得(复杂逻辑表达之二)-循环与分支的运用v1:图案的输出:实心矩形图案,空心矩形图案,横卧的空心菱形。图案输出的原理:1:必须从左到右边,从上到下的顺序输出。2:需要定位从屏幕的中间输出的话,必须使用空格跳格之类的字符(不可见)使光标到达指定位置。v2:break的用法:素性测试。方法一:理解如何利用break语句执行后,循环变量与终点的关系来判断是否为素数。方法二:使用标志变量v思考:如何提高素性测试的运行速度-时间效率。减少循环次数,改变算法。第8讲:机器的擅长之
6、二-批量数据处理的利器-数组v数组的适用场合:需要存储并处理一组相同类型数据。v特点:1、能存储大量数据v 2、访问速度快(读写数组元素速度快)。通过ai访问a数组中第i个元素。v 3、占用内存中连续的存储空间。是大量消耗内存空间的主要因素。程序的效率的两方面之一:时间效率和空间效率。v使用原则:尽量不用,尽量少用。v实例:蛟龙翻身、一哥是何人、成绩分布v一维数组有“表”的作用:超市购物、学生成绩的等级、有这样的日期吗?第9讲:机器的擅长之二-批量数据处理的利器-二维数组v利用一维数组“表”的作用,可以简化代码的编写过程。实例:超市购物中的会员等级、这个月有多少天,成绩的等级(用switch-
7、case实现,用“表”实现)。v图像的叠加v图像翻转v图像旋转v课后作业:成绩的标准差第10讲:数组的应用及其他v1:二维数组的应用:东海盘龙。知识点:while循环的应用。前置加和后置加运算。v2:switch-case表达能力受限,完全可被if-else语句替代。实例:这个月有多少天?学生成绩的等级,超市购物。v3:while,do-while循环的运用:完全可以用for循环来实现。分式化简(辗转相除法求最大公约数)。v4:?:运算符。v思路说明:高次方的尾数、这么多0!补充:我想即我得(复杂逻辑表达之二)-循环与分支的运用v1:标志变量的运用。素性测试与素数筛法。v图示break,con
8、tinue的执行过程。v2:switch-case表达能力受限,完全可被if-else语句替代。实例:这个月有多少天?学生成绩的等级,超市购物。v3:while,do-while循环的运用完全可以用for循环来实现。v4:?:运算符。第11讲 文本的处理-字符串的存储与处理v1:字符的存储和表示:ASCII码表。中文的双字节编码:Windows-936,GBK,GB2312都是兼容的的双字节编码,还有Unicode的UTF-8,UTF-16等实现形式。v2:ASCII码表的利用:特殊字符,空字符、换行(10,LF)、回车(13,CR),空格,跳格。数字字符:0,1,2,.,9;大写字母A-Z,
9、小写字母a-Z。举例:顺序输出0-9,A-Z,a-z。使用原样输出与使用循环输出。应用:大小写的转换。字符串与数字之间的转换。理解累加过程:value=value*10+(ch-0),转换的数学原理:坐标平移。v3:实例:选钻石矿。何时清0,何时累加。v4:演示:穷举所有的中文字符的输出。(注意地位和高位字节都应该从128开始到255,而不是从0开始到128)选钻石矿Description大家都知道钻石晶莹剔透、有棱有角、非常漂亮,代表着高贵、纯洁和永恒。可能你们知道吗?钻石并非天生就这么漂亮,这些钻石来自非常辛苦的大海捞针式的选矿工作和艰苦巨细的打磨得来的。现在,我们就来试试选矿的工作,假设
10、我们要从一堆包含很多大大小小钻石块的矿中筛选出所有钻石。用一个字符串表示一堆钻石矿。非数字的字符表示泥土、岩石等杂质,一串连续的数字表示一小块钻石的价值(也可以看成是钻石的大小,因为钻石的大小与价值直接相关的)。将所有的数字相加,即为本堆矿物所筛选的钻石总价值。Input在一行中输入一个字符串,行的末尾有一个回车。字符串的长度大于等于1,小于等于106;Output输出钻石总价值。Sample Inputadsf32kg!&4 560*4(#)Sample Output600第12讲 文本处理-字符串的存储与处理v1、汉字与字符串处理演示通过汉字内码输出名字。讲解:汉字的三码:机内码、字形码、
11、输入码。输入法设计的原理。v2:字符串处理函数的运用。strlen,strcpy,strcat,strcmpv实例:尊姓大名,两小儿辩数(注意:整数的表示范围,int型,long long型)尊姓大名vDescription输入一个人的名字,请输出他(她)的姓和名。vInput输入第一行表示测试用例的个数n。其后的n行,每行中有一个人的名字。输入的名字中的每个汉字使用汉语拼音,而不是中文,拼音之间用空格分隔。并且约定,如果是复姓,则姓的拼音之间没有空格。vOutput每个测试用例输出2行。格式参见输出样例。vSample Input2He Xi PingOuyang Zheng HuavSam
12、ple OutputLastname:HeFirstname:Xi PingLastname:OuyangFirstname:Zheng Hua两小儿辩数vDescription大家一定都学过两小儿辩日课文吧!应该对其中两个小孩的童真和爱较劲儿有深刻的印象。小朋友们在一起总想争个第一,谁也不肯服输。就拿数字的大小来说吧,小朋友们总是说出一个比对方更大的数字,因此数字越说越长,谁也说不服谁。那就请你用给他们编写一个裁判程序吧!vInput输入a,b两个整数,分别表示2个小朋友给出的。1a,b101000vOutput按照示例输出比较的结果。如果a小于b,则输出ab;如果a等于b,则输出a=b。v
13、Sample Input12345678901234567890123456789023456789012345678901234567890vSample Outputab第13讲 文本处理-字符串的存储与处理v1:字符串的存储方式-字符数组:一维数组存储一个字符串二维数组存储多个字符串。v2:字符串数据的存放和空终止符的说明。在字符数组中,空终止符标志着字符串结束。无法从键盘输入空终止符。系统自动添加空终止符,手工添加空终止符。第13讲 文本处理-字符串的存储与处理v3:字符串数据的三种输入方式比较:scanf(“%c”,&ch)/输入单个字符,包括回车,空格,跳格。scanf(“%s”,
14、str);/以空格回车作为字符串输入的结束。gets(str);/以回车作为字符串输入的结束。ch=getchar()与scanf(“%c”,)效果相同。v实例:英汉字典之超水版,大整数的加法,门牌号码之短数版,sprintf()函数的用法,sscanf()。v思路讲解:短信中提取号码v思考:门牌号码之长数版第14讲 分工合作的利器-设计模块化之函数(1)v函数的概念:具有一定功能的代码模块。v函数的模型:黑盒模型(有输入、有输出、能实现一定功能,但是不用关心其内部实现和结构)v两个层次的软构件:函数、类(封装了函数和数据)。v构建新软件的方法论:“扬弃”-拿来主义,站在前人的肩膀上+为解决新
15、问题而必须的开拓和创造。拿来主义:库函数的使用要点:函数名、功能、参数的类型和含义,返回值的类型和含义。创造开拓:自己设计并实现函数。第14讲 分工合作的利器-设计模块化之函数(1)v设计原则:具有一定的功能,具有相对的独立性,具有清晰的接口。v“先声明后使用”使用函数的语法要求。v函数在软件工程中意义:代码简洁、逻辑清晰、便于调试、自顶向下设计,模块间分工合作,代码重用,快速开发。v简单实例:分式的化简(求最大公约数)vsin函数的实现:sinx=x-x3/3!+x5/5!-x7/7!+x9/9!-(无穷级数的形式)第15讲 分工合作的利器-设计模块化之函数(2)v1:函数的参数传递过程,实
16、参-形参,值的复制过程。v2:讲解全局变量和局部变量和静态变量的区别。v3:实例讲解:sin函数的实现:sinx=x-x3/3!+x5/5!-x7/7!+x9/9!-(这里就写成无穷级数的形式了。)其中,简单直接法解决:分子和分母分开计算,然后再除,这样可能导致分子、分母先溢出了。解决方法:分子除以分母之后,然后再乘。最后,利用x的2周期,将x变换到2周期内。第16讲 分工合作的利器-设计模块化之函数(3)v1:算法思想讲解:实例讲解:东海盘龙(格式版)v2:sscanf(str,%s,.)的运用。v3:算法效率问题:利用计算过程中已经得到的结果,尽量避免重复计算。v 算法的时间和空间效率问题
17、。v4:素数有多少。第9讲 分工合作的利器-设计模块化之函数(1)v1:函数相关概念:先定义后使用。参数的类型与个数必须正确。返回值是所表示的含义。形式参数与实际参数的传递过程。v2:如何设计函数:设计函数某块的原则:具有一定的功能,具有相对的独立性,具有清晰地接口。v3:实例讲解:公历万年历。第11讲:程序之美 函数的递归(1)v1:递归的概念:函数自身调用自身。原问题求解方式与子问题相似(此为“递”)当子问题的规模小到一个特定程度时问题的解是已知的。(此为“归”)v2:递归举例:Fibonacci数列,阶乘,求和、正反序输出一组数据,选择排序。第12讲:程序之美 函数的递归(2)v递归与非
18、递归(循环)的区别:递归方式的实现代码相对简洁,但是每次递归但需要有一定的开销,效率有损失,并且递归的深度不能过大,否则堆栈溢出。循环方式的实现相对较复杂,但是运行效率高,不会有堆栈的溢出。v本次小结理解递归函数适用的场合。清楚递归调用的“递”过程和“归”过程。掌握递归函数的简单应用。递归举例:v1:猜猜有多少v2:生成全排列v3:折半查找v4:应用实例:整存零取,全排列,最大公约数。第13讲:内存地址的妙用(1)指针的基本概念v1:什么是指针:什么是指针:指针即内存地址。指针即内存地址。v2:变量,指针变量变量,指针变量深入理解变量和指针变量深入理解变量和指针变量v3:指针变量的用法指针变量
19、的用法&运算符:取地址运算符运算符:取地址运算符*运算符:间接寻址运算符运算符:间接寻址运算符v4:指针变量的使用场合。指针变量的使用场合。参数传递(能将函数中结果带回到调用者)参数传递(能将函数中结果带回到调用者)v函数名作为参数传递函数名作为参数传递动态内存分配动态内存分配链表链表文件操作文件操作变量与指针变量v普通变量三要素普通变量三要素变量名:变量名:v程序中通过名字引用它。程序中通过名字引用它。v程序中变量名与其值直接关程序中变量名与其值直接关联,直接寻址读联,直接寻址读/写变量。写变量。变量类型:变量类型:v表示数据的需要占用的字节表示数据的需要占用的字节数数v数据表示的范围数据表
20、示的范围v数据所能进行哪些运算。数据所能进行哪些运算。vint型,型,double型,型,char型型变量所占内存单元的起始地变量所占内存单元的起始地址:简称为变量的地址。址:简称为变量的地址。v通过取地址运算符通过取地址运算符&得到这个得到这个起始地址。起始地址。int a=10;0012FF740012FF750012FF760012FF770012FF780012FF790012FF7A0012FF7B0012FF7C0A0012FF7D000012FF7E000012FF7F000012FF800012FF810012FF820012FF83a&a的值?的值?0012FF7Cb变量与指
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c程序设计 第11章 结构体、联合体与枚举类型 程序设计 11 结构 联合体 枚举 类型
限制150内