




已阅读5页,还剩43页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章基本数据类型及数据的输入输出 2 0预备知识2 1常量与变量2 2数据类型2 3常用输出与输入函数练习与实践 2 0预备知识计算机中数的表示及进制转换数码 基与权数码 表示数的符号基 数码的个数权 每一位所具有的值数制 十进制 4956 4 10 9 10 5 10 6 10 二进制 1011 1 2 0 2 1 2 1 2 十六进制 81AE 8 16 1 16 10 16 14 16 八进制 4275 4 8 2 8 7 8 5 8 各种进制之间的转换二进制 八进制 十六进制转换成十进制方法 按权相加 各种进制之间的转换 整数 二进制 八进制 十六进制转换成十进制方法 按权相加 十进制转换成二进制 八进制 十六进制原理 方法 连续除以基 从低到高记录余数 直至商为0 二进制与八进制之间的转换二进制转换成八进制 从右向左 每3位一组 不足3位左补0 转换成八进制八进制转换成二进制 用3位二进制数代替每一位八进制数 例 1101001 2 001 101 001 2 151 8 例 246 8 010 100 110 2 10100110 2 000 0001 1010 2011 3100 4101 5110 6111 7 二进制与十六进制之间的转换二进制转换成十六进制 从右向左 每4位一组 不足4位左补0 转换成十六进制十六进制转换成二进制 用4位二进制数代替每一位十六进制数 例 11010101111101 2 0011 0101 0111 1101 2 357D 16 例 4B9E 16 0100 1011 1001 1110 2 100101110011110 2 0000 00001 10010 20011 30100 40101 50110 60111 71000 81001 91010 A1011 B1100 C1101 D1110 E1111 F 字节和位内存以字节为单元组成每个字节有一个地址一个字节一般由8个二进制位组成每个二进位的值是0或1 数值的表示方法 原码 反码和补码原码 最高位为符号位 其余各位为数值本身的绝对值反码 正数 反码与原码相同负数 符号位为1 其余位对原码取反补码 正数 原码 反码 补码相同负数 最高位为1 其余位为原码取反 再对整个数加1 9 5 49 7 16 14 12 为什么用补码表示 25 19 25 19 25 10 00011001 2 19 10 11101101 200011001 11101101 100000110 为什么用补码表示 19 25 19 25 19 10 00010011 2 25 10 11100111 200010011 11100111 11111010 6 引入补码之后符号位也进入了运算 不用再单独处理符号位 负数补码转换成十进制数 最高位不动 其余位取反加1 例补码 11111001取反 10000110加1 10000111 7 2 1常量与变量标识符定义 用来标识变量 常量 函数等的字符序列组成 只能由字母 数字 下划线组成 且第一个字母必须是字母或下划线大小写敏感不能使用关键字长度 最长32个字符命名原则 见名知意不宜混淆如l与I o与0 例 判断下列标识符号合法性sumSumM D JohndayDate3daysstudent name 33lotus 1 2 3chara b above 123 M D John 3days 33 char 123 a b 一般用大写字母是宏定义预处理命令 不是C语句直接常量 整型常量实型常量字符常量字符串常量 如 definePRICE30 常量定义 程序运行时其值不能改变的量 即常数 分类 符号常量 用标识符代表常量定义格式 define符号常量常量 例符号常量举例 definePRICE30main intnum total num 10 total num PRICE printf total d total 运行结果 total 300 变量 其值可以改变的量概念 每个变量有一个名字 用标识符表示 每个变量有一个存储空间 存储单元 该单元中的状态所表示的数为此时变量的值 变量初始化 定义时可以赋初值 合法标识符 变量的使用 先定义 后使用 变量定义的一般格式 数据类型变量1 变量2 变量n 如 inta b c floatx y 例 inta 2 b c 4 floatdata 3 67 charch A intx 1 y 1 z 1 intx y z 1 例2floata b c c a b Illegaluseoffloatingpointinfunctionmain 变量定义位置 一般放在函数开头 例1intstudent stadent 19 Undefinedsymbol statent infunctionmain 每一个变量都有一个类型 表明了为它的存储属性 分配空间的大小 表示的数的范围 所能进行的运算 例2 1main floatlength area radius length为周长 area为面积 radius半径 printf nEnteraradius scanf f 程序的运行情况为 Enteraradius 2 8 lengthis 17 584000areais 24 617599 2 2数据类型数据类型总表 数据类型决定 1 数据占内存字节数2 数据取值范围3 其上可进行的操作 2 2 1整数类型整数类型的标识符是int 整型数据根据其占用的内存字节数不同 可加限定词 short 短整型 int long 长整型 short int long可用sizeof 类型标识符 测量unsignedshort 无符号短整型 unsignedint 无符号整型 unsignedlong 无符号长整型 其中short和long的引入是为满足实际要求的不同长度的整数 而经unsigned限定词限定的整数总是正的 整型常量 整常数 三种形式 十进制整数 由数字0 9和正负号表示 如123 456 0八进制整数 由数字0开头 后跟数字0 7表示 如0123 011十六进制整数 由0 x开头 后跟0 9 a f A F表示 如0 x123 0Xff 例12与12L 例30000为int型65536为longint型 问题 0123 100 x123 100Xff 10 整型常量的类型根据其值所在范围确定其数据类型 一个整数若值在 32768 32767内 则默认为它是int型 一个整数若值在 2147483648 2147483647之间 可使用长整型常量表示 在整常量后加字母l或L 认为它是longint型常量无符号数也可用后缀表示 整型常数的无符号数的后缀为 U 或 u 例如 358u 0 x38Au 235Lu均为无符号数 0XA5Lu表示十六进制无符号长整数A5 其十进制为165 一个非负的整数 只要它的值不超过相应变量的取值范围 就可以赋给unsigned型变量 例如 可以将6000赋给一个unsignedint型变量 但却不可以将66000赋给一个unsignedint型变量 将会出现溢出错误 整型变量定义方法 inta1 a2 unsignedintb1 b2 一个整型常量只可以赋给能容纳下其值的整型变量 如a1 a2的取值范围为 32768 32767b1 b2的取值范围为0 65535如果 a1 65535 或者 b1 1 在内存中数值将不是所赋的数值 2 2 2实数类型实数类型分为单精度 float 和双精度 double 类型 二者的区别在于所占存储位的多少 从而决定了其取值范围 通常以32位 bits 来存储单精度实数型数据 以64位来存储双精度实型数据 实型常量 实数或浮点数 表示形式 十进制数形式 由数字和小数点组成 小数点的左右至少一边要有数字 必须有小数点 如0 123 123 123 0 0 0 123 指数形式 由尾数 e或E和指数部分组成 E的两边都至少要有一位数且E的右边只允许是整数形式 e或E之前必须有数字 指数必须为整数 如12 3e3 123E2 1 23e4 e 5 1 2E 3 5 实型常量的类型默认double型在实型常量后加字母f或F 认为它是float型 实型变量实型变量的说明形式如下 float变量名1 变量名2 变量名n double变量名1 变量名2 变量名n float 占4字节 提供7位有效数字double 占8字节 提供15 16位有效数字 例floata a 111111 111 a 111111 1 doubleb b 111111 111 b 111111 111 floata b c doublex y 例2 2 实型变量的有效数字 main doublea a 6 152367864359046178294901 printf n 25 20f a 输出结果为 6 15236786435904648000在这个例子中 a被赋值了一个有效位数为25位的数字 但由于a是double类型的 所以a只能接收15 16位有效数字 在printf语句中 我们使用了 20 18f这样的格式符号 这指示printf语句在输出a时总长度应为25位 小数点位数占20位 输出的结果显然显示了25位数 但只有6 152367864359046共16位有效数字被正确显示出来 后面的数字是一些无效的数值 这就表明double型的数据只接收15 16位有效数字 2 2 3字符类型整型 实型都是数值型 是大家比较熟悉的 除数值型外 还有一类数据是计算机经常处理的数据 这就是字符型 字符型数据包含的是一个字符集 一般用的是ASCII码字符集见附录A p249 字符集中的每一个字符都有一个序号 称为ASCII码 ASCII码大的字符比ASCII码小的字符值大 字符类型的标识符是char 字符常量定义 用单引号括起来的单个普通字符或转义字符 字符常量的值 该字符的ASCII码值 如 101 A 012 n 376 x61 a 60 0 483 例 A 101 x41 65 如 A 65 a 97 0 48 n 10 如 a A n 101 转义字符 反斜线后面跟一个字符或一个代码值表示 例转义字符举例 ch2 001 c ch2 004 c main printf 101 x42C n printf Isay Howareyou n printf CProgram n printf Turbo C 运行结果 屏幕显示 ABCIsay Howareyou CProgram Turbo C 例main printf Y b n 运行结果 屏幕显示 打印机输出 字符型变量char变量名1 变量名2 变量名n 如 charc1 c2 一个字符型变量的值只能是一个单个字符 在内存中占一个字节 字符变量存放的是字符的ASCII码 char与int数据间可进行算术运算 由于字符型变量在内存中是以字符的ASCII码 一个无符号整数的形式来存放的 所以在一定范围内 字符型数据和整型数据是可以互相通用的 二者的区别仅在于 字符型常量占一个字节 而整型常量占两个字节 例a D a 68 x A 5 x 65 5 s G s 33 71 例2 3 将小写字母转化为大写字母 main charc1 c2 c1 x c2 y c1 c1 32 c2 c2 32 printf n c c x1 x2 程序的输出结果是 X Y这个例子是将小写字母转化为大写字母的程序 我们在对ASCII码字符表进行观察后会发现 大小写对应的字母 它们之间的ASCII码正好相差32 利用这个特性和上一个特性 我们可以编写出非常简单的大小写字母转换程序 字符常量与字符串常量不同 字符串常量定义 用双引号 括起来的字符序列存储 每个字符串尾自动加一个 0 作为字符串结束标志 例 charch ch A 没有字符串变量 用字符数组存放 基本数据类型 整型 字符型 实型 有 无 说明 数据类型所占字节数随机器硬件不同而不同 上表以IBMPC机为例 例 ch2 003 c definePRICE12 5main intnum 3 floattotal charch1 ch2 D total num PRICE ch1 ch2 A a printf total f ch1 c n total ch1 运行结果 total 37 500000 ch1 d 2 3常用输入与输出函数 C语言无I O语句 I O操作由函数实现 include 格式 printf 格式控制串 输出表列 功能 按指定格式向显示器输出数据返值 正常 返回输出字节数 出错 返回EOF 1 2 3 1格式输出函数 输出表列 要输出的数据 通常是表达式 可以没有 多个时以 分隔 格式控制串 包含两种信息 格式说明 修饰符 格式字符 用于指定所输出的表达事的格式 普通字符或转义序列 原样输出 格式字符 inta 567 printf d a inta 255 printf x a inta 65 printf o a inta 567 printf u a chara 65 printf c a printf s ABC floata 567 789 printf e a floata 567 789 printf f a floata 567 789 printf g a printf 567 ff 101 567 A ABC 5 677890e 02 567 789000 567 789 说明格式字符要用小写格式字符与输出项个数应相同 按先后顺序一一对应输出转换 格式字符与输出项类型不一致 自动按指定格式输出 例main unsignedintu 65535 printf u d n u 输出结果 u 1 例inta 3 b 4 printf d d n a b printf a d b d n a b 例inta 3 b 4 printf d d n a b printf a d b d n a b 输出结果 34a 3 b 4 附加格式说明符 修饰符 例2 4main intn1 n2 floatf1 f2 sum charch n1 65 n2 3 f1 234 5 f2 18 75 sum f1 f2 ch A printf d c d o f c d n1 n1 n2 n2 sum ch ch printf s Verygood 运行结果 65 A 3 177775 253 250000 A 65 Verygood 例staticchara Hello world printf s n 15s n 10 5s n 2 5s n 3s n a a a a a 运行结果 Hello world Hello world HelloHelloHel 例inta 1234 floatf 123 456 staticcharc Hello world printf 8d 8d n a a printf 10 2f 10 1f n f f printf 10 5s 10 3s n c c 运行结果 1234 1234 123 46 123 5 Hello Hel 例 例inta 1234 floatf 123 456 printf 08d n a printf 010 2f n f printf 0 8d n a printf 0 10 2f n f 例0 例inta 123 printf o o X X n a a a a 例 例longa 65536 printf d 8ld n a a 例l 00001234 0000123 46 000 1234 000 123 56 173 0173 7B 0X7B 0 65536 2 3 2格式输入函数 格式 scanf 格式控制串 地址表 功能 按指定格式从键盘读入数据 存入地址表指定的存储单元中 并按回车键结束返值 正常 返回输入数据个数 地址表 变量的地址 常用取地址运算符 格式字符 d i o x u c s f e 例scanf d 输入 10 则a 10 例scanf x 输入 11 则a 17 附加格式说明符 修饰符 例scanf 4d 2d 2d 输入19991015 则1999 yy 10 mm 15 dd 例scanf 3d 4d f 输入12345678765 43 则123 k 8765 43 f 例scanf 2d 3d 2d 输入12 345 67 则12 a 67 b 例scanf 3c 2c 输入abcde 则 a c1 d c2 输入分隔符的指定一般以空格 TAB或回车键作为分隔符其它字符做分隔符 格式串中两个格式符间字符 例scanf d o x 输入123123123 输出a 123
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人教版8 20以内的进位加法9加几教学设计及反思
- 2024消费降级-现象洞察与破局之道-OI咨询
- 人教部编版(五四学制)语文 八年级上册 1.《消息二则》教学设计
- 九年级化学上册 第六单元 碳和碳的氧化物 实验活动2 二氧化碳的实验室制取与性质教学设计(新版)新人教版
- 防震演练会前培训
- 三年级上册道德与法治教学设计-1.5合理消费勤俭节约 第一课时 桂师星球版
- 人音版八年级音乐下册第一单元《我和你》、《奥林匹克颂》教学设计
- 人教八下地理 9.2 三江源地区教学设计
- 道德讲堂培训
- 三年级下册科学教学设计-2.4 植物和我们 苏教版
- 机械原理课程设计-自动盖章机
- 高中历史选修二 第12课 水陆交通的变迁 课件(51张)
- JJF(纺织)062-2010 电子式织物强力机校准规范-(高清现行)
- 最新北师大版小学六年级数学下册第二次月考(3~4单元)检测试卷附答案
- 《通过感官来发现》PPT
- 40篇短文搞定高考英语3500词(共42页)
- 非计划再次手术管理制及流程
- 《口腔检查》PPT课件(人卫版)
- 生产线的平衡及优化方法研究工业工程毕业设计
- 轮式挖掘机的驱动桥壳工艺设计1
- 关于大坦沙岛地区更新改造规划的批复
评论
0/150
提交评论