




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一讲c语言基础知识 秦晓芳湖北水利水电职业技术学院 C程序的结构特点 C语言程序设计 VisualC 6 0环境 任何函数 包括主函数main 都是由函数说明和函数体两部分组成 其一般结构如下 函数类型 函数名 函数参数表 函数说明部分 说明语句部分 函数体部分 执行语句部分 C程序的结构特点 C语言程序设计 VisualC 6 0环境 1 C程序是由函数构成的 2 函数由函数说明和函数体组成 3 C程序总是从main函数开始执行 4 C程序语句和数据定义必须以分号 结束 5 C语言严格区分大小写 6 C语言数据输入和输出是由库函数实现的 7 C语言用 注释内容 形式进行程序注释 一个C源程序可由一个main函数和若干个其他函数组成 其中必须有一个且只能有一个main函数 函数说明部分包括函数名 函数返回值类型 函数的形式参数 形参 名 形式参数类型 函数体即函数说明部分下面的用一对大括号括起来的部分 main函数始终是C程序执行时入口处 C语言中 分号是程序语句的结束标志 也是C语句的必要组成部分 如变量a和变量A系统认定为两个不同的变量 C语言本身没有输入输出语句 输入和输入操作是由库函数scanf和printf等函数来实现的 在 和 之间的所有字符都为注释符 C系统不对注释符进行编译 C语言程序设计 VisualC 6 0环境 2C语言的词法 1C语言的字符集 C语言的词法 1C语言的字符集 C语言程序设计 VisualC 6 0环境 C语言的字符集是由ASCII字符集组成 1 26个小写字母 a z 2 26个大写字母 A Z 3 10个数字 0 9 4 其他符号 空格 2C语言的词法 C语言程序设计 VisualC 6 0环境 C语言使用一组字符来构造具有特殊意义的符号 我们称之为词法符号 主要有关键字 标识符 运算符 分隔符 常量及注释符等 1 关键字 关键字是系统预定义的词法符号 具有特定的含义 ANSIC规定有32个关键字 C 又补充了29个关键字 C和C 均不允许对关键字重新定义 即程序员不能用这样关键字再定义其他含义 关键字举例 intcharfloatlongifelseforwhilesizeofstaticstruct 注释符前面已经介绍 运算符是对数据进行某种操作的单词 是系统预定义的函数 具体内容将在第2章详细介绍 常量是程序中由书写形式决定类型和值的数据 C语言常量有数字常量 字符常量和字符串常量 将在第2章中做详细介绍 2C语言的词法 C语言程序设计 VisualC 6 0环境 2 标识符3 分隔符4 其他 标识符是指用来标识程序中用到的变量名 函数名 类型名 数组名 文件名以及符号常量名的有效字符序列 C语言标识符命名必须符合语法规定 标识符是以字母或下划线开始 由字母 数字和下划线组成的符号串 分隔符是程序中的标点符号 用来分隔单词或程序正文 1 空格 作为单词之间的分隔符 2 逗号 作为变量之间或函数的多个参数之间的分隔符 3 冒号 作为语句标号与语句间的分隔符以及switch语句中case与语句序列之间的分隔符 4 大括号 作为函数体 复合语句等定界 数据类型及表达式 C语言程序设计 VisualC 6 0环境 2C语言的数据类型 3运算符及表达式 1C语言各种运算符和表达式的应用 C语言程序设计 VisualC 6 0环境 1C语言各种运算符和表达式的应用 2 C程序实例 2 1 C程序实例 1 例1 关于常量 变量及数据类型说明的程序实例 程序名为l2 1 cpp include stdio h main inta 3 定义整型变量a并赋予常量值3 shortr 6 定义短整型变量r并赋予常量值6 charc a 定义字符变量c并赋予字符常量值 a floatpi 3 14 定义单精度实型变量pi并赋予实型常量值3 14 doubles 定义双精度实型变量s s pi r r 将pi r r值赋给s printf int d short d char d float d double d n sizeof a sizeof r sizeof c sizeof pi sizeof s 输出各变量占内存的字节数 printf a d r d c c pi f s lf n a r c pi s 输出各变量的值 C程序实例 1 C语言程序设计 VisualC 6 0环境 1 C程序实例1 程序结果 例1 程序结果及分析 返回例题 结果分析 变量可以被定义成不同的数据类型并赋值 不同类型的数据在内存中所占的字节数不同 通过sizeof 求得数据宽度 短整型 整型 字符型 单精度实型 双精度实型在内存中分别占2字节 4字节 1字节 4字节和8字节 同时 这些数据在输出时所使用的输出格式控制符也不相同 分别为 d d c f和 lf形式 由此可见 数据表现为常量或变量 数据又具有不同的数据类型 不同数据类型的数据存储格式不同 数据的输出格式控制也不相同 注意 在TruboC环境下 整型数据存储时在内存中占2字节 C程序实例 2 C语言程序设计 VisualC 6 0环境 2 C程序实例2 例2 关于运算符和表达式的程序实例 程序名为l2 2 cpp include stdio h main inti 3 a 5 b 7 c d 定义变量并赋初值 printf i d n i 输出i 的值 printf i d n i 输出i的值 c a b a b 计算表达式c a b a b printf c d n c 输出c的值 d a b 输出d的值 程序结果 例2 程序结果及分析 返回例题 结果分析 由结果i 3i 4可知printf i d n i 中i 的值仍然为3 而i的值由3增1后变为4 理解自增运算符 的运算方式 c a b a b 语句中包括了关系运算符 条件运算符 赋值运算符 经过各种运算处理后c的值为7 d a b语句中包括了赋值运算符 逗号运算符 经过各种运算处理后d的值为7 C语言的数据类型 C语言程序设计 VisualC 6 0环境 单精度实型 float 双精度实型 double 整型 int 字符型 char 枚举类型 数组类型 结构体类型 共用体类型 实型 基本类型 构造类型 空类型 void 指针类型 数据类型 基本数据类型 C语言程序设计 VisualC 6 0环境 1 整型数据 2 实型数据 3 字符型数据 基本数据类型 一 C语言程序设计 VisualC 6 0环境 1 整型数据整型数据分为一般整型 int 短整型 short 和长整型 long 并且每一种类型又分为带符号 signed 和无符号 unsigned 两种类型 整型数据的特性见下表 返回 基本数据类型 二 C语言程序设计 VisualC 6 0环境 2 实型数据实型数据分为单精度实型 float 双精度实型 double 和长双精度实型 longdouble 具体情况见下表所示 返回 基本数据类型 三 C语言程序设计 VisualC 6 0环境 3 字符型数据字符型数据分为一般字符型 char 带符号字符型 signedchar 和无符号字符型 unsignedchar 三种类型 具体情况见下表所示 返回 常量 一 C语言程序设计 VisualC 6 0环境 1 整型常量 1 十进制整型常量 以数字1 9开头 其他位以数字0 9构成十进制整型常量 如12 38等 2 八进制整型常量 以数字0开头 其他位以数字0 7构成八进制整型常如012 037等 在C语言中 整型常量有十进制 八进制 十六进制三种进制表示方法 并且各种数制均可有正 负 之分 正数的 可省略 3 十六进制整型常量 以0X或0 x开头 数字0和大写或小写字母x 其他位以数字0 9或字母a f或A F构成十六进制整型常量 如0 x12 0Xa9等 如果在整型常量加上后缀L或l表示该常量为长整型常量 加上后缀U或u表示无符号整型常量 返回 常量 二 C语言程序设计 VisualC 6 0环境 2 实型常量 1 小数表示法 它是由数的符号 数字和小数点组成的实型常量 注意 必须有小数点 如 2 5 3 0 4 34等都是合法的实型小数形式 2 科学计数法 科学计数法也称指数法 它是由数的符号 尾数 整数或小数 阶码标示 E或e 阶符和整数阶码组成的实型常量 尾数不可缺省 阶码必须为整数 如 2 5E 3 3e5 34E 3等都是合法的指数形式 如 2 5E 3表示 2 5 10 3 实型常量又称浮型常量 实型常量由整数部分和小数部分组成 有两种表示形式 小数表示法和科学计数法 它只能用十进制表示 实型常量分为单精度 双精度和长双精度三种类型 实型常量如果没有任何说明 则表示为双精度常量 实型常量后加上F或f则表示单精度常量 实型常量后加上L或l则表示长双精度常量 返回 常量 三 C语言程序设计 VisualC 6 0环境 3 字符型常量 1 一般字符常量 一般字符常量是用单引号括起来的一个普通字符 其值为该字符的ASCII代码值 ASCII编码表见附录1 如 a A 0 等都是一般字符常量 但是 a 和 A 是不同的字符常量 a 的值为97 而 A 的值为65 字符型常量是由一对单引号括起来的一个字符 它分为一般字符常量和转义字符 一个字符常量在计算机的存储中占据一个字节 2 转义字符 C语言允许用一种特殊形式的字符常量 它是以反斜杠 开头的特定字符序列 表示ASCII字符集中控制字符 某些用于功能定义的字符和其他字符 如 n 表示回车换行符 表示字符 常用的转义字符见1 4 1中所叙 如果在整型常量加上后缀L或l表示该常量为长整型常量 加上后缀U或u表示无符号整型常量 返回 4 存放的变量不同 字符常量可存放在字符变量或整型变量中 而字符串常量需要存放在字符数组中 字符变量和字符数组后续介绍 常量 四 C语言程序设计 VisualC 6 0环境 4 字符串常量 字符串常量也称字符串 由一对双引号括起来 的字符序列 字符序列中的字符个数称字符串长度 没有字符的字符串称为空串 如 a 12 3 等都是合法的字符串常量 字符串常量中的字符是连续存储的 并在最后自动加上字符 0 空字符 该字符在ASCII码值为0 也称NULL字符 作为字符串结束标志 如字符串 a 在计算机内存中占两个连续单元 存储内容为字符 a 和 0 对于字符串常量和字符常量的区别是十分显著的 主要表现在以下4个方面 1 表示形式不同 字符常量以单引号表示 而字符串常量以双引号表示 2 存储所占的内存空间不同 字符常量在内存中只用1个字节存放该字符的ASCII码值 字符串常量在内存中 除了存储串中的有效字符的ASCII码值外 系统还自动在串后加上1个字节 存放字符串结束标志 0 返回 3 允许的操作不同 字符常量允许在一定范围内与整数进行加法或减法运算 如 a 32合法 字符串常量不允许上述运算 如 a 32非法的 1 数据类型 C语言的合法数据类型 如例中的int short char float double等 2 变量名表 变量名是C语言合法的标识符 变量名表可以包含多个变量名 彼此之间使用逗号分开 表示同时定义若干个具有相同数据类型的变量 如 floata b 3 变量定义语句可以出现在变量使用之前的任何位置 程序设计时不违背 先定义 后使用 的原则即可 变量及类型定义 C语言程序设计 VisualC 6 0环境 1 变量定义 变量定义一般格式 数据类型变量名表 如 inta 对变量定义说明如下 变量是指在程序执行过程中其值可以被改变的量 变量有三个基本要素 变量名 变量数据类型和变量的值 在C语言中 任何一个变量在使用之前都必须首先定义它的名字 并说明它的数据类型 也就是说 变量使用前必须先定义 即指定变量名 说明变量数据类型 变量定义的实质是按照变量说明的数据类型为变量分配相应空间的存储单元 在该存储单元中存放变量的值 C语言中 变量使用时遵循 先定义 后使用 的原则 变量及类型定义 C语言程序设计 VisualC 6 0环境 2 变量初始化及赋值 在 例2 1 中 s pi r r 语句是通过赋值运算符 将 pi r r 的值赋给变量s 即该语句实现了给变量s的赋值 所以 变量值可以通过初始化取得 也可以在定义后 通过给变量赋值的方法取得 在 例2 1 中 inta 3 shortr 6 charc a floatpi 3 14 的 是赋值运算符 用来给变量赋值 所以 以上四条语句都是在定义变量的同时给变量赋了值 称为变量的初始化 变量初始化是指定义变量同时 给变量一个初始值 运算符和表达式 C语言程序设计 VisualC 6 0环境 这里介绍运算符和表达式的概念以及运算符的优先级和结合性问题 1 运算符 C语言提供了13类 共计34种运算符 据运算符的运算对象的个数 C语言的运算符分为单目运算符 双目运算符和三目运算符 如单目 双目 三目 等 运算符具体分类情况见下表所示 运算符和表达式 C语言程序设计 VisualC 6 0环境 2 表达式3 运算符的优先级4 运算符的结合性 用运算符将操作对象连接起来 符合C语法规则的式子称为表达式 表达式因运算符种类也可分为各种表达式 如算术表达式 关系表达式 赋值表达式等 每一个表达式也都具有一定的值 如 a b c 运算符的优先级是指不同的运算符在表达式中进行运算的先后次序 如 算术运算符 的优先级高于 的优先级 在 例2 2 中 c a b a b 语句中运算符按优先级由高到低排列顺序为 当一个运算对象的两侧的运算符的优先级相同时 运算的结合方向称为结合性 运算符的结合性分为左结合和右结合两种 在C语言中 运算对象先与左面的运算符结合称左结合 如 的结合方向为自左向右 运算对象先与右面的运算符结合称右结合 如单目运算符 的结合方向是自右向左 算术运算符及算术表达式 C语言程序设计 VisualC 6 0环境 算术运算符分基本算术运算符和自增 自减运算符 1 基本算术运算符 基本算术运算符包括加法 减法 乘法 除法 和求余 后三种运算符优先级高于前两种 它们都是左结合性 对于运算符 和 有如下说明 1 若除法运算符的运算对象均为整型数据 则结果为其商的整数部分 舍去小数部分 如13 7的结果为1 若运算对象中有一个为负值 则舍入的方向是不固定的 2 求余运算符的运算对象必须是整型数据 运算结果的符号与被除数的符号相同 如 13 7运算结果为 6 13 7运算结果为6 13 7运算结果为 6 算术运算符及算术表达式 C语言程序设计 VisualC 6 0环境 2 自增 自减运算符 自增 和自减 运算符是单目运算符 其功能是使运算对象 变量 的值增1或减1 它们既可以作前缀运算符 位于运算对象的前面 如 i i 也可以作后缀运算符 位于运算对象的后面 如i i 前缀和后缀运算的数据处理方法有明显的差异 对于前缀形式表示在用该表达式之前先使变量值增 减 1 对于后缀形式表示在用该表达式的值之后使n的值增 减 1 j j在使用j之前 先使j的值加 减 1 j j 在使用j之后 使j的值加 减 1 在 例2 2 中 inti 3 printf i d n i i 是后缀形式 则先计算表达式的值 其值为当前i值 因此 输出i 3 然后使i自增1 i值为4 所以 语句 printf i d n i 输出的结果是i 4 自增或自减运算符在使用时 需要注意以下几点 1 运算符的操作对象 只能是变量 而不能作用于常量或表达式 运算符的优先级高于基本算术运算符 结合性是 自右向左 右结合 2 i 遵照右结合原则 它相当于 i 而不相当于 i 形式 关系运算符及关系表达式 C语言程序设计 VisualC 6 0环境 关系运算符是对两个操作对象进行大小比较的运算符 是逻辑运算的一种简单形式 用关系运算符将两个表达式连接起来的符合C语法规则的式子称为关系表达式 关系表达式的运算结果是一个逻辑值 即 真 或 假 在C语言中关系运算结果为真 以整数 1 表示 结果为假 以整数 0 表示 C语言中的关系运算符共有六种 它们是 大于小于大于等于小于等于不等于等于 关系运算符的优先级低于算术运算符的优先级 且等于 和不等于 的优先级低于另外四种运算符的优先级 关系运算符的结合性是左结合性 在 例2 实例 inta 5 b 7 和 c a b a b d ab值为0 a b值为1 逻辑运算符及逻辑表达式 C语言程序设计 VisualC 6 0环境 参与逻辑运算的逻辑量 真 或 假 的判断原则是 以0代表 假 以非0代表 真 即将一个非零的数值认作 真 将零值认作 假 逻辑运算的结果逻辑值只有两个 真 和 假 它们分别用 1 和 0 表示 C语言中提供的三种逻辑运算符及运算法则见下表所示 逻辑运算符中 先计算 a b 为真值为1 再计算 1 i 两个操作对象均非零为 真 故结果为 真 值为1 再将该值1赋给变量d 在处理逻辑表达式时应注意以下几点 逻辑运算符及逻辑表达式 C语言程序设计 VisualC 6 0环境 在处理逻辑表达式时应注意以下两点 1 C语言编译系统在给出逻辑运算结果时 以0代表 假 以1代表 真 但在判断一个逻辑量 真假 时 以非0表示 真 以0表示 假 例如 当a 5 4 b 5 c a 时 a b c的值均为 假 即为0 a c的值为1 因为x和y均为非0 2 在进行逻辑运算时 逻辑表达式运算到其值完全确定时为止 例如 运算表达式 a 3 a 5 a 6 时 由于a 3之后运算a 5的值为假 所以就不再进行a 6的运算了 因此a的值仍为3 而整个逻辑表达式的值为0 使用条件表达式时 应注意以下两点 1 条件运算符优先级高于赋值运算符 如a b 0 b b 相当于y b 0 b b 功能是将b的绝对值赋给a 2 条件运算符结合性是右结合 如b 0 1 b0 1 b 0 1 0 条件运算符及条件表达式 C语言程序设计 VisualC 6 0环境 条件运算符是 是C语言中唯一的三目运算符 用条件运算符将两个表达式连接起来的符合C语法规则的式子称为条件表达式 条件表达式的一般形式 表达式1 表达式2 表达式3 操作过程 先计算表达式1的值 若为 真 则计算表达式2的值 整个条件表达式的值就是表达式2的值 若表达式1的值为 假 则计算表达式3 整个条件表达式的值就是表达式3的值 条件运算符优先级低于逻辑运算符 其结合性是右结合 在 例2 2 程序实例中 a 5 b 7 c a b a b 先计算a b值为假 则条件表达式值取b的值为7 因此 c值为7 C语言允许在赋值运算符 之前加上其他运算符 构成复合运算符 在 之前加上算术运算符 则构成算术复合赋值运算符 在 之前加上位运算符 则构成位复合赋值运算符 象 等 使用如 a b c等价于a a b c a b c等价于a a b c 赋值运算符及赋值表达式 C语言程序设计 VisualC 6 0环境 赋值运算符包括简单赋值运算符和复合赋值运算符 复合赋值运算符又包括算术复合赋值运算和位复合赋值运算符 位运算在第8章介绍 由赋值运算符将操作对象连接起来符合C语法规则的式子称为赋值表达式 1 简单赋值运算符及其表达式2 简单赋值运算符及其表达式 赋值运算符是 其作用是将赋值运算符右侧的表达式的值赋给其左侧的变量 在 例2 2 程序实例中 i 3 a 5 b 7 c a b a b d ab a b 相当于a b c a b a b 值得注意的是 赋值运算符运算对象中的左侧对象一定是变量 如 a b c 5 相当于a b c 5 由于表达式中出现将数值5赋给b c表达式 因此 该表达式是非法的 2 3 7逗号运算符及逗号表达式 C语言程序设计 VisualC 6 0环境 逗号运算符是 它的优先级低于赋值运算符 是左结合性 用逗号运算符将若干个表达式连接成一个逗号表达式 一般形式如下 表达式1 表达式2 表达式n 逗号表达式的操作过程是 先计算表达式1 再计算表达式2 最后再计算机表达式n 而逗号表达式的值为最右边表达式n的值 如 a 4 5 b 6 4 34 5 20 1 a b 该逗号运算表达式 它由四个表达式结合而成 从左向右依次计算 逗号表达式的值为a b的值 即 1 9 在 例2 程序实例中 d c d c 是将逗号表达式c d c的值赋给变量d 值得注意的是 逗号运算符是C语言所有运算符中优先级最低 如 a 10 20 不同于a 10 20 前者a的值为10 表达式的值为20 后者a的值为20 表达式的值也为20 求字节运算符 C语言程序设计 VisualC 6 0环境 C求字节运算符是sizeof 它用于计算变量或某种类型的量在内存中所占的字节数 用法有两种 1 sizeof表达式2 sizeof 类型名 功能是计算出表达式计算结果所占用内存的字节数 如 在 例2 1 程序实例中 printf int d short d char d float d double d n sizeof a sizeof r sizeof c sizeof pi sizeof s 就是输出变量a r c pi s所占的内存字节数 功能是计算出某种类型的量存储时所占用内存的字节数 如 sizeof float 计算单精度实型数据在内存中所占的字节数 结果为4 强制类型转换是指通过强制类型转换运算符 将表达式的类型强制转换为所指定的类型 强制类型转换的一般形式为 数据类型 操作数或数据类型 操作数 功能是将操作数的值强制转换成指定的数据类型 如 int 120 4 7 是将120 4 7值转换成int型数据 表达式的值为842 值得注意的是 数据类型转换是对操作数的值进行转换 并不改变操作数中变量本身的数据类型 类型转换 C语言程序设计 VisualC 6 0环境 整型 单精度 双精度及字符型数据可以进行混合运算 当表达式中的数据类型不一致时 首先转换为同一类型 然后再进行运算 C语言有两种方法实现类型转换 一是自动类型转换 另一是强制类型转换 1 自动类型转换2 强制类型转换 C编译系统自动完成 转换方向见右图所示 类型转换过程中 当数据类型由低向高转换时 数据精度不会受到损失 而数据类型由高到低的转换 此时 数据精度会受到损失 C语言程序设计 VisualC 6 0环境 2C语言字符数据输入 输出 1C语言格式输入 输出 C语言数据输入和输出 1C语言格式输入 输出 C语言程序设计 VisualC 6 0环境 标准函数库中定义了一些输入输出函数 程序在调用这些库函数时 必须在源文件的开始处加上头文件的 包含命令 格式如下 include或 include 库函数头文件名 1 格式输出函数printf printf 函数的作用 向计算机系统默
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 家访工作计划怎么写范文大全(5篇)
- 固态废旧物合同范本
- 老师新学期个人工作计划表怎么写(5篇)
- 全球旅游市场调研报告
- 2025年国企煤矿考试题及答案
- 2025年圆形推理题库及答案
- 2025年上半年教师资格证幼儿综合素质真题及答案
- 2025年山西省人民法院聘用书记员考试试题及答案
- 2025年山东省潍坊市事业单位工勤技能考试题库(含答案)
- 传统制造企业新质生产力
- 燃气有机热载体锅炉安装使用说明书
- 艾滋病梅毒丙肝检测与解释
- 400T三一履带吊性能表
- GB/T 22076-2008气动圆柱形快换接头插头连接尺寸、技术要求、应用指南和试验
- JJG(新) 32 2022 工作用数字温度计检定规程
- 公共伦理学电子教案
- 埃美柯阀门检验报告汇总-391黄铜调节阀
- 500kV变电站屋外架构组立吊装工程施工安全技术交底
- 三字经全文带拼音注释打印版
- (完整版)污水处理站施工方案
- 小型展览馆建筑设计精品ppt
评论
0/150
提交评论