c语言程序设计第2章.ppt_第1页
c语言程序设计第2章.ppt_第2页
c语言程序设计第2章.ppt_第3页
c语言程序设计第2章.ppt_第4页
c语言程序设计第2章.ppt_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

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

文档简介

高级语言程序设计 肖洁大连工业大学管理学院 第二章基本数据类型 1 C语言数据类型 2 各类数值型数据间的混合运算 运算符和表达式 自增 自减运算符 6 数据的控制台输入与输出 3 5 4 6 2 1C语言数据类型 为什么要划分数据类型 不同类型的数据在计算机内表示不同 不同类型的数据能执行的运算不同 2 1C语言数据类型 用户定制类型 函数类型 2 1C语言数据类型 一 二 三 整型数据 实型数据 字符数据 1 整型常量 一 整型数据 十进制整数 由数字 0 9 和正负号表示例如 123 456 0等 八进制整数 以0开头数是八进制数例如 0123即 123 8 83 10 123 8 1 82 2 81 3 80 83 10 十六进制整数 以0 x或0X开头例如 0 x123即 123 16 291 10 0 x12即 12 16 18 100 x2F即 2F 16 47 10 在常量后面加l或L 表示longint型例如 123L 0L 432l都是longint型常量用U或u表示unsigned类型12345u 十进制unsignedint类型 12345UL 十进制unsignedlong类型 一 整型数据 整型变量的形式 共六种 基本整型短整型长整型无符号整型无符号短整型无符号长整型 intshortintlongintunsignedintunsignedshortunsignedlong 占存储空间 占内存字节数 424424 2 整型变量 一 整型数据 Vc6 0变量所占存储容量和取值范围 一 整型数据 0000000000000001 0000000000000011 0111111111111111 1000000000000000 1 3 最小的负数 215 32768 定点二进制补码表示占2个字节存储数的表示范围 32768 32767 a 215 1 32767 最大的正数 一 整型数据 shorta 整型变量的定义 inti j longintk m 或longk m unsignedintx y unsignedlongz C中的所有变量必须先定义后使用 一 整型数据 类型说明符标识符1 标识符n 例 main shortinta b a 32767 b 3 c a b printf c d n c 一 整型数据 shortintc c 32770 c 32766 intc sizeof 类型标识符或数据 例用sizeof运算符测定所用的C系统中各种类型数据的长度 includeintmain void inti 0 printf char dbytes n sizeof char printf short dbytes n sizeof short printf i dbytes n sizeof i 计算变量i的字节数 printf long dbytes n sizeof long printf float dbytes n sizeof float printf double dbytes n sizeof double printf 1 23456 dbytes n sizeof 1 23456 计算常量的字节数 return0 用VC 6 0编译并运行 得到以下结果 char 1bytesshort 2bytesi 4byteslong 4bytesfloat 4bytesdouble 8bytes1 23456 8bytes 二 实型数据 1 实型常量十进制数形式 由数字和小数点及正负号组成 注意 必须有小数点 例如 23 678 67823 指数形式 由数字 小数点 字母e或E及正负号组成 注 e或E之前必须有数字 且后指数必须为整数 例如 3 5E 52e3E23 6e3 5 e6e 3 5乘以10的 5次方 即0 000035 2乘以10的3次方 即2000 不合法 2 实数变量 单精度型 双精度型和长双精度型 例如a变量的值为0 123456 10 2在计算机中的存放形式为 二 实型数据 floata b 说明变量a b为单精度型实数 doublec d 说明变量c d为双精度型实数 longdoublee f 说明变量e f为长双精度型实数 实型变量的有关规则如下 二 实型数据 用f或F表示float类型 如123 45f1 2345e 2F用l或L表示longdouble类型 如1234 5l1 2345E 3L一个实型常量可以赋给一个float型或double型变量 并根据变量的类型截取实型常量中相应的有效位数字 例如 floata doubleb a 123456 7089 b 123456 7089 三 字符型数据 1 字符常量用单引号括起来的一个字符是字符常量只能包含一个字符例如 a A abc a 注 a 与 A 是不同的字符常量 转义字符 以一个 开头的字符序列 三 字符型数据 includemain intx printf 007 响铃字符 x getchar 等待输入字符 printf 0 x7 响铃字符 三 字符型数据 例 main printf c tlanguags be rC n printf is tusef 165 0 x6e 屏幕输出 Clanguageisuseful 三 字符型数据 定义形式char标识符1 标识符2 标识符n占存储空间 一个变量一个字节 2 字符变量 一个字符变量只能包含一个字符 main charc c c printf c c 运行结果 c 题目中有几个c 哪些是等价的 例 三 字符型数据 a 的ASCII值为97内存中存储形式 01100001 例 ASCII码字符 a A 1 存储为 97 65 49 在ASCII范围以内 即 0 255 范围内的整型数据与字符型数据可以通用 三 字符型数据 includeintmain void charch inti ch A ch ch 32 i ch printf dis c n i ch 注意格式码 printf cis d n ch ch 注意格式码 return0 三 字符型数据 运行结果如下 97isaais97 3 字符串常量 字符串常量是用双引号括起来的一个或多个字符 n个字符组成的字符串常量 占空间为n 1个字节 字符串结束标记 空 字符 a ThisisCstring 空格 不含空格 C中没有专用的字符串变量 例 三 字符型数据 字符串 w 11 占几个字节 字符串结束标记 字符串 w 11 0good 占几个字节 思考 3字节 3字节 三 字符型数据 练习 1 以下不合法的变量名为 A 123 B IF C e4 D float2 判断下列字符串的长度 054 x56 c ta n t bab 3输出 输出V ca 6输出 ab 十进制为86对应 V 三 字符型数据 2 2运算符和表达式 运算符 描述各种操作的符号 a 33 4 23 23 5 a ba b a ba 3 b 4 c 5 表达式 由运算符将变量 常量 函数 圆括号或表达式连接起来的式子 2 3运算符和表达式 二 赋值运算符和赋值表达式 三 逗号运算符和逗号表达式 一 算术运算符和算术表达式 一 算术运算符和算术表达式 p307 一 算术运算符和算术表达式 注意 是除法运算符 整数除整数结果为整数 截取 9 2 4 9 2 4 是取余数运算符 只能作用于两个整数 运算结果的符号与被除数的符号一致 9 2 1 9 2 1 9 2 1 例 将下列数学表达式 写成符合C语言规则的表达式如下 a b c sqrt a b sin x sin y sin z 使用sqrt a 和sin x sin y sin z 必需有 include math h 二 赋值运算符和赋值表达式 1 一般赋值运算符 形式 变量名 常量或表达式作用 右边常量或表达式的值赋给左边的变量 例 a 3 说明 1 赋值后 原来左边变量的值被右边表达式的值替换 二 赋值运算符和赋值表达式 2 如果右边表达式的值的类型与左边变量的类型不一致 将表达式值的类型转换为左边变量的类型 转换规则 实型 浮点数 赋予整型时 实数的小数部分全部舍去 并按整数形式存储 inti i 3276 85 printf i d i double型赋予float型 去掉多余的有效数字 丢失一些精度 二 赋值运算符和赋值表达式 注意 从长字节类型向短字节类型转换时 当数据值超过了短字节类型的取值范围时 所得到的结果错误 shorti i 32768 85 结果i为 32768 整型赋予实型 数值不变 但将以浮点形式存放 即增加小数部分 小数部分的值为0 字符型赋予整型 将字符的ASCII码值放到整型量的低八位中 高八位为0 整型赋予字符型 只把低八位赋予字符量 长整型赋予短整型 要将高位截去 得到的值是原数据值以32768为模的余数 二 赋值运算符和赋值表达式 3 结合方向 从右向左 例 x y a b 4 左边变量的值作为整个赋值表达式的值 x y 3 4 值为7 二 赋值运算符和赋值表达式 例 include stdio h main inta doubleb 3 5 a b 2 1 printf a d a a 5 二 赋值运算符和赋值表达式 2 复合赋值运算符复合赋值运算符 在赋值符 之前加上其它运算符 常见的有 复合赋值运算的功能 与左边的变量进行复合运算后再赋给左边变量 如 a 3等价于a a 3x y 8等价于x x y 8 x 3等价于x x 3 二 赋值运算符和赋值表达式 例 inta 1 b 2 c 2 doublex 1 5 y 2 z 2 c a b c的值 2int型z x y z的值 1 5double型 三 逗号运算符和逗号表达式 1 逗号运算符 即 优先级 为所有运算符中级别最低的 2 逗号表达式形式 表达式1 表达式2 表达式n求解过程 顺次求解表达式1 表达式2 最后求解表达式n 逗号表达式的值为表达式n的值 结合性 左结合例如 a 3 5 a 4a 3 5 a 4 a 5x a 4 3 a 1 a 10 60 20 10 2 3各类数值型数据间的混合运算 一 运算过程 先自动转换成同类数据 再进行运算 二 转换规则 低字节类型转换成高字节类型 longdouble double float unsigned long int short char 例 若有inti floatf doubled longe 试判断表达式3 b i f d e的类型 3 4 3 0 4 1 2 15 20 1 0 2 15 20 三 强制类型转换将指定表达式的值转换为指定类型 形式 类型名 表达式 例如 double a b 说明 表达式用括号括起例如 int x y int x y 两者有区别吗 在强制类型转换时 得到一个所需类型的中间变量 原来变量类型未发生变化 例如 floatx 8 6 inty y int x 2 4自增 自减运算符 运算符说明 自增 变量值加1 自减 变量值减1 i i 1 i 或 i i i 1 i 或 i i i先使i的值加 减 1 再使用ii i 在使用i之后 使i的值加 减 1 2 4自增 自减运算符 intj i 3 j i j i j i i j j的值为4 i的值为4 j的值为4 然后i的值变为5 j的值 5 然后i的值变为6 i i 1 i为7 j j 1 j为 6 2 4自增 自减运算符 说明 1 为单目运算符 2 只能用于变量 而不能用于常量或表达式 例如 10 x y a 是非法的 3 自增 自减运算符为右结合性 即自右至左 例如 a a 2 5数据的控制台输入与输出 一 格式化输出函数printf 二 格式化输入函数scanf 三 字符输入输出函数getchar 与putchar include stdio h 或 include 一 格式化输出函数printf 函数的基本格式格式说明字段结构printf 中输出表达式的运算顺序 1 函数的基本格式 格式 printf 格式控制字符串 输出表列 功能 从标准输出设备上 按指定的格式输出对应的变量 普通字符 需要原样输出的字符 格式说明字段 2 格式说明字段结构 1 基本格式码 1 基本格式码 6位 3位 6位 2 域宽与精度说明 域宽与精度说明的格式为 m n 例 inta 1234 printf 3d a printf 5d a 12341234 如果实际数据所占字符位大于指定的域宽 按实际输出 2 域宽与精度说明 n为精度 配合格式码f e E时 指定小数点后面的位数 未指定精度时 默认小数点后6位 配合格式码g G时 指定有效位的数目 作用于字符串时 精度符限制最大域宽 作用于整型数据时 指定必须显示的最小位数 不足时左侧补先导0 includeintmain void printf 12 5f n 123 1234567 printf 12f n 123 1234567 printf 12 5g n 123 1234567 printf 5 10s s n abcdefghijklm a printf 12 8d n 12345 return0 3 长度修正符 3 长度修正符 main inta 1 printf a hd ho hx hu n a a a a 输出 a 1 177777 ffff 65535 1111111111111111 4 前缀修饰 例2 11书46页例2 12一个显示美国各州面积 森林覆盖面积和森林覆盖率的简单程序 3 printf 中输出表达式的运算顺序 includeintmain void inta 1 b 2 printf x d y d n a b b a return0 程序执行结果如下 x 5 y 4 由右向左 二 格式化输入函数scanf 1 函数的基本格式2 格式说明字段结构3 数值数据流的分隔 1 函数的基本格式 scanf 格式控制字符串 地址1 地址2 inta floatb c scanf d f f 输入数据时 在两个数据之间以一个或多个空格间隔 也可以用回车键 跳格键tab 12345678987654321a 12 b 345 000000 c 6789 000000 地址 空格 例2 18 includeintmain void inta b scanf input d d 输入的情形如下 input 123 456123 456 提示 格式控制串中的普通字符 在输入时必需照原样输入 否则出错 2 格式说明字段结构 includeintmain void inta floatb c scanf 2d 3f 4f 一次运行情况如下 12345678987654321 a 12 b 345 000000 c 6789 000000 不可以指定小数的精度 2 格式说明字段结构 includeintmain void doublea b c d scanf f f 3 数值数据流的分隔 使用默认分隔符 空格 跳格符 t 换行符 n 根据格式项中指定的域宽分隔出数据项输入流中数据类型与格式字符要求不符时 inta charb floatc printf inputa b c n scanf d c f inputabc 1234r1234 567 a 1234 b r c 1234 567017 includeintmain void inta b c

温馨提示

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

评论

0/150

提交评论