数据类型与简单输入输出.ppt_第1页
数据类型与简单输入输出.ppt_第2页
数据类型与简单输入输出.ppt_第3页
数据类型与简单输入输出.ppt_第4页
数据类型与简单输入输出.ppt_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

第二章数据类型与简单输入输出 2 1C语言的数据类型 一个程序应包括数据结构和算法 数据结构是在程序中要指定数据的类型和数据的组织形式 算法是如何对数据结构进行处理达到编程者的目的的想法 由于每个人的想法不一样 所以程序代码有可能不相同 但最后都能达到自己的目的 根据不同的编程语言 程序的概念可以这样表示 程序 算法 数据结构 程序设计方法 语言环境 2 1C语言的数据类型 C语言的数据结构是以数据类型形式出现的 C的数据类型如下 不同类型的数据代表不同的数据表示形式合法的取值范围占用内存空间大小可参与的运算种类 2 2常量 在程序执行过程中 其值始终保持不变的量称之为常量 常量具有一定的类型 类型由其表示形式决定 在C语言中 常量可以分为整型常量 实型常量 字符型常量 字符串常量 符号常量等 2 2常量 1 整型常量整型常量就是整型常数 它是一种从字面即可判断其值的常量 C语言中常量可以用十进制 八进制和十六进制表示 1 十进制整数 由数字0 9组成但第一个数不能为0的整数 如 123 456 0 2 八进制整数 以0开头由0 7组成的整数 如0123表示八进制数123 3 十六进制整数 以0 x开头由数字0 9和字母a f A F 组成的的数 如0 x123 代表数十六进制的123 整型常量的写法一定要合法 下面各数不合法 078 3a其中078表示八进制数 但包含了0 7以外的数8 3a表示十进制数 但包含了0 9以外的字符a 2 2常量 2 实型常量实数又称浮点数 带小数点的数 实型常量有两种表示形式 1 十进进小数形式 它由数字和小数点组成 注意必须有小数点 如 123 123 123 0 0 0都是十进制小数形式 其中123 0末尾的数字0可以省略 123小数点前面的0可以省略 0 0可以省略其中一个0但不能都省略 2 指数形式 如123e3或123E3都代表123 103 但注意字母e 或E 之前必须有数字 且e后面的指数必须有整数 如e3 2 1e3 5 e3 e等都不是合法的指数形式 实型常量 一个实数可以有多种指数表示形式 例如123 456可以表示12 3456e1 1 23456e2 0 123456e3等 把其中的1 23456e2称为 规范化的指数形式 即在字母e 或E 之前的小数部分中 小数点左边应有一位 且只能有一位 非零的数字 例如 指定将实数5689 65按指数形式输出 必然输出5 68965e 003 2 2常量 3 字符型常量根据组成结构的不同 字符型常量可分为字符常量 转义字符和字符串常量 1 字符常量和转义字符C的字符常量是用单引号 括起来的一个字符 如 a x D 等都是字符常量 注意 a 和 A 是不同的字符常量 除了以上形式的字符常量外 C还允许用一种特殊形式的字符常量 就是以一个 开头的字符序列 常用的转义字符见下表 2 2常量 表中 ddd是用八进制数表示的ASCII码 例如 用八进制数 102 相当于十进制数66 代表ASCII字母 B 用 033 代表Esc 从ASCII码表中能够查到常用的转义字符 xhh是用十六进制数表示的ASCII码 例如 用 x1B 同样可以代替Esc 由此可知 用转义字符可以表示任一ASCII码 并且任一ASCII码可以有多种表示方法 2 2常量 有关字符常量的几点说明 1 单引号本身只作定界符使用 而不是字符常量的一部分 2 因字符 和 在字符常量中有特殊用途 因此 他们不能直接作字符常量使用 若要将这两个字符用作字符常量 应写为 和 即在这些字符前再加一个反斜杠 3 英文字母区分大小写 注意 a 和 A 是不同的字符常量 4 字符常量具有数值 其值对应于ASCII码值 是0 255之间的整数 例如 A 的值是65 a 为97 因此 字符型常量与整型常量可以混合使用 在不至于引起混淆的情况下 0 255之间的整数可以用字符常量表示 例如 把63写成 A 2 反之亦然 123 101 共有5个字符占6个字节 其中 101分别代表一个字符 输出为 123A 2 2常量 例2 1字符型常量与整型常量混合使用实例 要求编程输出字符 以及其ASCII码值 求 a 1的值和输出其ASCII字符 输出整数65以及该数字所对应的ASCII字符 main printf c d n printf c d n a 1 a 1 printf c d n 65 65 运行结果如下 2 2常量 2 字符串常量字符串常量是一对双引号括起来的字符序列 如 Howdoyoudo CHINA a 123 45 都是字符串常量 可以直接输出一个字符串 如printf Howdoyoudo 不要将字符常量与字符串常量混淆 a 是字符常量 a 是字符串常量 二者不同 有人不能理解 a 和 a 究竟有什么区别 C规定 在每一个字符串的结尾加一个 字符串结束标志 以便系统据此判断字符串是否结束 C规定以字符 0 作为字符串结束标志 0 是一个ASSCII码为0的字符 从ASSCII代码中可以看到ASSCII码为0字符是 空操作字符 即它不引起任何控制动作 是一个不可显示的字符 如果有一个字符串 CHINA 实际上在内存中是它的长度不是5个字符 而是6个字符 最后一个字符为 0 2 2常量 4符号常量在C语言中 代表常量的标识符称作符号常量 符号常量在使用之前必须先定义 符号常量定义的一般格式为 define标识符常量其中 define表示宏定义的一个命令 宏定义必须写在一行上 标识符称为 宏名 字符串称为 宏体 其功能是把该标识符定义为其后的常量值 一经定义 在程序中所有出现该标识符的地方均代表该常量值 习惯上符号常量的标识符用大写字母 变量标识符用小写字母 以示区别 2 2常量 例2 2宏定义的使用 definePI3 14159 宏定义命令定义PI为3 14159 main floats r s r定义为实型变量用来存放实型数据 r 5 5赋值给r s PI r r printf s f n s 运行结果为 2 2常量 使用符号常量的好处是 1 含义清楚 如上面的程序中 看程序时从PI就可知道它代表 因此定义符号常量名时应考虑 见名知意 2 在需要改变一个常量时能做到 一改全改 在定义符号常量时 应注意以下几点 如果程序中有多个符号常量 必须用多个命令行分别定义 即一行只能定义一个符号常量 definePI3 1415926 defineTRUE1符号常量代表的常量可以是前文介绍的各种形式的常量 还可以代表程序的其他语法成分 2 2常量 例2 3 definePprintfmain chara b a x b y a a 32 b b 32 P c c n d d n a b a b 运行结果为 这里用P代表了库函数名printf 3 符号常量的定义可以放在程序的任何位置 但必须在使用之前预先定义 因此 一般放在程序的开始位置 2 3变量 在程序运行过程中 其值可以改变的量称为变量 一个变量必须有一个名字即变量名 变量名要遵守标识符的命名规则 变量名在内存中占据一定的存储单元 在该存储单元中存放变量的值 2 3变量 1 整型变量1 整型变量的分类1 基本整型 以int表示 2 短整型 以shortint表示 或以short表示 3 长整型 以longint表示 或以long表示 隐含为有符号 signed 归纳起来 可以用以下6种整型变量 即 有符号基本整型 signed int无符号基本整型unsignedint有符号短整型 signed short int 无符号短整型unsignedshort int 有符号长整型 signed long int 无符号长整型unsignedlong int 整型常量 2 3变量 标准没有具体规定以上各类数据所占内存字节数 只要求long型数据长度不短于int型 short型不长于int型 具体如何实现 由各计算机系统自行决定 在计算机内整形数据占2个字节 以2为例 把2转化为二进制之后 它的存储形式为 2 3变量 2 整型变量的定义C规定在程序中所以用到的变量都必须在程序中先定义后使用 即 强制类型定义 每个变量必须要有确定的类型 整型变量定义的一般形式 整型数据类型名变量名 例如 inta b 指定变量a b为整形 unsignedshortc d 指定变量c d为无符号短整型 longe f 指定变量e f为长整型 对变量的定义 一般是放在一个函数的开头部分的声明部分 也可以放在函数中某一分程序内 但作用域只限它所在的分程序 变量定义之后 编译系统就会为其分配相应的存储空间 2 3变量 例2 4整型变量的定义与使用 main inta b 定义a b为基本整型变量 unsignedu 定义u为无符号整型变量 a 12 u 10 b a u printf a u d n b 运行结果为 可以看到不同种类的整型数据可以进行算术运算 在本例中是int型数据与unsignedint型数据进行相加相减运算 2 3变量 3 整型号数据的溢出在TurboC中一个int型变量的最大允许值为32767 如果再加1 会出现什么情况 例2 5整型数据的溢出 main inta b a 32767 b a 1 printf d d a b 运行结果为 2 3变量 2 实型变量1 实型变量的分类C语言中实型变量用来存放实型常量的 实型变量分为单精度 float型 双精度 double型 和长双精度型 longdouble 表2 3 2 实型变量的定义实型变量定义的一般形式 实型数据类型名变量名 例如floatx y 指定x y为单精度实数 doublez 指定z为双精度实数 2 3变量 3 实型数据的使用由于实型变量是由有限的存储单元组成的 因此能提供的有效数字总是有限的 在有效位以外的数字将被舍去 由此可能会产生一些误差 例2 6实型数据的舍入误差 main floata b a 123456 789e5 b a 20 printf a f nb f a b 运行结果为 2 3变量 3 字符型变量1 字符型变量的分类字符型变量用来存放字符常量 C语言的字符型变量分为有符号型 char 变量和无符号型 unsignedchar 变量 2 字符变量的定义字符型变量在内存中占用1个字节的存储空间 只能放一个字符 不要以为在一个字符变量中可以放一个字符串 包括若干字符 定义的一般形式 字符型数据类型名变量名charc1 c2 其中c1和c2为字符型变量 各可以放一个字符 2 3变量 3 字符型变量的使用例2 7 向字符变量赋以整数 main charc1 c2 c1 65 c2 97 printf c1 cc2 c n c1 c2 printf c1 dc2 d n c1 c2 运行结果 2 3变量 可以看到 字符型数据和整型数据是通用的 它们既可以用字符格式输出 用 c 也可以用整数形式输出 用 d 但应注意字符数据只占一个字节 它只能存放0 255或 128 127范围内的整数 2 3变量 例2 8 大小写字母的转换 main charc1 c2 c1 a c2 b c1 c1 32 c2 c2 32 printf c c c1 c2 运行结果为 2 3变量 所有用到的变量 先定义 后使用 这样做的目的是 1 凡未被事先定义的 不作为变量名 这就能保证程序中变量名使用得正确 例如 如果在定义部分写了intabc 而在执行语句中错写成acb 如 acb 30 在编译时检查出acb未经定义 不作为变量名 因此输出 变量acb未经声明 的信息 便于用户发现错误 避免变量名使用时出错 2 每一个变量被指定为一确定类型 在编译时就能为其分配相应的存储单元 如指定a b为int型 TurboC编译系统为a和b各分配两个字节 并按整数方式存储数据 3 指定每一变量属于一个类型 这就便于在编译时 据此检查该变量所进行的运算是否合法 例如 整型变量a和b 可以进行求余运算 a b 是 求余 得到a b的余数 如果将a b的指定为实型变量 则不允许进行 求余 运算 在编译时会给出有关 出错信息 2 3变量 4 变量赋初值程序中常需要对一些变量赋初值 赋初值的方式如下 1 语言允许在定义变量的同时使变量初始化 如 inta 3 指定a为整型变量 初值为3 floatf 3 56 指定f为实型变量 初值为3 56 charc a 指定c为字符型变量 初值为 a 2 也可以使被定义的变量的一部分赋初值 如inta b c 5 表示指定a b c为整型变量 只对c初始化 c的值为5 3 对于几个变量同时赋初值 如inta 3 b 3 c 3 表示a b c的初值都是3 不能写成 inta b c 3 初始化不是在编译阶段完成的 而是在程序运行时执行本函数时赋予初值的 由于C语言本身不像其他某些高级语言一样有输入和输出语句 其输入和输出是由标准的输入和输出函数完成的 使用标准输入输出函数时 由于这些函数的原型均在特定的stdio h这个头文件中定义 因此需要通过预处理命令在程序开头嵌入头文件stdio h 写出如下命令 include由于printf函数和scanf函数在程序中用的比较频繁 在tc中程序中可以不加 include命令 2 4数据输入与输出 2 4字符输入输出函数 1 字符输入函数getchargetchar函数的功能是从标准输入设备 通常是键盘 上输入一个字符 当程序执行到getchar函数时 将等待用户从键盘上输入一个字符 并将这个字符作为函数结果值返回 调用形式如下getchar 若需要使用getchar 函数 则要把头文件stdio h包含进来 例2 9 includemain charc printf pleaseinputacharacter 输出提示内容 c getchar 从键盘读入字符 printf Thecharacterinputedis c n c 在屏幕上输出所输入的字符 运行结果 运行该程序时 提示操作后输入一个或几个字符 但由于getchar函数只能接收一个字符 字符c被接收 其他字符不起作用 然后在终端上以字符格式输出所输入的字符 2 4字符输入输出函数 2 字符输出函数putchar 该函数向标准输出设备 通常是显示终端 输出一字符 它的调用形式如下 putchar 字符变量 例2 10 includemain inta 定义整数变量名 a 100 给变量赋值 printf outputthecharacter n putchar a 输出字符 运行结果执行该程序 将把字符d 其ASCII码为100 输出在显示屏上 2 4字符输入输出函数 3 2 1格式输出函数printf函数是将输出项按指定的格式输出到标准输出设备上 调用printf函数的一般形式如下 printf 格式控制字符串 输出项列表 2 4格式输入输出函数 1 格式控制字符串格式控制字符串通常是一对双引号括起来的字符串常量 它包括两方面的内容 1 格式字符它由字符 和格式字符组成 如 d f c等 它们规定了输出项的输出格式 常用的格式说明中的格式字符及含义如表 2 4格式输入输出函数 2 普通字符格式控制字符串中的普通字符是需要照原样输出的字符 可起提示作用 格式字符 2 输出项列表输出项是需要输出的数据项 常量 变量或表达式 数据项应当与格式控制字符串中的格式字符一一对应 如果输出项有多个 数据项之间用逗号隔开 例如 printf A d B f n a b 如果上面的语句中a的值为10 f的值为1 5 则输出为 A 10 B 1 500000 2 4格式输入输出函数 2 4格式输入输出函数 3 常用格式字符的用法1 d o x u格式字符属于整形数据的格式符 分别输出十进制 八进制 十六进制和无符号十进制整数 例2 11 includemain inta 12 b 123 c 12345 longd 123456 printf d 4d 4d ld 8ld n a b c d d printf o 4o 4o lo 8lo n a b c d d printf x 4x 4x lx 8lx n a b c d d printf u 4u 4u lu 8lu n a b c d d 运行结果 2 4格式输入输出函数 对于一个数可以以不同的形式输出 2 4格式输入输出函数 2 c格式字符用来输出单个字符 例2 12 includemain charc a intn 98 printf c d n c n printf 4c 4d n c n printf d c n c n printf 4d 4c n c n 2 4格式输入输出函数 运行结果 如果整数的值在0 255范围内 也可以用字符形式输出 反之 字符数据也能用整型数格式输出 2 4格式输入输出函数 3 s格式字符用来输出字符串 2 4格式输入输出函数 例2 13 includemain printf s n English printf 4s n English printf 8s n English printf 8s n English printf 8 2s n English printf 8 2s n English 运行结果 2 4格式输入输出函数 4 f格式字符用来输出实型数 以小数形式输出 2 4格式输入输出函数 例2 14 includemain floatf 1234 1234 doubled 12345 123456789 printf f lf n f d printf 10 2f 10 2lf n f d printf 10 2f 10 2lf n f d 运行结果 可以看出 单精度实型数f只有前7位是有效数字 而最后三位是无意义的 2 4格式输入输出函数 5 e格式字符以指数形式输出实数 指数形式为 d ddddde xx小数点前有1位非0数字 小数点占1位 小数点后的数字个数为n 1 n表示输出精度 有效数字位数 格式转换时四舍五入处理 指数部分包括字母e 或E 正负号和至少两位数字 如e 03 2 4格式输入输出函数 例2 15 includemain floatf 123 456 printf e 10 2e n f f 运行结果 2 4格式输入输出函数 6 g格式字符用来输出实数 它根据数值的大小 自动选f格式或e格式 选择输出时占宽度较小的一种 且不输出无意义的零 例2 16 includemain floatf 123 456 printf f e g n f f f 运行结果 2 4格式输入输出函数 2 4 2 格式输入函数scanf函数scanf的作用是从标准输入设备 通常是键盘 按照指定的格式把它们送到相应的数据存储地址中 调用scanf函数的一般格式如下 scanf 格式控制字符串 地址表 变量的地址可由取地址运算符 得到 如变量a的地址为 a 2 4格式输入输出函数 例2 17用户从键盘输入一个整数 一个实数和一个字符 includemain inti floatf charc scanf d f c 运行结果 由于 f说明中没有指明精度 小数点后面保留6位小数 2 4格式输入输出函数 使用scanf函数应注意以下几个方面 1 格式控制字符中的每个格式说明都必须与地址表中一个变量地址对应 类型

温馨提示

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

评论

0/150

提交评论