c语言第2讲基本数据类型与表达式.ppt_第1页
c语言第2讲基本数据类型与表达式.ppt_第2页
c语言第2讲基本数据类型与表达式.ppt_第3页
c语言第2讲基本数据类型与表达式.ppt_第4页
c语言第2讲基本数据类型与表达式.ppt_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

第2讲C语言的基本数据类型与表达式 2 1C语言的基本数据类型2 2常量与变量2 3运算符与表达式2 4数据类型转换 一 数据类型概述 本讲中将对基本类型中的前三类进行介绍和学习 2 1C语言的基本数据类型 变量 指以标识符为名字 其值可以改变的量 在学习各种数据类型之前 我们先简单了解一下常量和变量的概念 常量 指在程序运行中 其数值不能被改变的量 变量代表计算机内存中的某一存储空间 变量的类型决定了该存储空间的长度和其中存放数据的编码方式及存储格式 变量的类型也决定了该存储空间中存放数据的数据形式和取值范围 八进制的数码范围为0 7 018 十六进制的数码除了数字0 9外 还使用英文字母a f 或A F 表示10 15 如 0 x1e 注意 二 整型 采用定点整数的存储格式 只能表示纯整数 1 整型常量 1 十进制形式 与数学上的整数表示相同 例如 12 100 0 2 八进制形式 在数码前加数字0 例如 012 1 81 2 80 10 十进制 3 十六进制形式 在数码前加0X 数字0和字母X 例如 0 x12 1 161 2 160 18 十进制 举例 在16位操作系统中 一般用 字节表示一个int型变量 且long型 字节 int型 字节 short型 字节 在VC 6 0环境中 用4字节表示一个int型变量 且long型 字节 int型 4字节 short型 字节 查看变量的字节数 即其长度 使用函数sizeof 类型名 2 整型变量的分类 根据数据所占的存储长度的不同分为 int short long 同样存储长度的数据又分unsigned signed 故可组合出六种类型 3 整型变量的值域 由机器中数据的存储长度决定 2 实型变量的分类及值域 关键字字节数取值范围精度 位 float43 4 10 38 3 4 10387double81 7 10 308 1 7 1030815 注意 三 实型 1 常量 1 十进制小数形式 由数字和小数点组成 例如 3 4 4 3 2 指数形式 十进制小数 e 或E 十进制数整数 例如 12 5e 6表示12 5 10 6 小数点不能单独出现 0 0 e或E的两边必须有数 且其后面必须为整数 如 6E0 2 e5 字符形式功能 n换行 t横向跳格 b退格 r回车 反斜杠字符 单引号字符 ddd8进制数表示的ASCII码对应的字符 xhh16进制数表示的ASCII码对应的字符 四 字符类型 1 常量 1 用单引号括起来的一个字符 如 A 1 等 注意 1 数值0 字符 0 字符 0 的区别 2 大小写对应字母的ASCII值相差32 A 为65 a 为97 2 用单引号括起来的由反斜杠 引导的转义字符 4 字符串常量 是用一对双引号括起来的字符序列 注意 每个字符串的后面都有一个 0 结束符 如 SHANGHAI AbcdeFGHijk Howareyou 注意 a 与 a 的区别strlen 与sizeof 的区别 例如 字符A的ASCII码为 65D 十进制 41H 十六进制 101Q 八进制 字符A可以表示为 A x41 101 2 字符型变量的分类 char和unsignedchar 3 值域 字符型可参与数学运算 也可看成一种一字节的整型变量 每个字符型数据在内存中占一个字节 包括ASCII字符表中的所有字符 可显示字符和非显示字符 举例 一 常量与符号常量 常量是指在程序运行中 其数值不能被改变的量 常量又可分为直接常量和符号常量 2 2常量与变量 120 0120 072 0 xFFFF 0 x1e 120L 200L 长整型常量3 14 5 12E 6 a n 101 099 12f 0 xg 48EA E 6 6 4E 4 8 changsha ab p ab 1 直接常量 是在程序中直接引用的数据 请判断这些常量正确与否 定义形式 define标识符常量数据例如 definePI3 14159在程序预处理时 凡是出现标识符PI的地方都将用数据3 14159来替换 如 2 2 3 PI就等价于2 2 3 3 14159 变量是指以标识符为名字 其值可以改变的量 变量代表计算机内存中的某一存储空间 该存储空间中存放的数据就是变量的值 在同一程序块中 变量不能被重复定义 使用变量时必须 先定义 后使用 2 符号常量是用标识符来表示一个数据 在程序不能给它赋值 二 变量 2 变量初始化在定义变量的同时给变量一个初始值 注意 inta 5 b 3 inta b c 3 inta b c a b c 3 例如 inta b c floatx y charc1 c2 或intc1 c2 定义变量就是在内存中划出一块相应类型的存储空间存放该变量的值 includemain intx y z w 定义x y z w为整型变量 unsignedintk 定义k为无符号整型变量 x 10 y 20 k 30 z x k w y k printf x k d y k d n z w 例2 1 程序运行结果为 x k 40 y k 10 变量根据作用域的不同可分为局部变量和全局变量 根据存储方式的不同可分为静态存储变量和动态存储变量 这些我们将在后面详细介绍 1 以下合法的字符型常量是A x13 B 081 C 65 D n 2 已知大写字母A的ASCII码是65 小写字母a的ASCII码是97 以下不能将变量c中的大写字母转换为对应小写字母的语句是Ac c A 26 a Bc c 32Cc c A a Dc A c 26 a 3 以下选项中 合法的一组C语言数值常量是A 028B 12 C 177D 0 x8A 5e 30Xa234e1 510 000 0 xf4 5e00abc3 e54 以下关于long int和short类型数据占用内存大小的叙述中正确的是A 均占4个字节B 根据数据的大小来决定所占内存的字节数C 由用户自己定义D 由C语言编译系统决定5 以下选项中不属于字符常量的是A C B C C xCC D 072 实验内容 实验二题目2 完成从键盘输入一个10以内的数字 在屏幕上输出这个数字的3次方 题目3 从键盘上输入两个数字 在屏幕上输出这两个的加减乘除的结果 在数学里当多个运算符一起组成一个表达式时 我们规定了优先级 先乘除后加减 和结合规则 从左至右 同样 在C语言中 我们也规定了每个运算符的结合规则及运算符之间的优先级 2 3运算符与表达式 运算符 就是表示某种运算功能的符号 按操作功能运算符大致可分为 算术运算符 关系运算符 逻辑运算符 赋值运算符 条件运算符 逗号运算符以及位运算符等 表达式 是由操作数和运算符组成的序列 如 1 2 3 4 3 5 7 a b 2等都是C语言中的表达式 下面分类介绍各种运算符 取余 注意 取余运算的操作数只能是整数 结果的符号与被除数相同 一 算术运算符和算术表达式 1 运算符 加 3 4 3 减 3 5 5 乘 3 5 除 5 2 5 0 2 注意 此二种形式 结果不同 5 3的值为2 5 3的值为 2 5 3 的值为2 5 3 的值为 2 12 3 3 若a b的结果为0 则有a能被b整除 2 算术表达式 用算术运算符和括符将操作数连接起来的式子 优先级 结合性 从左至右 表达式的值 数值型 int long unsigned float double 例如 已知 floata 2 0 intb 6 c 3 求解 a b c 1 5 a fabs 5 floata 2 0 intb 6 c 3 a b c 1 5 a fabs 5 12 0 3 5 4 0 1 5 2 5 97 int 99 5 5 104 5 思考inta 1 b 2 表达式a b 3的结果是多少 等价于 j i i 所以i的值为4 j的值为3 等价于 i j i 所以i的值为4 j的值为4 1 i 3 j i 2 i 3 j i 3 自增与自减运算符 i i 使用之前使i的值增1 或减1 i i 使用之后使i的值增1 或减1 分析下面几种情况中i与j的值 当 不与其他运算符混合使用时 i与i 都等价于i i 1 i与i 都等价于i i 1 如 i 2 j i 求执行完这两句后i与j的值分别是多少 结合性 自右至左 分析 与 是同优先级 且都高于 按结合规则 等价于 j i 结果 i的值为3 j的值为 2 再看几个例子 如 设i 3 k i i k i 设a 3 b a a b a 10 5 题盘练习 1 例题 1 3 运算符 及 的应用 函数fun的功能是 将两个两位数的正整数a b合并形成一个整数放在c中 合并的方式是 将a的十位数和个位数依次放在c数的千位和十位上 b数的十位和个位数依次放在c数的百位和个位上 2 作业 2 3 3 3 4 3 51 3 53 3 72 3 88 3 4 2 5 2 注意 掌握两个数的输入方法 1 6种关系运算符 2 关系表达式 用关系运算符将表达式连接起来的式子 优先级 结合性 自左至右 表达式的值 若为真 则结果为1 若为假 则结果为0 3 5值为 32值为 设x 2 3 x 1值为 设x 1 2 x 4值为 例如 二 关系运算符和关系表达式 求如下关系表达式的值 0 0 0 1 算术运算符优先级高于关系运算符3 4 3 4值为 3 4 3 4值为 3 1 注意 不能用数学里习惯的关系运算符连用表示区间关系 2 逻辑表达式 用逻辑运算符将表达式连接起来的式子 优先级 结合性 自左至右 表达式的值 若为真 则结果为1 若为假 则结果为0 三 逻辑运算符和逻辑表达式 1 3种逻辑运算符 参与逻辑运算的操作数叫逻辑量 逻辑量可以是整型 实型 字符型和指针类型 其中 0 0 0 0 NULL代表假 其余逻辑量代表真 inta 5 floatb 3 5 a a0 a0 例如 0 1 1 0 0 0 1 1 0 0 0 1 例如表达式运算如下 混合优先级 高算术运算符关系运算符 和 赋值运算符低 4 0 1 2 8 4 1 0 1 5 3 2 8 4 5 例如 1 a 0 b 1 c a 执行后 a为 b为 c为 逻辑或优化和逻辑与优化 在逻辑表达式的求解中 并不是所有的逻辑运算符都被执行 只是在必须执行下一个逻辑运算符才能求出表达式的解时 才执行该运算符 1 1 0 2 a 1 b 1 c 0 d a b c b 3 执行后 a为 b为 c为 d为 0 0 0 1 例如 1 n是小于m的偶数 2 year是闰年 能被4整除但不能被100整除 或能被400整除 逻辑表达式一般用于控制语句中的条件 n m n 2 0 year 4 0 year 100 0 year 400 0 以下程序运行后的输出结果为 includevoidmain intx 20 printf d 0 x 20 printf d n 0 x2009 9 若a是数值类型 则逻辑表达式 a 1 a 1 的值是 A 1B 0C 2D 不知道a的值 不能确定 例如 1 x y 12 4 2 x y 12 4 3 x y 12 4 4 x y 12 4 四 赋值运算符和赋值表达式 1 赋值运算符 执行功能 把 右边的表达式的值 存入 左边的变量对应的存储空间 即给此变量赋值 3 2 1a a 2 2 赋值表达式 用赋值运算符将变量和表达式连接起来的式子 形式 求值规则 将 右边表达式的值赋给左边的变量 优先级 算术 关系 赋值 结合性 自右至左 表达式的值 被赋值变量的值 y值为12 x值为3 表达式的值为3 y值为3 x值为3 表达式的值为3 y值为3 x值为3 表达式的值为3 练习 设a 12 计算表达式a a a 12和a a a 12的值 3 复合赋值运算符 复合运算符是一个运算符 但功能上 是两个运算符功能的组合 例如 a b相当于a a ba b相当于a a b 注意 a b c相当于a a b c 而不是a a b c 优先级 与 是同一优先级 结合性 自右至左 表达式的值 被赋值变量的值 264 0 求值规则 先求解表达式1的值若为真 非0 求解表达式2 并把表达式2的值作为整个条件表达式的值若为假 0 求解表达式3 并把表达式3的值作为整个条件表达式的值 四 其它运算符 1 条件运算符 和 它们与三个操作数组组成三元运算 形式为 优先级 逻辑 条件 赋值 结合性 自右至左 2 逗号运算符 形式 表达式1 表达式2 表达式n 求值规则 从左至右依次计算各表达式的值 优先级 最低 结合性 自左至右 表达式的值 最后一个表达式的值 又如 y x 10 x 10 x 0 x x当x的值为整型的15时 表达式的结果为 当x的值为整型的5时 表达式的结果为 1 5 例如 intmax a 5 b 3 max a b a b求max的值 max的值为5 例如 aby表达式y a 4 b 5 a by a 4 b 5 a b y a 4 b 5 a by a 4 b 5 a b 4 5 4 9 4 5 9 9 4 5 9 5 5 5 5 10 形式有三种 sizeof变量名sizeof 变量名 sizeof 类型名 结果为整型数 inta floatx printf d d sizeofa sizeofx printf d d sizeof int sizeof float 以上两个printf语句结果均为 例如 3 求字节运算符 sizeof 作用 求得变量或某种数据类型所需的字节数 4 4 4 4 C语言允许整型 实型 字符型数据进行混合运算 有3种转换方式 自动转换 赋值转换和强制转换 一 类型自动转换 2 4数据类型转换 特点 由数值存储位数少的向多的转换 整型向实型转换 操作数为相同类型的不转换 仍取原类型 特别注意此时可能带来的错误 intx 2 floaty 1 6 charc A 则 c 1 x y 例如 charc 68 5 printf c c 65 int 0 int 1 6 float 65 float 二 赋值转换 在赋值时将赋值符右边值的类型转换成与其左边变量类型一致的类型 有下列几种情况 1 实型整型 字符型 去掉小数部分 2 整型 字符型 实型 补足有效位 floatf 23 23 000007位doublef A 65 000000000000015位 例如 inta 2 b 5 floatx 4 4 则有 表达式结果b a float b a float b a int x a x int x a x 三 强制类型转换 形式 类型名 表达式 强制类型转换时 得到所需类型的中间变量 原来变量的类型不会改变 2 2 5 2 0 4 4 2006 9 1 若变量x y已正确定义并赋值 以下符合C语言语法的表达式是A x y x Bx 1 yCx x 10 x yDdouble x 102 以下关于逻辑运算符两侧运算对象的叙述中正确的是A只能是整数0或1B只能是整数0或非0整数C可以是结构体类型的数据D 可以是任意合法的表达式3 若有定义intx y 并以正确给变量赋值 则以下选项中与表达式 x y x y 中的条件表达式 x y 等价的是A x y 0 B x y 0 D x y 0 4 有以下程序main intx y z x y 1 z x y y printf d d d n x y z A2 3 3B2 3 2C 2 3 1D2 2 1 2006 9 5 有以下程序main inta 0 b 0 a 10 给a赋值b 20 给b赋值 printf a b d n a b 输出计算结果 A a b 10Ba b 30C30D出错6 以下选项中 值为1的表达式是A1 0 B 1 0 C 1 0D 0 0 7 设有定义 floatx 123 4567 则执行以下语句的输出结果是 printf f n int x 100 0 5 100 0 123 460000 注意 0的ASCII值为48 依次类推 8 以下程序运行后的输出结果是 main intm 011 n 11 printf d d n m n 9 以下程序运行后的输出结果是 main intx a 1 b 2 c 3 d 4 x ax x d printf d n x 1011 1 2007 4 1 若有代数式以下正确表示该代数式的C语言表达式是Asqrt abs n x e x Bsqrt fabs pow n x pow x e C sqrt fabs pow n x exp x Dsqrt fabs pow x n exp x 2 设有定义 intk 0 以下选项的四个表达式中与其他三个表达式的值不相同的是A k Bk 1C kDk 13 有以下程序 其中 u表示按无符号整数输出main unsignedintx 0 xFFFF printf u n x 程序运行后的输出结果是A 1B 65535C32767D0 xFFFF4 以下选项中 当x为大于1的奇数时 值为0的表达式是Ax 2 1Bx 2Cx 2 0D x 2 0 注意 考虑的是表达式的值 不是变量k的值 2007 4 5 执行以下程序后的输出结果是main inta 10 a 3 5 a 4 printf a d n a 6 以下程序后的输出结果是 includemain printf d n strlen IBM n012 1 请注意转义字符 7 已定义charch inti 1 j 执行j ch2 设有条件表达式 EXP i j 则以下表达式中 EXP 完全等价的是A EXP 0 B EXP 0 C EXP 1 D EXP 1 a 1

温馨提示

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

评论

0/150

提交评论