您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > c语言第六章字符数据
第6章字符型数据•6.1字符型常量•6.2字符变量•6.3字符的输入和输出•6.4程序举例6.1字符型常量6.1.1字符常量字符常量:是用单引号括起来的一个字符。例如‘A’‘C’‘t’‘!’‘?’说明‘B’‘b’是不同的字符常量‘’单引号内是空格,也是合法的字符常量‘’不合法‘abc’不合法“a”不合法注意①字符常量在内存中占一个字节。②字符常量在计算机内部存储时,是以整型常量进行存储的。‘A’‘a’对应的ASCII值为对应的ASCII值为65976.1字符型常量6.1.2转义字符常量转义字符常量是一种特殊的字符常量,在单引号内以一个反斜杠开头。例如‘\n’回车换行符‘\t’横向跳格符‘\v’竖向跳格符‘\r’回车符‘\f’换页符‘\b’退格符‘\0’空值‘\\’表示反斜杠‘\‘’表示单引号‘\“’表示双引号‘\ddd’三位八进制数所代表的字符‘\xhh’两位十六进制数所代表的字符’\101‘‘\141’’A‘‘a’’\x41‘‘\x6d’’A‘‘m’注意’\n‘、’\101’、’\141’只代表一个字符。6.1字符型常量6.1.3字符串常量字符串常量:是由双引号括起来的一串字符。例如“STRING”“CHINA”‘\101’、‘Z’是字符常量,在内存中占一个字节。注意请问:“CHINA”在内存中占几个字节?6在内存中的存储形式是:CHINA\06.1字符型常量6.1.4可对字符常量进行的运算1.在程序中,字符常量可与任何整数进行运算。‘B’-‘A’等价于66–65等于1‘a’+1等价于97+1等于982.小写字母的ASCII值比相应的大写字母的ASCII值大32。‘A’+32等价于65+32等于97‘b’-32等价于98-32等于66‘a’‘B’3.字符常量也可以进行关系运算。‘a’‘b’‘a’‘A’‘a’&&‘b’0116.2字符变量字符变量的定义:字符变量用关键字char定义。charch,ca,cb;charch=‘*’,ca=‘A’,cb=‘a’;字符变量在内存中占1个字节分析如下程序段:charc1,c2,c3;intk=5;c1=‘1’;c1++;c2=‘A’;c3=(c2+32+k)%25;5c1c2c3k49506526.3字符的输入和输出6.3.1调用printf和scanf函数输出和输入字符字符输出chara;a=‘S’;printf(“a=%c\n”,a);/*使用%c进行格式说明*/a=Schara;a=‘S’;printf(“a=%3c\n”,a);a=S输出时,也可以指定输出的宽度。例如:字符输入chara,b,c;scanf(“%c%c%c”,&a,&b,&c);若要给变量a、b、c分别赋予‘1’、‘2’、‘3’。正确的输入形式为:123CR非法12CR3CR123CR6.3字符的输入和输出6.3.1调用printf和scanf函数输出和输入字符⊙输入时,可以在格式说明串中加入空格,如:scanf(“%c%c%c”,&a,&b,&c);这时输入的时候,不做严格要求,可以任意加间隔符123CR123CR123CR123CR⊙如下的语句为数值数据和字符数据进行混合输入:inta1,a2;charc1,c2;scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);正确的读入形式:10A20BCRA和20之间必须有间隔符,间隔符的个数不限此时变量a1接受的是10,c1接受的是‘A’,a2接受的是20,c2接受的是‘B’,10A20BCR错误的读入形式6.3字符的输入和输出6.3.2调用putchar和getchar函数输出和输入字符在使用printf和scanf函数输出和输入字符时,在程序的开头,都要加上包含头文件:#includestdio.h在使用putchar和getchar函数输出和输入字符时,在程序的开头也同样要有。输出:putchar()输入:getchar()例如:charch=‘A’;putchar(ch);Aputchar(‘Y’);Y例如:charch;ch=getchar();给字符变量接受字符6.4程序举例例6.1以下程序输出26个大写字母和它们的ASCII代码,每行输出两组数据。#includestdio.hmain(){charch;inti;for(i=0;i26;i++){ch=i+65;if(i%2==0)printf(\n);printf(ch=%cASCII=%d,ch,ch);}printf(\n);}6.4程序举例例6.2以下程序段等待从终端输入一个字符,当按Enter键时,程序才往下继续进行。#includestdio.hmain(){::printf(“PressEntertocontinue\n);while(getchar()!=‘\n’);::}/*当输入回车时,退出循环*/6.4程序举例例6.3以下程序把从终端输入的一行字符中所有的小写字母转换成大写字母,其他字符不变。#includestdio.hmain(){charc;while((c=getchar())!='\n‘){if(c='a'&&c='z‘)c=c-32;putchar(c);}printf(\n);}6.4程序举例例6.4编写程序统计输入的字符中空格符、换行符和横向跳格(制表)符的个数,用!号结束输入。#includestdio.h#includectype.hmain(){longn=0;charch;while((ch=getchar())!='!')if(isspace(ch))n++;printf(n=%ld\n,n);}/*函数isspace用来判断ch中的字符是否是空格符、换行符或制表符*/习题一.选择题6.1C语言中的简单数据类型有A整型,实型,逻辑型B整型,实型,字符型C整型,字符型,逻辑型D整型,实型,逻辑型,字符型6.2C语言中,字符(char)型数据在微机内存中的存储形式是A反码B补码CEBCDIC码DASCII码6.3设有定义语句:chara=‘\x72’;,则变量aA包含1个字符B包含2个字符C包含3个字符D定义不合法6.4C语言中,下列不合法的字符常量A‘\xff’B‘\x65’C‘&’D‘\028’6.5C语言中,下列不合法的字符串常量是A“\121”B‘y=’C“\n\n”D“ABCD\x6d”6.6判断char型变量c是否为大写字母的最简单且正确的表达式是A‘A’=c=‘Z’B(c=‘A’)||(c=‘Z’)C(‘A’=c)AND(’Z’=c)D(c=‘A’)&&(c=‘Z’)BDADBD习题6.7有以下程序:#includestdio.hmain(){charc1='A',c2='Y';printf(%d,%d\n,c1,c2);}程序的输出结果是A因输出格式不合法,无正确输出B65,90CA,YD65,896.8有以下程序:#includestdio.hmain(){charx='A';x=(x='A'&&x='Z')?(x+32):x;printf(%c\n,x);}程序的输出结果是AABaCZDzDB6.9有以下程序:#includestdio.hmain(){charch;ch='A'+'5’-'3';printf(%d,%c\n,ch,ch);}程序的输出结果是A67,CBB,CCC,DD不确定的值6.10有以下程序:#includestdio.hmain(){intc;while((c=getchar())!='\n'){switch(c-'2'){case0:case1:putchar(c+4);case2:putchar(c+4);break;case3:putchar(c+3);default:putchar(c+2);break;}}printf(\n);}习题从第一列开始输入数据:2473CR,CR代表回车,程序的输出结果是A668977B669866C66778777D6688766AA习题6.11若变量已正确定义,要求用语句:scanf(“%f%c%f%c”,&a,&c1,&b,&c2);给c1赋予字符%,给c2赋予字符#,给a赋予2.0,给b赋予4.0,则正确的输入形式是(_代表空格,CR代表回车)A2.0_%_4.0_#CRB2.0%4.0_#CRC2%__4.0#CRD2_%_4_#CR二,填空题6.12C语言中,字符在内存中占________个字节.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”,&w,&a,&x,&b,&y,&c,&z,&d);C1ctype.h110ACR20BCR30CCR40DCR6.16若有以下定义和输入语句,要求给c1,c2分别输入字符A和B,给a1,a2分别输入7.29和101.298,从键盘正确输入数据的形式是____.charc1,c2;floata1,a2;scanf(“%f%f”,&a1,&a2);scanf(“%c%c”,&c1,&c2);6.17若有以下定义和输入语句,要求给c1,c2分别输入字符A和B,给a1,a2分别输入7.29和101.298,从键盘正确输入数据的形式是____.charc1,c2;floata1,a2;scanf(“%c%f%c%f”,&c1,&a1,&c2,&a2);6.18若有以下定义和输入语句,要求给c1,c2,c3分别输入字符A,B和C,请写出从键盘正确输入数据的形式.charc1,c2,c3;scanf(“%4c”,&c1);scanf(“%4c”,&c2);scanf(“%4c”,&c3);习题7.29CR101.298ABCRA7.29B101.298CRA___B___C___CR
本文标题:c语言第六章字符数据
链接地址:https://www.777doc.com/doc-3358386 .html