




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
全国计算机等级考试2C课程 第二讲数据类型 运算符和表达式 2020 2 6 作者 张旭仟版权所有欢迎盗版 2 标识符 标识符在C程序中的作用 标识符可用作变量名 符号名 函数名 数组名 文件名 以及具有专门含义的名字 C程序中标识符的组成 合法的标识符只能由字母 数字 下划线组成 且第一个字符必须是字母或下划线 数字不能打头 如sum day Date lotus 1 2 3 above都是合法的标识符 类别 C语言中标识符共有三种 关键字 预定义标识符和用户标识符 2020 2 6 作者 张旭仟版权所有欢迎盗版 3 关键字C程序中关键字共有39个 由系统定义 代表固定含义 不能另作他用 autobreakcasecharconstcontinuedefaultdodoubleelse enumexternfloatforgotoifintlongregisterreturn shortsignedsizeofstaticstructswitchtypedefunsignedunionvoid volatilewhileasminterrupthugenearcdeclfarpascal 标识符 注意 所有关键字均为小写 2020 2 6 作者 张旭仟版权所有欢迎盗版 4 预定义标识符预定义标识符在C语言中具有特定含义 如C语言提供的库函数名 如 printf defineC语言允许用户另作他用 但这将使这些标识符失去系统规定的原意 所以建议不要另作他用 用户标识符用户标识符是指由用户根据需要定义的标识符 用户标识符一般用来给变量 函数 数组 文件等命名说明 命名原则是见名知意 不宜混淆 如l与I o与0注意C语言中 标识符大小写敏感不能使用关键字作用户标识符 标识符 2020 2 6 作者 张旭仟版权所有欢迎盗版 5 小练习 1 以下选项中 能用作用户标示符的是 2009年9月 A viodB 8 8C 0 D unsigned2 以下C语言用户标识符中 不合法的是 2010年3月 A 1B AaBcC a bD a b 2020 2 6 作者 张旭仟版权所有欢迎盗版 6 小练习 3 阅读以下程序 includemain intcase floatprintf printf 请输入2个数 scanf d f 4 该程序在编译时产生错误 其出错原因是A 定义语句出错 case是关键字 不能用作用户自定义标示符B 定义语句出错 printf不能用作用户自定义标示符C 定义语句出错 scanf不能作为输入函数使用D 定义语句出错 printf不能输出case的值 2020 2 6 作者 张旭仟版权所有欢迎盗版 7 C语言的数据类型 C语言提供了丰富的数据类型 总结如下 2020 2 6 作者 张旭仟版权所有欢迎盗版 8 整型常量 整常数 书写形式 十进制整数 由数字0 9和正负号表示 如123 456 0八进制整数 由数字0开头 后跟数字0 7表示 如0123 011十六进制整数 由0 x开头 后跟0 9 a f A F表示 如0 x123 0Xff 整型常量的类型整型常量也有基本整型 int 长整型 long 和无符号整型 unsigned 之分 由其值所在的范围确定 例如 在VC 环境下 2147483647为int型 4294967295为unsigned 而4294967296为long型 此外 若在整常量后加上字母l或L 无论数值大小都视其为long型常量 例如 12L 34l 常量 2020 2 6 作者 张旭仟版权所有欢迎盗版 9 实型常量 实数或浮点数 表示形式 十进制数形式 必须有小数点 如0 123 123 123 0 0 0 123 指数形式 e或E之前必须有数字 指数必须为整数 如12 3e3 123E2 1 23e4都是正确的 而e 5 1 2E 3 5是错误的 实型常量的类型默认所有实型常量都是double型只有在实型常量后加字母f或F 才认为它是float型 常量 2020 2 6 作者 张旭仟版权所有欢迎盗版 10 字符常量定义 用单引号括起来的单个普通字符或转义字符 如 a A n 101 都是合法的符号常量 字符常量的值是该字符的ASCII码值 常用字符的ASCII码值如下表所示 常量 2020 2 6 作者 张旭仟版权所有欢迎盗版 11 常量 转义字符转义字符 是一类特殊的字符常量 在反斜线 后面跟一个字符或一个代码值表示 常见转义字符如下 2020 2 6 作者 张旭仟版权所有欢迎盗版 12 常量 转义字符普通字符常量都可以用3位8进制数表示的转义字符或2位16进制数表示的转义字符表示 例如 字符常量 A 可以表示为 101 或 x41 其中 A 的ASCII码值是65 而101和x41 分别是65的8进制和16进制表示 请看下面的例子注意 483 超出了取值范围 不能表示任何字符 例如 101 A 012 n 376 x61 a 60 0 483 2020 2 6 作者 张旭仟版权所有欢迎盗版 13 要特别注意字符常量与字符串常量的区别 字符串常量定义 用双引号 括起来的字符序列存储 每个字符串尾自动加一个 0 作为字符串结束标志 常量 2020 2 6 作者 张旭仟版权所有欢迎盗版 14 常量 符号常量定义格式 define符号常量常量 例如 definePRICE30main intnum total num 10 total num PRICE printf total d total 运行结果 total 300 说明 符号常量一般采用大写字母定义语句属宏定义预处理命令 不是C语句 所以不用 结束 2020 2 6 作者 张旭仟版权所有欢迎盗版 15 小练习 1 以下选项中 能用作数据常量的是 2009年3月 A o115B 0118C 1 5e1 5D 115L2 以下选项中不能作为C语言合法常量的是 2008年9月 A cd B 0 1c 6C a D 011 3 有以下程序 其中k的初值为八进制数main intk 011 printf d n k 程序运行后的输出结果是A 12B 11C 10D 9 2020 2 6 作者 张旭仟版权所有欢迎盗版 16 变量 变量的概念 程序运行时其值可以改变的量就叫做变量 每个变量都要用一个变量名 即用户标识符 来标识 例如 a b area等 变量的定义方法 数据类型变量1 变量2 变量n 决定分配字节数和数的表示范围 变量名必须是合法的标识符 例如 inta b c floatdata 2020 2 6 作者 张旭仟版权所有欢迎盗版 17 变量 变量的赋值对于变量 既可以先定义后赋值 也可以在定义的同时赋初值 允许在一条语句中一次定义多个相同类型的变量注意 intx y z 1 语句是不允许的 例如 inta a 4 先定义后赋值 floatdata 3 67 在定义的同时赋初值 intx 1 y 2 z 也可以在一条语句中一次定义多个相同类型的变量 2020 2 6 作者 张旭仟版权所有欢迎盗版 18 变量 变量的赋值编译程序将根据变量类型为其分配固定字节数的内存单元如果在定义时没有给变量赋初值 则变量的值是一个随机值 2020 2 6 作者 张旭仟版权所有欢迎盗版 19 变量 定义变量的语句 必须位于函数的开头 例如 main inta b 2 a 1 floatdata data a b 1 2 printf data f n data 例如 main inta b 2 floatdata a 1 data a b 1 2 printf data f n data 由于该定义变量的语句出现在赋值语句 a 1 之后 程序编译时将会出错 经过这样的修改 错误排除了 2020 2 6 作者 张旭仟版权所有欢迎盗版 20 变量 对于变量 必须先定义 后使用 例如 intstudent stadent 19 由于以上语句中 stadent并没有定义 因此在编译时出现如下错误 Undefinedsymbol statent infunctionmain 2020 2 6 作者 张旭仟版权所有欢迎盗版 21 变量 对于变量 应该先赋值 再调用 例如 floata b c c a b 以上语句中 由于a b都没有赋值 因此在编译时将出现如下错误 illegaluseoffloatingpointinfunctionmain 2020 2 6 作者 张旭仟版权所有欢迎盗版 22 整型变量整型变量有short int和long几种 整型变量占字节数随机器不同而不同 VC 环境下int和long都是占用4个字节 short占用2个字节 实型变量float 占4字节 提供7位有效数字 double 占8字节 提供15 16位有效数字 字符型变量字符变量存放字符的ASCII码对c字符变量 可以直接与int数据间进行算术运算 例如 floata 111111111111 111111111f doubleb 111111111111 111111111 printf a f nb lf n a b 执行结果 a 111111110656 000000b 111111111111 111110 例如 a D a 68 x A 5 x 65 5 s G s 33 71 注意 C语言中没有字符串变量 用字符数组存放 变量的类型 2020 2 6 作者 张旭仟版权所有欢迎盗版 23 可用sizeof 标识符 测量变量所占的字节数 如 在VC 环境下 inta b b sizeof a b的值为4要书写长整形常量 可在后面加后缀l或L 如12L 书写无符号整数常量 可在数字末尾加上U或u 如12u 书写长整形无符号常量 应该加上后缀lu或LU 如12LU 注意 无符号常量不能表示小于0的数 如 200u是不合法的 整形数据的分类 2020 2 6 作者 张旭仟版权所有欢迎盗版 24 小练习 1 以下选项中正确的定义语句是 2008年9月 A doublea b B doublea b 7C doublea 7 b 7 D double a b 2 若函数中有定义语句 intk 则 2009年3月 A 系统将自动给k赋初值0B 这时k中值无定义C 系统将自动给k赋初值 1D 这时k中无任何值3 C源程序中不能表示的数制是 2008年9月 A 二进制B 八进制C 十进制D 十六进制 2020 2 6 作者 张旭仟版权所有欢迎盗版 25 对于有符号整数 内存中最高位用1表示负号 用0表示正数 整数在内存中的存储形式 对于正整数采用原码形式存放 例如 对于整数5 在内存中存储为0000000000000101 对于负整数采用补码形式存放 例如 对于整数 5 要在内存中存储需要两步 先求出整数5的原码的反码 即1111111111111010再对以上反码加1得到补码 即1111111111111011 2020 2 6 作者 张旭仟版权所有欢迎盗版 26 对于无符号整数 16个二进制位全部用来存放整数 最高位不再表示符号 无符号整数没有负数 取值范围是0 4294967295 把补码转换为十进制数的步骤如下 先对补码按位取反 如 5的补码是1111111111111011 取反后得到0000000000000100 转换成十进制数 如对上步二进制数转换后得到十进制正整数4 在得到的十进制数前加上 号 即得到负整数 4 再对得到的负数减去1 最终得到结果就是 5 整数在内存中的存储形式 2020 2 6 作者 张旭仟版权所有欢迎盗版 27 基本算术运算符 结合方向 从左向右优先级 2 3 4 说明 可为单目运算符时 右结合性两整数相除 结果为整数 要求两侧均为整型数据 思考 5 2 5 2 1 10 5 1 5 5 2 答案 5 2 1 5 2 21 10 15 1 05 5 2 算术表达式 2020 2 6 作者 张旭仟版权所有欢迎盗版 28 自增 自减运算符 作用 使变量值加1或减1种类 前置 i i 先执行i 1或i 1 再使用i值 后置i i 先使用i值 再执行i 1或i 1 说明 不能用于常量和表达式 如5 a b 结合方向 自右向左优先级 2 3 4 i i 例如 i 3 printf d i 3j k j k 算术表达式 2020 2 6 作者 张旭仟版权所有欢迎盗版 29 简单赋值运算符符号 格式 变量标识符 表达式作用 将一个数据 常量或表达式 赋给一个变量复合赋值运算符种类 含义 exp1op exp2 exp1 exp1opexp2例如 a 3 a a 3x y 8 x x y 8 x 3 x x 3 赋值表达式 2020 2 6 作者 张旭仟版权所有欢迎盗版 30 思考题 a b c 5a b 5 a 5 c 6 a b 4 c 6 a b 10 c 2 赋值运算符说明 结合方向 自右向左优先级 14左侧必须是变量 不能是常量或表达式赋值转换规则 使赋值号右边表达式值自动转换成其左边变量的类型赋值表达式的值与变量值相等 且可嵌套 表达式值为5 a b c值为5 b 5 a 5 表达式值11 c 6 a 11 表达式值10 a 10 b 4 c 6 表达式值5 a 5 b 10 c 2 赋值表达式 例如 3 x 2 y a b 3 这样的表达式都是错误的 例如 inti i 2 56 结果i的值为2 2020 2 6 作者 张旭仟版权所有欢迎盗版 31 形式 表达式1 表达式2 表达式n结合性 从左向右优先级 15逗号表达式的值 等于表达式n的值用途 常用于循环for语句中 思考题 a 3 5 a 4a 3 5 a 4 a 5x a 3 6 3 x a 3 6 aa 1 b 2 c 3 printf d d d a b c printf d d d a b c b c a 15 表达式值60 a 15 表达式值20 赋值表达式 表达式值18 x 18 逗号表达式 表达式值18 x 3 1 2 3 3 2 3 逗号表达式 2020 2 6 作者 张旭仟版权所有欢迎盗版 32 例题 includemain intx y 7 floatz 4 x y y 6 y z printf x d n x 逗号表达式 运行结果 x 3 2020 2 6 作者 张旭仟版权所有欢迎盗版 33 转换规则 不同类型数据运算时先自动转换成同一类型什么情况下发生运算转换 不同类型数据混合运算时赋值转换 把一个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【《论企业内部审计作用的发挥-以S物流快递公司为例》9600字(论文)】
- 综合解析人教版9年级数学上册【旋转】重点解析试题(含答案解析版)
- 2026届四川省仁寿县英语九年级第一学期期末学业水平测试试题含解析
- 小讲解员礼仪培训
- 维泊妥珠单抗临床应用解析
- 2026届山东省东营市东营区胜利一中学化学九上期中学业质量监测模拟试题含解析
- 2026届安康市重点中学化学九年级第一学期期末监测模拟试题含解析
- 湖北省枣阳市太平一中学2026届九年级化学第一学期期中考试模拟试题含解析
- 一日流程环节培训
- 河南省开封市田家炳实验中学2026届九上化学期中监测模拟试题含解析
- 智慧医院能源管理一体化解决方案
- 医学实验室生物安全培训培训课件
- 高考语文文学类阅读复习备考:革命题材小说阅读题 专项练习 (含答案解析)
- 西湖十景-美术优质课课件
- 海绵城市总结课件
- 会计学全套课件第一学期公开课一等奖省优质课大赛获奖课件
- 光伏站电力监控系统介绍参考课件
- 公开课第一课素描基础入门课件
- 果蔬加工工艺学:果蔬汁
- 门机防腐施工方案
- 定向井井眼轨迹计算课件
评论
0/150
提交评论