C程序设计演示稿.ppt

上传人:max****ui 文档编号:6330764 上传时间:2020-02-23 格式:PPT 页数:84 大小:375.81KB
返回 下载 相关 举报
C程序设计演示稿.ppt_第1页
第1页 / 共84页
C程序设计演示稿.ppt_第2页
第2页 / 共84页
C程序设计演示稿.ppt_第3页
第3页 / 共84页
点击查看更多>>
资源描述
C程序设计 第 章 第 章 第1章C语言概述 高级语言 汇编语言 优点 可以充分发挥机器硬件的功能 并提高质量 缺点 必须熟悉机器的指令系统 而指令系统又是和具体机器的内部结构密切相关的 所以所编写的程序依赖于计算机硬件 可读性和可移植性比较差 一般高级语言 优点 可读性和可移植性比较好 缺点 难以对硬件进行操作 如内存地址 位操作等 1 1介绍 C语言 具有一般高级语言的特性 也具有汇编语言的优点 所以有人称为 中级语言 高级语言有的 高级语言没有的 算术运算关系运算逻辑运算 位运算单目 三目运算复合运算 1 语言简洁 紧凑 使用方便 灵活 32个关键字 9种控制语句 2 运算符丰富34种运算符3 数据类型和数据结构丰富 基本类型 整型 字符型 实型 构造类型 数组 结构体 共用体 指针 文件 空类型数据结构 链 表 树 栈等 1 2C语言的特点 4 具有结构化控制语句5 语法不严格松散结构 即语法检查不严格 编程时必须控制好 6 C语言允许直接访问物理地址 能进行位操作 7 目标代码质量高 程序执行效率高 8 输入输出采用函数而无输入输出语句 可移植性好 1 3用C库函数组装程序 用库函数必须注意包含相应的头文件 include include include 1 4程序格式和特点 1 main 函数必须有且唯一2 函数是C语言程序的基本单位3 大小写敏感4 无行概念 1 语句以分号结束 2 以 号开头的编译预处理语句无分号 3 加在C语言任何部分作注释说明 采用小写 大写有特殊意义 宏 常量等 1 5程序执行从main函数开始 TurboC是一个集成环境 编辑 编译 连接 执行 1 源程序扩展名 c2 TurboC的使用TC选择工作目录建立工作环境建立工作环境F9编译 连接 运行Alt R 3 建立工作环境 例题例1 例3 讲解 说明 上机题 1 建立一个自己的工作环境2 熟悉TurboC环境3 输入并调试运行例1 例34 自己编写C程序习题1 5 1 6 第2章数据描述和基本操作 程序 2 1C的数据类型 对数据的描述 数据结构 对操作的描述 算法 1 不同的数据占用的空间不同 2 对应的运算不同 数据类型 P38 2 2基本数据类型 1 整型 shout2字节int机器字长 2字节 215 215 1 long4字节 2 无符号类型 只对整型 也包含字符型 存放正数的范围扩大一倍 Unsigned整型x 2 2基本数据类型 3 实型 float单精度4字节double双精度8字节longdouble长双精度16字节 2 2基本数据类型 4 字符型存贮形式 按ASCII码值 占一字节 与整型通用 相当一个字节整数 2 2基本数据类型 5 类型长度运算符sizeof 类型 用途 测试动态分配存贮空间例如A sizeof int 2 3常量和变量 1 常量 1 数值常量 整型常量 实型常量 十进制自然表示八进制零打头十六进制ox打头 指数形式E e 前面有数 后面是整数小数形式 必须有 2 字符型常量 用单引号包围的单一字符 a A 字符常量没有结束标志 3 字符串型常量 用双引号包围的0个或多个字符序列 china 有结束标志 4 特殊常量 一 符号常量如 宏定义 definePI3 14 二 转义字符 换码序列 字母表示动作见P 48 2 变量 1 变量的定义intx y 先定义每个变量被指定为一确定类型便于编译系统检查如a b 2 变量标识符 C语言规定标识符只能由字母 数字和下划线三种字符组成 且第一个字符必须是字母或下划线 用来标识变量名 符号常量名 函数名 数组名 类型名 文件名的有效字符序列 保留关键字预定义标识符用户自定义 3 变量的初始化 定义变量的同时给变量赋值如 intx 3 y 5 2 4表达式运算 1 说明 例如表达式b a x 5 运算符的功能与运算量的关系优先级结合方向结果类型 2 算术运算符双目运算符 5 3 2 5 3 5 3 模运算符或求余运算符 a b这里a b必须是整型数5 3 1 5 3 1 2 舍入的方向不因定 向零取整原则 符号同左边的操作数 3 算术表达式 用算术运算符和括号将运算对象 也称操作数 连接起来 符合C语法规则的式子称C算术表达式 如 a b c 1 5 a 同级时 从左到右 的结合原则 4 复合的赋值运算 只要有赋值号优先级较低 只比逗号运算符高如 a ba a b累加器 注意a一定是变量b可以是表达式或变量 结合规律从右到左A 3a a 3X y 8x x y 8 5 自增减运算 a a自增a a 1a a自减a a 1后置运算 前置运算只能用于变量 不能用于常量或表达式 结合方向是从右至左 6 关系运算 If x y 真 非0为真 假 0为假 7 逻辑运算 与 或 非 1 实型数不比较相等的1 0 3 0 3 0 1 0 x y 就是小到一定形式就行了 10 6或 10 8 e1 e2 e3 e为表达式 8 条件运算 三目 3 3 6 8逗号表达式 又称顺序求值运算符 9 逗号运算符和逗号表达式 2 5类型转换 1 隐式转换 1 必然转换 2 由低向高转换 一次到位转换P54 3 赋值转换2 显示转换强制类型运算 类型 第3章简单的C程序设计 顺序结构 3 1C语句 1 表达式语句 2 控制语句 3 函数调用语句 4 空语句 5 复合语句 3 2格式化输入输出函数 一 格式输出Printf 格式控制 输出项序列 二 格式输入scanf 格式控制 地址序列 3 3字符输入输出函数 一 输入字符getchar 二 输出一个字符Putchar c 3 4顺序结构程序设计举例 第4章逻辑运算和判断选取控制 4 1条件分支 1 if语句的三种形式 1 if 表达式 语句 2 if 表达式 语句1 else语句2 3 if 表达式1 语句1 elseif 表达式2 语句2 elseif 表达式3 语句3 if语句的说明 1 表达式一般为逻辑表达式或关系表达式 但可以是任意表达式 是任意的数值类型 整型 实型 字符型 指针型数据 2 else前面的分号不可缺少 它是if语句内嵌语句所要求的 缺少时语法错误 3 if和else后面可以是一个操作语句 也可以是多个操作语句 若为多个语句必须用复合语句 2 if语句的嵌套 if语句中又包含一个或多个if语句 if 表达式1 if 表达式2 语句1 else语句2 elseif 表达式3 语句3 else语句4 3 条件运算符 在if语句中执行一个赋值语句且给同一个变量 1 条件运算符 2 条件运算符优先于赋值运算符 低于关系运算符和算术运算符 3 条件运算符的结合方向 从右至左 4 条件运算符不能取代一般的if语句 5 表达式1的类型可以与表达式2和表达式3的类型不同 4 2开关分支switch语句 是多分支选择语句 格式 Switch 表达式 case判断值1 语句组1 break case判断值2 语句组2 break default 语句组n break switch语句的说明 1 switch后面的表达式应是整型 字符型或是枚举 2 若表达式的值与某个case后面的判断值相等时就执行case后面的语句组 没有匹配值时执行default后面的语句组 3 case后面的判断值不能重复 4 case和default出现的次序不影响执行结果 5 执行完一个case后面的语句 则转到下一个case继续执行 所以必须用break语句跳出 第5章循环控制 5 1循环结构 循环结构是结构化程序设计的三种基本结构之一 1 当型循环结构 当条件成立时反复执行操作 直到条件为假时才停止循环 2 直到型循环结构 先执行操作 再判断条件是否为假 若条件为假 再执行 如此反复 直到条件为真为止 5 2C语言中循环语句 1 while2 for3 do while 当型循环 先判断后执行 直到型循环 先执行后判断 1 while和do while语句 1 while 条件 语句 如 1 while和do while语句 2 do 语句 while 条件 如 需要注意 1 循环前的初始值 2 循环体内必须改变循环条件 使其趋于结束 3 循环体如果包含一个以上语句 应以复合语句出现 4 当while后面的表达式第一次值为真时 二者等价 否则二者不同 循环次数不确定 只给结束条件 2 for语句 灵活 循环次数确定或不确定 只给结束条件 for 初值表达式 条件 修正表达式 语句 如 s 0 for i 1 i 100 i s i for语句的说明 1 条件为真 则执行for语句中指定的内嵌语句 2 初值表达式和修正表达式可以是逗号表达式 3 e1 e2 e3均可缺少 但分号保留 4 可以取代while语句 5 初值表达式可以和循环变量无关 5 3辅助控制 1 break语句 1 跳出switch结构 2 用于循环体内 结束本层循环 一次退出一层循环2 continue语句仅用于循环体内 使本次循环结束3 goto语句goto语句标号 标号 用标识符表示 规则同变量退出多重循环 从内到外 5 4循环的嵌套 一个循环体内又包含另一个完整的循环结构三种循环结构可以互相嵌套 例题分析 例题分析 例1输入字符显示之 includeMain charc while c getchar EOF putchar c 例题分析 例2打印ASCII码0 255的字符 第6章数组 6 1一维数组的定义和引用 1定义类型说明符数组名 常量表达式 如inta 10 说明 1 数组名 2 用方括号 3 数组长度 元素个数 4 不能含变量 数组 是有序数据的集合 数组中的元素应是同一类型 2引用先定义 后使用的原则C规定 逐个引用数组元素 不能一次引用整个数组数组元素的表示形式 数组名 下标 规定 下标是整型常量或整型表达式如a 5 或a 2 3 等 3初始化 1 在定义数组时对数组元素赋以初值规定 只有静态存贮数组和外部存贮数组才能初始化static 静态extern 外部 2 只给部分元素赋值 3 使数组中全部元素为0 4 在对全部数组元素初始化时 可以不指定数组长度 6 2二维数组的定义和引用 1定义类型说明符数组名 常量表达式 常量表达式 如inta 3 4 是特殊的一维数组存贮顺序 按行存贮 多维数组同理 2引用数组元素的表示形式 数组名 下标 下标 如a 0 0 或a 0 1 等3初始化 6 3字符数组 用来存放字符数据的数组是字符数组 字符数组中每个元素存放一个字符 1定义类型说明符数组名 常量表达式 如 chara 10 inta 10 2初始化staticcharc 5 c h i n a 注 1 如果字符个数大于数组长度则语法错 2 如果字符个数小于数组长度则将字符赋给数组前面的元素 其余元素为空格 3 字符个数等于数组长度时可以省略数组长度3引用可以引用字符数组中的一个元素 得到一个字符 4字符串和字符串结束标志字符数组长度 实际长度 0 有效长度字符串结束标志 0 表示 china 共有5个字符 但占6个字节可以用字符串常量来初始化字符数组Staticcharc china 也可写成staticcharc china 在C中将字符串作为字符数组来处理 为了测定字符串的实际长度 0 作为结束标志 5字符数组输入 输出 1 getchar putchar 2 用格式符 c输入 输出 3 将整个字符串一次输入 输出 用格式符 s如 Staticcharc china Printf s c 注 1 输出字符不包括结束符 0 2 用 s时输出项是数组名 3 长度大于实际长度时也到 0结束 4 用scanf函数输入一个字符串 利用一个scanf函数输入多个字符串时 以空格分隔 staticcharc 6 scanf s c printf s c 所以一维字符数组可以看作是 字符串变量 6字符串输入 输出 1 gets str 输入一个字符串到字符数组 2 puts str 可以包含转义字符 如 0 n 等 7字符串函数 include 1 拷贝strcpy str1 str2 目的源注 str1长度 str2长度str1是数组名形式 str2可以是字符串常量 不能用赋值语句将字符串常量或字符数组赋给一个字符数组 如 str1 china str1 str2 2 字符串连接strcat str1 str2 目的源注 作用是把字符2连到字符1后面 结果放在字符数组1中 所以字符数组1必须足够大 初始化时不能省略长度 连接时第一个 0取消 3 字符串比较strcmp str1 str2 4 测试字符串长度函数strlen str 5 将字符串中大写字母转成小写字母函数strlwr str 6 将字符串中小写字母转成大写字母函数strupr str 第8章模块化程序设计 8 1函数定义 在C中子程序的作用是由函数来完成的 使用的角度函数有两种 1 系统函数 2 用户定义函数 从函数的形式上分 1 无参函数 2 有参函数格式 函数类型函数名 形式参数 函数体 模块化设计 结构化编程 说明 函数类型 返回值的类型如 floataver 成绩表 void 无返值main 就应是void类型默认时为int型形参 inta intb floatr 或 a b r inta b floatr 函数类型函数名 称为 空函数 8 2函数参数和函数值 1 形式参数和实际参数定义函数时函数名后面括号中的变量 形参调用函数时函数名后面括号中的表达式 实参通过函数调用使两个函数中的数据发生联系说明 1 形参变量在函数调用前无分配存贮空间 2 实参可以是常量 变量 表达式或数组名 3 在被定义的函数中 必须指定形参类型 4 实参和形参类型应一致 否则类型不匹配错误 5 形参和实参间的传递是单向的 值传递 不同单元 2 函数的返值 1 函数的返值是通过return语句获得的 return后面可以是一个表达式 2 函数值的类型 在定义函数时指定函数值类型 如果不指定 按整型处理 函数类型决定返值类型 3 如果被调函数中没有return语句 则返值不确定 4 如果不带回值 应将函数定义为void类型 8 3函数的调用 1 函数调用的一般形式函数名 实参表列 说明 对实参表的求值顺序并不是确定的 一般是从右至左 这种情况在printf函数中也同样存在如 i 2 Printf d d n i i 结果 33 2 函数的调用方式函数在程序中出现的位置 1 函数语句 2 函数表达式 3 函数参数 3 被调函数的说明在一个函数中调用另一个函数所具备的条件是 1 被调函数是已经存在的函数 库函数 自定义 2 如果是库函数则 include命令相关头文件 3 如果是用户自定义函数 在主调函数中对被调函数声明 函数类型函数名 参数表 特例 1 函数的返值是整型或字符型 2 被调函数的定义在主调函数之前 3 在所有函数定义之前 说明了函数类型 8 4函数的嵌套调用 关系 自身可调用 相互之间可调用 即在调用一个函数的过程中 又调用另一个函数 如图8 5 函数1 函数2 函数3 例8 6P155 8 5函数的递归调用 1 直接递归2 间接递归 函数A 函数A 函数B 8 6数组作为函数参数 数组元素作参数同变量相同 数组名作为参数时传递整个数组 当用数组名作函数参数时 实参和形参都应用数组名 或指针变量 例8 11P165 说明 1 主调函数和被调函数分别定义数组 2 实参数组和形参数组类型应一致 3 实参数组和形参数组大小可以不一致 C编译对形参数组大小不作检查 只是将实参首址传递给形参数组 如 例8 12 4 不是 传值 而是 传址 例 8 13 5 也可以用多维数组名作函数参数 同上 例 8 14 8 7局部变量和全局变量 1 局部变量在函数内定义的变量例 floatf1 inta intb c 说明 1 主函数main中定义的变量只在主函数中有效 2 不同函数中可以使用相同的变量 3 形参也是局部变量 4 在一个函数内部 可以在复合语句中定义变量 这些变量只在复合语句中有效 离开复合语句该变量就无效 8 7局部变量和全局变量 2 全局变量在函数之外定义的变量称为外部变量 外部变量是全局变量 全局变量可以为本文件中其它函数所共用 它的有效范围为 从定义的位置开始到文件结束 例 8 15 说明 1 设全局变量的作用是增加了函数间数据联系 可以从函数得到一个以上的返值 是 双向传递的 2 不要轻易使用全局变量在程序执行过程中都占用存贮单元 通用性降低 不清晰 3 在定义点之前引用外部变量要用关键字extern作 外部变量说明 4 在同一源文件中 外部变量与局部变量同名 则在局部变量的作用范围内 外部变量不起作用 8 8动态存贮变量与静态存贮变量 1 变量的存贮类别以上是从变量的作用域角度分 从变量值生存期角度分静态存贮变量和动态存贮变量 静态存贮区存放 全局变量动态存贮区存放 1 函数形参变量 2 局部变量 未加static说明的 3 函数调用时的现场保护和返回地址 程序区静态存贮区动态存贮区 用户区 说明C语言中每个变量和函数有两个属性 数据类型和数据存贮类别 一般形式 存贮类别数据类型变量表 存贮类别 auto 隐含 自动static静态register寄存器extern外部 8 8动态存贮变量与静态存贮变量 2 局部变量的存贮方式 1 不作专门说明都是动态分配存贮空间的 存贮在动态存贮区中 编译系统自动处理 2 有时希望函数中的局部变量值在函数调用结束后不消失这时就应该指定该局部变量为 局部静态变量 用static说明例8 17P174 说明C语言中每个变量和函数有两个属性 数据类型和数据存贮类别 一般形式 存贮类别数据类型变量表 存贮类别 auto 隐含 自动static静态register寄存器extern外部 局部静态主变量说明 1 局部静态变量属于静态存贮类别 在静态存贮区内分配 存贮单元在程序整个运行期间都不释放 2 在编译时赋初值 只赋初值一次 并保留上次函数调用时的值 3 不赋值时编译时自动赋初值勤0 4 C规定只有全局变量和局部静态变量时才能对数组初始化 5 局部静态变量在函数调用结束后仍然存在 但其它函数是不能引用它的 6 对使用频繁的局部自动变量或形参 可以作为寄存器变量 用关键字register说明例8 19 7 全局变量和局部静态变量不能定义为寄存器变量 8 8动态存贮变量与静态存贮变量 3 全局变量的存贮方式 1 允许其它文件中的函数引用 2 只能被本文件中的函数引用时 用static说明例staticinta 存贮类别小结 P180 8 9内部函数和外部函数 1 内部函数函数只能被本文件中其它函数所调用 staticintfun inta intb 2 外部函数externintfun inta intb 属于 隐含 例8 223 如何运行一个多文件的程序建立一个 项目文件
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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