C语言课件第3章算法和基本程序设计_第1页
C语言课件第3章算法和基本程序设计_第2页
C语言课件第3章算法和基本程序设计_第3页
C语言课件第3章算法和基本程序设计_第4页
C语言课件第3章算法和基本程序设计_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言课件第3章算法和基本程序设计Contents本章目录C语言程序设计基础,从算法思维到结构控制的完整脉络。01算法的概念与描述02数据类型与运算符03顺序结构程序设计04选择结构程序设计05循环结构程序设计CHAPTER01算法的概念与描述理解程序灵魂——从问题到解决方案的思维过程Fundamentals算法的定义与基本特性算法是为解决特定问题而规定的有限步骤序列,是程序设计的灵魂。理解算法的五个基本特性是进行评估的前提与基础标准。有穷性算法必须在执行有限步骤之后终止,不能陷入无限循环,每一步都应在有限时间内完成。有限终止确定性每条指令的含义必须明确无歧义,在任何条件下对于相同输入必须产生相同输出。无歧义可行性每个操作都必须可以通过已实现的基本运算在有限次数内完成。可执行输入与输出有零个或多个输入量,至少产生一个输出量,输出与输入之间存在确定的函数关系。I→OCHAPTER02数据类型与运算符掌握C语言的数据存储规则与运算体系DataTypesC语言数据类型体系C语言数据类型体系以基本类型(整型、浮点型、字符型)为基础,通过构造类型(数组、结构体、共用体)实现复杂数据的组织。合理选择数据类型不仅保证计算精度,还能优化内存分配效率,是编写高质量C程序的基本功。基本数据类型包括int(4字节)、short(2字节)、long(4/8字节)等整型,以及float(4字节)、double(8字节)等浮点型,覆盖整数与小数运算场景。intfloatdouble4/8字节字符型char占1字节,存储字符的ASCII码值(0-127),本质上是一种特殊的整型数据,可参与算术运算。'A'=65'0'=48ASCII0–127构造类型数组是同类型元素的有序集合;结构体组合不同类型数据;共用体让多类型数据共享同一存储空间。[]structunion数组·结构体·共用体指针与void类型指针类型存储内存地址,是C语言的核心特性;void表示无类型,常用于函数返回值和通用指针声明。int*pvoid*void*CLANGUAGE·OPERATORS算术运算符与表达式C语言算术运算符包括基本四则运算和取余运算,其中整数除法截断小数部分、取余运算仅限整型是初学者最易出错的地方。基本算术运算+、−、×、÷、%五种运算符中,两个整数相除结果自动截断小数部分(如7/2=3),取余运算%仅适用于整型操作数。7/2=3自增与自减前缀形式(++i)先增值后引用,后缀形式(i++)先引用后增值,在复杂表达式中求值顺序截然不同。++i≠i++优先级规则单目运算符(++、--、负号)高于双目运算符;*、/、%高于+、−;同级运算从左到右依次结合。Unary→×÷→+−类型自动提升混合运算中不同类型数据自动向高精度提升:char→int→long→float→double,结果取最高精度类型。char→doubleCSTANDARDLIBRARY·I/O格式化输入输出函数printf和scanf是C语言标准库中最核心的输入输出函数,通过格式控制字符串精确控制数据的显示格式和读取方式。01·PRINTFprintf格式控制%d%f%c%s%o%x%d整数%f浮点数(默认6位小数)%c字符%s字符串%o八进制%x十六进制格式控制+输出列表02·WIDTHprintf宽度与精度%8d%-8d%08d%.2f%10.2f%8d右对齐8位·%-8d左对齐8位·%08d补零8位·%.2f保留2位小数·%10.2f总宽10含2位小数对齐·补零·精度03·SCANFscanf输入读取&变量前必须加&取地址符(%c和%s除外),多个输入间用空格、Tab或回车分隔。格式控制+地址列表04·PITFALLS常见错误与陷阱&%f%lfscanf忘记&导致段错误;printf格式符与变量类型不匹配导致乱码;%f与%lf在scanf中的区别。double需用%lfCHAPTER03顺序结构程序设计从输入到计算再到输出——最基本的程序执行流程SequentialStructure顺序结构的设计范式顺序结构程序遵循"输入→处理→输出"的经典三步范式,语句按书写顺序自上而下依次执行,是所有程序结构的基础骨架。C语言顺序结构编程学习场景01输入数据使用scanf函数从键盘读取用户输入的原始数据,存储到预先声明的变量中02处理数据对输入的数据进行算术运算、逻辑判断等操作,完成核心业务逻辑的计算03输出结果使用printf函数将计算结果按指定格式显示在屏幕上,完成人机交互闭环04完整示例输入圆半径r,计算面积s=PI×r×r,输出结果——三步清晰对应顺序执行流程CHAPTER04选择结构程序设计让程序学会判断——条件分支与多路选择CCONTROLFLOWif语句的三种形式if语句通过条件表达式的真假值控制程序执行路径,是选择结构的核心实现工具。SINGLEBRANCH单分支ifif(表达式)语句;表达式非零时执行,为零时跳过,适用于满足条件才执行的场景。if(expr)stmt;DUALBRANCH双分支if-else二选一执行,如判断奇偶、正负等对立情况,两条路径必走其一。if(…){}else{}MULTIBRANCH多分支if-elseif依次判断多个条件,匹配第一个为真的分支执行后跳出,适用于成绩分级等区间分类。≥90优/≥80良/≥70中KEYDETAILS关键细节条件必须用()括起;多条语句用{}组成复合语句;else与最近的未匹配if配对。(){}else配对CHAPTER05循环结构程序设计让计算机高效处理重复任务——while、do-while与forProgrammingBasicswhile循环语句while循环采用'先判断条件后执行循环体'的当型循环模式,适用于循环次数不确定但终止条件明确的场景。循环体内必须包含使条件趋向为假的语句(如计数器递增),否则将导致死循环,这是初学者最常见的编程错误。01语法格式:while(条件表达式){循环体;}先判断条件,为真则执行循环体,再判断,直到条件为假退出02经典示例求1到100之和:intsum=0,i=1;while(i<=100){sum+=i;i++;}循环100次后sum=505003先判断后执行特性:若初始条件即为假(如while(0)),循环体一次都不执行,适用于可能不需要循环的场景04防死循环三要素:初始化循环变量、循环体内修改循环变量、条件表达式最终能变为假,三者缺一不可大学生课堂编程练习场景CLANGUAGE·LOOPfor循环语句for循环将初始化、条件判断和变量更新集中在一个语句中,结构紧凑、逻辑清晰,是C语言使用频率最高的循环语句。灵活省略机制使其适应各种循环场景。语法格式for(表达式1初始化;表达式2条件判断;表达式3变量更新){循环体;}三个表达式用分号分隔,形成紧凑的循环控制结构Syntax执行顺序表达式1(仅一次)→判断表达式2→为真执行循环体→执行表达式3→再判断表达式2循环往复,直到表达式2为假时退出循环结构Execution省略机制表达式1可省略(for前初始化)、表达式2可省略(恒为真)、表达式3可省略(循环体内更新)省略表达式2时需配合break语句避免死循环Omission经典用法for(inti=1;i<=n;i++)sum+=i;求1到n的和for(i=0;i<len;i++)遍历数组每个元素的标准写法ClassicNESTEDLOOPS循环嵌套与经典应用循环嵌套通过在外层循环体内嵌入内层循环实现多维遍历和组合计算,是处理矩阵、排列组合等问题的基本手段。总执行次数等于各层循环次数的乘积,层数越多性能开销越大,需在设计时权衡功能需求与计算效率。执行机制外层循环每迭代一次,内层循环完整执行一轮;两层嵌套总次数=n×m,三层=n×m×kn×m×k九九乘法表外层i控制行(1-9),内层j控制列(1-i),printf输出计算结果i×j矩阵遍历外层i遍历行,内层j遍历列,scanf/printf处理每个元素a[i][j]a[i][j]性能警示三层100次循环=100万次操作,应减少嵌套层数,考虑算法优化降低时间复杂度100³Exercises课后编程练习以下五道练习题覆盖本章所有核心知识点,从基础的顺序计算到综合的嵌套循环,难度递进。建议每题都亲手编写代码并在开发环境中调试验证,通过实践巩固算法思维和编程技能。01顺序结构输入三角形三边长a、b、c,用海伦公式计算面积,其中p=(a+b+c)/2Formula02选择结构输入年份判断闰年:能被4整除但不能被100整

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论