《C语言程序设计》中职全套教学课件_第1页
《C语言程序设计》中职全套教学课件_第2页
《C语言程序设计》中职全套教学课件_第3页
《C语言程序设计》中职全套教学课件_第4页
《C语言程序设计》中职全套教学课件_第5页
已阅读5页,还剩312页未读, 继续免费阅读

下载本文档

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

文档简介

单元1

初识C语言程序主讲人:

单元1初识C语言程序.pptx单元2数据类型与运算.pptx单元3顺序结构程序设计.pptx单元4选择结构程序设计.pptx单元5循环结构程序设计.pptx单元6数组.pptx单元7函数.pptx单元8文件操作.pptx全套可编辑PPT课件单元1初识C语言程序课程导学与目标概览C语言的地位系统级编程的核心语言|理解计算机底层逻辑的钥匙|众多高级语言的基石本单元学习目标了解计算机程序基本知识掌握程序结构、注释、命名规范了解顺序、选择、循环三种基本结构流程图掌握C语言程序的结构课程安排任务1编写并运行第一个C语言程序任务2分析C程序的基本结构

任务3用流程图描述算法学习方法:多动手、多调试、多思考单元导学认识程序结构程序开发三步曲:从生活准备到代码实现工欲善其事,必先利其器就像做饭前需要准备厨具和食材,编程前也需要搭建环境和准备逻辑。第1步:安装开发软件搭建编程环境,安装编译器或解释器,这是“准备厨具”。第2步:编写程序代码设计算法,绘制流程图,将逻辑转化为代码,这是“准备食材和菜谱”。第3步:编译程序生成软件通过编译器将代码转换为可执行文件,并进行调试,这是“烹饪出锅”。编译器安装|算法设计|流程图表示|编写代码|编译调试从HelloWorld开始认识C语言!#include<stdio.h>intmain(){

printf("Hello,World!\n");

return0;}程序组成解析组成部分含义说明预处理指令#include<stdio.h>引入标准输入输出库主函数intmain()程序执行的入口点输出语句printf()向屏幕打印文本返回值return0;表示程序正常结束思考:程序功能是什么?包含哪些组成部分?流程图有什么特点?能简单看出哪些语法点?单元导学认识程序结构程序设计基本流程——从需求到运行的完整闭环需求分析:明确问题边界与输入输出要求。算法设计:构思解决问题的逻辑步骤(核心)。编码实现:将算法转化为具体编程语言代码。编译生成:将源代码转换为可执行文件。调试纠错:发现并修复逻辑或语法错误。运行验证:测试程序是否满足初始需求。算法是灵魂先有逻辑,后有代码。算法设计决定了程序的效率与可行性,是编程前的思维预演。开发三步曲•安装开发环境(IDE/编译器)•编写源代码(.c/.py/.java等)•编译生成软件(.exe/.app等)核心观点:程序设计不仅是写代码,更是逻辑思维的结构化表达。单元导学认识程序结构编写并运行第一个C语言程序任务1编程语言的进化:机器语言与汇编语言程序设计语言发展的前两个阶段机器语言(MachineLanguage)定义:由0和1组成的二进制代码,计算机直接可执行特点:•难读难懂难修改•执行速度快•占用存储少示例:二进制指令|1011000001100001汇编语言(AssemblyLanguage)定义:用助记符代替二进制指令,更贴近自然语言特点:•依赖硬件•可移植性差•用于内核和底层驱动示例:助记符指令|MOVAX,0x61关键对比可读性:机器语言(低)/汇编语言(中)|执行效率:机器语言(高)/汇编语言(高)|开发难度:机器语言(极高)/汇编语言(高)任务1编写并运行第一个C语言程序高级语言与C语言的发展为什么需要高级语言?•摆脱底层硬件束缚•语法更贴近人类自然语言•提高开发效率与可移植性常见高级语言:C语言,Python,Java,C++C语言:程序设计的基石•C语言属于高级语言•兼具高级语言的抽象能力与低级语言的硬件控制能力•是学习计算机体系结构与算法的最佳入门语言高级语言如何运行?执行方式|特点|代表语言编译型|一次性翻译为机器码,运行速度快|C,C++,Go解释型|逐行翻译执行,跨平台性好|Python,JavaScript从硬件束缚到自然表达任务1编写并运行第一个C语言程序任务1编写并运行第一个C语言程序计算机语言的发展从二进制到自然语言的演进机器语言由0和1组成,计算机直接识别,执行效率最高但人类难以阅读汇编语言使用助记符代替二进制指令,依赖特定硬件,可移植性较差高级语言语法贴近自然语言,屏蔽硬件细节,开发效率高三种语言特性对比语言类型可读性可移植性执行效率机器语言极低无极高汇编语言低差高高级语言高好中等C语言属于高级语言,兼具良好的可移植性与较高的执行效率任务1编写并运行第一个C语言程序C语言程序的编译过程从源代码到可执行文件的四步详解1.编辑:程序员编写源代码,生成后缀为.c源文件2.编译:编译器检查语法错误,将源代码翻译为机器指令,生成后缀为.obj目标文件3.连接:连接器将目标文件与库文件合并,解决外部引用,生成后缀为.exe可执行文件4.执行:操作系统加载可执行文件,在运行环境下运行程序核心在于理解.c->.obj->.exe的文件类型转换链条任务1编写并运行第一个C语言程序VisualC++6.0环境介绍核心功能概述•编辑:代码编写与修改•编译:将源代码转换为机器码•连接:整合库文件与目标文件主窗口布局详解•菜单栏:位于窗口顶部,包含所有命令入口•工程工作区:通常位于左侧,管理文件与类结构•程序编辑窗口:中央主要区域,用于编写代码九大菜单项File(文件)|Edit(编辑)|View(视图)Insert(插入)|Project(工程)|Build(生成)Tools(工具)|Window(窗口)|Help(帮助)图:VisualC++6.0主窗口界面任务1编写并运行第一个C语言程序新建与编辑源程序1.新建文件:点击菜单栏File→New,在弹出的对话框中切换至Files页签,选择C++SourceFile选项。2.命名与路径:在Name输入框中键入文件名(例如1.c),并通过Browse按钮设置合适的存储路径,避免文件丢失。3.编辑与保存:在代码编辑区输入源代码,务必养成随时保存的习惯,点击Save或按Ctrl+S。4.状态提示:注意观察编辑区标题栏,若文件名后出现星号(*),表示当前文件有修改但尚未保存,这是判断文件状态的关键标志。VC++6.0代码编辑界面任务1编写并运行第一个C语言程序上机实战:编译、连接与执行掌握代码构建全流程1.编译(Compile)Build菜单→Compile|Ctrl+F7|转换源代码为目标代码2.连接(Link)Build菜单→Build|F7|生成最终的.exe可执行文件3.执行(Execute)Build菜单→Execute|Ctrl+F5|运行程序并观察结果4.调试信息观察要点输出窗口状态行显示“0error(s),0warning(s)”任务1编写并运行第一个C语言程序训练1:创建并运行程序VC++6.0完整操作流程演示步骤操作动作关键细节/快捷键步骤1新建源程序选择C++SourceFile步骤2编辑源代码并保存注意观察文件保存状态标志(如星号消失)步骤3编译代码按Ctrl+F7,观察编译信息窗口步骤4连接生成生成可执行文件1.exe步骤5执行程序查看最终运行结果注意:编译与连接是两个独立步骤,编译无误后方可连接。任务1编写并运行第一个C语言程序训练2:程序调试入门从错误中学习:读懂编译器,修正你的代码#include<stdio.h>intmain(){

