(2周)2章 程序设计初步.pdf_第1页
(2周)2章 程序设计初步.pdf_第2页
(2周)2章 程序设计初步.pdf_第3页
(2周)2章 程序设计初步.pdf_第4页
(2周)2章 程序设计初步.pdf_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1 第第第第2 2章章 程序设计初步程序设计初步章章 程序设计初步程序设计初步 1 田媚田媚 mtian 计算机与信息技术学院工程系 九教北517 计算机与信息技术学院工程系 九教北517 2 教学目标教学目标教学目标教学目标 了解结构化程序的基本结构了解结构化程序的基本结构了解结构化程序的基本结构了解结构化程序的基本结构 掌握基本的数据类型掌握基本的数据类型掌握基本的数据类型掌握基本的数据类型 会定义变量并了解变量在内存的存放会定义变量并了解变量在内存的存放会定义变量并了解变量在内存的存放会定义变量并了解变量在内存的存放 3 会使用算术和赋值运算符进行计算会使用算术和赋值运算符进行计算会使用算术和赋值运算符进行计算会使用算术和赋值运算符进行计算 使用输入输出函数输入输出数据 编写出简单使用输入输出函数输入输出数据 编写出简单 的程序的程序 使用输入输出函数输入输出数据 编写出简单使用输入输出函数输入输出数据 编写出简单 的程序的程序 主要内容主要内容主要内容主要内容 2 1 2 1 程序的基本结构程序的基本结构程序的基本结构程序的基本结构 2 2 2 2 数据类型数据类型数据类型数据类型 2 3 2 3 运算符与表达式运算符与表达式运算符与表达式运算符与表达式 4 2 4 2 4 数据类型数据类型的转换的转换数据类型数据类型的转换的转换 2 5 2 5 数据的输出和输入数据的输出和输入数据的输出和输入数据的输出和输入 2 62 6 数学函数数学函数数学函数数学函数 2 1 2 1 程序的基本程序的基本结构结构程序的基本程序的基本结构结构 5 例2 1 1 简单C程序helloworld c例2 1 1 简单C程序helloworld c 程序名 helloworld c 功能 在屏幕上输出一行文本 程序名 helloworld c 功能 在屏幕上输出一行文本 include include 文件包含文件包含 2 1 2 1 程序的基本结构程序的基本结构程序的基本结构程序的基本结构 每一个C程序都必 须包含一个main函数 每一个C程序都必 须包含一个main函数 6 include include 文件包含文件包含 void main 主函数 函数体开始 printf Helloworld n 输出语句 函数体结束 void main 主函数 函数体开始 printf Helloworld n 输出语句 函数体结束 2 程序说明部分程序说明部分 程序名 add c 功能 计算两个整数和并输出结果 程序名 add c 功能 计算两个整数和并输出结果 预编译命令预编译命令 include include 主程序区主程序区void main void main 2 1 2 1 程序的基本结构程序的基本结构程序的基本结构程序的基本结构 7 主程序区主程序区voidvoid main main 函数函数定义区定义区int add int x int y int add int x int y 简单简单简单简单C C程序程序的基本结构的基本结构程序程序的基本结构的基本结构 注释 全局变量定义 包含文件 注释 全局变量定义 包含文件 void main void main b b 代表代表代表代表 主程序主程序主程序主程序 8 局部变量定义 局部变量定义 int sub int x int y 局部变量定义 int sub int x int y 局部变量定义 sub sub 代表代表用用代表代表用 户定义的子函数户定义的子函数 用 户定义的子函数户定义的子函数 几点说明 几点说明 1 函数的一般结构 1 函数的一般结构 函数类型 函数名 函数参数表 函数类型 函数名 函数参数表 函数说明 函数说明 说明语句 执行语句 说明语句 执行语句 函数体 函数体 2 2 函数函数说明说明 2 2 函数函数说明说明 函数类型函数名函数参数表函数类型函数名函数参数表 intmax int x inty intmax int x inty 9 函数体函数体 说明语句 可执行语句 说明语句 可执行语句 3 函数体 3 函数体 函数体是指在函数说明部分的下面 花括号 内的部分函数体是指在函数说明部分的下面 花括号 内的部分 10 说明语句 部分包括变量定义 自定义类型定义 自 定义函数说明 外部变量说明等 可执行语句 一般由若干条可执行语句构成 说明语句 部分包括变量定义 自定义类型定义 自 定义函数说明 外部变量说明等 可执行语句 一般由若干条可执行语句构成 函数是C语言程序的基本单位 函数是C语言程序的基本单位 是函数开始和结束的标志 不可省 是函数开始和结束的标志 不可省 每个C程序必须有一个主函数main 是C程序执 行的开始点 与main函数的位置无关 每个C程序必须有一个主函数main 是C程序执 行的开始点 与main函数的位置无关 怎样写一个函数 怎样写一个函数 函数由语句构成 每个C语句以 结束 函数由语句构成 每个C语句以 结束 每条语句都要符合规定的语法格式 并具有特 定的功能 每条语句都要符合规定的语法格式 并具有特 定的功能 使用标准库函数时应在程序开头包含库函数定 义 如 include 使用标准库函数时应在程序开头包含库函数定 义 如 include 11 程序注释增加程序可读程序注释增加程序可读 注释对编译和运行不起作用 注释对编译和运行不起作用 一一般在行的最般在行的最右右侧或在被注释行侧或在被注释行之上之上单独成行单独成行 程序注释程序注释 般在行的最侧或在被注释行单独成行般在行的最侧或在被注释行单独成行 注释内容可以多行 可以在任何位置 注释内容可以多行 可以在任何位置 在行末 有的编译器不支持 在行末 有的编译器不支持 12 3 例例例例2 1 2 2 1 2 计算两个整数的和计算两个整数的和计算两个整数的和计算两个整数的和 程序名 程序名 程序名 程序名 2 1 2 cpp 2 1 2 cpp 功能 计算两个整数和并输出结果功能 计算两个整数和并输出结果功能 计算两个整数和并输出结果功能 计算两个整数和并输出结果 include include void main void main intint i1 i2 sum i1 i2 sum printfprintf 请输入两个整数 请输入两个整数 请输入两个整数 请输入两个整数 scanfscanf d dd d sum i1 i2 sum i1 i2 printfprintf sum d sum d n sum n sum 13 2 2 2 2 数据类型数据类型数据类型数据类型 14 2 2 2 2 数据类型数据类型数据类型数据类型 前提 用计算机解决具体问题 前提 用计算机解决具体问题 前提 用计算机解决具体问题 前提 用计算机解决具体问题 计算机解决问题只需要处理两方面问题 计算机解决问题只需要处理两方面问题 计算机解决问题只需要处理两方面问题 计算机解决问题只需要处理两方面问题 描述程序的操作对象描述程序的操作对象 数据 数据 描述程序的操作对象描述程序的操作对象 数据 数据 描述操作方式描述操作方式描述操作方式描述操作方式 程序设计语言中的语句程序设计语言中的语句程序设计语言中的语句程序设计语言中的语句 描述操作方式描述操作方式描述操作方式描述操作方式 程序设计语言中的语句程序设计语言中的语句 程序设计语言中的语句程序设计语言中的语句 实际生活中的数据具有不同的类型 这些不同类实际生活中的数据具有不同的类型 这些不同类 型的数据在计算机中 有不同的描述方法和不同型的数据在计算机中 有不同的描述方法和不同 的处理方式 的处理方式 实际生活中的数据具有不同的类型 这些不同类实际生活中的数据具有不同的类型 这些不同类 型的数据在计算机中 有不同的描述方法和不同型的数据在计算机中 有不同的描述方法和不同 的处理方式 的处理方式 程序设计者在编程时需要指明每一个用到的数据程序设计者在编程时需要指明每一个用到的数据 的名称 类型 的名称 类型 程序设计者在编程时需要指明每一个用到的数据程序设计者在编程时需要指明每一个用到的数据 的名称 类型 的名称 类型 15 数据类型数据类型数据类型数据类型 intint charchar 基本类型基本类型基本类型基本类型 构造类型构造类型构造类型构造类型 数组类型数组类型数组类型数组类型 整型整型 实型实型 整型整型 实型实型 浮点型浮点型浮点型浮点型 字符型字符型 枚举类型枚举类型 双精度双精度 字符型字符型 枚举类型枚举类型 双精度双精度 double double 单精度单精度单精度单精度 float float 16 构造类型构造类型构造类型构造类型 指针类型指针类型 空类型空类型 指针类型指针类型 空类型空类型 结构体类型结构体类型 共用体类型共用体类型 结构体类型结构体类型 共用体类型共用体类型 数据的类型决定了这个数据在内存中的数据的类型决定了这个数据在内存中的数据的类型决定了这个数据在内存中的数据的类型决定了这个数据在内存中的存储形式存储形式存储形式存储形式 取值范围取值范围取值范围取值范围和能够对它进行的和能够对它进行的和能够对它进行的和能够对它进行的操作操作操作操作 在在学习中 我们从两个方面来了解 学习中 我们从两个方面来了解 在在学习中 我们从两个方面来了解 学习中 我们从两个方面来了解 在编程序时在编程序时根据具体问题根据具体问题决定应将原始数决定应将原始数在编程序时在编程序时根据具体问题根据具体问题决定应将原始数决定应将原始数 2 2 2 2 数据类型数据类型数据类型数据类型 17 1 1 1 1 在编程序时在编程序时 根据具体问题根据具体问题 决定应将原始数决定应将原始数在编程序时在编程序时 根据具体问题根据具体问题 决定应将原始数决定应将原始数 据定义成何种类型 据定义成何种类型 据定义成何种类型 据定义成何种类型 2 2 2 2 读程序时 程序中以某种形式定义的变量和用读程序时 程序中以某种形式定义的变量和用 到的常量具有的意义 到的常量具有的意义 读程序时 程序中以某种形式定义的变量和用读程序时 程序中以某种形式定义的变量和用 到的常量具有的意义 到的常量具有的意义 基本数据类型基本数据类型基本数据类型基本数据类型 18 4 整型整型整型整型 intint 用于描述一般意义上的整数用于描述一般意义上的整数 用于描述一般意义上的整数用于描述一般意义上的整数 123123 345345 0 0等等 等等 intint 型数据是有符号整数 型数据是有符号整数 型数据是有符号整数 型数据是有符号整数 1616位机位机位机位机 在内存中占用在内存中占用在内存中占用在内存中占用2 2个字节个字节 取值取值范围在范围在 个字节个字节 取值取值范围在范围在 3276832768 3276732767 2 215 15 2 215 15 1 1 19 3232位机位机位机位机 在内存中占用在内存中占用在内存中占用在内存中占用4 4个字节个字节 取值范围在取值范围在 个字节个字节 取值范围在取值范围在 2 231 31 2 231 31 1 1 数学意义上能对整数进行的操作数学意义上能对整数进行的操作 都可都可 以对以对 数学意义上能对整数进行的操作数学意义上能对整数进行的操作 都可都可 以对以对intint类型的数据进行类型的数据进行 除此之外除此之外 类型的数据进行类型的数据进行 除此之外除此之外 C C语言中又增加了求语言中又增加了求 余运算余运算 语言中又增加了求语言中又增加了求 余运算余运算 和自增和自增 和自增和自增 自减运算自减运算 自减运算自减运算 用用用用 intint 来说明一个数据是整型数据来说明一个数据是整型数据 来说明一个数据是整型数据来说明一个数据是整型数据 字符型字符型字符型字符型 char char 用于描述单个字符信息用于描述单个字符信息 用于描述单个字符信息用于描述单个字符信息 a a 7 7 字符型数据存储时占用字符型数据存储时占用字符型数据存储时占用字符型数据存储时占用1 1个字节个字节个字节个字节 8 8位位位位 它实际存储 它实际存储 的是字符对应的的是字符对应的 它实际存储 它实际存储 的是字符对应的的是字符对应的ASCIIASCII码 如一个码 如一个码 如一个码 如一个charchar型数据 型数据 型数据 型数据 A A 其其 其其ASCIIASCII码为码为码为码为6565 故实际存储的内容是故实际存储的内容是 故实际存储的内容是故实际存储的内容是6565 American Standard Code for Information Interchange ASCII 美国标准信息交换码 20 其其 其其ASCIIASCII码为码为码为码为6565 故实际存储的内容是故实际存储的内容是 故实际存储的内容是故实际存储的内容是6565 charchar型数据为有符号字符 取值范围为型数据为有符号字符 取值范围为型数据为有符号字符 取值范围为型数据为有符号字符 取值范围为 128128 127127 unsigned unsigned charchar型数据为无符号字符 取值型数据为无符号字符 取值 范围为范围为 型数据为无符号字符 取值型数据为无符号字符 取值 范围为范围为0 0 255255 可打印的字符总是正的 可打印的字符总是正的 可打印的字符总是正的 可打印的字符总是正的 字符型数据与整型数据可以通用字符型数据与整型数据可以通用字符型数据与整型数据可以通用字符型数据与整型数据可以通用 字符型数据所有 字符型数据所有 的性质与一字节整型量相同 的性质与一字节整型量相同 字符型数据所有 字符型数据所有 的性质与一字节整型量相同 的性质与一字节整型量相同 例 字符型常量与整形常量混合使用实例 例 字符型常量与整形常量混合使用实例 include void main printf c d n a a a 97 printf c d n printf c d n 65 65 printf c c n 117 u 21 63 A 65 u u 单精度浮点型单精度浮点型单精度浮点型单精度浮点型 float float 用于描述一般意义上的实数概念用于描述一般意义上的实数概念 用于描述一般意义上的实数概念用于描述一般意义上的实数概念 3434 5 5 3 3 1414 0 0 9898等等 等等 对于对于对于对于1616位机位机 位机位机 floatfloat型数据在内存中占用型数据在内存中占用型数据在内存中占用型数据在内存中占用4 4个字节个字节个字节个字节 3232位位位位 提供提供提供提供7 7位有效数字位有效数字位有效数字位有效数字 可能的取值范围在可能的取值范围在可能的取值范围在可能的取值范围在 22 3 3 位位位位 提供提供提供提供 位有效数字位有效数字位有效数字位有效数字 可能的取值范围在可能的取值范围在可能的取值范围在可能的取值范围在 1 1e e1010 44 44 2 2e e101038 38 浮点浮点型数据的存储符合型数据的存储符合浮点浮点型数据的存储符合型数据的存储符合IEEEIEEE浮点数格式浮点数格式 如如浮点数格式浮点数格式 如如floatfloat 型数据型数据 型数据型数据 1 1位用于符号位用于符号 位用于符号位用于符号 8 8位用于指数位用于指数 位用于指数位用于指数 2323位用于位用于 基数基数 位用于位用于 基数基数 双精度浮点型双精度浮点型双精度浮点型双精度浮点型 double double 用于描述一般意义上的精度加倍的实数概念用于描述一般意义上的精度加倍的实数概念 用于描述一般意义上的精度加倍的实数概念用于描述一般意义上的精度加倍的实数概念 3 3 1415914159 0 0 9898 3434 5 5 等等 等等 23 doubledouble型数据占型数据占型数据占型数据占8 8个字节 提供个字节 提供个字节 提供个字节 提供1515 1616位位 有效数据 可能的取值约有效数据 可能的取值约 位位 有效数据 可能的取值约有效数据 可能的取值约1010 308 308 1010308 308 例 实型数据的舍入误差示例 源程序如下 例 实型数据的舍入误差示例 源程序如下 include int main void float a b c a b应是原值输出 但结果已发生误差 从b 40的结果看虽 然增加了40 但仍 比b的初值小 结果 没有意义 a b应是原值输出 但结果已发生误差 从b 40的结果看虽 然增加了40 但仍 比b的初值小 结果 没有意义 这是因为单精度浮这是因为单精度浮 float a b c a 55555 55555 b 123456 789e5 printf a f b f b 40 f n a b b 40 return 0 24 这是因为单精度浮这是因为单精度浮 点型的有效位数只 有七位 点型的有效位数只 有七位 若将程序中的float 改为double类型 若将程序中的float 改为double类型 5 例 实型数据的舍入误差示例 源程序如下 例 实型数据的舍入误差示例 源程序如下 include int main void double a b c a 55555 55555 25 a 55555 55555 b 123456 789e5 Printf a lf b lf b 40 lf n a b b 40 return 0 思考 思考 思考 思考 数据数据在计算机中存放时 由于受到计算在计算机中存放时 由于受到计算 机存储器字长的限制 所能表示出来的数机存储器字长的限制 所能表示出来的数 据的大小总是有限的 例如据的大小总是有限的 例如1616位机 所能位机 所能 数据数据在计算机中存放时 由于受到计算在计算机中存放时 由于受到计算 机存储器字长的限制 所能表示出来的数机存储器字长的限制 所能表示出来的数 据的大小总是有限的 例如据的大小总是有限的 例如1616位机 所能位机 所能 表示出的最大表示出的最大intint型数据为型数据为3276732767 如果 如果 实际问题需要处理更大的数 例如实际问题需要处理更大的数 例如 400000400000 怎样解决 怎样解决 表示出的最大表示出的最大intint型数据为型数据为3276732767 如果 如果 实际问题需要处理更大的数 例如实际问题需要处理更大的数 例如 400000400000 怎样解决 怎样解决 26 基本数据类型扩充基本数据类型扩充基本数据类型扩充基本数据类型扩充 27 基本数据类型扩充基本数据类型扩充基本数据类型扩充基本数据类型扩充 short short intint 或或或或short short 短短整型 整型 短短整型 整型 shortshort型的数据是有符号整型数据 与型的数据是有符号整型数据 与 intint型数据的区别在于 型数据的区别在于 shortshort型的数据的型的数据的 shortshort型的数据是有符号整型数据 与型的数据是有符号整型数据 与 intint型数据的区别在于 型数据的区别在于 shortshort型的数据的型的数据的 长度要小于等于长度要小于等于长度要小于等于长度要小于等于intintintint型数据型数据 可以为可以为型数据型数据 可以为可以为8 8 8 8位或位或位或位或 28 长度要小于等于长度要小于等于长度要小于等于长度要小于等于intintintint型数据型数据 可以为可以为型数据型数据 可以为可以为8 8 8 8位或位或位或位或 1616位 位 1616位 位 long long intint 或或或或long long 长整型长整型长整型长整型 longlong型的数据是有符号整型数据 与型的数据是有符号整型数据 与intint型型 数据的区别在于 数据的区别在于 longlong型的数据的长度要型的数据的长度要 longlong型的数据是有符号整型数据 与型的数据是有符号整型数据 与intint型型 数据的区别在于 数据的区别在于 longlong型的数据的长度要型的数据的长度要 29 大于等于大于等于intint型数据 通常为型数据 通常为intint型数据长型数据长 度的两倍 即 如果度的两倍 即 如果intint型数据的长度为型数据的长度为1616 位 那么 位 那么 longlong型数据的长度为型数据的长度为3232位 位 大于等于大于等于intint型数据 通常为型数据 通常为intint型数据长型数据长 度的两倍 即 如果度的两倍 即 如果intint型数据的长度为型数据的长度为1616 位 那么 位 那么 longlong型数据的长度为型数据的长度为3232位 位 主要用于处理一些比较长的整数问题主要用于处理一些比较长的整数问题 主要用于处理一些比较长的整数问题主要用于处理一些比较长的整数问题 unsignedunsigned Unsigned Unsigned 可以加在可以加在intint 型 型 shortshort型 型 longlong型 型 charchar型的前面 把这些有符号的类型定义为型的前面 把这些有符号的类型定义为 Unsigned Unsigned 可以加在可以加在intint 型 型 shortshort型 型 longlong型 型 charchar型的前面 把这些有符号的类型定义为型的前面 把这些有符号的类型定义为无符号无符号 类型类型 无符号无符号 类型类型 有有符号类型和无符号类型的区别 符号类型和无符号类型的区别 有有符号类型和无符号类型的区别 符号类型和无符号类型的区别 30 有符号类型的数据的二进制形式的最高位都表示符号 有符号类型的数据的二进制形式的最高位都表示符号 最高位为最高位为0 0 正数 最高位为正数 最高位为1 1 负数 所以对于一个字负数 所以对于一个字 长为长为1616位的机器 它只有位的机器 它只有1515位表示位表示intint类型数据类型数据 有符号类型的数据的二进制形式的最高位都表示符号 有符号类型的数据的二进制形式的最高位都表示符号 最高位为最高位为0 0 正数 最高位为正数 最高位为1 1 负数 所以对于一个字负数 所以对于一个字 长为长为1616位的机器 它只有位的机器 它只有1515位表示位表示intint类型数据类型数据 无无符号类型的数据的二进制形式的最高位不表示符号 符号类型的数据的二进制形式的最高位不表示符号 对于一个字长为对于一个字长为1616位的机器 位的机器 1616位都表示数据 但是只位都表示数据 但是只 表示正数 表示正数 无无符号类型的数据的二进制形式的最高位不表示符号 符号类型的数据的二进制形式的最高位不表示符号 对于一个字长为对于一个字长为1616位的机器 位的机器 1616位都表示数据 但是只位都表示数据 但是只 表示正数 表示正数 6 unsignedunsigned unsigned unsigned intint unsigned unsigned intint 无符号无符号整型整型无符号无符号整型整型 占占2 2个字节 取值范围个字节 取值范围在在占占2 2个字节 取值范围个字节 取值范围在在0 65535 20 65535 216 16 1 1 unsigned shortunsigned short unsigned shortunsigned short 无符号短整型无符号短整型无符号短整型无符号短整型 unsigned longunsigned longunsigned longunsigned long 无符号长无符号长无符号长无符号长整型整型整型整型 31 unsignedunsigned longunsigned longunsigned longlong 无符号长无符号长无符号长无符号长整型整型整型整型 占占4 4个字节个字节 32 32位位 取值范围取值范围在在占占4 4个字节个字节 32 32位位 取值范围取值范围在在0 420 42亿亿亿亿 2 232 32 1 1 unsigned charunsigned char unsigned charunsigned char 无符号字符型无符号字符型无符号字符型无符号字符型 占用占用1 1个字节个字节 8 8位位 取值范围 取值范围为为占用占用1 1个字节个字节 8 8位位 取值范围 取值范围为为0 0 255 255 常量常量 在程序运行过程中其值不能被改变的量在程序运行过程中其值不能被改变的量 称为称为 在程序运行过程中其值不能被改变的量在程序运行过程中其值不能被改变的量 称为称为常量 常量 常量 常量 C C语言中 将常量分为 语言中 将常量分为 C C语言中 将常量分为 语言中 将常量分为 32 整型常量整型常量整型常量整型常量 实实型型常量常量实实型型常量常量 字符型常量字符型常量字符型常量字符型常量 字符串常量字符串常量字符串常量字符串常量 符号常量符号常量符号常量符号常量 整型常量整型常量 描述整数描述整数 三种表示形式 三种表示形式 三种表示形式 三种表示形式 如如如如 123123 6060 0 0 十进制整数 十进制整数 十进制整数 十进制整数 八进制整数八进制整数八进制整数八进制整数 33 以以以以0 0开始 如开始 如开始 如开始 如 01230123 以以以以0 x0 x开始 如开始 如开始 如开始 如0 x1230 x123 八进制整数八进制整数 八进制整数八进制整数 十六进制整数 十六进制整数 十六进制整数 十六进制整数 实型常量实型常量 描述实数描述实数 小数形式 整数部分小数形式 整数部分 小数部分小数部分小数形式 整数部分小数形式 整数部分 小数部分小数部分 指数形式 尾数指数形式 尾数 E e E e 指数指数指数形式 尾数指数形式 尾数 E e E e 指数指数 例 例 123 123 0 0 12 5 当整数或小数部分为0时可 以省略 但小数点不能省略 34 例 例 12 3e2 2 3E 21 1 指数形式适用于表示较大或较小的数 2 e之前必须有数字 且e后面的指数必须为整数 如 128e2或128E2都代表128 3 如果实型常量后缀是 f 或 F 则被当成float型 否则 C语言编译系统总是将实型常量处理成双精度的 1 指数形式适用于表示较大或较小的数 2 e之前必须有数字 且e后面的指数必须为整数 如 128e2或128E2都代表128 3 如果实型常量后缀是 f 或 F 则被当成float型 否则 C语言编译系统总是将实型常量处理成双精度的 2 10 字符常量字符常量 单引号单引号括起来的括起来的单个字符单个字符 如 a 如 a 在计算机的存储器中 字符型常量的值为该字 符所对应的 在计算机的存储器中 字符型常量的值为该字 符所对应的ASCII码值ASCII码值 例例 A 65A 65 a 97a 97 0 480 48 35 例例 A 65A 65 a 97a 97 0 480 48 整数在计算机存储器中存放的是其整数在计算机存储器中存放的是其值值 例 0 0 5 5 125 125 例 0 0 5 5 125 125 区别区别字符 0 和数字 0 字符 0 和数字 0 字符 0 在存储器中的值为 字符 0 在存储器中的值为 数字0在存储器中的值为 数字0在存储器中的值为 48 0 例 例 例 例 void main void main char c1char c1 c2c2 c1 a c1 a c2 b c2 b 323222223232 程序执行开始点 定义变量c1 c2 对c1 c2赋值 字符常量可以象整数一样参与运算 字符常量可以象整数一样参与运算 36 c1 c1 c1 c1 3232 c2 c2 c2 c2 3232 printfprintf c c c c c1c1 c2 c2 c1c29798 对c1 c2计算 6566 输出c1 c2 A B 7 转义字符转义字符 C C 语言中语言中 一些特殊的字符没有字符常量一些特殊的字符没有字符常量 例单引号例单引号 换行符等换行符等 C C 语言中语言中 一些特殊的字符没有字符常量一些特殊的字符没有字符常量 例单引号例单引号 换行符等换行符等 因此因此 通常使用通常使用因此因此 通常使用通常使用转义字符转义字符转义字符转义字符表示表示ASCIIASCII码字码字表示表示ASCIIASCII码字码字 符集中不可打印的控制字符和特定功能的符集中不可打印的控制字符和特定功能的符集中不可打印的控制字符和特定功能的符集中不可打印的控制字符和特定功能的 37 符集中不可打印的控制字符和特定功能的符集中不可打印的控制字符和特定功能的符集中不可打印的控制字符和特定功能的符集中不可打印的控制字符和特定功能的 字符字符 字符字符 转义字符转义字符是一组以是一组以转义字符转义字符是一组以是一组以 开头的特殊字符序开头的特殊字符序 列列 用来用来表示任何可表示任何可以输出的字母字符以输出的字母字符 专用字符专用字符 控制字符控制字符 图形字符图形字符 开头的特殊字符序开头的特殊字符序 列列 用来用来表示任何可表示任何可以输出的字母字符以输出的字母字符 专用字符专用字符 控制字符控制字符 图形字符图形字符 常用转义字符表常用转义字符表 转义字符 功能转义字符 功能 a响铃 发出系统警告声音响铃 发出系统警告声音 n换行符 使屏幕光标移到屏幕下一行开头换行符 使屏幕光标移到屏幕下一行开头 回车回车使屏幕光标移到屏幕当前行开头使屏幕光标移到屏幕当前行开头不换行不换行 r回车回车 使屏幕光标移到屏幕当前行开头使屏幕光标移到屏幕当前行开头 不换行不换行 t制表符 横向跳格 使屏幕光标移到下一制表位制表符 横向跳格 使屏幕光标移到下一制表位 反斜杠字符反斜杠字符 单引号字符单引号字符 双引号字符双引号字符 功能 使用转义字符控制数据的输出 include void main void main char c1 A char c1 A c2 N c2 N printfprintf a a tbctbc tABCtABC n n f f 想一想 本程序的 执行结果是什么 想一想 本程序的 执行结果是什么 39 printfprintf xyz xyz t ct c c c c1c1 c2 c2 a xyzA N Ibc IABC 双引号双引号双引号双引号括起来的括起来的括起来的括起来的字符序列字符序列字符序列字符序列 如 如 goodbye goodbye 0 0 等等 如 如 goodbye goodbye 0 0 等等 字符串字符串以字符以字符字符串字符串以字符以字符数组数组数组数组形式存储在计算机中 存储时串尾被形式存储在计算机中 存储时串尾被 自动加上字符自动加上字符 形式存储在计算机中 存储时串尾被形式存储在计算机中 存储时串尾被 自动加上字符自动加上字符 0 0 0 0 以标志字符串的结束 以标志字符串的结束 例例 以标志字符串的结束 以标志字符串的结束 例例 字符串常量字符串常量 G G O O O O D D B B Y Y E E 0 0 40 G G O O O O D D B B Y Y E E 0 0 字符常量与字符串常量的字符常量与字符串常量的字符常量与字符串常量的字符常量与字符串常量的区别区别区别区别 字符常量是单个字符 而字符串常量则可以包含零字符常量是单个字符 而字符串常量则可以包含零 个或多个字符 个或多个字符 字符常量是单个字符 而字符串常量则可以包含零字符常量是单个字符 而字符串常量则可以包含零 个或多个字符 个或多个字符 A A 与与 A A 的区别 的区别 A A 与与 A A 的区别 的区别 6565 A A 6565 0 0 符号常量符号常量 用一个用一个用一个用一个标识符标识符标识符标识符代表一个常量代表一个常量 叫符号常量叫符号常量 代表一个常量代表一个常量 叫符号常量叫符号常量 符号常量的定义语句格式为 符号常量的定义语句格式为 符号常量的定义语句格式为 符号常量的定义语句格式为 define define符号常量名符号常量名常量常量 宏定义宏定义 define define符号常量名符号常量名常量常量 宏定义宏定义 include include 用来标识符号常量名 变量名 用来标识符号常量名 变量名 数组名 函数名 文件名的有效数组名 函数名 文件名的有效 字符序列称为标识符 字符序列称为标识符 用来标识符号常量名 变量名 用来标识符号常量名 变量名 数组名 函数名 文件名的有效数组名 函数名 文件名的有效 字符序列称为标识符 字符序列称为标识符 41 define PI 3 14159 define PI 3 14159 定义PI代表串3 14159 定义PI代表串3 14159 void main void main float r float r s s scanfscanf f f 代表一个常量代表一个常量 叫符号常量叫符号常量 符号常量的定义语句格式为 符号常量的定义语句格式为 符号常量的定义语句格式为 符号常量的定义语句格式为 define define符号常量名符号常量名常量常量 宏定义宏定义 define define符号常量名符号常量名常量常量 宏定义宏定义 include include 用来标识符号常量名 变量名 用来标识符号常量名 变量名 数组名 函数名 文件名的有效数组名 函数名 文件名的有效 字符序列称为标识符 字符序列称为标识符 用来标识符号常量名 变量名 用来标识符号常量名 变量名 数组名 函数名 文件名的有效数组名 函数名 文件名的有效 字符序列称为标识符 字符序列称为标识符 42 define PI 3 14159 define PI 3 14159 定义PI代表串3 14159 定义PI代表串3 14159 void main void main float r float r s s scanfscanf f f int a 5 b 5 c 5 char c a 变量赋值变量赋值 int i 48 int i i 10 注意 注意 int a b c 10 int a b c 10 错误 错误 int a b c a b c 10 int a b c a b c 10 正确 正确 用赋值语句和初始化的方法都能使变量获得一个值 区别 用赋值语句和初始化的方法都能使变量获得一个值 区别 赋值语句在程序运行阶段将值赋给变量赋值语句在程序运行阶段将值赋给变量 初始化在编译时将变量的值存放到系统为变量分配的内 存单元中 初始化在编译时将变量的值存放到系统为变量分配的内 存单元中 9 2 3 2 3 运算符与表达式运算符与表达式运算符与表达式运算符与表达式 49 运算符与表达式运算符与表达式运算符与表达式运算符与表达式 计算机实现操作有两种方式 计算机实现操作有两种方式 运算 数学中所规定的各种基本运算 由运算 数学中所规定的各种基本运算 由运算 数学中所规定的各种基本运算 由运算 数学中所规定的各种基本运算 由运算符运算符运算符运算符来来 实现 实现 来来 实现 实现 函数 对于复杂的运算 需要编制函数 对于复杂的运算 需要编制函数 对于复杂的运算 需要编制函数 对于复杂的运算 需要编制子函数子函数子函数子函数来实现 来实现 来实现 来实现 标准函数标准函数标准函数标准函数 库函数库函数库函数库函数 50 标准函数标准函数标准函数标准函数 库函数库函数库函数库函数 用户自定义函数 用户自定义函数 用户自定义函数 用户自定义函数 运算符与表达式运算符与表达式运算符与表达式运算符与表达式 1 1 算术运算算术运算符和符和算术表达式算术表达式1 1 算术运算算术运算符和符和算术表达式算术表达式 51 2 2 赋值运算符和赋值赋值运算符和赋值表达式表达式2 2 赋值运算符和赋值赋值运算符和赋值表达式表达式 加法运算或正号运算符加法运算或正号运算符 减法运算或负号运算符减法运算或负号运算符 乘法运算符乘法运算符 加法运算或正号运算符加法运算或正号运算符 减法运算或负号运算符减法运算或负号运算符 乘法运算符乘法运算符 算术运算符算术运算符算术运算符算术运算符 52 除法运算符除法运算符 求余运算符 或称模运算符求余运算符 或称模运算符 除法运算符除法运算符 求余运算符 或称模运算符求余运算符 或称模运算符 完成现实世界的算术运算完成现实世界的算术运算完成现实世界的算术运算完成现实世界的算术运算 关于求余运算关于求余运算关于求余运算关于求余运算 求余求余运算运算A A 求余求余运算运算A A B B表示 求表示 求A A 除以除以 B B 的的B B表示 求表示 求A A 除以除以 B B 的的余数余数余数余数 求求余运算要求余运算要求求求余运算要求余运算要求 两侧都是两侧都是两侧都是两侧都是整型整型整型整型数据数据 数据数据 例例例例 8 8 8 8 5 5 的运算结果 的运算结果 8 85 5 的运算结果 的运算结果 8 8 5 5 的运算结果 的运算结果 5 5 的运算结果 的运算结果 3 31 1 53 在在 C C 程序中 两个整数相除程序中 两个整数相除 整除整除 会自动舍去小数部分 会自动舍去小数部分在在 C C 程序中 两个整数相除程序中 两个整数相除 整除整除 会自动舍去小数部分 会自动舍去小数部分 例例例例 5 65 6 5 65 6 2 2 8 438 432 2 8 438 43 5 5 5 5 如果参加运算的两个数中有一个数为实数 则结果是实数如果参加运算的两个数中有一个数为实数 则结果是实数 实数除法实数除法 如果参加运算的两个数中有一个数为实数 则结果是实数如果参加运算的两个数中有一个数为实数 则结果是实数 实数除法实数除法 2 8000002 8000001 6860001 686000 算术表达式 算术表达式 算术表达式 算术表达式 算术表达式算术表达式算术表达式算术表达式 用算术运算符和括号将 用算术运算符和括号将运算对象连运算对象连 接接起来的式子称为算术表达式起来的式子称为算术表达式 用算术运算符和括号将 用算术运算符和括号将运算对象连运算对象连 接接起来的式子称为算术表达式起来的式子称为算术表达式 运算符运算符有优先级和结合性 有优先级和结合性 运算符运算符有优先级和结合性 有优先级和结合性 计算表达式的值时计算表达式的值时 按照优先级的高低依次按照优先级的高低依次计算表达式的值时计算表达式的值时 按照优先级的高低依次按照优先级的高低依次 54 计算表达式的值时计算表达式的值时 按照优先级的高低依次按照优先级的高低依次计算表达式的值时计算表达式的值时 按照优先级的高低依次按照优先级的高低依次 计算 计算 计算 计算 如果运算符优先级相同 则按规定的结合方如果运算符优先级相同 则按规定的结合方 向进行 向进行 如果运算符优先级相同 则按规定的结合方如果运算符优先级相同 则按规定的结合方 向进行 向进行 算术运算符的结合性算术运算符的结合性算术运算符的结合性算术运算符的结合性 从左到右从左到右 10 1 1 求三个数的算术平均值求三个数的算术平均值 代数表达式 代数表达式 求三个数的算术平均值求三个数的算术平均值 代数表达式 代数表达式 aveave 算术表达式 算术表达式 算术表达式 算术表达式 aveave a b c 3 a b c 3 2 2 根据三角形三边计算三角形面积根据三角形三边计算三角形面积 代数表达式 代数表达式 根据三角形三边计算三角形面积根据三角形三边计算三角形面积 代数表达式 代数表达式 3 cba csbsass 算术表算术表达达算术表算术表达达 55 算术表达式 算术表达式 算术表达式 算术表达式 sqrtsqrt s s s s a sa s b sb s c c 3 3 根据半径计算圆的周长根据半径计算圆的周长 代数表达式 代数表达式 根据半径计算圆的周长根据半径计算圆的周长 代数表达式 代数表达式 s 2 rs 2 r 算术表达式 算术表达式 算术表达式 算术表达式 s 2 3 14159 rs 2 3 14159 r csbsass 达达式式达达式式 练习 练习 1 下列运算符的操作数不能是float型的运算符是 A B C D 1 下列运算符的操作数不能是float型的运算符是 A B C D 正确答案正确答案 正确答案正确答案 B B 56 2 执行以下程序段 c的值是 int a 1 b 2 c c a b A 0 B 1 2C 0 5 D 1 2 执行以下程序段 c的值是 int a 1 b 2 c c a b A 0 B 1 2C 0 5 D 1 正确答案正确答案 正确答案正确答案 A A 算术运算符的算术运算符的优先级优先级算术运算符的算术运算符的优先级优先级 负号运算符负号运算符 无括号时我最高无括号时我最高 括号括号 最优先 最优先 57 加减运算符加减运算符 最低 最低 第二级 第二级 负号运算符负号运算符 自增自增自增自增 和自减运算和自减运算和自减运算和自减运算 运算符的作用 是使变量的值增运算符的作用 是使变量的值增 1 1 运算符的作用 是使变量的值增运算符的作用 是使变量的值增 1 1 原始值原始值原始值原始值 1 1 变量变量变量变量 58 运算符的作用 是使变量的值减运算符的作用 是使变量的值减1 1 运算符的作用 是使变量的值减运算符的作用 是使变量的值减1 1 变量变量变量变量 原始值原始值原始值原始值 1 1 变量变量变量变量 自增自增自增自增 和自减运算和自减运算和自减运算和自减运算 自增和自减运算只能应用于整型变量和指针型变自增和自减运算只能应用于整型变量和指针型变 量量 自增和自减运算只能应用于整型变量和指针型变自增和自减运算只能应用于整型变量和指针型变 量量 和和 可以写在变量的左侧或右侧 而且其可以写在变量的左侧或右侧 而且其 和和 可以写在变量的左侧或右侧 而且其可以写在变量的左侧或右侧 而且其 意义不同意义不同 意义不同意义不同 59 意义不同意义不同 意义不同意义不同 变量名 和 变量名 和 变量名 变量名 变量名 和 变量名 和 变量名 变量名 先做运算 后取值先做运算 后取值先做运算 后取值先做运算 后取值 变量名变量名 和 变量名和 变量名 变量名变量名 和 变量名和 变量名 先先取值 后做取值 后做运算运算先先取值 后做取值 后做运算运算 自增自增自增自增 和自减运算和自减运算和自减运算和自减运算 举例举例举例举例 N I N I 变量变量N N0 0 1010 变量变量I I 变量变量N N 变量变量I I 1111 1010 60 N IN I 变量变量N N 0 0 1010 变量变量I I 变量变量N N 变量变量I I 1111 1111 11 练习练习练习练习 已知已知已知已知 i i 7 7 j ji i j j i i 7 78 8 6

温馨提示

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

评论

0/150

提交评论