二级C语言讲义_第1页
二级C语言讲义_第2页
二级C语言讲义_第3页
二级C语言讲义_第4页
二级C语言讲义_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

二级二级 C 语言讲义语言讲义 第第 1 章章 C 程序设计基本概念程序设计基本概念 1 1 程序和程序设计程序和程序设计 考点考点 01 C 语言概述语言概述 C 语言的原型是语言的原型是 ALGOL 60 语言 由语言 由 B 语言演变而来 语言演变而来 1978 年正式发表 年正式发表 C 语言是一种语言是一种 面向过程的语言 早期的面向过程的语言 早期的 C 语言主要是用于语言主要是用于 UNIX 系统 现在在各类大 中 小和微型计算系统 现在在各类大 中 小和微型计算 机上得到了广泛的使用 机上得到了广泛的使用 考点考点 02 C 语言的特点语言的特点 1 C 语言的主要特点语言的主要特点 简洁紧凑 灵活方便简洁紧凑 灵活方便 共有共有 32 个关键字 个关键字 9 种控制语句 程序书写自由 主要用小写字母表示 种控制语句 程序书写自由 主要用小写字母表示 运算符丰富运算符丰富 运算符包含的范围很广泛 共有运算符包含的范围很广泛 共有 34 种运算符 种运算符 C 语言把括号 赋值 强制类型转换等都语言把括号 赋值 强制类型转换等都 作为运算符处理 作为运算符处理 数据结构丰富数据结构丰富 整型 实型 字符型 数组类型 指针类型 结构体类型 共用体类型等 能用来实现各整型 实型 字符型 数组类型 指针类型 结构体类型 共用体类型等 能用来实现各 种复杂的数据类型的运算 引入了指针概念 使程序效率更高 种复杂的数据类型的运算 引入了指针概念 使程序效率更高 C 语言是结构式语言语言是结构式语言 用函数作为程序模块 每个函数完成独立的功能来实现程序的模块化 用函数作为程序模块 每个函数完成独立的功能来实现程序的模块化 语法限制不太严格 程序设计自由度大 语法限制不太严格 程序设计自由度大 一般的高级语言语法检查比较严 能够检查出几乎所有的语法错误 而一般的高级语言语法检查比较严 能够检查出几乎所有的语法错误 而 C 语言允许程序编语言允许程序编 写者有较大的自由度 写者有较大的自由度 C 语言允许直接访问物理地址 可以直接对硬件进行操作 属于中级语言语言允许直接访问物理地址 可以直接对硬件进行操作 属于中级语言 能够像汇编语言一样对位 字节和地址进行操作能够像汇编语言一样对位 字节和地址进行操作 而这三者是而这三者是 C 语言最基本的工作单元 语言最基本的工作单元 因此既具有高级语言的功能 又具有低级语言的许多功能 可以用来编写系统软件 因此既具有高级语言的功能 又具有低级语言的许多功能 可以用来编写系统软件 C 语言程序生成代码质量高 程序执行效率高 语言程序生成代码质量高 程序执行效率高 C 语言适用范围大 可移植性好 语言适用范围大 可移植性好 2 版本 版本 Microsoft C Turbo C C C Visual C 等 等 C 是是 C 的基础 它们是兼容的 的基础 它们是兼容的 考点考点 03 程序设计的内容 程序设计的内容 1 基本步骤 基本步骤 确定数据结构 确定算法 编码确定数据结构 确定算法 编码 编程编程 在计算机上运行程序 整理并写出文档资料 在计算机上运行程序 整理并写出文档资料 2 C 语言的基本结构语言的基本结构 include 文件包含命令行文件包含命令行 main 主函数主函数 int x y sum 定义变量定义变量 x 46 y 100 变量初始化变量初始化 sum x y 求两数之和求两数之和 printf sum is d n sum 输出两数之和输出两数之和 1 程序一般程序一般用小写字母书写 严格区分大小写用小写字母书写 严格区分大小写 书写格式自由 一行可以写几个语句 一个 书写格式自由 一行可以写几个语句 一个 语句可以写在几行上 语句可以写在几行上 2 一个一个 C 语言源程序可以由一个或多个源文件组成 一个源程序不论由多少文件组成 都语言源程序可以由一个或多个源文件组成 一个源程序不论由多少文件组成 都 有且只能有一个有且只能有一个 main 称主函数 称主函数 注意 注意 C 程序是由函数程序是由函数 function 构成的 函数是构成的 函数是 C 程序的基本单位 程序的基本单位 函数分为 系统提供的库函数 用户定义的函数 函数分为 系统提供的库函数 用户定义的函数 3 C 程序的执行总是先从主函数开始 而不论主函数在整个程序中的位置 程序的执行总是先从主函数开始 而不论主函数在整个程序中的位置 4 函数体必须在函数体必须在 之间 函数前面部分为声明之间 函数前面部分为声明 定义定义 部分 后面为执行部分 部分 后面为执行部分 5 每个语句的结尾必须要有每个语句的结尾必须要有 作为终止符 作为终止符 6 可以在语句旁边用可以在语句旁边用 进行注释 但进行注释 但 与与 之间不能空格 且之间不能空格 且 与与 之间不能再插入之间不能再插入 注释内容可以是英文或中文 注释内容可以是英文或中文 7 C 语言本身没有输入输出语句 有关操作都是通过调用库函数语言本身没有输入输出语句 有关操作都是通过调用库函数 scanf 和和 printf 来完成 来完成 8 低一层次的语句或说明可比高一层次的缩进若干格书写 低一层次的语句或说明可比高一层次的缩进若干格书写 1 2 算法算法 考点考点 04 算法及其特征 算法及其特征 开开 始始 1 概念 任何解决问题的过程都是由一定的步骤组成的 所以把解决问题 概念 任何解决问题的过程都是由一定的步骤组成的 所以把解决问题 确定的方法和有限的步骤称作为算法 确定的方法和有限的步骤称作为算法 程序 数据结构程序 数据结构 算法算法 0 s 2 简单算法示例 简单算法示例 例例 1 2 求求 1 2 3 100 1 i S1 s 0 S2 i 1 S3 s s i S4 i i 1 S5 如果 如果 i 不大于不大于 100 则重复执行步骤 则重复执行步骤 3 否则算法结束 否则算法结束 is int i s 0 for i 1 ii s s i printf d n s 输出输出 s 运行结果为运行结果为 5050 结结 束束 3 特点 有穷性 确定性 可行性 特点 有穷性 确定性 可行性 有效性有效性 有零个或多个输入 有一个或多个输出 有零个或多个输入 有一个或多个输出 4 表示方法 表示方法 1 流程图 流程图 开始或终止框 开始或终止框 输入输出框 输入输出框 判断框 判断框 处理框 处理框 流程流程 线 线 连接点 连接点 注释框 注释框 2 伪代码伪代码 3 计算机语言 计算机语言 C 语言语言 考点考点 05 算法的类型 算法的类型 1 基本类型 基本类型 1 数值算法 常用于科学计算 如求方程的根等 数值算法 常用于科学计算 如求方程的根等 2 非数值算法 广泛用于各种数据的数据处理 如事务管理 图书检索 人事管理等 非数值算法 广泛用于各种数据的数据处理 如事务管理 图书检索 人事管理等 2 基本构成 基本构成 1 结构 顺序结构 选择结构 顺序结构 选择 分支分支 结构 循环结构 循环 重复重复 结构 结构 2 原操作 输入 输出 表达式求值 变量赋值等 原操作 输入 输出 表达式求值 变量赋值等 1 3 结构化程序设计和模块化结构结构化程序设计和模块化结构 考点考点 06 结构化程序 结构化程序 1 顺序结构 顺序结构 假假 顺序结构是由一组顺序执行的程序块所组成的 顺序结构是由一组顺序执行的程序块所组成的 2 选择结构 选择结构 选择结构是根据分支条件的取值来决定程序执行的走向 选择结构是根据分支条件的取值来决定程序执行的走向 3 循环结构 循环结构 循环结构是一种对某一处理块反复执行指定次数的结构 循环结构是一种对某一处理块反复执行指定次数的结构 考点考点 07 模块化结构 模块化结构 C 语言是一种结构化程序设计语言 它提供了三种基本结构的语句 提供了定义语言是一种结构化程序设计语言 它提供了三种基本结构的语句 提供了定义 函数函数 的功的功 能 在能 在 C 语言中没有子程序的概念 它提供的函数可以完成子程序的所以功能 语言中没有子程序的概念 它提供的函数可以完成子程序的所以功能 C 语言允许语言允许 对函数单独进行编译 从而可以实现模块化 对函数单独进行编译 从而可以实现模块化 C 语言的工作界面及上机操作语言的工作界面及上机操作 启启动动TC 2 0 双双击击快快捷捷方方式式或或启启动动MS DOS 键键入入cd tc tc 或或单单击击开开始始菜菜单单 运运行行 c tc tc exe 1 菜单栏 菜单栏 F10 Flie 文件文件 Load 加载文件加载文件 Pick 选择文件选择文件 New 新建文件新建文件 Save 保存文件保存文件 Write to 另存为另存为 Directory 选择指定目录下的文件选择指定目录下的文件 Chang dir 改变默认打开的文件目录改变默认打开的文件目录 OS shell 暂时回到暂时回到 DOS Quit 退出退出 Edit 编辑编辑 Alt E F6 从信息窗口回到编辑窗口 可清除错误白线提示 从信息窗口回到编辑窗口 可清除错误白线提示 Run 运行运行 Run 运行运行 Program reset 程序重启程序重启 Go to cursor 运行到光标处运行到光标处 Tace into 跟踪跟踪 Step over 单步执行单步执行 User screen 用户屏幕用户屏幕 Complie 编译编译 生成目标文件 可执行文件等 生成目标文件 可执行文件等 Project 项目项目 由多个文件生成一个可执行文件 由多个文件生成一个可执行文件 Options 选项选项 设置工作环境 设置工作环境 Debug 调试调试 Evalute 在调试过程中采用给某些变量赋新值来寻找错误 在调试过程中采用给某些变量赋新值来寻找错误 Break watch 断点及监视表达式断点及监视表达式 Add watch 增加监视的变量 观察语句执行过程中变量值增加监视的变量 观察语句执行过程中变量值 的变化 的变化 注意注意 TC 默认在默认在 C 盘根目录下 需要设置其他目录只需将其拷贝至该目录下 保留盘根目录下 需要设置其他目录只需将其拷贝至该目录下 保留 C 盘的盘的 TC 2 状态栏目 光标位置 文件名等 状态栏目 光标位置 文件名等 3 信息窗口 显示提示信息 信息窗口 显示提示信息 4 功能键提示信息 功能键提示信息 F1 帮助 帮助 F2 保存文件 保存文件 F3 打开文件 打开文件 F4 运行到光标处 运行到光标处 F5 隐藏信息窗口 隐藏信息窗口 F6 转换编辑与信息窗口 转换编辑与信息窗口 F7 单步跟踪程序执行 单步跟踪程序执行 F8 单步跟踪程序执行但不进入被调用的子函数中 单步跟踪程序执行但不进入被调用的子函数中 F9 生成目标文件但不运行 生成目标文件但不运行 条件 语句 真 假 F10 打开菜单栏 打开菜单栏 Alt F3 选择文件 选择文件 Alt F5 显示运行结果 显示运行结果 Ctrl F7 增加监视的表达式 增加监视的表达式 Ctrl F9 运行程序 运行程序 注意 注意 新建文件可在进入新建文件可在进入 TC 2 0 时直接时直接 Alt E 或按两次或按两次 Esc 新建文件不要在原有文件上 新建文件不要在原有文件上 修改 此时运行结果可能发生错误 修改 此时运行结果可能发生错误 除了运行显示图形的程序 其他均需要通过除了运行显示图形的程序 其他均需要通过 Alt F5 来显示运行结果 来显示运行结果 5 C 程序的生成过程 编辑程序的生成过程 编辑 编译编译 连接连接 运行 运行 C 编译程序编译程序 Link 程序程序 第第 2 章章 C 程序设计的初步认识程序设计的初步认识 2 1 标识符 常量和变量标识符 常量和变量 考点考点 01 标识符 标识符 1 概念 用于标识变量 函数 数组 文件等的一串字符称为标识符 概念 用于标识变量 函数 数组 文件等的一串字符称为标识符 2 规定规定 a 必须由英文字母 数字或下划线组成 且首字符只能是英文字母或下划线 必须由英文字母 数字或下划线组成 且首字符只能是英文字母或下划线 b C 程序中区别大 小写字母 程序中区别大 小写字母 c 禁止使用关键字作为标识符 禁止使用关键字作为标识符 3 关键字 又称保留字 是编译系统预先定义的一些具有特定含义的标识符 共关键字 又称保留字 是编译系统预先定义的一些具有特定含义的标识符 共 32 个 数个 数 据类型据类型 12 个 控制语句个 控制语句 12 个 存储类型个 存储类型 4 个 其它个 其它 4 个 个 预定义标识符虽然不属于关键字 预定义标识符虽然不属于关键字 但为了避免混乱 建议不使用它们作标识符 但为了避免混乱 建议不使用它们作标识符 注意 注意 C 程序允许程序允许 32 个字符的标识符 但建议不超过个字符的标识符 但建议不超过 8 个字符 个字符 二 基本数据类型二 基本数据类型 1 算法处理的对象是数据 而数据是以某种特定的形式出现 在 算法处理的对象是数据 而数据是以某种特定的形式出现 在 C 语言中 数据有常量 变语言中 数据有常量 变 量 一般它们都有一定的数据类型 量 一般它们都有一定的数据类型 整型 整型 int 字符型 字符型 char 实型 实型 float double 枚举型 枚举型 enum 数组类型数组类型 构造类型构造类型 结构体类型 结构体类型 struct 共用共用 联合联合 体类型 体类型 union 指针类型指针类型 空类型 空类型 void 2 常量与变量 常量与变量 a 常量 在程序运行过程中其值不能改变的量称为常量 符号常量是在程序中指定用一个符常量 在程序运行过程中其值不能改变的量称为常量 符号常量是在程序中指定用一个符 号代表一个常量 号代表一个常量 注意 注意 符号常量必须由符号常量必须由 define 宏定义命令来定义 符号常量修改方便 不易出错 宏定义命令来定义 符号常量修改方便 不易出错 习惯上符号常量名用大写 变量名用小写 习惯上符号常量名用大写 变量名用小写 b 变量 在程序运行过程中其值能改变的量称为变量 一个变量在内存中占据一定的存储单变量 在程序运行过程中其值能改变的量称为变量 一个变量在内存中占据一定的存储单 元 在存储单元中存放该变量的值 元 在存储单元中存放该变量的值 c 变量说明与变量赋值变量说明与变量赋值 变量初始化变量初始化 变量说明格式为 类型说明符变量说明格式为 类型说明符 变量表列变量表列 变量赋值格式为 变量名 表达式变量赋值格式为 变量名 表达式 源程序源程序 C 编译编译 目标程序目标程序 OBJ 连接连接 可执行程序可执行程序 EXE 基本类型基本类型 数据类型数据类型 注意 注意 表达式可以是 常量 变量 算术表达式 赋值表达式 表达式可以是 常量 变量 算术表达式 赋值表达式 允许在一个类型标识符后说明多个相同类型的变量 各变量名之间用逗号间隔 但不允许在一个类型标识符后说明多个相同类型的变量 各变量名之间用逗号间隔 但不 能使用能使用 变量 变量 表达式 如变量 变量 表达式 如 int x y 7 只能是 只能是 int x 7 y 7 或 或 int x y x y 7 变量说明必须放在变量使用之前变量说明必须放在变量使用之前 一般在函数体的开头部分 变量必须先定义后使用 一般在函数体的开头部分 变量必须先定义后使用 左侧必须是变量 如左侧必须是变量 如 x y 7 9 是错误的 是错误的 3 整型数据整型数据 1 整型常量整型常量 按进制分类 按进制分类 十进制整数 非十进制整数 非 0 开头开头 除除 0 如 如 123 123 8 0 5 30000 等 等 八进制整数 八进制整数 0 开头 数字串只能含有开头 数字串只能含有 0 7 如 如 056 0111 等 等 056 5 81 6 80 46 十六进制整数 十六进制整数 0 x 或或 0X 开头 数字串只能含有开头 数字串只能含有 0 9 及及 a b c d e f A B C D E F 如 如 0 x123 0X3A 0 x2e 等 等 0X3A 3 161 10 160 58 2 整型变量整型变量 类型说明符类型说明符 所占位数所占位数 存储字节存储字节 数的范围数的范围 基本型基本型int 16 2 32768 215 32767 215 1 短整型短整型 short int 16 2 32768 215 32767 215 1 长整型长整型 long int 32 4 231 231 1 无符号型无符号型 unsigned int 16 2 0 65535 216 1 unsigned short 16 2 0 65535 216 1 unsigned long 32 4 0 232 1 注意 所占位数注意 所占位数 存储字节存储字节 是由机器是由机器 CPU 的字长决定的 的字长决定的 16 位机字长为位机字长为 8 3 存放方式存放方式 整型数据在内存中以二进制方式存放 最高位为符号位 整型数据在内存中以二进制方式存放 最高位为符号位 0 为正 为正 1 为负 并以补码表示 为负 并以补码表示 对于正数 其补码与原码相同 对于正数 其补码与原码相同 对于负数 其补码是将该数的绝对值的二进制形式按位取反再加对于负数 其补码是将该数的绝对值的二进制形式按位取反再加 1 如 如 10 的补码 的补码 10 的原码的原码 0000 0000 0000 1010 取反取反 1111 1111 1111 0101 加加 1 1111 1111 1111 0110 10 的补码的补码 二进制转换成十进制的负整数 取反转换成十进制整数取负值再减二进制转换成十进制的负整数 取反转换成十进制整数取负值再减 1 如如 1111 1111 1111 1110 取反 取反 0000 0000 0000 0001 1 1 减减 1 十进制负整数十进制负整数 2 十进制转换成八进制 十进制每十进制转换成八进制 十进制每 3 位对应于八进制位对应于八进制 1 位 如位 如 4 即即 1 111 111 111 111 100 1 7 7 7 7 4 负整数负整数 int 加加 65536 再转换成八进制即可 再转换成八进制即可 十进制转换成十六进制 十进制每十进制转换成十六进制 十进制每 4 位对应于十六进制位对应于十六进制 1 位 如位 如 4 0 xfffc 即即 1111 1111 1111 1100 f f f c 负整数负整数 int 加加 65536 再转换成十六进制即可 再转换成十六进制即可 4 数据溢出数据溢出 当向变量赋的值超出该整型变量的范围即溢出 溢出后会给出错误的结果 当向变量赋的值超出该整型变量的范围即溢出 溢出后会给出错误的结果 例例 2 1 main int a b a 32767 a 32768 b a 1 b a 1 printf d d n a b 运行结果为 运行结果为 32767 32768 32768 32767 注意 注意 如果需要输出正确的结果 可以使用长整型来接收超过基本如果需要输出正确的结果 可以使用长整型来接收超过基本 短短 整型变量范围的数值 整型变量范围的数值 当基本当基本 短短 整型变量数值 整型变量数值 32767 则该数值减 则该数值减 65536 直到在直到在 32768 32767 为止 当为止 当 基本基本 短短 整型变量数值 整型变量数值 32767 则该数值加 则该数值加 65536 直到在直到在 32768 32767 为止 为止 4 实型数据实型数据 浮点数浮点数 1 实型常量实型常量 十进制小数形式 由数字加小数点组成十进制小数形式 由数字加小数点组成 必须有小数点必须有小数点 如如 100 5 123 123 0 0 指数形式 如指数形式 如 123e3 1 23E5 字母 字母 e E 之前必须有数字 后面必须为整数 之前必须有数字 后面必须为整数 2 实型变量实型变量 类型说明符类型说明符 所占位数所占位数 存储字节存储字节 数的范围数的范围 单精度单精度 float 32 4 10 37 1038 双精度双精度 double 64 8 10 307 10308 长双精度长双精度 long double 128 16 10 4931 注意 不论单精度 双精度均输出小数点后注意 不论单精度 双精度均输出小数点后 6 位 不足补位 不足补 0 指数形式为 指数形式为 X XXXXXe E XXX 3 舍入误差舍入误差 由于实型变量是用有限的存储单元存储的 因此能提供的有效数字总是有限的 在有效数位以由于实型变量是用有限的存储单元存储的 因此能提供的有效数字总是有限的 在有效数位以 外的数字将被舍去外的数字将被舍去 由此可能产生误差 单精度有效位是由此可能产生误差 单精度有效位是 7 位位 双精度有效位是双精度有效位是 16 位 位 例例 2 2 main float a 111 double a 111 1111 printf f n a printf e n a 运行结果为 运行结果为 1 11111e 05 111 1 11111e 13 4 数据溢出数据溢出 当向变量赋的值超出该实型变量的范围即溢出 溢出后会给出错误的提示 当向变量赋的值超出该实型变量的范围即溢出 溢出后会给出错误的提示 例例 2 3 main float a 1 E40 printf E n a 运行结果为 运行结果为 INF 5 字符型数据字符型数据 1 字符字符 串串 常量 常量 字符 用字符 用 括起来的一个字符 如括起来的一个字符 如 A a 等 等 注意 字符常量只能且必须包含一个字符 空格也可以 但必须写成注意 字符常量只能且必须包含一个字符 空格也可以 但必须写成 例例 2 4 main char c1 c2 c3 c1 a c2 97 c3 c1 32 printf c c c n d d d c1 c2 c3 c1 c2 c3 运行结果为 运行结果为 a a A 97 97 65 字符串 用字符串 用 括起来的一串字符 如括起来的一串字符 如 A Very Good 空串空串 等 等 注意 字符串常量结尾系统自动加一个结束标志注意 字符串常量结尾系统自动加一个结束标志 0 字符串常量所占字节数为字符数加字符串常量所占字节数为字符数加 1 2 转义字符常量 又称反斜线字符 总是以一个转义字符常量 又称反斜线字符 总是以一个 跟一个特定的字符来代表某一特定的跟一个特定的字符来代表某一特定的 ASCII 字符 这些字符也必须括在字符 这些字符也必须括在 内 如内 如 n 代表换行 代表换行 101 x41 均代表均代表 A 注意 注意 每个转义字符只能看作一个字符 每个转义字符只能看作一个字符 转义字符转义字符 ddd 表示表示 1 3 位八进制数 位八进制数 xhh 表示表示 1 2 位十六进制数 位十六进制数 例例 已知字母 已知字母 A 的的 ASCII 码为十进制数码为十进制数 65 且且 c 为字符型 则执行语句为字符型 则执行语句 c A 6 3 后后 c 中的中的 值为值为 A D B 67 C 不确定的值 不确定的值 D C 例例 2 5 main printf c t t de ra tY b n 表示空格表示空格 printf 376 运行结果为 运行结果为 a de 说明 在第一行输出说明 在第一行输出 c t 横向跳格至第横向跳格至第 9 格 输出格 输出 de r 使输出位置移至本行首 输使输出位置移至本行首 输 出出 a t 横向跳格至第横向跳格至第 9 列列 c 清除清除 输出 输出 Y b 退一格退一格 Y 清除清除 输出 输出 n 换行 输出换行 输出 3 字符变量 字符变量 类型说明符类型说明符 所占字节所占字节 数的范围数的范围 char 1 128 127 注意 字符变量在内存中占注意 字符变量在内存中占 1 个字节 存放的是字符的个字节 存放的是字符的 ASCII 代码值 可以作为整型来处理 代码值 可以作为整型来处理 如如 A 的值为的值为 65 a 的值为的值为 97 空格字符的值为 空格字符的值为 32 所以可以进行算术运算 所以可以进行算术运算 三 运算符与表达式三 运算符与表达式 表达式 由常量 变量 函数等运算对象和运算符组成的式子 表达式 由常量 变量 函数等运算对象和运算符组成的式子 运算符 运算符有优先级 高的先执行 同级的由结合规则决定 运算符 运算符有优先级 高的先执行 同级的由结合规则决定 从左到右结合 运算对象与左边运算符相结合 如从左到右结合 运算对象与左边运算符相结合 如 5 x 10 从右到左结合 运算对象与右边运算符相结合 如从右到左结合 运算对象与右边运算符相结合 如 x y 7 1 算术运算符与算术表达式算术运算符与算术表达式 从左到右 从左到右 1 单目单目 表示符号表示符号 正号 正号 负号 负号 2 双目 双目 模模 例 例 若有代数式若有代数式 则不正确的 则不正确的 C 语言表达式为语言表达式为 bc ae3 A a b c e 3 B 3 a e b c C 3 a e b c D a e c b 3 注意 注意 整型整型 整型时 小数点后的数一律舍去 如整型时 小数点后的数一律舍去 如 13 5 为为 2 5 13 为为 0 7 3 3 的结果为的结果为 6 模运算是整除取余数 运算符两侧必须都是整型 计算结果的符号与第一个数的符模运算是整除取余数 运算符两侧必须都是整型 计算结果的符号与第一个数的符 号相同 如号相同 如 5 3 为为 2 5 3 为为 2 5 3 为为 2 2 自增自减运算符自增自减运算符 单目单目 优先级高于算术 右结合 优先级高于算术 右结合 常用于循环结构 常用于循环结构 1 自增 自增 i 先加先加 1 再使用 相当于先执行再使用 相当于先执行 i i 1 再执行运算 再执行运算 i 先使用再加先使用再加 1 相当 相当 于先执行运算再执行于先执行运算再执行 i i 1 2 自减 自减 i 先减先减 1 再使用 相当于先执行再使用 相当于先执行 i i 1 再执行运算 再执行运算 i 先使用再减先使用再减 1 相 相 当于先执行运算再执行当于先执行运算再执行 i i 1 注意 自增自减运算符只能用于变量注意 自增自减运算符只能用于变量 整型 整型 实型 实型 字符型 指针型字符型 指针型 不能用于常量或表达式 不能用于常量或表达式 i 等价于 等价于 i 例例 2 6 main int i 3 k k i i i k i i i k i i i printf i d k d n i k 运行结果为 运行结果为 i 6 k 9 i 6 k 18 i 6 k 15 3 赋值运算符与赋值表达式赋值运算符与赋值表达式 优先级低于算术 右结合 优先级低于算术 右结合 1 赋值运算符 赋值运算符 是将是将 右侧的数值赋值给左侧的变量 右侧的数值赋值给左侧的变量 2 赋值表达式 变量名 表达式赋值表达式 变量名 表达式 注意 注意 赋值运算符两侧数据类型不一致 则运算结果以赋值运算符两侧数据类型不一致 则运算结果以 左侧的数据类型为准 左侧的数据类型为准 赋值表达式后面加上赋值表达式后面加上 便构成了赋值语句 便构成了赋值语句 3 复合赋值运算符复合赋值运算符 双目双目 加赋值 加赋值 减赋值 减赋值 乘赋值 乘赋值 除赋值 除赋值 模赋值 模赋值 a a a a printf a d n a 运行结果为 运行结果为 a 60 4 关系运算符与关系表达式关系运算符与关系表达式 优先级低于算术 左结合 高于赋值 优先级低于算术 左结合 高于赋值 用于选择或循环结构 用于选择或循环结构 1 关系运算符 关系运算符 小于 小于 大于 大于 大于或等于 大于或等于 等于 等于 不等于 不等于 2 关系表达式 关系表达式 格式 表达式格式 表达式 关系运算符关系运算符 表达式 表达式 结果 逻辑值结果 逻辑值 1 关系式成立关系式成立 或或 0 关系式不成立关系式不成立 例例 若希望当若希望当 A 为奇数时 表达式值为为奇数时 表达式值为 真真 偶数时为 偶数时为 假假 则不满足要求的表达式是 则不满足要求的表达式是 A A 2 1 B A 2 0 C A 2 D A 2 5 逻辑运算符与逻辑表达式逻辑运算符与逻辑表达式 优先级低于关系 左结合 优先级低于关系 左结合 除外 除外 用于选择或循环结构 用于选择或循环结构 1 逻辑运算符 逻辑运算符 非非 单目单目 printf a d b d c d d d m d n d x d n a b c d m n x 运行结果为 运行结果为 a 1 b 2 c 3 d 4 m 0 n 2 x 0 注意 注意 取相反值 非取相反值 非 0 表达式值为表达式值为 0 0 值为值为 1 语句语句 d d d 中的 是间隔中的 是间隔 符 符 例 例 设设 x y 均为均为 int 类型 则表达式类型 则表达式 y 6 y 1 x y x 1 的值是 的值是 A 8 B 6 C 7 D 不确定 不确定 7 条件运算符与条件表达式条件运算符与条件表达式 三目三目 优先级低于逻辑 左结合 高于赋值 优先级低于逻辑 左结合 高于赋值 用于选择结构 用于选择结构 1 格式 表达式格式 表达式 1 表达式表达式 2 表达式表达式 3 2 结果 求解表达式结果 求解表达式 1 非 非 0 为真为真 求解表达式 求解表达式 2 其值即为整个表达式的值 其值即为整个表达式的值 0 为假为假 求 求 解表达式解表达式 3 其值即为整个表达式的值 如 其值即为整个表达式的值 如 a b a c d c d 等价于等价于 a b a c d c d 例 例 若给定条件表达式若给定条件表达式 M a a 则其中表达式 则其中表达式 M A 和和 M 0 等价等价 B 和和 M 1 等价等价 C 和和 M 0 等价等价 D 和和 M 1 等价等价 8 长度运算符长度运算符 优先级高于算术 右结合 优先级高于算术 右结合 1 格式 格式 sizeof 类型说明符或变量类型说明符或变量 2 结果 测试数据类型所占用的字节数 如结果 测试数据类型所占用的字节数 如 sizeof int 值为值为 2 9 位运算符位运算符 双目双目 运算对象整型或字符型运算对象整型或字符型 1 按位取反按位取反 单目单目 将运算对象的内容按位取反 如 将运算对象的内容按位取反 如 32767 32768 即 即 0111 1111 1111 1111 1000 0000 0000 0000 2 负值高负值高 16 位补位补 1 数值不变 数值不变 如如 10 10 1111 1111 1111 0110 1111 1111 1111 1111 1111 1111 1111 0110 b 将将 long 转换为转换为 int 时要进行数位截取 将时要进行数位截取 将 long int 的低的低 16 位给位给 int 数据可能溢出 数据可能溢出 c 将将 unsigned 转换为转换为 long 时要进行数位扩展 高时要进行数位扩展 高 16 位补位补 0 数值不变 数值不变 d 将将 unsigned 转换为相同位数的整型变量时 只需原封不动传递 转换为相同位数的整型变量时 只需原封不动传递 数据可能溢出 数据可能溢出 e 将非将非 unsigned 转换为相同位数的转换为相同位数的 unsigned 时 只需原封不动传递 时 只需原封不动传递 数据可能溢出 数据可能溢出 注意 注意 超过超过 4 位的位的 16 进制整型变量转换为无符号进制整型变量转换为无符号 16 进制变量时只需保留后进制变量时只需保留后 4 位 位 当负值基本当负值基本 短短 整型变量转换为无符号整型变量时加整型变量转换为无符号整型变量时加 65536 直到直到 0 为止 为止 例例 2 9 main int a b c d long x y unsigned u a 53 b 3 c 65533 d 0 xABCDE 要减要减 11 65536 1010 1011 1100 1101 1110 u 2 x a printf a d a u n a a d 以带符号十进制形式输出整数以带符号十进制形式输出整数 printf b d b u n b b u 以无符号十进制形式输出整数以无符号十进制形式输出整数 printf c d c u n c c printf d d d x n d d x 以无符号十六进制形式输出整数以无符号十六进制形式输出整数 printf u d u u n u u printf x ld x lx n x x ld 以带符号十进制形式输出长整型以带符号十进制形式输出长整型 运行结果为 运行结果为 a 53 a 53 b 3 b 65533 c 3 c 65533 d 17186 d bcde u 2 u 65534 x 53 x 35 2 显式转换 显式转换 类型说明符类型说明符 表达式 如表达式 如 int 2 50000 2 第第 3 章章顺序结构程序设计顺序结构程序设计 教学目的 教学目的 1 掌握各种输入输出语句的要点和使用方法 掌握各种输入输出语句的要点和使用方法 2 掌握掌握 printf 和和 scanf 函数中各种格式符号的作用和使用方法 函数中各种格式符号的作用和使用方法 3 能够灵活地运用各种顺序语句进行综合程序设计 能够灵活地运用各种顺序语句进行综合程序设计 一 一 C 语句分类语句分类 1 控制语句 条件语句控制语句 条件语句 if else 循环语句 循环语句 for while do while 结束本次循环语 结束本次循环语 句句 continue 中止执行 中止执行 switch 或循环语句或循环语句 break 多分支选择语句 多分支选择语句 switch 转向语句 转向语句 goto 从 从 函数返回语句函数返回语句 return 如 如 if x y z x else z y 2 函数调用语句 由一次函数调用加分号构成 如函数调用语句 由一次函数调用加分号构成 如 printf This is a C program 3 表达式语句 由一个表达式加分号构成 最典型的赋值语句 如表达式语句 由一个表达式加分号构成 最典型的赋值语句 如 a 3 4 空语句 只有空语句 只有 构成的语句 它什么也不做 有时用来作被转向点 构成的语句 它什么也不做 有时用来作被转向点 5 复合语句 用复合语句 用 把一些语句括起来成为复合语句 又称分程序 如把一些语句括起来成为复合语句 又称分程序 如 z x y t z 10 二 基本输入输出语句二 基本输入输出语句 C 本身没有输入输出语句本身没有输入输出语句 有关操作是通过调用库函数有关操作是通过调用库函数 scanf getchar 和和 printf putchar 来完来完 成 在程序中调用这些函数时成 在程序中调用这些函数时 要用编译预处理命令 要用编译预处理命令 include scanf printf 可省可省 略 略 1 字符数据的输入输出字符数据的输入输出 1 putchar 函数 用于向终端输出一个字符 格式为函数 用于向终端输出一个字符 格式为 putchar c c 可以是字符型变量或整型可以是字符型变量或整型 变量 变量 如输出如输出 China putchar C putchar h putchar i putchar n putchar a 2 getchar 函数 用于从输入设备输入一个字符 格式为函数 用于从输入设备输入一个字符 格式为 getchar 如输入一个字符并显示 如输入一个字符并显示 int ch ch getchar putchar ch 2 格式输入输出格式输入输出 1 printf 函数 用于向终端输出若干个任意类型的数据 格式为函数 用于向终端输出若干个任意类型的数据 格式为 printf 格式控制格式控制 输出表 输出表 列列 格式控制包括格式说明 普通字符 格式控制包括格式说明 普通字符 指需要原样输出的字符指需要原样输出的字符 格式说明由格式说明由 和格式字符组成 如和格式字符组成 如 d f 等 若等 若 d 则直接输出则直接输出 d 格式字符无效 格式字符无效 在格式说明中 在在格式说明中 在 和格式字符间可以插入修饰符 和格式字符间可以插入修饰符 a l 用于长整型数 可加在格式符 用于长整型数 可加在格式符 d o x X u 前面 前面 h 用于短整型或无符号短整型数 用于短整型或无符号短整型数 b m 正整数正整数 控制数据最小宽度 控制数据最小宽度 c 正整数正整数 m 正整数正整数 n 对实数 表示输出 对实数 表示输出 n 位小数 对字符串 表示截取的字符个数 位小数 对字符串 表示截取的字符个数 d 输出的数字或字符左对齐 输出的数字或字符左对齐 e 使输出的数字总是带有 使输出的数字总是带有 号或 号 号或 号 f 0 指定宽度的同时 在数据前面的多余空格处填以数字 指定宽度的同时 在数据前面的多余空格处填以数字 0 g 在 在 与与 o x X 之间 输出前导符之间 输出前导符 0 0 x X 注意 注意 格式说明与输出项从左到右在类型上必须一一对应匹配 如不匹配将导致数据不能格式说明与输出项从左到右在类型上必须一一对应匹配 如不匹配将导致数据不能 正确输出 正确输出 格式说明与输出项的个数应该相同 如果格式说明个数少于输出项的个数 多余的格式说明与输出项的个数应该相同 如果格式说明个数少于输出项的个数 多余的 输出项不予输出 反之 则多余的格式将输出不定值输出项不予输出 反之 则多余的格式将输出不定值 或或 0 值值 除了除了 X E G 外 其他格式字符必须用小写字母 如外 其他格式字符必须用小写字母 如 d 不能写成不能写成 D 可在格式控制字符串内包含转义字符 如可在格式控制字符串内包含转义字符 如 n t 等 等 例例 3 1 main int x 0177 float y 123 456 char z a printf x d x 6d x 06d x 06d x 06d x o x x n x x x x x x x printf y f y 9 2f y 9 2f y 014 5f y g n y y y y y printf z s z 3s z 7 2s z 5 3s n string string string string 运行结果为 运行结果为 x 127 x 127 x 127 x x 06d x 0177 x 0 x7f y 123 y 123 46 y 123 46 y 45600 y 123 456 z string z string z st z str 2 scanf 函数 用于从输入设备获取数据 格式为函数 用于从输入设备获取数据 格式为 scanf 格式控制格式控制 地址表列 地址表列 输入整型 实型变量 数据之间用间隔符输入整型 实型变量 数据之间用间隔符 空格 空格 Tab 键 回车键 回车 隔开 间隔符数量不限 隔开 间隔符数量不限 如如 scanf d d d 输入形式为 输入形式为 102030 指定输入数据所占宽度指定输入数据所占宽度 数据之间不用间隔符数据之间不用间隔符 系统自动按宽度截取数据 系统自动按宽度截取数据 如如 scanf 4d f 输入形式为 输入形式为 9 3 得到得到 a 1234 f 5678 93 跳过输入数据 在跳过输入数据 在 和格式字符之间加和格式字符之间加 号 号 如如 scanf d d d d 输输 入形式为 入形式为 10203040 得到得到 a 10 b 30 c 40 输入字符型或混合变量 字符之间不用间隔符 字符与数据之间不用间隔符 输入字符型或混合变量 字符之间不用间隔符 字符与数据之间不用间隔符 如如 scanf d d c 3d 输入形式为 输入形式为 10 20 30 或或 10 20 30 输入数据的结束 遇空格 输入数据的结束 遇空格 Tab 键 回车 按指定的宽度结束 遇非法输入键 回车 按指定的宽度结束 遇非法输入 不正确的数不正确的数 据类型等据类型等 注意 注意 格式控制后面应当是变量地址格式控制后面应当是变量地址 c1 32 c2 c1 getchar c2 c1 32 输出输出 c2 printf c c2 结束结束 运行结果为 运行结果为 A a 例例 3 3 求求 ax2 bx c 0 方程的根 方程的根 a b c 由键盘输入 设由键盘输入 设 b2 4ac 0 p q x1 p q x2 p q a b 2 a acb 2 4 2 include main float a b c disc x1 x2 p q scanf a f b f c f disc b b 4 a c p b 2 a q sqrt disc 2 a x1 p q x2 p q printf x1 5 2f nx2 5 2f n x1 x2 运行结果为 运行结果为 a 1 b 3 c 2 x1 1 00 x2 2 00 第第 4 章章选择结构程序设计选择结构程序设计 教学目的 教学目的 1 掌握关系运算符 逻辑运算符 条件运算符在选择结构中的使用方法及技巧 掌握关系运算符 逻辑运算符 条件运算符在选择结构中的使用方法及技巧 2 掌握掌握 if 语句的使用方法及构成的各种选择结构的程序设计 语句的使用方法及构成的各种选择结构的程序设计 3 掌握掌握 switch 语句的使用方法及语句的使用方法及 break 在在 switch 语句中的使用方法 语句中的使用方法 一 关系 逻辑 条件运算与选择结构一 关系 逻辑 条件运算与选择结构 1 选择结构是判断表达式的真假来选择要执行的语句 选择结构是判断表达式的真假来选择要执行的语句 2 关系 逻辑表达式也是判断表达式的真假 所以选择结构的判断表达式常用关系 逻辑表关系 逻辑表达式也是判断表达式的真假 所以选择结构的判断表达式常用关系 逻辑表 达式 达式 例例 判断年份是否为闰年条件是 判断年份是否为闰年条件是 被被 4 整除但不能被整除但不能被 100 整除整除 能被能被 400 整除 可以表示为整除 可以表示为 year 4 0 else x b 或或 x a b a b 二 二 if 语句及用语句及用 if 语句构成的选择结构语句构成的选择结构 1 if 语句的语句的 3 种形式种形式 1 单分支单分支 if 语句 不含语句 不含 else 子句 子句 形式 形式 if 表达式 表达式 语句语句 if 子句子句 如 如 if a b t a a b b t 说明 说明 if 是是 C 语言的关键字 如果语

温馨提示

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

评论

0/150

提交评论