《C语言课程课件 第六章 字符数据》由会员分享,可在线阅读,更多相关《C语言课程课件 第六章 字符数据(18页珍藏版)》请在金锄头文库上搜索。
1、第6章 字符型数据 6.1 字符型常量 6.2 字符变量 6.3 字符的输入和输出 6.4 程序举例6.1 字符型常量6.1.1 字符常量字符常量:是用单引号括起来的一个字符。例如A C t ! ?说明B b是不同的字符常量 单引号内是空格,也是合法的字符常量不合法abc不合法“a”不合法注意 字符常量在内存中占一个字节。 字符常量在计算机内部存储时,是以整型常量进行存储的。Aa对应的ASCII值为对应的ASCII值为65976.1 字符型常量6.1.2 转义字符常量转义字符常量是一种特殊的字符常量,在单引号内以一个反斜杠开头。例如n 回车换行符 t 横向跳格符v 竖向跳格符 r 回车符f 换
2、页符 b 退格符 0 空值 表示反斜杠 表示单引号 “ 表示双引号ddd 三位八进制数所代表的字符 xhh 两位十六进制数所代表的字符 101 141A ax41 x6dA m注意n、101、141只代表一个字符。6.1 字符型常量6.1.3 字符串常量字符串常量:是由双引号括起来的一串字符 。例如“STRING” “CHINA”101、Z是字符常量,在内存中占一个字节。 注意请问: “CHINA”在内存中占几个字节?6在内存中的存储形式是:C H I N A 06.1 字符型常量6.1.4 可对字符常量进行的运算1. 在程序中,字符常量可与任何整数进行运算。B - A 等价于 66 65 等
3、于 1 a + 1 等价于 97 + 1 等于 982. 小写字母的ASCII值比相应的大写字母的ASCII值大32。 A + 32 等价于 65 + 32 等于 97 b - 32 等价于 98 - 32 等于 66 aB3. 字符常量也可以进行关系运算。a ba Aa int k=5; c1=1; c1+; c2=A; c3=(c2+32+k)%25; 5c1c2c3k49506526.3 字符的输入和输出6.3.1 调用printf和scanf函数输出和输入字 符字符输出char a; a=S; printf(“a=%cn”,a); /*使用%c进行格式说明*/a=Schar a; a=
4、S; printf(“a=%3cn”,a);a= S输出时,也可以指定输出的宽度。例如:字符输入char a,b,c; scanf(“%c%c%c”,若要给变量a、b、c分别赋予1、2、3。正确的输入形式为: 123非法12 31 236.3 字符的输入和输出6.3.1 调用printf和scanf函数输出和输入字 符 输入时,可以在格式说明串中加入空格,如:scanf(“%c %c %c”,这时输入的时候,不做严格要求,可以任意加间隔符12312 31 2 31 2 3 如下的语句为数值数据和字符数据进行混合输入:int a1,a2; char c1,c2; scanf(“%d%c%d%c”
5、,正确的读入形式: 10A 20BA和20之间必须有间隔符,间隔符的个数不限此时变量a1接受的是10,c1接受的是A, a2接受的是20,c2接受的是B,10 A 20 B错误的读入形式6.3 字符的输入和输出6.3.2 调用putchar和getchar函数输出和输入字符在使用printf和scanf函数输出和输入字符时,在程序的开头,都要加上包含头文件:#include 在使用putchar和getchar函数输出和输入字符时,在程序的开头也同样要有。输出:putchar() 输入:getchar()例如: char ch=A;putchar(ch);Aputchar(Y);Y例如: ch
6、ar ch;ch=getchar();给字符变量接受字符6.4 程序举例例6.1 以下程序输出26个大写字母和它们的ASCII代码,每行输出两组数据。#include main() char ch; int i;for(i=0;i main() :printf(“Press Enter to continuen“);while( getchar( ) != n ) ; : /*当输入回车时,退出循环*/6.4 程序举例例6.3 以下程序把从终端输入的一行字符中所有的小写字母转换成大写字母, 其他字符不变。#include main() char c;while( ( c=getchar( )
7、) != n )if( c=a char ch;while( ( ch=getchar( ) ) != !)if( isspace( ch ) ) n+;printf(“n=%ldn“,n); /*函数isspace用来判断ch中的字符是否是空格符、换行符或制表符*/习题一.选择题 6.1 C语言中的简单数据类型有 A 整型,实型,逻辑型 B 整型,实型,字符型 C 整型,字符型,逻辑型 D 整型,实型,逻辑型,字符型 6.2 C语言中,字符(char)型数据在微机内存中的存储形式是 A 反码 B 补码 C EBCDIC码 D ASCII码 6.3 设有定义语句:char a=x72;,则变量
8、a A 包含1个字符 B 包含2个字符 C 包含3个字符 D 定义不合法 6.4 C语言中,下列不合法的字符常量 A xff B x65 C printf(“%d,%dn“,c1,c2); 程序的输出结果是 A 因输出格式不合法,无正确输出 B 65,90 C A,Y D 65,89 6.8 有以下程序: #include main() char x=A;x=(x=Ach=A+5-3;printf(“%d,%cn“,ch,ch); 程序的输出结果是 A 67,C B B,C C C,D D 不确定的值6.10有以下程序: #include main() int c;while(c=getcha
9、r()!=n)switch(c-2)case 0:case 1:putchar(c+4);case 2:putchar(c+4);break;case 3:putchar(c+3);default:putchar(c+2);break;printf(“n“); 习题从第一列开始输入数据:2473,代表回车,程序的输出结果是 A 668977 B 669866 C 66778777 D 6688766AA习题6.11 若变量已正确定义,要求用语句: scanf(“%f%c%f%c”,给 c1赋予字符%,给c2赋予字符#,给a赋予2.0,给b赋予4.0,则正确的输入 形式是(_代表空格,代表回车)
10、 A 2.0_%_4.0_# B 2.0%4.0_# C 2%_ _4.0# D 2_%_4_#二,填空题 6.12 C语言中,字符在内存中占_个字节. 6.13 调用C语言提供的对字符进行处理的库函数时,在#include命令行中应包含的 头文件是_. 6.14 若变量已正确定义,在执行以下whlie语句时,输入字符A后,ch的值是_.whlie( ch=getchar() =A) ;6.15 若变量已正确定义,要通过以下语句给a,b,c,d分别输入字符A,B,C,D,给w,x,y,z 分别输入整数10,20,30,40,正确的输入形式是_. scanf(“%d%c%d%c%d%c%d%c”
11、,C1ctype.h 110A 20B 30C 40D6.16 若有以下定义和输入语句,要求给c1,c2分别输入字符A和B,给a1,a2分别输入7.29和101.298,从键盘正确输入数据的形式是_. char c1,c2; float a1,a2; scanf(“%f%f”, scanf(“%c%c”,6.17 若有以下定义和输入语句,要求给c1,c2分别输入字符A和B,给a1,a2分别输入7.29和101.298,从键盘正确输入数据的形式是_. char c1,c2; float a1,a2; scanf(“%c%f%c%f”, 6.18 若有以下定义和输入语句,要求给c1,c2,c3分别输入字符A,B和C,请写出从键盘 正确输入数据的形式. char c1,c2,c3; scanf(“%4c”, scanf(“%4c”, scanf(“%4c”, 习题7.29 101.298ABA 7.29B 101.298A_ _ _B_ _ _C_ _ _