




已阅读5页,还剩89页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
程序设计技术程序设计技术程序设计技术程序设计技术 主讲教师 主讲教师 主讲教师 主讲教师 余余余余 嘉嘉嘉嘉 工作单位 工作单位 工作单位 工作单位 重庆大学自动化学院重庆大学自动化学院重庆大学自动化学院重庆大学自动化学院 Email yuga Email yuga 学习目的学习目的学习目的学习目的 1 1 1 1 一是学会用计算机处理实际问题抽象为数学模型 并设一是学会用计算机处理实际问题抽象为数学模型 并设一是学会用计算机处理实际问题抽象为数学模型 并设一是学会用计算机处理实际问题抽象为数学模型 并设 计出解决这个问题所需要的方法和步骤即计出解决这个问题所需要的方法和步骤即计出解决这个问题所需要的方法和步骤即计出解决这个问题所需要的方法和步骤即算法算法算法算法 2 2 2 2 基本的程序设计能力基本的程序设计能力基本的程序设计能力基本的程序设计能力 学习安排学习安排学习安排学习安排 共共共共56565656学时学时学时学时 理论理论理论理论40404040学时学时学时学时 实验实验实验实验16 32 2 16 32 2 16 32 2 16 32 2 学时学时学时学时 共计共计共计共计3 53 53 53 5个学分个学分个学分个学分 评分制度评分制度评分制度评分制度 笔试占笔试占笔试占笔试占60606060 实验占实验占实验占实验占25 25 25 25 5 5 5 5个报告个报告个报告个报告 每个每个每个每个5 5 5 5分分分分 平时成绩平时成绩平时成绩平时成绩5 5 5 5 程序设计程序设计程序设计程序设计技术技术技术技术 C C C C语言数据描述和语言数据描述和语言数据描述和语言数据描述和C C C C程序设计初步程序设计初步程序设计初步程序设计初步 结构化程序设计基础和结构化程序设计基础和结构化程序设计基础和结构化程序设计基础和C C C C语言的控制结构语言的控制结构语言的控制结构语言的控制结构 数组及其应用数组及其应用数组及其应用数组及其应用 函数与函数与函数与函数与C C C C程序结构程序结构程序结构程序结构 指针与函数指针与函数指针与函数指针与函数 指针与数组指针与数组指针与数组指针与数组 字符串及其应用字符串及其应用字符串及其应用字符串及其应用 结构体类型和联合体类型结构体类型和联合体类型结构体类型和联合体类型结构体类型和联合体类型 C C C C语言的文件处理及其应用语言的文件处理及其应用语言的文件处理及其应用语言的文件处理及其应用 位运算与枚举类型位运算与枚举类型位运算与枚举类型位运算与枚举类型 第一章第一章第一章第一章 C C C C语言数据描述和语言数据描述和语言数据描述和语言数据描述和C C C C程序设计初步程序设计初步程序设计初步程序设计初步 C C C C程序的基本结构程序的基本结构程序的基本结构程序的基本结构 C C C C语言的基本数据类型语言的基本数据类型语言的基本数据类型语言的基本数据类型 基本运算符和表达式基本运算符和表达式基本运算符和表达式基本运算符和表达式 不同类型数据混合运算及数据转换不同类型数据混合运算及数据转换不同类型数据混合运算及数据转换不同类型数据混合运算及数据转换 C C C C程序设计初步程序设计初步程序设计初步程序设计初步 1 11 1程序设计语言和算法描述程序设计语言和算法描述程序设计语言和算法描述程序设计语言和算法描述 程序设计语言程序设计语言程序设计语言程序设计语言 将人解决问题的思路 方法 和手段通过某种计算机能够 理解的形式告诉计算机 使得计算机能够根据人的指令去 一步一步的工作进而完成某种特定的任务 这种人和计算 机之间交流的语言就称为 将人解决问题的思路 方法 和手段通过某种计算机能够 理解的形式告诉计算机 使得计算机能够根据人的指令去 一步一步的工作进而完成某种特定的任务 这种人和计算 机之间交流的语言就称为计算机程序设计语言计算机程序设计语言 程序设计语言的几个阶段程序设计语言的几个阶段程序设计语言的几个阶段程序设计语言的几个阶段 机器语言机器语言F4 1111 0100 汇编语言汇编语言HLT 高级语言高级语言exit 面向过程语言面向过程语言 面向对象语言面向对象语言 1 1计算机程序设计语言发展史计算机程序设计语言发展史 计算机程序设计语言发展史计算机程序设计语言发展史 C C Java 1 1C1 1C1 1C1 1C语言的发展简史与特点语言的发展简史与特点语言的发展简史与特点语言的发展简史与特点 C C C C语言的特点语言的特点语言的特点语言的特点 C语言简洁 紧凑 使用方便 灵活 C语言简洁 紧凑 使用方便 灵活 C语言是位于汇编语言和高级语言之间的一种程序设计语 言 C语言是位于汇编语言和高级语言之间的一种程序设计语 言 C语言允许直接访问地址 能进行位运算 因此可直 接对计算机硬件进行操作 C语言允许直接访问地址 能进行位运算 因此可直 接对计算机硬件进行操作 C语言是一种C语言是一种结构化程序设计语言结构化程序设计语言 C语言数据类型丰富 C语言数据类型丰富 C语言运算符丰富 C语言运算符丰富 C语言本身没有提供用于程序中数据输入输出的语句 C语言本身没有提供用于程序中数据输入输出的语句 C程序开发环境中包含了语言核心 预处理器和标准函数 库三个部分 C程序开发环境中包含了语言核心 预处理器和标准函数 库三个部分 C语言程序可移植性好 C语言程序可移植性好 include C C程序的基本结构程序的基本结构程序的基本结构程序的基本结构 一个函数的一个函数的一个函数的一个函数的C C程序结构程序结构程序结构程序结构 void main float ave x y z scanf f f f ave x y z 3 printf f ave 对象声明部分 函数执行部分 对象声明部分 函数执行部分 函数头部描述函数的3个要 素 它们是 1 函数名字 2 函数的返回值数据类型 3 函数参数 如果需要 函数头部描述函数的3个要 素 它们是 1 函数名字 2 函数的返回值数据类型 3 函数参数 如果需要 函数体描述函数的具体功能 实现方法 函数体描述函数的具体功能 实现方法 函数头 函数体 预处理语句 函数头 函数体 预处理语句 1 1 1 C1 1 1 C1 1 1 C1 1 1 C源程序的组成成分源程序的组成成分源程序的组成成分源程序的组成成分 多个函数构成的多个函数构成的多个函数构成的多个函数构成的C C程序结构程序结构程序结构程序结构 include define SIZE 80 void main void myputc char ch char str SIZE int j gets str 从键盘上接收一个输入字符串从键盘上接收一个输入字符串 for j 0 str j 0 j myputc str j void myputc char ch char cc cc ch a putchar cc 预处理部分预处理部分 主函数主函数 被调函数被调函数 函数声 明语句 函数声 明语句 函数调 用语句 函数调 用语句 注释语句注释语句 例1 1例1 1 1 1 1 C1 1 1 C1 1 1 C1 1 1 C源程序的组成成分源程序的组成成分源程序的组成成分源程序的组成成分 说明 说明 说明 说明 1 C程序是函数的基本结构 由预处理命令和至少一个函数组 成 但 1 C程序是函数的基本结构 由预处理命令和至少一个函数组 成 但必须且只有一个主函数 函数名必须是main必须且只有一个主函数 函数名必须是main 2 函数的基本结构 2 函数的基本结构 函数由函数头和函数体组成函数由函数头和函数体组成 3 注释语句 3 注释语句 以 开头到 结束的部分叫注释行 以 开头到 结束的部分叫注释行 即注解 不 是语句 可以在程序中的任何位置 结尾不要分号 即注解 不 是语句 可以在程序中的任何位置 结尾不要分号 不引起计算机任何动作 也可用 不引起计算机任何动作 也可用 字符序列 字符序列 4 预处理命令 其语句特征是用4 预处理命令 其语句特征是用 字符开始 5 定义和声明 C语言是强制定义 声明 的程序设计语言 任何 数据 函数在应用前一定要预先定义或声明 6 C语句的结束符号 函数体由语句组成 字符开始 5 定义和声明 C语言是强制定义 声明 的程序设计语言 任何 数据 函数在应用前一定要预先定义或声明 6 C语句的结束符号 函数体由语句组成 每一个分号每一个分号 就 代表一条语句的结束 就 代表一条语句的结束 用C言符号书写的程序称为源程序 高级语言源程序必 须被转为机器语言程序才能被执行 用C言符号书写的程序称为源程序 高级语言源程序必 须被转为机器语言程序才能被执行 1 1 1 C1 1 1 C1 1 1 C1 1 1 C源程序的组成成分源程序的组成成分源程序的组成成分源程序的组成成分 源文件源文件 目标文件目标文件 执行文件执行文件 其它目标 文件 其它目标 文件 库库 连接 程序 连接 程序 编译 程序 编译 程序 图1 1 C程序的处理过程图1 1 C程序的处理过程 1 1 2 C1 1 2 C1 1 2 C1 1 2 C语言的基本元素语言的基本元素语言的基本元素语言的基本元素 C C语言基本元素语言基本元素语言基本元素语言基本元素 1 C的字符集1 C的字符集 小写英文字母 a b c 小写英文字母 a b c z z 大写英文字母 A B C 大写英文字母 A B C Z Z 数字 0 1 2 3 数字 0 1 2 3 9 9 特殊字符 特殊字符 不可印出字符 空格 换行 制表符等不可印出字符 空格 换行 制表符等 1 1 2 C1 1 2 C1 1 2 C1 1 2 C语言的基本元素语言的基本元素语言的基本元素语言的基本元素 C C语言的基本元素语言的基本元素语言的基本元素语言的基本元素 2 C的标识符 2 C的标识符 标识符 标识符是给程序中的变量 常量 函数 数据类型等取的 标识符 标识符是给程序中的变量 常量 函数 数据类型等取的名字名字 标识符的命名规则是 每个标识符由字母 数字或 下划线组成 标识符的命名规则是 每个标识符由字母 数字或 下划线组成 其中第一个字符必须是字母或下划线 且 其中第一个字符必须是字母或下划线 且区分大小写区分大小写 可识别长度由环境确定 可识别长度由环境确定 标识符分为2大类 标识符分为2大类 系统保留字和用户标识符系统保留字和用户标识符 1 1 2 C1 1 2 C1 1 2 C1 1 2 C语言的基本元素语言的基本元素语言的基本元素语言的基本元素 系统保留字 系统保留字 P6 操作系统或编译系统或其他系统已经用了的 名字 共计37个 操作系统或编译系统或其他系统已经用了的 名字 共计37个 C99中增加了 Bool Complex Imaginary inline restrictC99中增加了 Bool Complex Imaginary inline restrict 有些标识符严格说不属于系统保留字 它们有些标识符严格说不属于系统保留字 它们常用于C语言的预 处理 常用于C语言的预 处理中 建议用户不要将它们在程序中随意使用 以免造成混 淆 这些标识符是 defineundefincludeifdefifndefendif lineerrorelifpragma 中 建议用户不要将它们在程序中随意使用 以免造成混 淆 这些标识符是 defineundefincludeifdefifndefendif lineerrorelifpragma 1 1 2 C1 1 2 C1 1 2 C1 1 2 C语言的基本元素语言的基本元素语言的基本元素语言的基本元素 用户标识符命名规则p6用户标识符命名规则p6 用户自定义标识符时 一方面要取得用户自定义标识符时 一方面要取得有意义有意义 便于阅 读 另一方面要注意避免含义上或书写时引起混淆 下面是合法用户标识符的 a b1file name buf 下面是不合法的用户标识符 123abc不是以英文字母或下划线开头 float 与系统保留字同名 up to标识符中出现了非法字符 便于阅 读 另一方面要注意避免含义上或书写时引起混淆 下面是合法用户标识符的 a b1file name buf 下面是不合法的用户标识符 123abc不是以英文字母或下划线开头 float 与系统保留字同名 up to标识符中出现了非法字符 zhang san标识符中间出现了非法字符空格zhang san标识符中间出现了非法字符空格 1 1 2 C1 1 2 C1 1 2 C1 1 2 C语言的基本元素语言的基本元素语言的基本元素语言的基本元素 C C语言的基本元素语言的基本元素语言的基本元素语言的基本元素 3 3 函数函数 函数是构成程序的基本模块 每个函数具有相对独 立的功能 函数是构成程序的基本模块 每个函数具有相对独 立的功能 函数有三种 主函数 即main 函数 C语言编 译系统提供的标准库函数和用户自定义的函数 函数有三种 主函数 即main 函数 C语言编 译系统提供的标准库函数和用户自定义的函数 主函数是C程序执行的主函数是C程序执行的入口入口 即程序总是从主函数 中的第一条可执行的语句开始执行 一般情况下也 是程序执行的 即程序总是从主函数 中的第一条可执行的语句开始执行 一般情况下也 是程序执行的出口出口 1 1 2 C1 1 2 C1 1 2 C1 1 2 C语言的基本元素语言的基本元素语言的基本元素语言的基本元素 C C语言的基本元素语言的基本元素语言的基本元素语言的基本元素 3 函数3 函数 标准库函数是语言处理系统提供的常用功能的处理 程序代码 在程序中如要使用标准库函数 则需要 在程序中合适的地方 调用标准库函数之前 标准库函数是语言处理系统提供的常用功能的处理 程序代码 在程序中如要使用标准库函数 则需要 在程序中合适的地方 调用标准库函数之前 用文 件包含预处理语句将与所使用库函数相应的头文件 包含到程序中来 用文 件包含预处理语句将与所使用库函数相应的头文件 包含到程序中来 如例前面例题中的如例前面例题中的 include include 用户自定义函数即程序员根据所设计应用程序的功 能自己编写的函数 用户自定义函数即程序员根据所设计应用程序的功 能自己编写的函数 1 1 2 C1 1 2 C1 1 2 C1 1 2 C语言的基本元素语言的基本元素语言的基本元素语言的基本元素 C C语言的基本元素语言的基本元素语言的基本元素语言的基本元素 4 C程序书写的基本要点4 C程序书写的基本要点 C程序习惯上使用C程序习惯上使用小写英文字母小写英文字母 使用大写英文母来 表示宏定义或其它具有特殊意义的标识符 使用大写英文母来 表示宏定义或其它具有特殊意义的标识符 C程序中不强调程序行的概念 一行中可以有多条 语句 一个语句也可以写在多行上 但语句与语句 之间要用分号 分隔 C程序中不强调程序行的概念 一行中可以有多条 语句 一个语句也可以写在多行上 但语句与语句 之间要用分号 分隔 C程序C程序为了增强程序的可读性 可以使用适量的空 格 空行和适当的行间缩进结构 为了增强程序的可读性 可以使用适量的空 格 空行和适当的行间缩进结构 但程序中的变量 名 函数名以及C语言本身使用的单词 如保留字 但程序中的变量 名 函数名以及C语言本身使用的单词 如保留字 语句结构等 不能在其中插入空格 语句结构等 不能在其中插入空格 第一章第一章第一章第一章 C C C C语言数据描述和语言数据描述和语言数据描述和语言数据描述和C C C C程序设计初步程序设计初步程序设计初步程序设计初步 C C C C程序的基本结构程序的基本结构程序的基本结构程序的基本结构 C C C C语言的基本数据类型语言的基本数据类型语言的基本数据类型语言的基本数据类型 基本运算符和表达式基本运算符和表达式基本运算符和表达式基本运算符和表达式 不同类型数据混合运算及数据转换不同类型数据混合运算及数据转换不同类型数据混合运算及数据转换不同类型数据混合运算及数据转换 C C C C程序设计初步程序设计初步程序设计初步程序设计初步 1 2 C1 2 C1 2 C1 2 C语言的基本数据类型语言的基本数据类型语言的基本数据类型语言的基本数据类型 数据和数据类型数据和数据类型数据和数据类型数据和数据类型 在C语言源程序中能直接书写的 需要被处理的符号在C语言源程序中能直接书写的 需要被处理的符号 只有数和字符只有数和字符两种 这种符号称为C语言的两种 这种符号称为C语言的数据数据 计算机程序只能处理存入计算机系统计算机程序只能处理存入计算机系统内存的数据内存的数据 任 何信息都需要被转换为内存中的数据才能被处理 任 何信息都需要被转换为内存中的数据才能被处理 计算机系统的内存是按字节编址的 在内存里存放一 个数据所需要的内存字节数称为一个数据所需要的 计算机系统的内存是按字节编址的 在内存里存放一 个数据所需要的内存字节数称为一个数据所需要的内 存空间 内 存空间 不同的数据所要求的存储空间大小也不一 样 因而在程序设计中需区分所处理数据的 不同的数据所要求的存储空间大小也不一 样 因而在程序设计中需区分所处理数据的数据类型数据类型 1 2 C1 2 C1 2 C1 2 C语言的基本数据类型语言的基本数据类型语言的基本数据类型语言的基本数据类型 C语言提供丰富的数据类型 整型 实型 字符型等基本类 型外 还提供了数组 指针 结构体 联合体 枚举 位 位段等数据类型 用这些数据类型可构成复杂的数据结构 C语言提供丰富的数据类型 整型 实型 字符型等基本类 型外 还提供了数组 指针 结构体 联合体 枚举 位 位段等数据类型 用这些数据类型可构成复杂的数据结构 1 2 C1 2 C1 2 C1 2 C语言的基本数据类型语言的基本数据类型语言的基本数据类型语言的基本数据类型 常量和变量常量和变量常量和变量常量和变量 C源程序中直接书写的数据称为C源程序中直接书写的数据称为常量常量 存放一个数据 所需要的内存空间的数据称为 存放一个数据 所需要的内存空间的数据称为变量变量 内存空间中存放 的数据内容称为 内存空间中存放 的数据内容称为变量值变量值 变量是由变量名 标识符 来区别的 变量值是通过 引用变量名来引用的 所以 常量和变量在程序中表 现的都是数据 变量是由变量名 标识符 来区别的 变量值是通过 引用变量名来引用的 所以 常量和变量在程序中表 现的都是数据 常量数据在源程序中给定后 在程序的整个执行过程 中 常量数据在源程序中给定后 在程序的整个执行过程 中保持不变保持不变 而变量在程序的执行过程中是一个其值 可以被程序修改的量 是一个 而变量在程序的执行过程中是一个其值 可以被程序修改的量 是一个变化的量变化的量 1 21 21 21 2 1 C 1 C 1 C 1 C语言的整型数据类型语言的整型数据类型语言的整型数据类型语言的整型数据类型 整型量整型量整型量整型量 1 整型常量1 整型常量 C语言源程序能直接书写的整型常量可以有三种形式 C语言源程序能直接书写的整型常量可以有三种形式 十进制 基本形式 例如 888十进制 基本形式 例如 888 八进制 以0开始 例如 0777八进制 以0开始 例如 0777 十六进制 以0 x开始 例如 0 x123十六进制 以0 x开始 例如 0 x123 整型数据常量后面加u或U表示无符号量 整型数据常量后面加u或U表示无符号量 整型数据常量后面加l或L表示长整型量 整型数据常量后面加l或L表示长整型量 在C语言中整型数据用机器的一个字长来存储 所以整型 数据的表示范围与计算机系统的软硬件环境有关 在C语言中整型数据用机器的一个字长来存储 所以整型 数据的表示范围与计算机系统的软硬件环境有关 16位系统中 整型数据范围为 216位系统中 整型数据范围为 215 15 2 215 15 1 32768 32767 1 32768 32767 32位系统中 整型数据范围为 232位系统中 整型数据范围为 231 31 2 231 31 1 1 1 21 21 21 2 1 C 1 C 1 C 1 C语言的整型数据类型语言的整型数据类型语言的整型数据类型语言的整型数据类型 整型量整型量整型量整型量 2 整型变量 存放整型数据的内存空间称为整型变量 C语言提供了基 本整型 短整型 长整型和无符号整型四种大小不同的 单位空间来存放整形数据 32位系统中整型数据范围 2 整型变量 存放整型数据的内存空间称为整型变量 C语言提供了基 本整型 短整型 长整型和无符号整型四种大小不同的 单位空间来存放整形数据 32位系统中整型数据范围 类型名类型名类型名类型名意意意意义义义义字节数字节数字节数字节数经度范围经度范围经度范围经度范围 short short short short 短整型短整型短整型短整型2 2 2 2 32767 3276832767 3276832767 3276832767 32768 intintintint基本整型基本整型基本整型基本整型4 4 4 4 2147483647 21474836482147483647 21474836482147483647 21474836482147483647 2147483648 long long long long 长整型长整型长整型长整型4 4 4 4 2147483647L 2147483648L2147483647L 2147483648L2147483647L 2147483648L2147483647L 2147483648L unsigned short unsigned short unsigned short unsigned short 无符号短整型无符号短整型无符号短整型无符号短整型2 0 655352 0 655352 0 655352 0 65535 unsigned unsigned unsigned unsigned intintintint无符号基本整型无符号基本整型无符号基本整型无符号基本整型 4 0 4294967295U4 0 4294967295U4 0 4294967295U4 0 4294967295U Unsigned long Unsigned long Unsigned long Unsigned long 无符号长整型无符号长整型无符号长整型无符号长整型4 0 4294967295UL4 0 4294967295UL4 0 4294967295UL4 0 4294967295UL 1 21 21 21 2 1 C 1 C 1 C 1 C语言的整型数据类型语言的整型数据类型语言的整型数据类型语言的整型数据类型 整型量整型量整型量整型量 3 整型变量定义3 整型变量定义 整型变量定义的一般形式为 类型名 该语句的功能是 指定具有类型名定义的多个内存空 间 取名为变量列表中的标识符 变量名 数量与 变量列表中变量名的个数一致 整型变量定义的一般形式为 类型名 该语句的功能是 指定具有类型名定义的多个内存空 间 取名为变量列表中的标识符 变量名 数量与 变量列表中变量名的个数一致 例如 例如 int x1 x2 定义变量x1 x2为整型变量 longx y 定义变量x y为长整型变量 unsigned c d 定义变量c d为无符号整型变量 int x1 x2 定义变量x1 x2为整型变量 longx y 定义变量x y为长整型变量 unsigned c d 定义变量c d为无符号整型变量 例1 2例1 2 整型变量的定义和输出示例 整型变量的定义和输出示例 1 2 2 C1 2 2 C1 2 2 C1 2 2 C语言的实型数据类型语言的实型数据类型语言的实型数据类型语言的实型数据类型 实型量实型量实型量实型量 1 实型常量1 实型常量 实型常量 实型数在C语言中称为浮点数 实数有两种表 示形式 实型常量 实型数在C语言中称为浮点数 实数有两种表 示形式 十进制数形式由数字和小数点组成 十进制数形式由数字和小数点组成 指数形式指数形式 E E 指数形式对应于自然科学中的科学计数法 如123e5表示123 10 指数形式对应于自然科学中的科学计数法 如123e5表示123 105 5 123e 5表示123 10 123e 5表示123 10 5 5 注意下面两点 注意下面两点 指数部分只能是整数指数部分只能是整数 字母 字母 e e 或或 E E 之前的尾数部分不能省略 如10之前的尾数部分不能省略 如10 8 8不 能只写为E 8 而应该写成为1E 8 或者1e 8 不 能只写为E 8 而应该写成为1E 8 或者1e 8 1 2 2 C1 2 2 C1 2 2 C1 2 2 C语言的实型数据类型语言的实型数据类型语言的实型数据类型语言的实型数据类型 实型量实型量实型量实型量 2 实型变量2 实型变量 C源程序文件中存放实型数据的数据对象称为实型变量 C源程序文件中存放实型数据的数据对象称为实型变量 实型变量分为实型变量分为单精度型和双精度型单精度型和双精度型 其类型名分别为 float和double 其类型名分别为 float和double 单精度量提供单精度量提供6至7位有效十进制位6至7位有效十进制位 占4个字节 其中指数占8个二进制位 尾数占24个二进制位 占4个字节 其中指数占8个二进制位 尾数占24个二进制位 双精度量提供双精度量提供15至16位有效十进制位15至16位有效十进制位 占8个字节 占8个字节 例1 2NX例1 2NX 整型变量的定义和输出示例 整型变量的定义和输出示例 类型名类型名类型名类型名意意意意义义义义字节数字节数字节数字节数精度范围精度范围精度范围精度范围 float float float float 单精度实型单精度实型单精度实型单精度实型4 1 175494e4 1 175494e4 1 175494e4 1 175494e 038 3 402823e 038 038 3 402823e 038 038 3 402823e 038 038 3 402823e 038 Double Double Double Double 双精度实型双精度实型双精度实型双精度实型8 2 225074e8 2 225074e8 2 225074e8 2 225074e 308 1 797693e 308308 1 797693e 308308 1 797693e 308308 1 797693e 308 1 2 2 C1 2 2 C1 2 2 C1 2 2 C语言的实型数据类型语言的实型数据类型语言的实型数据类型语言的实型数据类型 实型量实型量实型量实型量 3 实型变量定义3 实型变量定义 定义实型变量的一般形式为 类型名 定义实型变量的一般形式为 类型名 语句为 float 变量列表 double 变量列表 例 float x y 定义变量x y为单精度实型变量 double z 定义变量z为双精度实型变量 语句为 float 变量列表 double 变量列表 例 float x y 定义变量x y为单精度实型变量 double z 定义变量z为双精度实型变量 例1 3例1 3 实型变量的定义和输出示例 实型变量的定义和输出示例 1 2 3 C1 2 3 C1 2 3 C1 2 3 C语言的字符型数据类型语言的字符型数据类型语言的字符型数据类型语言的字符型数据类型 字符量字符量字符量字符量 1 字符常量1 字符常量 普通字符普通字符 普通字符是由单引号括起来的一个可打 印字符 如 普通字符是由单引号括起来的一个可打 印字符 如 a a A A 等 等 转义字符转义字符 由反斜杠 由反斜杠 开头的字符序列 称作开头的字符序列 称作 转 义字符 转 义字符 转变为表示另外的特定意义 转变为表示另外的特定意义 参见Page12表1 4 参见Page12表1 4 如 ddd1 3位8进制数所表示的字符 xhh1 2位16进制数所表示的字符 则 102 x42 表示字符 如 ddd1 3位8进制数所表示的字符 xhh1 2位16进制数所表示的字符 则 102 x42 表示字符 B B 1 2 3 C1 2 3 C1 2 3 C1 2 3 C语言的字符型数据类型语言的字符型数据类型语言的字符型数据类型语言的字符型数据类型 字符变量字符变量字符变量字符变量 2 2 字符变量字符变量 字符型变量用以存储和表示一个字符 占一个字节 字符型变量用以存储和表示一个字符 占一个字节 字符型变量的定义形式 char 例如 char ch 定义变量ch为字符型变量 字符型变量的定义形式 char 例如 char ch 定义变量ch为字符型变量 在C语言中在C语言中字符型变量和整型变量是兼容的字符型变量和整型变量是兼容的 系统中存 储的是对应字符的ASCII码值 因此字符型数据可以与 整型数据一起参与运算 但要注意其表示的合理范围 0 255范围内的整数 系统中存 储的是对应字符的ASCII码值 因此字符型数据可以与 整型数据一起参与运算 但要注意其表示的合理范围 0 255范围内的整数 例 char ch 例 char ch A A ch ch 1 执行该语句序列后ch ch ch 1 执行该语句序列后ch B B 例1 4例1 4 字符变量的定义和输出示例 字符变量的定义和输出示例 1 2 3 C1 2 3 C1 2 3 C1 2 3 C语言的字符型数据类型语言的字符型数据类型语言的字符型数据类型语言的字符型数据类型 字符量字符量字符量字符量 3 3 字符串常量字符串常量 C语言中 字符串常量是用双引号括起来的由C语言中 字符串常量是用双引号括起来的由0个字 符 0个字 符或若干个字符构成的字符序列 例如或若干个字符构成的字符序列 例如 This is a string constant This is a string constant 其中 双引号只是作为定界符 使用 并不是字符串中的字符 其中 双引号只是作为定界符 使用 并不是字符串中的字符 存储字符串常量时分配一段连续的存储单元依次存 放字符串中的每一字符 在最后一个字符后 存储字符串常量时分配一段连续的存储单元依次存 放字符串中的每一字符 在最后一个字符后添加转 义字符 添加转 义字符 0 0 表示结尾表示结尾 所以 所占内存空间 所以 所占内存空间 字符串中包含字符数 1 NULL 字符串中包含字符数 1 NULL 1 2 3 C1 2 3 C1 2 3 C1 2 3 C语言的字符型数据类型语言的字符型数据类型语言的字符型数据类型语言的字符型数据类型 字符量字符量字符量字符量 3 字符串常量3 字符串常量 字符串中可以有转义字符序列 见P12 以下字符串常量中只有 字符串中可以有转义字符序列 见P12 以下字符串常量中只有1111个字符 个字符 字符常量与字符串常量的在表示形式上和存储性质 上是不同的 字符常量与字符串常量的在表示形式上和存储性质 上是不同的 如 如 a a a a 前者是一个字符常量 而后者是 一个字符串常量 前者是一个字符常量 而后者是 一个字符串常量 前者在存储时占1个字节的存储空间 而后者 即为 前者在存储时占1个字节的存储空间 而后者 即为 a a 和和 0 0 要占2个字节的存储空间 要占2个字节的存储空间 1 2 3 C1 2 3 C1 2 3 C1 2 3 C语言的字符型数据类型语言的字符型数据类型语言的字符型数据类型语言的字符型数据类型 字符量字符量字符量字符量 4 4 符号常量符号常量 在C语言中 常量可以用符号代替 代替常量的符号称 为符号常量 或称为 在C语言中 常量可以用符号代替 代替常量的符号称 为符号常量 或称为宏常量宏常量 符号常量一般使用大 写字母表示 符号常量在使用之前必须预先定义 其 定义的一般格式为 符号常量一般使用大 写字母表示 符号常量在使用之前必须预先定义 其 定义的一般格式为 define 符号常量 常量 define 符号常量 常量 例如 define PI 3 1415926 define EOF 1 例如 define PI 3 1415926 define EOF 1 在程序中使用符号常量有两点好处 在程序中使用符号常量有两点好处 修改程序方便修改程序方便 当程序中多处使用某个常量后 修 改该常量时 程序中所有的该符号常量对应变化 当程序中多处使用某个常量后 修 改该常量时 程序中所有的该符号常量对应变化 为为方便阅读程序方便阅读程序 1 2 4 1 2 4 1 2 4 1 2 4 变量的初始化变量的初始化变量的初始化变量的初始化 变量的初始化变量的初始化变量的初始化变量的初始化 变量的初始化指的是为变量变量的初始化指的是为变量第一次赋值第一次赋值 在C语言中变量初始化的方法有两种在C语言中变量初始化的方法有两种 一是在程序的执行过程中通过赋值运算符赋值 一是在程序的执行过程中通过赋值运算符赋值 二是在定义变量的同时为变量赋初值 二是在定义变量的同时为变量赋初值 C语言中 定义变量的同时对其初始化的一般形式为 C语言中 定义变量的同时对其初始化的一般形式为 例如定义变量的同时为变量赋初值的情况 int a x1 100 long b x2 100L float c x3 100 30 double x4 100 5 char ch A 例如定义变量的同时为变量赋初值的情况 int a x1 100 long b x2 100L float c x3 100 30 double x4 100 5 char ch A 第一章第一章第一章第一章 C C C C语言数据描述和语言数据描述和语言数据描述和语言数据描述和C C C C程序设计初步程序设计初步程序设计初步程序设计初步 C C C C程序的基本结构程序的基本结构程序的基本结构程序的基本结构 C C C C语言的基本数据类型语言的基本数据类型语言的基本数据类型语言的基本数据类型 基本运算符和表达式基本运算符和表达式基本运算符和表达式基本运算符和表达式 不同类型数据混合运算及数据转换不同类型数据混合运算及数据转换不同类型数据混合运算及数据转换不同类型数据混合运算及数据转换 C C C C程序设计初步程序设计初步程序设计初步程序设计初步 1 3 1 3 1 3 1 3 基本运算符和表达式基本运算符和表达式基本运算符和表达式基本运算符和表达式 C语言的运算符大致分为以下几类 C语言的运算符大致分为以下几类 算术运算符算术运算符 关系运算符关系运算符 逻辑运算符逻辑运算符 赋值运算符赋值运算符 条件运算符条件运算符 一些运算符只需要一个运算对象 操作数 单目运算 符 需要两个运算对象的称为双目运算符 还有比较特 殊的运算符需要三个运算对象 称为三目运算符 一些运算符只需要一个运算对象 操作数 单目运算 符 需要两个运算对象的称为双目运算符 还有比较特 殊的运算符需要三个运算对象 称为三目运算符 位运算符位运算符 逗号运算符逗号运算符 指针运算符指针运算符 其他运算符其他运算符 如 分量运算符 下标运算 符 sizeof运算符 函数调用运算符 强制数据 类型转换运算符等 如 分量运算符 下标运算 符 sizeof运算符 函数调用运算符 强制数据 类型转换运算符等 1 3 1 3 基本运算符和表达式基本运算符和表达式基本运算符和表达式基本运算符和表达式 运算符的分类 优先级和结合规则运算符的分类 优先级和结合规则运算符的分类 优先级和结合规则运算符的分类 优先级和结合规则 P23 C语言把表达式中的各种运算符运算的先后顺序规定为15 个由低到高的 C语言把表达式中的各种运算符运算的先后顺序规定为15 个由低到高的优先级别优先级别并且为运算符规定了并且为运算符规定了结合性结合性 参见Page15表1 5参见Page15表1 5 结合性规则结合性规则 左结合性 运算对象先与左边的运算符结合 右结合性 运算对象先与右边的运算符结合 左结合性 运算对象先与左边的运算符结合 右结合性 运算对象先与右边的运算符结合 P23 P23 P23 1 3 1 1 3 1 1 3 1 1 3 1 算术运算符和算术表达式算术运算符和算术表达式算术运算符和算术表达式算术运算符和算术表达式 算术运算符及优先级算术运算符及优先级算术运算符及优先级算术运算符及优先级 高 低 高 低 同优先级同优先级 注意点 注意点 对于除法运算符 当参加运 算的对象都是整型数据时 其结果也是整型数据 对于除法运算符 当参加运 算的对象都是整型数据时 其结果也是整型数据 截取 法取整 截取 法取整 对于模运算符 参加运算的 对象必须都是整型 对于模运算符 参加运算的 对象必须都是整型 若参加模运算的对象为负 结果的符号与第一个运算 对象相同 若参加模运算的对象为负 结果的符号与第一个运算 对象相同 例例 7 51 7 5 7 5 7 5 7 5 2 2 2 2 单目运算符 正号 负号 双目运算符 单目运算符 正号 负号 双目运算符 1 3 1 1 3 1 1 3 1 1 3 1 算术运算符和算术表达式算术运算符和算术表达式算术运算符和算术表达式算术运算符和算术表达式 由算术运算符和括号将运算对象连接起来的 符合 C语言语法规则的算术表达形式称为C语言的 由算术运算符和括号将运算对象连接起来的 符合 C语言语法规则的算术表达形式称为C语言的算术表 达式 算术表 达式 运算对象包括常量 变量 函数 表达式等 值得 注意的是单个的常量 变量或函数名本身也是表达 式 运算对象包括常量 变量 函数 表达式等 值得 注意的是单个的常量 变量或函数名本身也是表达 式 例1 5例1 5 算术运算符使用示例算术运算符使用示例 1 3 2 1 3 2 1 3 2 1 3 2 赋值运算符和赋值表达式赋值运算符和赋值表达式赋值运算符和赋值表达式赋值运算符和赋值表达式 赋值运算符赋值运算符 的作用是将一个数据或是一个表达式的 值赋给一个变量 的作用是将一个数据或是一个表达式的 值赋给一个变量 C语言规定符号C语言规定符号 为赋值运算符 由为赋值运算符 由 连接的表达式 称为赋值表达式 赋值表达式的书写格式为赋值运算符 左边 连接的表达式 称为赋值表达式 赋值表达式的书写格式为赋值运算符 左边只能是一个变量只能是一个变量 格式如下 变量名 表达式 格式如下 变量名 表达式 a 10的意义是将整型数10赋给变量a作为其值 a 10的意义是将整型数10赋给变量a作为其值 y x 110的意义是先计算x 110的值 然后将它赋给变 量y作为其值 y x 110的意义是先计算x 110的值 然后将它赋给变 量y作为其值 1 3 2 1 3 2 1 3 2 1 3 2 赋值运算符和赋值表达式赋值运算符和赋值表达式赋值运算符和赋值表达式赋值运算符和赋值表达式 当赋值运算符两边的数据当赋值运算符两边的数据对象类型不一致对象类型不一致时 在赋值时 要进行数据类型的转换 时 在赋值时 要进行数据类型的转换 转换的基本规则是以赋值运算 符左边变量的数据类型为准 转换的基本规则是以赋值运算 符左边变量的数据类型为准 例如有如下程序段 int a float x 10 5 y 10 6 a x y 例如有如下程序段 int a float x 10 5 y 10 6 a x y 执行这段程序时 首先计算出算术表达式x y的值为 21 1 然后将该值用 执行这段程序时 首先计算出算术表达式x y的值为 21 1 然后将该值用截取法截取法取整得到21后再赋值给左边 的整型变量a 使得a的值为整数21 取整得到21后再赋值给左边 的整型变量a 使得a的值为整数21 1 3 2 1 3 2 1 3 2 1 3 2 赋值运算符和赋值表达式赋值运算符和赋值表达式赋值运算符和赋值表达式赋值运算符和赋值表达式 C语言程序中 C语言程序中 能执行操作运算的只有语句能执行操作运算的只有语句 单独的表达式 是不合法和不被执行的 单独的表达式 是不合法和不被执行的 赋值语句由赋值语句由赋值表达式加上语句结尾符号赋值表达式加上语句结尾符号 构成构成 其形式为 或变量名 表达式 如 a x y是赋值表达式 a x y 则是赋值语句 其形式为 或变量名 表达式 如 a x y是赋值表达式 a x y 则是赋值语句 注意 1 赋值运算符的优先级 其结合性为从右至左 以左边变 量数据类型为准 注意 1 赋值运算符的优先级 其结合性为从右至左 以左边变 量数据类型为准 例 double n int m n m 5 6 例 double n int m n m 5 6 例 double k int j j k 5 6 2 例 double k int j j k 5 6 2 赋值表达式可作为一个对象出现在另外的表达式中赋值表达式可作为一个对象出现在另外的表达式中 例1 6例1 6 赋值运算符和赋值表达式使用示例 赋值运算符和赋值表达式使用示例 n m 5 6 j k 5 6 n m 5 6 j k 5 6 n 5 0 m 5 j 5 k 5 6 n 5 0 m 5 j 5 k 5 6 1 3 3 1 3 3 1 3 3 1 3 3 自反运算符自反运算符自反运算符自反运算符 自反运算符是在赋值运算符自反运算符是在赋值运算符 的前面加上其他运算符 构成的一种复合运算符 是一种 的前面加上其他运算符 构成的一种复合运算符 是一种 复合的赋值运算符复合的赋值运算符 简称为 简称为 复合赋值符复合赋值符 C语言规定 C语言规定 凡是凡是双目双目运算符都可以与赋值运算符一起 组成复合赋值符 运算符都可以与赋值运算符一起 组成复合赋值符 其结合性为 其结合性为右结合性右结合性 这些复合赋值 符是 a 试图对实型变量a施加自增运算 float a 100 a 试图对实型变量a施加自增运算 不能作用于常量数据或者表达式不能作用于常量数据或者表达式 例如下面的语句序列存在着例如下面的语句序列存在着错误错误 int a 100 a 100 试图对表达式a 100施加自减运算 300 试图对整型常数300施加自增运算 int a 100 a 100 试图对表达式a 100施加自减运算 300 试图对整型常数300施加自增运算 1 3 4 1 3 4 1 3 4 1 3 4 自增 自减运算符自增 自减运算符自增 自减运算符自增 自减运算符 自增 自减运算符有自增 自减运算符有前缀和后缀前缀和后缀两种形式两种形式 当是前缀形式 即 符号出现在变量的左侧 时 对变量实施的运算是 当是前缀形式 即 符号出现在变量的左侧 时 对变量实施的运算是 先增值后引用先增值后引用 当是后缀形式 即 符号出现在变量的右侧 时 对变量实施的运算是 当是后缀形式 即 符号出现在变量的右侧 时 对变量实施的运算是 先引用后增值先引用后增值 例1 9例1 9 自增 自减运算符使用示例 自增 自减运算符使用示例 1 3 5 1 3 5 1 3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高性能隔热材料在住宅建筑中的应用分析
- 土壤污染排查信息化管理平台建设
- 高职院校心理健康服务体系的完善路径
- 高校老旧宿舍改造中的智能化设施与技术应用
- 乐学医考课件
- 私家楼出租合同(标准版)
- 绿化费-申请报告(3篇)
- 鹿邑疫情返乡申请报告(3篇)
- 公司员工信息安全培训
- Difluoromethionine-CoA-Difluoromethionine-coenzyme-A-生命科学试剂-MCE
- 2024年河北石家庄交通投资发展集团有限责任公司招聘考试真题
- 公安援疆工作总结
- 湖南省益阳市2026届高三9月教学质量监测数学试题(含答案)
- 第8课《网络新世界》第一课时-统编版《道德与法治》四年级上册教学课件
- 2025年大学生英语六级必考词汇表全部汇编(带音标)
- DL∕T 1867-2018 电力需求响应信息交换规范
- 版良性前列腺增生诊疗指南PPT
- 【EHS领导力培训】安全领导力与执行力培训(86页)
- 预制箱梁运输及安装施工技术方案及施工方法
- 贵阳市郊区布依族语言使用现状调查研究
- 推广普通话班会课
评论
0/150
提交评论