第6章 字符型数据.pdf_第1页
第6章 字符型数据.pdf_第2页
第6章 字符型数据.pdf_第3页
第6章 字符型数据.pdf_第4页
第6章 字符型数据.pdf_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

2010年年4月月22日星期四日星期四 沈旭升沈旭升 第六章 2010年年4月月22日星期四日星期四 沈旭升沈旭升 本章要点本章要点 字符常量和变量 字符的输入与输出字符的输入与输出 2010年年4月月22日星期四日星期四 沈旭升沈旭升 C的数据类型 C语言提供了以下一些数据类型 数据类型数据类型数据类型数据类型 构造类型构造类型构造类型构造类型 指针类型指针类型指针类型指针类型 空类型 空类型 空类型 空类型 无值类型 无值类型 无值类型 无值类型 voidvoidvoidvoid 枚举类型枚举类型枚举类型 枚举类型 enumenumenumenum 数组类型数组类型数组类型数组类型 结构类型结构类型结构类型 结构类型 structstructstructstruct 联合类型联合类型联合类型 联合类型 unionunionunionunion 基本类型基本类型基本类型基本类型 整型整型整型 整型 intintintint 字符型字符型字符型 字符型 charcharcharchar 实型 浮点型 实型 浮点型 实型 浮点型 实型 浮点型 单精度实型单精度实型单精度实型单精度实型 floatfloatfloatfloat 双精度实型双精度实型双精度实型双精度实型 doubledouble 2010年年4月月22日星期四日星期四 沈旭升沈旭升 6 1字符型常量 6 1 1 字符常量 1 用单引号包含的一个字符是字符 型常量 2 只能包含一个字符 3 单引号中的一个大写字母和小写 字母代表不同的字符常量 4 单引号中的空格 也是一个字 符常量 但不能写成 5 字符常量能用单引号括起来 不 能用双引号括起来 字符常量 1 用单引号包含的一个字符是字符 型常量 2 只能包含一个字符 3 单引号中的一个大写字母和小写 字母代表不同的字符常量 4 单引号中的空格 也是一个字 符常量 但不能写成 5 字符常量能用单引号括起来 不 能用双引号括起来 a a A A 1 1 a a abcabc a a A A a a a a 2010年年4月月22日星期四日星期四 沈旭升沈旭升 C还允许用一种特殊形式的字符常量 这种特殊形式的字符常量称为 还允许用一种特殊形式的字符常量 这种特殊形式的字符常量称为转义字符转义字符 转义字符以反斜线转义字符以反斜线 开头 后跟一个 或几个字符 开头 后跟一个 或几个字符 转义字符具有特定的含义 不 同于字符原有的意义 故称 转义字符具有特定的含义 不 同于字符原有的意义 故称 转义转义 字符 转 义字符主要用来表示那些用一般字符不便于 表示的控制代码 字符 转 义字符主要用来表示那些用一般字符不便于 表示的控制代码 6 1 2 转义字符常量转义字符常量 2010年年4月月22日星期四日星期四 沈旭升沈旭升 转义字符表示含义转义字符表示含义ASCII值值 n回车换行回车换行10 t横向跳到下一制表位置横向跳到下一制表位置9 v竖向跳到下一制表位置竖向跳到下一制表位置11 f走纸换页走纸换页12 r回车回车13 b退格退格8 反斜线符 反斜线符 92 单引号符单引号符39 a鸣铃鸣铃7 ddd1 3位八进制数所代表的字符 3位八进制数所代表的字符 xhh1 2位十六进制数所代表的字符 2位十六进制数所代表的字符 0空值空值 其其ascii值为值为00 转义字符转义字符 反斜线后面跟一个字符或一个代码值表示反斜线后面跟一个字符或一个代码值表示 aaa7 沈旭升沈旭升 例例 A 101 x41 65 例 转义字符举例例 转义字符举例 main printf 101 x42 C n printf I say How are you n printf C Program n printf Turbo C 运行结果 屏幕显示 A B C Isay How are you C Program Turbo C 例 例 main printf Y b n 运行结果 屏幕显示 2010年年4月月22日星期四日星期四 沈旭升沈旭升 例 转义字符的使用 include void main printf ab c t de rf tg n printf h ti b bj k n include void main printf ab c t de rf tg n printf h ti b bj k n 2010年年4月月22日星期四日星期四 沈旭升沈旭升 转义字符说明转义字符说明 转义字符常量不管形式怎么样转义字符常量不管形式怎么样 都代表一个字符都代表一个字符 反斜杠后的八进制数可以不用反斜杠后的八进制数可以不用0开头开头 反斜杠后的十六进制数只可用小写字母反斜杠后的十六进制数只可用小写字母x表示开头表示开头 不 允许用大写字母 不 允许用大写字母X 也不能用也不能用0 x 2010年年4月月22日星期四日星期四 沈旭升沈旭升 字符常量与字符串常量不同 定义 用双引号 定义 用双引号 括起来的字符序列 存储 每个字符串尾 括起来的字符序列 存储 每个字符串尾自动自动加一个 加一个 0 0 作为字符串结 束标志 作为字符串结 束标志 h e l l o 0 例 字符串例 字符串 hellohello 在内存中在内存中 aa 0例 a a 例 空串 0 例 char ch ch A 例 char ch ch A 6 1 3字符串常量字符串常量 2010年年4月月22日星期四日星期四 沈旭升沈旭升 合法的字符串常量 合法的字符串常量 How do you do How do you do CHINACHINA a a 123 45 123 45 可以输出一个字符串 如 printf 可以输出一个字符串 如 printf How do you do How do you do 2010年年4月月22日星期四日星期四 沈旭升沈旭升 a 是字符常量 a 是字符串常量 二者同 如 如 假设 被指定为字符变量 char c c a c a c china 结论 结论 不能把一个字符串常量赋给一个字符变量 不能把一个字符串常量赋给一个字符变量 2010年年4月月22日星期四日星期四 沈旭升沈旭升 6 1 4 可对字符常量进行的运算可对字符常量进行的运算 C语言中语言中 字符量可参与任何整数运算字符量可参与任何整数运算 例如例如 B A 66 65 1 a 1 97 1 98 b 大写字母转成小写字母大写字母转成小写字母 A 32 a 小写字母转成大写字母小写字母转成大写字母 b 32 98 32 66 B 通过算术运算把数字字符转换为整数值通过算术运算把数字字符转换为整数值 9 0 9 48 9 3 0 51 48 3 把一位整数转换成数字字符把一位整数转换成数字字符 9 0 9 48 9 4 0 4 48 4 字符量也可以进行关系运算字符量也可以进行关系运算 a b 2010年年4月月22日星期四日星期四 沈旭升沈旭升 6 2 字符变量字符变量 C语言中语言中 字符变量用关键字字符变量用关键字char进行定义进行定义 当然在定义的 同时可以赋初值 当然在定义的 同时可以赋初值 char c1 c2 c3 c1 1 c1 考虑如何把考虑如何把a b b c c d d e z a 2010年年4月月22日星期四日星期四 沈旭升沈旭升 字符数据在内存中的存储形式及其使用方法字符数据在内存中的存储形式及其使用方法 将一个字符常量放到一个字符变量中 并不是 把该字符本身放到内存单元中去 而是将该字符 的相应的ASCII值放到字符变量代表的存储单元 中 将一个字符常量放到一个字符变量中 并不是 把该字符本身放到内存单元中去 而是将该字符 的相应的ASCII值放到字符变量代表的存储单元 中 这样使字符型数据和整型数据之间可 以通用 一个字符数据既可以以字符形式 输出 也可以以整数形式输出 这样使字符型数据和整型数据之间可 以通用 一个字符数据既可以以字符形式 输出 也可以以整数形式输出 2010年年4月月22日星期四日星期四 沈旭升沈旭升 例 向字符变量赋以整数 include void main char c1 c2 c1 97 c2 98 printf c c n c1 c2 printf d d n c1 c2 2010年年4月月22日星期四日星期四 沈旭升沈旭升 6 3 字符的输入和输出字符的输入和输出 有哪些方式有哪些方式 2010年年4月月22日星期四日星期四 沈旭升沈旭升 注意事项注意事项 当使用当使用 c一个接一个时一个接一个时 字符之间不应该有空格符字符之间不应该有空格符 这 时 这 时 空格空格 回车换行符和横向制表符都装作为字符读入回车换行符和横向制表符都装作为字符读入 例如例如 scanf c c c 当输入当输入 TH E 可以在格式说明串中加入空格可以在格式说明串中加入空格 这样就不会把空格这样就不会把空格 回 车换行 回 车换行 制表符作为字符读入了制表符作为字符读入了 scanf c c c 当交叉输入数值数据和字符数据时当交叉输入数值数据和字符数据时 由于他们的读取数 据方式不同 由于他们的读取数 据方式不同 如果用户不加注意如果用户不加注意 会容易产生错误的输入结 果 会容易产生错误的输入结 果 int a1 a2 char c1 c2 scanf d c d c 2010年年4月月22日星期四日星期四 沈旭升沈旭升 单个字符的输入输出示例单个字符的输入输出示例 include stdio h main char ch printf Please input two character ch getchar putchar ch putchar n putchar getchar putchar n 2010年年4月月22日星期四日星期四 沈旭升沈旭升 程序运行情况如下 程序运行情况如下 Please input two characters ab a b 1 getchar 函数的格式 函数的格式 getchar 2 getchar 函数的作用 从标准的输入设备 如键 盘 输入一个字符 另外 从功能角度来看 函数的作用 从标准的输入设备 如键 盘 输入一个字符 另外 从功能角度来看 scanf 函数 可以完全代替 函数 可以完全代替getchar 函数 函数 1 getchar 函数只能用于单个字符的输入 一次 输入一个字符 函数只能用于单个字符的输入 一次 输入一个字符 2 程序中要使用 程序中要使用getchar 函数 必须在程序 或 文件 的开头加上编译预处理命令 函数 必须在程序 或 文件 的开头加上编译预处理命令 include stdio h 2010年年4月月22日星期四日星期四 沈旭升沈旭升 例例1 输出输出26个大写字母和它们的个大写字母和它们的ASCII码码 每行输出两组数据每行输出两组数据 6 4程序举例程序举例 2010年年4月月22日星期四日星期四 沈旭升沈旭升 例例2 从终端输入一串字符从终端输入一串字符 把其中所有的大写字母转成小写把其中所有的大写字母转成小写 其余的字符不变其余的字符不变 2010年年4月月22日星期四日星期四 沈旭升沈旭升 例例3 统计输入的字符中空格符统计输入的字符中空格符 回车换行符回车换行符 横向跳格符的个 数 横向跳格符的个 数 用用 字符结束字符结束 2010年年4月月22日星期四日星期四 沈旭升沈旭升 例例4 把一串密码译成正方把一串密码译成正方 密码以字符密码以字符 结束结束 如果是字母如果是字母 转换成字母序列的下一个字母转换成字母序列的下一个字母 如如A译成译成B B 译成译成C 如果是字母如果是字母Z 译成译成A 无论是大小写字母都译成小写字母无论是大小写字母都译成小写字母 其它字符一律照原样译出其它字符一律照原样译出 2010年年4月月22日星期四日星期四 沈旭升沈旭升 6 7 典型试题详解典型试题详解 1 1 有以下程序段 有以下程序段 int m 0 n 0 char c a scanf d c d printf d c d n m c n int m 0 n 0 char c a scanf d c d printf d c d n m c n 若从键盘上输入 10A10 则输出结果是 A 10 A 10 B 16 a 10 C 10 a 0 D 10 A 0 若从键盘上输入 10A10 则输出结果是 A 10 A 10 B 16 a 10 C 10 a 0 D 10 A 0 正确答案 正确答案 A 知识点 知识点 scanf函数的输入格式 函数的输入格式 试题分析 试题分析 当当 c处在处在 d 之后时 输入数据间不能用分隔 符 所以 之后时 输入数据间不能用分隔 符 所以m c n经经scanf d c d 则变量则变量a A 包含包含1个字符 个字符 B 包含包含2个字符个字符 C 包含包含3个字符 个字符 D 定义不合法定义不合法 5 C语言中 下列不合法的字符常量是 5 C语言中 下列不合法的字符常量是 A xff B 65 C pirntf d d n c1 c2 2010年年4月月22日星期四日星期四 沈旭升沈旭升 9 以下程序输出结果是 9 以下程序输出结果是 include main char ch ch A 5 3 pirntf d c n ch ch 2010年年4月月22日星期四日星期四 沈旭升沈旭升 10 以下程序从第一列开始输入 2473 则 程序输出结果是 10 以下程序从第一列开始输入 2473 则 程序输出结果是 include main int c while c getchar n switch c 2 case 0 case 1 putchar c 4 case 2 putchar c 4 break case

温馨提示

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

评论

0/150

提交评论