printf("HelloWorld");

return0;}↑错误点:缺少分号error:expected';'before'}'token

return0;^;步骤1:故意设置错误制造问题步骤2:观察报错信息定位线索步骤3:分析错误性质明确错误位置和性质步骤4:修改并重新编译解决问题任务1编写并运行第一个C语言程序调试技巧:识别并改正编译错误从编译报错到代码修正的实战演练#include<stdio.h>intmain{printf("Hello,World!\n");

return0;}error:expected‘(’before‘{’tokenintmain^定位根据报错行号找到main定义处。分析编译器期望看到(,但遇到了{。修正补全圆括号,改为intmain()。实践出真知:动手调试是掌握C语言的关键任务1编写并运行第一个C语言程序分析C程序的

基本结构任务2C语言程序的总体结构函数是C语言的基本模块基本组成单位函数是C语言程序的基本组成单位,整个程序由一个或多个函数构成。入口与出口main函数是程序的唯一入口和出口,无论其位置在代码中的何处,程序执行始终从main开始,到main结束。语法规范C语言中,每个语句必须以分号(;)结束,这是区分语句边界的关键符号。特性说明输入/输出语句C语言本身<b>没有</b>内置的输入/输出语句实现方式通过调用<b>标准库函数</b>(如printf,scanf)来完成数据的输入和输出操作C程序=预处理指令+全局声明+函数定义(含main)任务2分析C程序的基本结构C语言程序的主要特点深入解析C语言程序的六大结构特点①函数构成程序C语言是函数式语言,整个程序由一个或多个函数组成,函数是程序的基本模块。②main()是起点每个C程序必须有且仅有一个main函数,它是程序执行的唯一入口点。③语句以分号结尾C语言中,每条执行语句必须以分号(;)结束,这是语法强制要求,遗漏会导致编译错误。④格式自由但规范代码书写格式相对自由,但建议一行只写一条语句,以提高代码的可读性和维护性。⑤注释不参与执行使用//或/**/添加注释,用于解释代码逻辑,编译器会忽略注释内容,不影响程序运行。⑥库函数完成输入输出C语言本身不提供输入输出语句,需通过调用标准库函数(如printf,scanf)来实现数据的输入与输出。掌握这六大特点,是编写规范C代码的基础。任务2分析C程序的基本结构C语言程序的书写规则编写高质量代码的规范与习惯语句结构:一条语句占一行,必须以分号(;)结束。这是C语言语法的基础,确保编译器能正确识别语句边界。预处理命令:以#号开头的行是预处理命令,例如#include<stdio.h>。这类命令在编译前处理,不包含分号。主函数唯一性:整个程序中只能有一个main函数,它是程序的入口点。函数体必须用花括号{}括起来,明确界定作用域。大小写敏感:C语言严格区分大小写,变量名、函数名等标识符必须用小写字母书写(除非另有约定),避免混淆。文件扩展名:C语言源文件的扩展名必须为.c,这是编译器识别文件类型的关键标识。代码缩进:采用一致的缩进格式(如4个空格或一个Tab)来增强代码的可读性,体现逻辑层级。规范书写,从每一行代码开始任务2分析C程序的基本结构程序的注释:让代码更易读C语言中两种注释方法的语法和使用场景多行注释/*注释内容*/适用于大段说明单行注释//注释内容适用于简短备注通用特性注释可出现在程序任意位置,编译时会被忽略注意多行注释不允许嵌套使用/*外层/*内层*/错误*/类型示例代码状态单行//这是单行注释✅正确多行/*这是多行注释*/✅正确嵌套/*外层/*内层*/错误*/❌错误任务2分析C程序的基本结构训练:程序改错通过分析一个含有多种错误的程序,巩固对书写规则的理解#include<stdio.h>;intmain{inta;scanf("%d",a);printf("%d",a);return0;}错误1:预处理命令后多分号。#include指令后不应加分号,应删除末尾的;。错误2:main函数后缺括号。函数定义必须包含参数列表,应改为intmain()。错误3:scanf函数使用时缺地址符。scanf需要变量的内存地址,应改为scanf("%d",&a);。改正并调试运行,确保程序无语法错误。任务2分析C程序的基本结构用流程图描述算法任务3算法入门:什么是算法从生活实例到计算思维生活中的算法找最高的人:逐步比较身高,记录当前最高者,遍历所有人程序设计中的算法解决特定问题的明确、有限的操作步骤序列算法的五个基本特性有输入(0个或多个)有输出(至少1个)确定性(指令无歧义)有穷性(有限步骤结束)可行性(基本操作可执行)评价维度可读性:代码清晰易懂健壮性:处理异常数据不崩溃高效率:时间复杂度低思考:算法在程序设计中的重要性:它是程序的灵魂,决定了软件的性能与质量任务3用流程图描述算法算法的表示方法自然语言vs流程图vs伪代码表示方法优点缺点自然语言简单易懂,无需特殊符号易产生二义性,描述冗长传统流程图图形符号直观清晰,逻辑清晰绘制复杂,修改不便伪代码介于自然语言与代码间,便于过渡无统一标准,需约定规则伪代码示例:求最大值ifx>ythenx→maxelsey→max任务3用流程图描述算法流程图常用符号认识传统流程图中使用的各种图形符号及其含义,为绘制流程图打基础符号名称含义说明起止框表示算法的开始或结束输入/输出框表示输入、输出操作处理框表示对框内内容进行处理判断框表示对条件进行判断辅助符号包括流程线、连接点、注释框等起止框输入/输出框处理框判断框辅助符号掌握这些基本符号是绘制清晰、规范流程图的第一步任务3用流程图描述算法三种基本程序结构(一):顺序结构定义依次执行每一个基本的处理单位特点•从上到下,线性执行流程说明先执行处理过程A,再执行处理过程B任务3用流程图描述算法三种基本程序结构(二):选择结构定义:根据判断条件的成立与否,选择执行不同的处理过程。逻辑特点:分支结构,二选一执行,非此即彼。执行流程:先进行条件判断,若条件成立则执行路径A,若不成立则执行路径B。选择结构是程序实现逻辑判断的基础,关键在于条件的互斥性。任务3用流程图描述算法三种基本程序结构(三):循环结构当型循环vs直到型循环循环结构的定义:根据一定条件,重复执行某些语句当型循环:先判断后执行。条件成立时反复执行A,直到不成立结束。直到型循环:先执行后判断。反复执行A,直到条件成立结束。关键对比结论:两者的主要区别在于判断框与处理框的先后顺序不同。任务3用流程图描述算法当型循环直到型循环实例:求两个数中的较大值传统流程图算法演示问题定义输入两个数x,y,输出其中的较大值自然语言步骤1.输入x和y2.比较x和y的大小3.将较大值赋给max并输出关键变量引入第3个变量max用于存储结果思考:如果不使用max变量,如何直接输出较大值?流程图绘制步骤:输入数据→判断大小→输出较大值任务3用流程图描述算法训练1:三数排序练习用流程图表示三个数从小到大排序的算法第1步:比较第1、2个数,若第1个数大于第2个数,则交换它们的位置。第2步:比较第1、3个数,若第1个数大于第3个数,则交换它们的位置。第3步:比较第2、3个数,若第2个数大于第3个数,则交换它们的位置。结论:经过上述三步,第1个数最小,第3个数最大,完成排序。提示:通过两两比较与交换,确保最小值沉底,最大值上浮。任务3用流程图描述算法实战演练:用‘标杆位法’求最大值一种更简便的算法思路:设置标杆位来比较找最大值初始设定:将第一个数设为标杆位max依次比较:让后续数据与max进行对比动态更新:若当前数大于max,则将该数赋值给max步骤当前比较数标杆位max动作155初始赋值2888>5,更新max3383<8,max不变逻辑清晰:只需一次遍历即可完成易于扩展:无论数据量多大,逻辑不变任务3用流程图描述算法核心知识点梳理知识模块核心概念关键细节C语言程序结构函数是基本模块main函数是入口,库函数与用户自定义函数协同工作开发流程编辑-编译-连接-执行源文件(.c)经编译器生成目标文件(.o),再由链接器生成可执行文件算法基础有穷性、确定性、可行性算法是解决问题的步骤序列,需具备明确的输入输出程序结构顺序、选择、循环任何复杂程序均由这三种基本结构嵌套组合而成流程图绘制标准符号规范使用矩形表示处理,菱形表示判断,箭头表示流向学习建议重视流程:理解从代码到可执行文件的每一步转换规范绘图:熟练掌握流程图符号,提升逻辑表达能力结构思维:尝试用三种基本结构拆解复杂问题掌握基础结构,奠定编程基石单元总结知识点综合测评与学习效果检验单项选择题重点•涵盖全部知识点•重点考查:程序执行起点•C语言属性•编译流程填空题与细节巩固•巩固文件扩展名•函数结构等细节分析程序结构,识别基础错误单元测试课后实战演练巩固知识,动手实践实战1:环境搭建安装VisualC++6.0(或DevC++),新建源文件,熟悉开发界面。实战2:HelloCprogram编写程序,在控制台输出字符串"HelloCprogram!",注意分号与引号的使用。实战3:算法可视化绘制流程图,表示“输入5个数并找出最大值”的算法逻辑,包含判断框与循环结构。学习建议与回顾要求独立完成:鼓励不依赖他人,亲自敲代码调试。知识回顾:回顾本单元所有知识点,包括变量定义、输入输出语句及基本控制结构。提交要求:保存源代码文件,截图流程图,下节课前提交。实践出真知,代码敲出来!单元测试感谢观看!

主讲人:

单元1初识C语言程序主讲人:单元导学商品打折销售从生活实例看程序中的数据实例:商场9折销售假设一件商品原价为100元,商场正在进行9折促销活动。请计算实际付款金额。分析问题:单价是可变的(如100,200,50...),而折扣率是固定的(0.9)。数据是程序处理的核心对象数据如何分类?常量与变量的作用是什么?学习目标与知识导图构建编程思维的基础框架1.掌握常量与变量:理解其定义、命名规则及在程序中的存储机制。2.理解基本数据类型:熟悉整数、浮点数、字符串及布尔值的特性与应用场景。3.熟练运用运算符与表达式:能够正确组合算术、比较及逻辑运算符解决实际问题。通过本单元学习,你将建立起完整的编程基础认知体系目标分析与问题思考从打折实例看数据抽象数据类型具体含义示例值已知量折扣比例9折(0.9)未知量商品单价待输入未知量实际付款待计算数据性质不变数据→常量(Constant)数据性质变化数据→变量(Variable)课堂任务:请尝试用伪代码或自然语言,写出计算折后价的程序步骤。认识常量和变量任务1C语言数据类型总览C语言提供的四类数据类型及存储差异基本类型:值不可再分解,如int,char,float构造类型:由其他类型构造而成,如数组、结构体、联合体指针类型:专门用于存储内存地址,指向其他变量空类型:void,表示无值或未知类型,常用于函数返回或指针声明注意:不同类型占用的存储空间大小不同,具体取决于编译器和硬件平台。常量:定义与分类常量是指在程序运行过程中,其值不能被改变的量。数据类型示例整型常量6,12,-3浮点型常量3.14,6.5字符常量'a'字符串常量"abc"直接常量直接写在代码中的数值,如100,3.14符号常量通过预处理指令定义的常量#definePI3.14常量一旦定义,在程序运行期间不可修改。变量:三要素理解程序数据的基石变量:在程序运行过程中,其值可以发生改变的量。它是内存中用于存储数据的命名空间。变量名:标识变量的名称,遵循命名规范,如age、score。变量值:存储在变量中的具体数据,如整数25、字符串"Hello"。存储单元:变量在内存中对应的物理地址,由系统自动分配。生命周期:1.定义:声明变量类型与名称,申请内存空间。2.赋值:将数据写入对应的存储单元。3.使用:读取或修改存储单元中的值。示例:inta=5;|a是变量名|5是变量值|内存地址0x7fff...是存储单元这行代码完成了定义、赋值和初始化的全过程。定义格式数据类型变量名1,变量名2;例如:intage,score;重要原则:先定义,后赋值,再使用变量的定义格式语法结构:数据类型+变量名基本格式:inta,b,c;赋值原则:定义后必须赋值才能使用未初始化的变量值为随机垃圾值初始化语法:inta=6;int

x;//仅定义,未赋值x=10;//后续赋值int

y=20;//定义并初始化int

z=30,w=40;//多变量同时初始化良好的编程习惯建议定义时即初始化,以避免不可预知的错误。变量的定义格式语法结构:数据类型+变量名•定义后必须赋值才能使用,否则可能产生未定义行为•可同时定义多个同类型变量,如:inta,b,c;•推荐在定义时直接初始化,如:inta=6;intx;//仅定义,未初始化inty=10;//定义并初始化良好的初始化习惯能避免潜在错误任务训练:交换两变量的值核心概念:变量定义、赋值操作与临时变量辅助inta=10,b=20,temp;temp=a;//将a的值存入tempa=b;//将b的值赋给ab=temp;//将temp的值赋给bprintf("a=%d,b=%d\n",a,b);第一步:定义变量inta,b,temp;,初始化a=10,b=20。第二步:引入临时变量temp,先保存a的原始值,防止数据丢失。第三步:完成交换,a获得b的值,b获得temp(即原a)的值。变量名最终值a->20b->10总结:通过temp辅助,成功实现值交换,无数据丢失。标识符:命名规则C语言基础语法规范组成元素仅允许字母、数字、下划线首字符限制必须以字母或下划线开头,严禁数字大小写敏感区分大小写,例如num与Num视为不同变量命名风格示例代码小写风格intcount;驼峰命名法inttotalCount;下划线分隔inttotal_count;❌错误示范:2name,my-var,int(关键字)命名方法•小写字母|字母数字组合|综合命名法标识符分类:关键字与预定义标识符关键字(Keywords)系统规定用途,保留字,只能小写示例int,if,else,while,return预定义标识符(Predefined)系统库函数名,非保留字,但建议勿重定义示例printf,scanf,malloc,exit用户自定义(User-defined)由用户根据需要定义,遵循命名规则示例myVar,totalSum,calculateArea,studentID注意事项:自定义标识符严禁与关键字冲突,否则会导致编译错误。关键字与预定义标识符理解系统保留字与库函数标识符的本质区别关键字(Keywords)•由C语言标准定义•具有特定语法含义,必须全小写•示例:int,if,else,while预定义标识符(PredefinedIdentifiers)•由编译器或标准库提供•如printf,scanf,NULL•建议用户不要重新定义,以免冲突ANSIC32个关键字autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunionunsignedvoidvolatilewhile注意:关键字是语言的一部分,不可更改;预定义标识符虽非关键字,但重定义可能导致不可预知的错误。认识基本数据类型任务2整型数据:类型与特性分类、取值范围与存储空间整型数据分类及特性表类型关键字典型存储(字节)取值范围基本整型int4-2,147,483,648至2,147,483,647短整型short2-32,768至32,767长整型long4或8取决于平台,通常同int或更大无符号整型unsignedint40至4,294,967,295编译器差异:不同编译器(如32位vs64位)对long等类型的分配空间可能不同,需查阅具体文档。溢出警告:当计算结果超出类型最大值时发生溢出,导致数据错误,编程时需特别注意边界检查。核心记忆:int是基础,unsigned扩大正数范围,注意平台依赖性。整型常量:四种进制表示二进制、八进制、十进制与十六进制的书写规范进制类型前缀标识书写示例数值含义十进制无前缀237标准整数八进制0015等于十进制13十六进制0x或0X0x2A等于十进制42二进制0b或0B0b1010等于十进制10长整型后缀添加L或l表示longint,如237L无符号后缀添加U或u表示unsigned,如0xFFU注意:编译器根据前缀自动识别进制,后缀可组合使用(如0x10UL)注意:八进制以数字0开头,不是字母O注意:十六进制中a-f不区分大小写整型变量与小知识定义方法与后缀用法详解标准定义与赋值:inta;a=0;inta=0;注意:定义变量应在程序所有可执行语句之前后缀字符含义说明L表示长整型(long)U表示无符号整型(unsigned)掌握基本定义,规范后缀使用,避免类型错误。浮点型数据:类型与特性理解计算机中的实数表示有效数字决定浮点数的精度,即能准确表示的位数。舍入误差存储位数有限,无法精确表示所有实数(如0.1+0.2≠0.3)。计算机用二进制近似表示十进制小数,必然产生截断误差。类型存储大小有效数字位数取值范围float4字节约6-7位±1.2E-38至±3.4E+38double8字节约15-16位±2.3E-308至±1.7E+308longdouble16字节约18-19位±3.4E-4932至±1.1E+4932浮点数是实数的近似表示,精度越高,误差越小,但占用空间越大。浮点型数据:精度与范围存储大小、有效数字与数值范围对比数据类型存储大小(字节)有效数字位数float46-7位double815-16位longdouble16更高精度(通常18-19位)近似数值范围:•float:±1.2E-38至±3.4E+38•double:±2.3E-308至±1.7E+308•longdouble:范围更大,具体取决于实现舍入误差示例0.1+0.2!=0.3实际计算结果可能为:0.30000000000000004浮点型常量与变量掌握浮点型常量的表示法和浮点型变量的使用方法常量表示法小数形式:0.15(直接书写小数点)指数形式:22.1E5(E代表10的幂)

float变量特性定义示例:floatf;存储细节:占用4字节内存精度说明:提供6位有效数字注意:float型变量存在舍入误差问题浮点数适合科学计算,但需注意精度限制浮点型常量的两种形式小数形式vs指数形式(科学计数法)1.小数形式定义:包含小数点的实数表示法0.15-12.342.指数形式公式:aEn表示a×10n合法示例:2.1E5,.5E7E前后均有数字/小数点可省略但需有数字不合法示例:E7,2.7E缺少底数/缺少指数规范化指数形式:建议底数a的绝对值在[1,10)之间,例如将21000写为2.1E4而非21E3。浮点型数据训练:精度验证单精度vs双精度:有效数字与存储限制实例:float类型的精度陷阱floatf=1234567.95789;printf("%f",f);//1234568.000000精度丢失:仅保留前6-7位有效数字,小数部分被截断或舍入float类型通常只有23位尾数,对应约6-7位十进制有效数字。改进:使用double类型doubled=1234567.95789;printf("%f",d);//1234567.957890精度保留:double提供约15-17位有效数字double类型拥有52位尾数,能更精确地存储长小数。类型有效数字位数适用场景float6-7位内存敏感、精度要求低double15-17位科学计算、金融数据、高精度需求printf格式控制:使用%f输出float,使用%lf输出double。建议:涉及高精度计算或大数存储时,优先选用double类型。字符型数据:常量与转义字符字符常量表示法定义规则:使用单引号括起单个字符。示例:•'a':小写字母a•'A':大写字母A•'6':数字字符6(注意不是整数6)常用转义字符转义序列含义\n换行符\t水平制表符\\反斜杠本身\0空字符(字符串结束标志)重要区别:字符'0'(ASCII48)≠整数0;字符'A'≠字符串"A"(后者包含结束符\0)字符型常量与ASCII码ASCII码值对照字符ASCII码值'a'97'A'65'0'48'\n'10字符与整型的互换及区别•字符数据在计算机内部以ASCII码存储,因此可与整型数据互用。例如,表达式'a'+1的结果是98。•重点警示:字符'0'不等于整数0。字符'0'的ASCII码是48,而整数0就是0。字符型常量定义•使用单引号括起来的单个字符,例如:'a','A','1','!'。•注意:双引号"a"是字符串,不是字符常量。字符串常量与存储内存视角下的本质区别字符串常量:由双引号括起的字符序列,如"China"。系统在末尾自动添加'\0'作为结束标志。类型内存占用字符常量'A'1字节字符串常量"A"2字节(含'\0')字符串常量"China"6字节(5字符+1结束符)注意:字符串常量在内存中是连续存储的,且必须以'\0'结尾,这是它与字符数组或字符常量的根本区别。字符型变量与ASCII码掌握字符型变量的定义、使用及与整数的互用原理charlow,upp;'a'=97'A'=65upp=low-32;含义:将小写字母转换为大写字母示例:当low为'a'(97)时,upp计算结果为65,即字符'A'。字符本质是整数,通过ASCII码值进行运算可实现大小写转换认识运算符与表达式任务3任务3:算术运算符与表达式基础运算与自增自减规则运算符名称示例与说明+加法a+b,如3+5=8-减法a-b,如10-4=6*乘法a*b,如3*4=12/除法整数除法取整,如12/7=1%求余仅用于整型,如12%5=2注意:整数除法结果自动取整,小数部分被丢弃。限制:求余运算符%的操作数必须为整型。后置自增a++先使用a的值,再使a加1(同理a--:先使用,再减1)前置自增++a先使a加1,再使用a的值(同理--a:先减1,再使用)注意:除法运算中若操作数均为整数,则结果也为整数,小数部分被截断实例分析:算术运算结果整数除法与取模运算详解inta=5,b=6;intresult1=a/b;intresult2=a%b;相除结果=0因为5除以6小于1,整数除法直接截断小数部分,故得0;求余结果=55除以6商0余5,故余数为5。表达式数学意义程序结果原因分析5/65除以60整数除法向下取整5%65对6取模5余数即为被除数本身10/310除以333.33...取整为310%310对3取模110=3*3+1自增/自减运算符详解深入解析前置与后置的执行差异前置自增(++a)先加1,再取值后置自增(a++)先取值,再加1inta=5;printf("%d\n",a++);//输出5,a变为6printf("%d\n",++a);//输出7,a变为7运算符执行顺序最终值变化++a先自增后使用a+1a++先使用后自增a+1自增与自减运算符:前置vs后置深入理解执行顺序与副作用前置运算符(++a/--a)先自增/减,后取值。表达式返回的是变量修改后的新值。后置运算符(a++/a--)先取值,后自增/减。表达式返回的是变量修改前的旧值,但变量本身已改变。示例分析inta=5;printf("%d\n",a++);//输出5,a变为6printf("%d\n",++a);//输出7,a变为7注意:后置返回旧值,前置返回新值。⚠️使用限制:自增/减运算符只能作用于变量(左值),不能作用于常量(如5++)或复杂表达式(如(a+b)++)。赋值运算符与赋值表达式基础语法与常见陷阱简单赋值格式:变量=表达式;示例:x=5;含义:将右侧值存入左侧变量复合赋值格式:变量op=表达式;示例:n+=1;等价于:n=n+1;其他:-=,*=,/=,%=运算符示例等价表达式+=a+=3a=a+3*=b*=2b=b*2%=c%=4c=c%41.赋值号左边必须是变量(左值),不能是常量或表达式,如5=x是非法的。2.注意类型自动转换:若左右类型不同,右侧值会自动转换为左侧变量的类型,可能产生精度丢失。。3.赋值运算符具有右结合性,如a=b=c等价于a=(b=c)常见错误:将==误写为=,或将常量放在赋值号左侧赋值运算符与表达式掌握简单赋值和复合赋值运算符的用法,理解赋值表达式的值简单赋值(SimpleAssignment)定义:将右边表达式的值赋给左边变量x=5;此时变量x的值为5复合赋值(CompoundAssignment)支持运算符:+=、-=、*=、/=、%简写形式等价展开n+=1n=n+1a*=2a=a*2⚠️赋值规则(AssignmentRules)1.赋值号左边必须是变量(L-value)|2.类型不同时,系统会自动进行类型转换逗号运算符与逗号表达式求解顺序与值确定规则形式:表达式1,表达式2,...,表达式n求解顺序:严格自左向右依次计算最终值:整个表达式的值等于最右边表达式的值步骤表达式计算结果与n的值1n=4+2n变为62n++n变为73n*3结果为21整个表达式的值为21逗号运算符优先级最低,常用于for循环的初始化或更新部分。位运算符:按位与、或、异或底层逻辑与实用技巧按位与(&)规则:同为1时为1,否则为0用途:用于提取某些特定位ABA&B111100按位或(|)规则:有一个为1时为1,全0才为0用途:用于置位,将某些位强制设为1ABA|B101000按位异或(^)规则:相同时为0,不同时为1用途:用于翻转某些位或交换变量ABA^B110101核心记忆口诀:与取同、或取一、异或取反示例:5&3➔0101&0011=0001(1)位运算:取反、左移、右移二进制视角下的数据操作规则按位取反(~)每一位取反,0变1,1变0~0=1,~1=0左移(<<)低位补0,高位丢弃1<<1相当于乘以2右移(>>)类型补位规则适用场景逻辑右移高位补0无符号数(unsigned)算术右移高位补符号位有符号数(signed)无符号数右移始终补0;有符号数右移视系统而定,通常补符号位以保持正负号不变。💡记忆口诀:左移相当于乘以2,右移相当于除以2(向下取整)位运算符:取反与移位深入理解二进制层面的数据操作按位取反(~)将操作数的每一位进行反转:0变为1,1变为0。原始值(二进制)取反后(~)00001010111101011111000000001111左移(<<)所有位向左移动指定位数,左边移出的位被舍弃,右边空出的位补0。原始值左移1位(<<1)结果(二进制)00001010000101002000000001000000102右移(>>)所有位向右移动指定位数,右边移出的位被舍弃。左边空位补0(无符号数)或补符号位(有符号数,取决于系统)。原始值右移1位(>>1)结果(二进制)000010100000010151111000011111000-8(算术右移)移位运算常用于快速乘除2的幂次,取反常用于掩码操作。不同类型数据的转换自动转换vs强制转换自动转换(隐式)低级向高级转换,精度不丢失char<int<float<double混合运算时,所有操作数统一转换为最高精度类型强制转换(显式)(类型名)表达式(int)3.64结果为3(double)5/2结果为2.5截断小数部分,不四舍五入;可能丢失精度赋值转换规则:当右侧表达式类型高于左侧变量类型时,发生强制转换;反之则自动转换。示例:inti=3.14;(i的值为3)类型转换:强制转换掌握强制类型转换运算符的用法,理解其与自动转换的区别标准格式(类型说明符)表达式(int)a(float)a+b(int)(a+b)核心规则强制转换不改变变量本身的类型和值。它仅影响本次运算的结果。区别于自动转换,强制转换是显式进行的。自动转换:系统隐式执行,精度可能丢失

↔

强制转换:程序员显式指定,临时改变类型类型转换实例分析inta=3;floatb=3.64,c=1.7654;a=(int)c+5;第一步:将浮点数c(1.7654)强制转换为整型,结果为1第二步:将转换后的1与5相加,得到6第三步:将结果6赋值给整型变量aa=6,b=7.000000,c=1.765400任务实现:9折销售计算程序综合运用浮点型变量、算术运算符,完成计算商品折后价的实际编程训练需求分析1.根据商品原价计算9折后价格2.定义浮点型变量存储价格3.使用scanf输入原价4.使用printf输出结果5.注意格式控制符%f#include<stdio.h>intmain(){floatprice,discounted_price;

printf("请输入商品原价:");

scanf("%f",&price);discounted_price=price*0.9;

printf("9折后价格为:%.2f\n",discounted_price);return0;}通过本例掌握浮点型变量的定义、输入输出及基本算术运算。任务实现:总价与找零计算综合运用变量与运算符变量定义:商品A价格:price_a=100商品B价格:price_b=250商品C价格:price_c=150付款金额:payment=600计算逻辑:total=price_a+price_b+price_cchange=payment-total变量名计算过程最终值total100+250+150500change600-500100单元总结核心知识点梳理与知识体系构建常量与变量•常量的定义与表示方法•变量的命名规范与作用域•变量在内存中的存储概念数据类型•基本数据类型(整型等)•引用数据类型(数组等)•类型转换的隐式与显式运算符与表达式•算术运算符(+-*/%)•关系运算符(><==!=)•逻辑运算符(&&||!)•运算符的优先级与结合性综合应用•结合知识解决实际问题•常见编程错误分析•调试技巧与最佳实践掌握基础,灵活运用,构建逻辑思维单元测验:综合演练知识点:常量、变量、数据类型、运算符请独立完成,完成后对照答案查漏补缺。THANKYOU主讲人:

单元3

顺序结构程序设计主讲人:

课程概览与学习目标C语言程序设计基础:顺序结构本单元学习重点掌握顺序结构特点:理解程序执行的线性流程熟悉语句分类:区分表达式语句、空语句和复合语句精通输入输出函数:重点掌握4个基本I/O函数学习目标核心任务理解顺序执行逻辑掌握printf与scanf用法识别常见语法错误掌握putchar与getchar用法承上启下:为后续学习选择结构和循环结构打下坚实基础单元导学大小写字母转换从实例看顺序结构计算机程序的三个基本步骤输入(获取原始数据)、处理(执行逻辑运算)、输出(呈现最终结果)。提示:正确提取输入和输出数据是首要环节。实例:大写转小写如何确定变量和数据类型?(提示:字符型char)如何设计转换方法?(提示:利用ASCII码差值或内置函数)通过简单的字母转换,理解顺序结构的执行流程。生活中的常见实例:智能家电:如洗衣机,先放入衣物(输入),再执行洗涤程序(处理),最后脱水烘干(输出)。ATM机:插入银行卡(输入),输入密码并选择金额(处理),吐出钞票(输出)。认识顺序结构任务1任务1认识顺序结构什么是顺序结构?顺序结构是最简单、最常用的程序结构。程序按照语句出现的先后次序依次执行,且每条语句都会被执行一次。关键特点•执行顺序:严格按代码书写顺序从上到下执行。•全覆盖性:没有跳转或分支,所有语句均被执行。•逻辑直观:符合人类自然的线性思维习惯。常用实现语句•表达式语句•输入函数(如input)、输出函数(如print)图示:顺序结构流程图顺序结构的定义:程序按照代码编写的顺序,由上到下依次执行,每条语句只执行一次,不重复、不跳转。C语言语句的5种分类语法结构与实例解析1.函数调用语句

由函数调用加一个分号组成

printf("Hello");2.表达式语句

由表达式加一个分号组成

a=b+c;3.空语句

只有一个分号,通常用于循环体中

;4.复合语句

用一对花括号{}括起来,将多条语句组合成一条

{x=1;y=2;}5.控制语句

常用的有8种,用于控制程序流程if,while,for,switch,break,continue,return,goto语句详解:函数调用与表达式函数调用语句•库函数调用•用户自定义函数调用表达式语句赋值语句是最常见的形式a=b+c;赋值语句类型•简单赋值•复合赋值k+=9;•自增自减k++理解语句结构对编写正确代码至关重要语句详解:表达式与复合语句简单赋值语句基本形式:a=b+c;将右侧表达式的值赋给左侧变量复合赋值语句简写形式:k+=9;等价于k=k+9,常用于累加操作自增自减语句特殊形式:k++;使变量值增加1,常用于循环计数器复合语句作用:将多条语句用花括号{}包裹,视为一条语句,在if条件判断和for循环中不可或缺掌握这三种赋值形式,能显著提升代码的简洁性与可读性语句详解:空语句与复合语句空语句(EmptyStatement)空语句仅仅是一个分号;,表示该位置存在一条语句。不推荐初学者频繁使用,容易造成语法错误或逻辑漏洞。for(inti=0;i<10;i++);//注意这里的分号复合语句(CompoundStatement)复合语句(块)可以一次完成一系列工作,用花括号{}包裹。示例:if条件成立时,执行复合语句中的三条赋值语句if(score>60){grade='A';passed=true;count++;}空语句:无操作,慎用复合语句:多指令,常用任务实现:大小写字母转换任务描述将大写字母'A'转换为小写字母'a'核心原理利用ASCII码特性,在大写字母码值基础上加32

实现步骤1.定义字符变量charc='A';2.查看ASCII码值('A'为65)3.绘制操作流程图4.编写转换代码charupper='A';charlower=upper+32;printf("%c",lower);输入ASCII值操作输出ASCII输出字符'A'65+3297'a'认识输入函数与

输出函数任务2printf函数与scanf函数C语言标准输入输出库函数简介输入/输出的重要性输入/输出是程序设计的常规环节,是程序与用户交互的桥梁。头文件包含使用库函数需包含头文件#include<stdio.h>操作类型定义输出从计算机向外部设备输出数据输入从输入设备向计算机输入数据printf函数:基本形式直接输出字符串printf("HelloWorld");原样输出字符串,常用于提示信息格式控制输出printf("%d%s",age,name);按指定格式输出数据,灵活性强关键规则:1.格式控制符由%开头,普通字符原样输出2.输出项列表与格式控制符个数必须一一对应printf格式化输出:核心控制符%d、%f、%c详解%d:输出带符号的十进制整数,适用于整型数据%f:输出小数形式的实数,默认保留6位小数%c:输出单个字符,常用于字符型数据处理宽度与精度控制%md(右对齐,宽度为m)、%-md(左对齐,宽度为m)以及%m.nf(总宽度m,保留n位小数)掌握这三种格式符,即可应对80%的日常输出需求printf其他格式控制符补充介绍%o、%x、%u、%s、%e等格式控制符及特殊用法整数进制转换%o:输出八进制整数%x:输出十六进制整数%u:输出无符号十进制整数字符串与实数%s:输出字符串(支持m.ns精度控制)%e:输出指数形式的实数特殊用法整数与字符可以互换形式输出,例如用%d输出字符的ASCII码,或用%c输出整数的对应字符。控制符示例输出%o17%xff%sHello深度解析:%d的宽度控制掌握%md与%-md的对齐艺术%d:按数据实际长度输出,无额外填充。%md:指定输出长度m,数据靠右输出,左侧自动补空格。%-md:指定输出长度m,数据靠左输出,右侧自动补空格。溢出处理:如果数据实际长度大于m,则m不生效,按实际长度完整输出。格式符示例代码输出结果(m=5,val=123)%dprintf("%d",123)123%5dprintf("%5d",123)"123"(前导空格)%-5dprintf("%-5d",123)"123"(尾部空格)%3dprintf("%3d",123)123(m<长度,原样输出)123123宽度不足补空格,宽度溢出保原长printf与scanf函数:引入前置条件•C语言的输入和输出操作由库函数实现•使用这些函数需要包含编译预处理命令•在程序开始位置加上该命令即可使用相关库函数#include<stdio.h>重点学习函数FunctionDescriptionputchar输出单个字符getchar输入单个字符printf格式化输出scanf格式化输入字符输入输出函数:putchar与getchar学习使用putchar和getchar函数处理单个字符的输入输出putchar(ch):输出一个字符参数ch可以是常量、变量或表达式例如:putchar('A')或putchar(ch)getchar():从键盘输入一个字符getchar()无参数,只能获取一个字符常用于读取用户输入的单个按键putchar用于输出,getchar用于输入,二者均处理单个字符printf格式控制符详解C语言标准输出函数核心参数解析格式符数据类型说明与示例%dint输出带符号的十进制整数,如printf("%d",100)输出100%ffloat/double输出小数形式的实数,默认保留6位小数,如printf("%f",3.14)输出3.140000%cchar输出单个字符,如printf("%c",'A')输出A%schar*输出字符串,直到遇到空字符'\0'为止,如printf("%s","Hello")输出Hello%o/%x/%eint/double%o输出八进制整数,%x输出十六进制整数(小写),%e输出指数形式实数,如printf("%e",123.45)输出1.234500e+02注意:格式符必须与变量类型严格匹配,否则可能导致未定义行为或输出错误深度解析:%c与%d的相互转换理解printf中字符与整数的底层关联双向输出能力:一个字符既可以用%c输出原字符,也可以用%d输出其对应的整数值。整数转字符:当整数值在0~255之间时,使用%c可输出其对应的ASCII字符。系统转换机制:系统会自动将整数作为ASCII码,转换为相应的字符进行显示。inta=65;printf("%d,%c",a,a);65,A输入值格式符输出结果65%d6565%cAASCII码是连接字符与整数的桥梁深度解析:%s与%f的宽度控制字符串与浮点数的格式化输出详解字符串宽度与截断%ms:右对齐,不足补空格printf("%10s","Hi");→[Hi]%-ms:左对齐,不足补空格printf("%-10s","Hi");→[Hi]%m.ns:截取前n个字符,占m列printf("%10.3s","Hello");→[Hel]浮点数精度与科学计数%f:默认保留6位小数3.14→3.140000(%lf用于双精度)%m.nf:占m列,保留n位小数printf("%10.2f",3.14159);→[3.14]%e:指数形式输出132.34→1.323400e+002格式符含义示例输出%s字符串默认输出Hello%10s右对齐占10列[Hello]%.2f保留2位小数3.14%e科学计数法1.23e+02scanf函数:基本形式与注意事项掌握格式控制与地址传递的核心规则scanf("格式控制符",地址列表);1.地址列表必须使用&变量名形式(如&a),以获取变量的内存地址。2.格式控制符与地址项个数必须一一对应,多一个少一个都会导致错误。⚠️核心禁忌:普通字符中绝对不能使用'\n'scanf读取输入时会自动跳过空白字符(包括换行符)。显式加入'\n'会导致程序等待额外输入,从而造成程序“卡死”。scanf函数多数据输入方法1.有分隔符的输入scanf("%d,%d",&a,&b);必须严格匹配,如输入“10,20”。2.无分隔符的整数输入空格或回车均可作为默认分隔符,如输入“1020”或分两行。3.字符输入与数字输入的区别scanf("%c",&c);会读取包括空格和回车在内的所有字符。两个黄金原则第一,数字间要有分隔符(除非格式字符串中指定了非空白字符);第二,空格或回车也是字符,在处理字符输入时需特别注意缓冲区残留问题。scanf格式控制符详解C语言输入函数核心参数解析格式符含义示例代码备注%d输入十进制整数scanf("%d",&a);最常用%f输入小数形式的实数scanf("%f",&b);注意与printf区别%c输入一个字符scanf("%c",&ch);注意会读取空格和换行符%s输入一个字符串scanf("%s",str);遇空格结束重点掌握%d,%f,%c三种格式控制符%c容易因缓冲区残留换行符导致错误,需特别注意多数据输入:有分隔符掌握scanf中的自定义分隔符规则分隔符的灵活性:可以是逗号、分号、冒号等任意合法字符。严格匹配原则:输入时必须照原样输入分隔符,不能遗漏或替换。数据类型通用性:整数、实数、字符类型均可使用分隔符。scanf("%d,%d,%d",&a,&b,&c);3,4,5注意:逗号必须输入⚠️错误示例:输入345(空格分隔)将导致读取失败训练:计算圆的周长和面积综合运用printf和scanf函数,解决数学计算问题#defineP3.1415926floatr,c,s;scanf("%f",&r);c=2*P*r;s=P*r*r;printf("周长:%.2f\n面积:%.2f\n",c,s);变量定义:半径、周长、面积|使用#define定义符号常量|数学公式到C语言表达式的转换|格式化输出:保留2位小数训练:华氏温度转摄氏温度解决温度转换问题,重点学习除法运算和数据类型选择

整数除法陷阱:直接写5/9会导致结果为0,必须写成5.0/9.0或5/9.0以触发浮点运算。数据类型选择:变量应定义为实型(如float或double),而非整型,以保留小数精度。输出格式控制:使用格式化输出(如%.2f)来控制结果的小数位数,确保显示美观。任务实现:华氏转摄氏温度从逻辑到代码的关键步骤任务描述:输入华氏温度,输出对应的摄氏温度

重点注意:除法运算符'/'的两种功能——浮点除法与整数取整,这是初学者最容易混淆的地方。数据类型示例代码输出结果int(整数)5/9*(100-32)0(错误)float(浮点)5.0/9.0*(100-32)37.78(正确)输出格式:使用printf或format控制小数位数,避免精度丢失选择正确的数据类型是保证计算准确的前提单元知识总结核心知识点回顾知识模块关键要点程序结构理解三种基本结构,掌握顺序结构特点及流程图C语言语句掌握C语言语句的5种分类输入输出函数掌握putchar、getchar、printf、scanf函数的基本用法ASCII码应用具备使用ASCII码特性解决实际问题的能力综合应用能力具备综合运用所学知识点的能力CHAPTER01|课程单元总结THANKYOU主讲人:单元4

选择结构程序设计主讲人:课程导入:选择结构从生活场景看程序逻辑生活中的选择•找偶数游戏:判断一个数字是否能被2整除。•超市满额赠券:消费满100元赠送一张优惠券,否则不赠送。程序基本结构回顾•数据输入•数据处理•数据输出传统结构是顺序执行,而选择结构引入了‘分支’。本单元学习目标●掌握选择结构特点及流程图画法●熟悉关系运算符和关系表达式●熟悉逻辑运算符和逻辑表达式●掌握if语句、switch语句的基本结构和使用方法●了解条件运算符和条件表达式●掌握break语句在switch语句中的使用方法单元导学:找班级最高成绩从具体案例看选择结构的必要性学生姓名语文数学总分王红9095185李明8090170张成10075175输入分析:我们需要输入哪些数据?(各科成绩)输出目标:最终要得到什么结果?(总分及最高分)处理难点:如何比较3个数的大小并找出最大值?引出需求:传统顺序结构无法直接比较,需引入选择结构(If-Else)来实现条件判断。如何在程序中自动判断并找出最高分?认识选择结构及

判断条件任务1选择结构概述系统讲解选择结构(分支结构)的特点及基本流程图表示什么是选择结构?根据给定条件的成立与否,决定执行不同操作的结构。其核心特点是条件判断与分支执行,即程序流在此处发生分叉。执行逻辑首先进行条件判断,若条件为真(True),则执行分支A;若条件为假(False),则执行分支B或跳过。这是程序控制流的关键转折点。实现方式主要使用if语句处理二选一或多层嵌套判断;使用switch语句处理多分支等值判断。注意:判断条件的设定是编程中的重难点,需确保逻辑严密。选择结构流程图示例理解二选一的逻辑关系基本元素:判断框(菱形)、处理框(矩形)、流向线(箭头)分支逻辑:根据条件P的真假,程序走向不同路径对应关系:流程图中的分支对应代码中的if-else结构选择结构实现了程序执行路径的动态切换,是编程逻辑的基础。关系运算符详解C语言基础语法核心概念核心定义•双目运算符•结合方向:从左向右•符号:>,>=,<,<=,==,!=•功能:比较操作数的大小或相等性运算符名称应用示例功能描述优先级组>大于a>b判断a是否大于b第一组>=大于等于a>=b判断a是否大于等于b第一组<小于a<b判断a是否小于b第一组<=小于等于a<=b判断a是否小于等于b第一组==等于a==b判断a是否等于b第二组!="不等于a!=b判断a是否不等于b第二组第一组(高优先级)>,>=,<,<=第二组(低优先级)==,!=算术运算符>关系运算符>赋值运算符关系表达式与真假值逻辑值在C语言中的表示(1为真,0为假)1.关系表达式由关系运算符(如<,>,==,!=,<=,>=)连接运算对象构成2.表达式的结果只有两种:真或假3.在C语言中,真用整数1表示,假用整数0表示判断偶数:a%2==0若成立则结果为1,否则为0优先级示例:a<=b+c等价于a<=(b+c)因为算术运算符优先级高于关系运算符关系表达式的值即为逻辑值,可直接用于后续的条件判断或赋值关系表达式及应用定义:由关系运算符连接运算对象的式子逻辑值表示:真=1,假=0应用途径1:直接用于选择语句的条件判断应用途径2:表达式的值参与算术或赋值运算示例:a%2==0//判断奇偶数实例解析:关系表达式计算代码实例与运行结果分析%

===

>a%2==0当a为偶数时结果为1(真),否则为0(假)。a=b>c先计算b>c得到1或0,再赋值给a,最终a的值为1或0。运算符优先级结合性示例%高左到右==,>,=关系运算符优先级高于赋值运算符,但低于算术运算符逻辑运算符详解C语言基础语法核心概念逻辑非(!)单目运算符,结合方向从右向左,用于取反操作逻辑与(&&)双目运算符,结合方向从左向右,全真为真逻辑或(||)双目运算符,结合方向从左向右,一真即真最高优先级:!(逻辑非)────────────────────次高:算术运算符────────────────────中间:关系运算符────────────────────较低:&&(逻辑与)────────────────────更低:||(逻辑或)────────────────────最低:=(赋值运算符)记忆口诀:非>与

温馨提示

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

评论

0/150

提交评论