第02章C语言基本数据类型与表达式 全国计算机等级考试二级 C语言程序设计培训_第1页
第02章C语言基本数据类型与表达式 全国计算机等级考试二级 C语言程序设计培训_第2页
第02章C语言基本数据类型与表达式 全国计算机等级考试二级 C语言程序设计培训_第3页
第02章C语言基本数据类型与表达式 全国计算机等级考试二级 C语言程序设计培训_第4页
第02章C语言基本数据类型与表达式 全国计算机等级考试二级 C语言程序设计培训_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

2 1C程序的构成和格式2 2标识符 常量和变量2 3整形数据2 4实型数据2 5算术表达式2 6赋值表达式2 7自增自减运算符 第二章C程序设计的初步知识 includemain doublea b area a 1 2 将矩形的两条边分别赋给a b b 3 6 area a b printf a f b f area f n a b area 2 1简单C程序的构成和格式 计算矩形的面积并存储到变量area中 命令行 必须以 开头 行尾不能加分号 之间的stdio h是系统提供的头文件 包含输入输出函数的说明 主函数名 其后的括号不能省 C程序有且仅有一个主函数 一个程序总是从主函数开始执行 定义 说明 部分 执行部分 必须放在定义部分之后 语句数量不限 函数体 注释 C程序的每条执行语句必须以分号 结束 2 2 1标识符 概念 用来标识变量名 符号常量名 函数名 类型名 文件名等的有效字符序列 1 标识符只能由字母 数字和下划线三种字符组成 且第一个字符必须为字母或下划线 定义规则 如 1 year month student name sum0 123 a3b ca b 不合法 2 2常量 变量和标识符 2 在C语言标识符区分大小写 大小写字母被认为是两个不同的字符 因此 a和A I和i Sum和sum 分别是两个不同的标识符 C语言的标识符分以下三类 一 关键字 概念 就是具有特定含义的标识符 用户不能用来作自定义标识符 C语言中的关键字较少 由ANSI标准推荐的关键字有32个 1 与数据类型有关的 14 charintfloatdoublesignedunsignedshortlongvoidstructuniontypedefenumsizeof 3 与程序控制结构有关的 12 dowhileforifelseswitchcasedefaultgotocontinuebreakreturn 2 与存储类别有关的 autoexternregisterstatic 二 预定义标识符 概念 C语言中预先定义并具有特殊含义的标识符 库函数名和头文件中定义的标识符 C语言允许把这类标识符重定义另作他用 但这将使这些标识符失去预先定义的原意 为了避免误解 建议不要把这些预定义标识符另作它用 例如 define printf 三 用户标识符 概念 用户根据需要定义的标识符称为用户标识符 用户标识符一般用来给变量 函数 数组等命名 用户标识符除了遵守标识符的命名规则外 还要注意 见名知义 的原则 如果用户标识符与关键字相同 则在程序进行编译时系统会报错 如果与预定义标识符相同 系统不报错 但原有的预定义标识符将失去原意 国家等级考试练习 1 下列不合法的标识符是 J2 KEYDouble4d 8 2 以下叙述中错误的是 a 用户所定义的标识符允许使用关键字b 用户所定义的标识符应尽量做到 见名知义 c 用户所定义的标识符必须以字母或下划线开头d 用户所定义的标识符中 大 小写字母代表不同的标识 2 2 2常量 1 直接常量 是在程序中直接引用的数据 分为 整型常量 4 6 实型 4 6 1 23E 006 字符型 a B 字符串 abc hello 以数据的原形出现 2 符号常量 特点 在程序中不能给它赋值 概念 用标识符来表示一个数据 定义形式 define标识符常量数据 例如 definePI3 14159 在程序预处理时 凡是出现标识符PI的地方都将用数据3 14159来替换 如 2 2 3 PI就等价于2 2 3 3 14159 2 2 3变量 变量是指在程序运行中 其值可以被改变的量 基本概念 变量代表计算机内存中的某一存储空间 该存储空间中存放的数据就是变量的值 见下图 在同一程序块中 每个变量都有唯一的名字 不能被重复定义 使用变量时必须 先定义 后使用 3 a 变量名 变量值 存储在内存中 存储单元 inta b c floatx y charc1 c2 自己设定 满足标识符的规定 如 int float char 不可省 1 定义形式 类型标识符变量名1 变量名2 变量名3 例如 在说明变量的同时给变量一个初始值 变量定义 分配存储空间 变量初始化 分配存储空间的同时存入数据 inta b inta 1 b 2 不确定 格式 数据类型变量名 初值 变量名2 初值2 2 变量的初始化 例 看一看 下列的定义哪些是正确的 inta 5 b 3 inta b c 3 inta b c a b c 3 intx 2 inta 1 b 2 c floatx 2 1 y charc1 a c2 例如 定义了三个整形变量a b c并给a赋初值1 b赋初值2 相当于 intx x 2 注意变量不能连续赋初值 inta b c 3 错误 inta 3 b 3 c 3 正确 2 3整形数据 三种表现形式 十进制形式 与数学上的整数表示相同 例如 12 100 0 八进制形式 以0 数字0 开头由数字 1 7 组成 例如 十六进制形式 以0X 数字0和字母X 大小写均可 由a A f F 组成 例如 2 3 1整型常量 十六进制的数码除了数字0 9外 还使用英文字母a f 或A F 表示10 15 如 0 x1e 0Xabcdef 0 x1000但 0X2defg 0 x100L都是错误的 注意事项 八进制的数码范围为0 7 则 018 091 0A2都是错误的数据表示方法 2 3 2 整型变量的分类 整型变量的有以下四种类型 基本型 以int表示 短整型 以shortint表示 或以short表示 长整型 以longint表示 或以long表示 无符号型 其中无符号型又分为无符号整型 无符号短整型和无符号长整型 分别以unsignedintunsignedshortunsignedlong表示 2147483648 2147483647 0 4294967295 在表示长整形的常量时 应该在后面加字母后缀l 小写L 或L例如 1231 432L 0L等等 在表示无符号的整形常量时 应该在后面加字母后缀u或U如 23u 45U等 4u 错误 思考 89777LU表示什么含义 2 3 4整数在内存中存储形式 计算机最小的存储单位是 位 bit 由于只能存放0或1 所以称为二进制位 8个二进制位组成一个 字节 若干个字节组成一个 字 通常把一个字节中的最右边的一位称为最低位 最左边的称为最高位 用来存放整数的符号 因此称为符号位 若是正整数则最高位是0 负整数最高位为1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 符号位 正数 一 正整数如 短整形5在内存中的存放方式 转化为二进制数存放 原码 00000101 由于短整型占两个字节 存放方式如下 2 3 4整数在内存中存储形式 二 负整数负整数在内存中以补码的形式存放 求某个二进制补码的步骤如下 以 5为例 5的原码 10000101 1 求原码的反码 除符号位之外的二进制码按位取反 11111010 2 把所得的反码加1 即得到补码 11111011 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 符号位 负数 2 4实型数据 小数形式 由数字和小数点组成 指数形式 由 十进制小数 e 或E 十进制数整数 三部分组成 例如 3 44 30 34合法 例如 12 5e 6表示12 5 10 6 十进制小数 e 或E 十进制数整数 2 4 1实型常量 实数或浮点数 注 必须要有小数点 注 e 或E 之前必须有一个数字 之后的指数必须为整数 注意事项 小数点不能单独出现 e或E的两边必须有数 且其后面必须为整数 如 0 0 0 0合法 如 6E0 2e56E 不合法 不合法 2 4 2实型变量的分类 单精度 float 型 双精度 double 型 注意 在程序中实数可以用小数或者指数形式表示 但在内存中一律按指数形式存放 计算机可以精确的存放一个整数但对于实数往往存在误差 2 5 1字符常量 用单引号括起来的一个字符 用单引号括起来的由反斜杠 引导的转义字符 如 A 1 等 如 n 101 x41 在统计字符个数时 只能记为一个字符 只能是英文的单引号 2 5字符和字符串 二种表现形式 转义字符表 字符形式 功能 n 换行 t V 横向跳格 b r 竖向跳格 退格 f 回车 8进制数表示的ASCII码对应的字符 反斜杠 单引号 双引号 ddd 换页 xhh 16进制数表示的ASCII码对应的字符 一个字符的多种表示方法 65D 十进制 41H 十六进制 101O 八进制 字符A可以表示为 A x41 101 65 0 x41 0101 要避免的错误 表示单引号 表示双引号 表示斜线 例如 charc c a c 034 c n c x65 c 65 c 0101 c 0 x41 2 5 2字符变量 字符变量用来存放字符常量 注意一个字符变量只能存放一个字符 一般以一个字节来存放一个字符 或者说一个字符变量在内存中占一个字节 2 5 3字符串常量 字符串常量在机器内存储时 系统会自动在字符串的未尾加一个 字符串结束标志 它是转义字符 0 该结束标志在内存中占用一个字节 但不记入字符串长度 比如 a 在内存中占用一个字节 a 在内存中占两个字节 在C语言中 用一对双引号括起来的零个或多个字符序列称为字符串 例如 LiMing Hello 字符串的长度是指该字符串的字符个数 不包括双引号 例如以上两个字符串的长度分别为6和5 a a 0 字符a 字符串a 例2 4 definePI3 14159main floats r scanf f 输出变量s的值 面积 1 s 3 14 共输出6个字符且有2位小数 2 s 12 5664 共输出8个字符且有4位小数 运行结果 2 5算术运算符和算术表达式 2 5 1算术运算符 加法 减法 乘法 除法 取余或模 3 51 1 3 3 51 1 3 3 5aba b 3 5 03 5 0 63 5 0 6 3 5 3注意两边的操作数都必须为整型 说明 1 如果双目运算符两边的运算数类型一致 则所得结果的数据类型与运算数的类型一致 如1 0 2 0 0 5 0 2 如果双目运算符两边的运算数类型不一致 系统首先将进行自动类型的转换 使两边的数据类型一致再进行运算 2 5 2算术运算符的优先级和结合性和算术表达式 一 算术运算符的优先级 高 低 单目 双目 同级 同级 同级 二 算术表达式 用算术运算符和括符将操作数连接起来的式子 优先级 结合性 自左向右 与数学上一致 表达式的值 数值型 int long unsigned double 结合性是指同级运算时运算符的结合方向 如a b c 代表某一运算符 若先运算a b 再将其结果与c运算 称为左结合性 从左至右运算规则若先运算b c 再将a与其结果运算 则称右结合性 从右至左运算规则 例2 5 已知 floata 2 0 intb 6 c 3 求解 a b c 1 5 A abs 5 12 0 3 4 0 1 5 2 5 65 int 67 5 5 72 5 国家等级考试练习 1 以下关于long int 和short类型数据占用内存大小的叙述中正确的是 07 09 A 均占四个字节B 根据数据的大小来决定所占内存的大小C 由用户自己定义D 由C语言编译系统决定2 设有定义 floata 2 b 4 h 3 以下C语言表达式中与代数式计算结果不相符的是 04 04 A a b h 2B 1 2 a b hC a b h 1 2D h 2 a b D B 2 6 赋值运算符和赋值表达式 1 赋值运算符 数学上的等号 注意区别 功能 将一个表达式的值赋给一个变量 2 赋值表达式 用赋值运算符将变量和表达式连接起来的式子 形式 变量 表达式 只能是变量不能为为表达式或常量 求值规则 将 右边表达式的值赋给左边的变量 结合性 自右至左 例如 合法的赋值表达式 x 5z srqt 3 2 cb ai i 1错误的赋值表达式 x 10 2x n i 注意 1 赋值表达式的优先级比算术运算符低如 x 2 7 3 2 等号右边也可以是一个赋值表达式 如a b 7 1等价于a b 7 1 3 赋值表达式的值即最左边的变量所得到的新值如 a b 7 1中 a 8 b 8 整个表达式的值也为8 例2 9 1 x y 12 4 y值为12 x值为3 表达式的值为3 2 x y 12 4 y值为3 x值为3 表达式的值为3 3 x y 12 4 y值为3 x值为3 表达式的值为3 4 x y 12 4 该赋值运算符左边不是变量 而是一个表达式 2 复合赋值运算符和表达式 共10个由赋值运算符与算术 位移 位逻辑运算符组成 复合运算符是一个运算符 但功能上 是两个运算符功能的组合 例2 10 a b相当于a a b a b c相当于a a b c 在赋值运算符之前加上其他运算符构成复合赋值运算符 那a b c a相当于 算术运算符比复合赋值运算符优先级要高 例题 已有变量a其值为2 计算表达式a a a的值 a a a 1 复合运算符的结合性2 变量值的变化 已有变量a 其值为9 计算表达式a a a a的值 a a a当a为2时 计算a 2 2后 a的值为4 表达式值也为4 a a a 此时a的值为4 二表达式值a 也是4 所以最终结果a 4 4 8 2 6 3 赋值运算中的类型转换 在赋值时 将赋值符右边值的类型转换成与其左边变量类型一致的类型 几种情况 1 实型 整型 字符型 取整数部分 去掉小数部分 2 整型 字符型 实型 补足有效位 inta 2 92floatf 23 23 00000 7位 doublef A 65 00000000000000 16位 不进行四舍五入 整型为2个字节 故将字符的ASCII值放到整型变量的低八位中 高位为0如字符A的ASCII码为65 内存中存放情况如下 将整型赋给字符型时 只把低八位赋给字符型变量 001000001 inta A 00000000 A 整型常量65 charc 00000000 001000001 c 65 字符型 整型 3 整型 字符型 4 对char int short long unsigned型数据 赋值符右边数据 a位 赋值符左边变量 b位 a b原样照赋 a b截断高a b位 送低b位 a b 无符号数据或正数 有符号数据 高a b位全补0 有符号变量 符号扩展 符号扩展 符号位为0 剩余的高位补0 符号位为1 剩余的高位补1 2 7 自增与自减运算符 重点和难点 i i值先增加1后再参与其他运算i 先参与其他运算后再使i值增加1 i i值先减少1后在参与其他运算i 先参与其他运算后再使i值减少1 关键区分自增自减后变量的值和表达式的值的不同 1 单独使用时 i 等价 i 等价 i i 1 2 j i 3 j i 若i的初始值为3 i 4 j 4 i 4 j 3 结合性 自右向左 例 i 2 j i 分析 1 正号 取负 是同级运算符 结合方向 自右向左 2 i 等价于 i 3 对于括号内的自增运算 又要先使用i 再使i增加1 运算结果 i的值为3 j的值为 2 补充一 其它运算符 形式 功能 求得变量或某种数据类型所需的字节数 运算结果 整型数 例2 13 inta floatx sizeof int sizeof float 结果是多少 1 求字节运算符 sizeof sizeof变量名或sizeof 变量名 或sizeof 类型名 二 数据类型转换 C语言允许整型 实型 字符型数据进行混合运算 不同类型的数据进行混合运算时 要考虑的问题有 1 运算符的优先级别 2 运算符的结合方向 3 数据类型转换 int unsignedint longint double float char short 转换规则 存储长度较短 存储长度较长 总趋势 算术表达式中的运算转换 向左的箭头表示必然转换 例2 14 intx 2 floaty 1 6 charc A c x y 65 int 2 int 1 6 double 3 2 double 68 2 double 作业 1 什么是常量和变量 2 阐述C语言中标识符的定义规则和分类 3 C基本的数据类型 整形 实型 字符型 分类 范围 以及其具体标识 第二章小结 1 变量的定义 整型intlongunsigned 0 65535 实型float 字符型char 2 算术运算符和算术表达式3 赋值运算符和赋值表

温馨提示

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

评论

0/150

提交评论