C语言复习第二十一课.docx
- 文档编号:27778148
- 上传时间:2023-07-05
- 格式:DOCX
- 页数:16
- 大小:33.54KB
C语言复习第二十一课.docx
《C语言复习第二十一课.docx》由会员分享,可在线阅读,更多相关《C语言复习第二十一课.docx(16页珍藏版)》请在冰豆网上搜索。
C语言复习第二十一课
第二十一课
※主要内容
(1)、字符型数据
※主要知识点
1、字符常量
字符常量是指用一对单引号括起来的一个字符。
如‘a’,‘9’,‘!
’。
字符常量中的单引号只起定界作用并不表示字符本身。
单引号中的字符不能是单引号(’)和反斜杠(\),它们特有的表示法在转义字符中介绍。
在CC语言中,字符是按其所对应的ASCII码值来存储的,一个字符占一个字节。
例如:
字符ASCII码值(十进制)!
33048149957A65B66a97b98
注意字符'9'和数字9的区别,前者是字符常量,后者是整型常量,它们的含义和在计
算机中的存储方式都截然不同。
由于C语言中字符常量是按整数(short型)存储的,所以字符常量可以像整数一样在程序中参与相关的运算。
例如:
'a'-32;/*执行结果97-32=65*/
'A'+32;/*执行结果65+32=97*/
'9'-9;/*执行结果57-9=48*/
2、字符串常量
字符串常量是指用一对双引号括起来的一串字符。
双引号只起定界作用,双引号括起的字符串中不能是双引号(")和反斜杠(\),它们特有的表示法在转义字符中介绍。
例如:
"China","Cprogram","YES&NO","33312-2341","A"
等。
C语言中,字符串常量在内存中存储时,系统自动在字符串的末尾加一个“串结束标志”,即ASCII码值为0的字符NULL,常用\0表示。
因此在程序中,长度为n个字符的字符串常量,在内存中占有n+1个字节的存储空间。
例如,字符串China有5个字符,作为字符串常量"China"存储于内存中时,共占6个字节,系统自动在后面加上NULL字符,其存储形式为:
要特别注意字符串与字符串常量的区别,除了表示形式不同外,其存储性质也不相同,字符'A'只占1个字节,而字符串常量"A"占2个字节。
3、转义字符
转义字符是C语言中表示字符的一种特殊形式。
通常使用转义字符表示ASCII码字符集中不可打印的控制字符和特定功能的字符,如用于表示字符常量的单撇号('),用于表示字符串常量的双撇号(")和反斜杠(\)等。
转义字符用反斜杠\后面跟一个字符或一个八进制或十六进制数表示。
表2-4给出了C语言中常用的转义字符。
字符常量中使用单引号和反斜杠以及字符常量中使用双引号和反斜杠时,都必须使用转义字符表示,即在这些字符前加上反斜杠。
在C程序中使用转义字符\ddd或者\xhh可以方便灵活地表示任意字符。
\ddd为斜杠后面跟三位八进制数,该三位八进制数的值即为对应的八进制ASCII码值。
\x后面跟两位十六进制数,该两位十六进制数为对应字符的十六进制ASCII码值。
使用转义字符时需要注意以下问题:
:
1)转义字符中只能使用小写字母,每个转义字符只能看作一个字符。
。
2)\v垂直制表和\f换页符对屏幕没有任何影响,但会影响打印机执行响应操作。
3)在C程序中,使用不可打印字符时,通常用转义字符表示。
4、符号常量
C语言允许将程序中的常量定义为一个标识符,称为符号常量。
符号常量一般使用大写英文字母表示,以区别于一般用小写字母表示的变量。
符号常量在使用前必须先定义,定义的形式是:
#define<符号常量名><常量>
例如:
#definePI3.1415926
6#defineTRUE1
1#definrFALSE0
0#defineSTAR'*'
这里定义PI、TRUE、FLASE、STAR为符号常量,其值分别为3.1415926,1,0,'*'。
#define是C语言的预处理命令,它表示经定义的符号常量在程序运行前将由其对应的常量替换。
定义符号常量的目的是为了提高程序的可读性,便于程序的调试和修改。
因此在定义符号常量名时,应使其尽可能地表达它所代表的常量的含义,例如前面所定义的符号常量名PI(π),表示圆周率3.1415926。
此外,若要对一个程序中多次使用的符号常量的值进行修改,只须对预处理命令中定义的常量值进行修改即可。
5、字符变量
字符变量用来存放字符常量,注意只能存放一个字符,不要以为在一个字符变量中可以放字符串。
字符变量的定义形式如下:
charc1,c2;
;
它表示c1和c2为字符变量,各放一个字符。
因此可以用下面语句对c1、c2赋值:
c1='a';c2='b';
c1、c2被指定为字符变量。
但在第3行中,将整数97和98分别赋给c1和c2,它的作用相当于以下两个赋值语句:
c1='a';c2='b';
因为'a'和'b'的ASCII码为97和98。
第4行将输出两个字符。
"%c"是输出字符的格式。
程序输出:
它的作用是将两个小写字母转换为大写字母。
因为'a'的ASCII码为97,而'A'为65,'b'为98,'B'为66。
从ASCII代码表中可以看到每一个小写字母比大写字母的ASCII码大32。
即'a'='A'+32。
练习题一、选择题
(1)以下叙述中正确的是()
A)调用printf函数时,必须要有输出项
B)使用putchar函数时,必须在之前包含头文件stdio.h
C)在C语言中,整数可以以十二进制、八进制或十六进制的形式输出
D)调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码
(2)有以下程序
以下是引用片段:
main()
{chara1='M',a2='m';
printf("%c\n",(a1,a2));}
以下叙述中正确的是()
A)程序输出大写字母MB)程序输出小写字母m
C)格式说明符不足,编译出错D)程序运行时产生出错信息
(3)有以下程序
以下是引用片段:
#include
main()
{charc1='1',c2='2';
c1=getchar();c2=getchar();putchar(c1);putchar(c2);
}
当运行时输入:
a<回车>后,以下叙述正确的是()
A)变量c1被赋予字符a,c2被赋予回车符B)程序将等待用户输入第2个字符
C)变量c1被赋予字符a,c2中仍是原有字符2D)变量c1被赋予字符a,c2中将无确定值
(4)数字字符0的ASCII值为48,若有以下程序
以下是引用片段:
main()
{chara='1',b='2';
printf("%c,",b++);
printf("%d\n",b-a);
}
程序运行后的输出结果是()
A)3,2B)50,2C)2,2D)2,50
(5)有以下程序
以下是引用片段:
main()
{chara='a',b;
print("%c,",++a);
printf("%c\n",b=a++);
}
程序运行后的输出结果是()
A)b,bB)b,cC)a,bD)a,c
(6)有以下程序
以下是引用片段:
main()
{chara,b,c,d;
scanf("%c,%c,%d,%d",&a,&b,&c,&d);
printf("c,%c,%c,%c\n",a,b,c,d);
}
若运行时从键盘上输入:
6,5,65,66<回车>。
则输出结果是
A)6,5,A,BB)6,5,65,66C)6,5,6,5D)6,5,6,6
(7)有以下程序
以下是引用片段:
main()
{chark;intI;
for(i=1;i<3;i++)
{scanf(“%c”,&k);
switch(k)
{case‘0’:
printf(“another\n”);
case‘1’:
printf(“number\n”);
}
}
}
程序运行时,从键盘输入:
01<回车>,程序执行后的输出结果是()
A)another B)another C)another D)number
number number number number
anothernumber
(8)已定义ch为字符型变量,以下赋值语句中错误的是()
A)ch="\";B)ch=62+3;C)ch=NULL;D)ch="\xaa";
(9)已定义c为字符型变量,则下列语句中正确的是()
A)c=‘97’;B)c="97";C)c=97;D)c="a";
(10)有以下程序段
intm=0,n=0;charc=‘a’;
scanf("%d%c%d",&m,&c,&n);
printf("%d,%c,%d\n",m,c,n);
若从键盘上输入:
10A10<回车>,则输出结果是:
()
A)10,A,10B)10,a,10C)10,a,0D)10,A,0
(11)已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示的字符常量‘\101’是()
A)字符AB)字符aC)字符eD)非法的常量
(12)若变量a是int类型,并执行了语句:
a=‘A'+1.6;,则正确的叙述是()
A)a的值是字符CB)a的值是浮点型
C)不允许字符型和浮点型相加D)a的值是字符‘A’的ASCII值加上1。
(13)以下选项中合法的字符常量是()
A)“B”B)‘\010’C)68D)D
(14)以下程序的输出结果是()
main()
{charc=’z’;
printf(“%c”,c-25);
}
A)aB)ZC)z-25D)y
(15)以下选项中,非法的字符常量是()
A)‘\t’B)‘\17’C)“n”D)‘\xaa’
(16)若变量c为char类型,能正确判断出c为小写字母的表达式是()
A)‘a’<=c<=‘z’B)(c>=‘a’)||(c<=‘z’)
C)(‘a’<=c)and(‘z’>=c)D)(c>=‘a’)&&(c<=‘z’)
(17)有如下程序段
inta=14,b=15,x;
charc=’A’;
x=(a&&b)&&(c<’B’);
执行该程序段后,x的值为()
A)tureB)falseC)0D)1
(18)下列程序执行后的输出结果是()
A)GB)HC)ID)J
main()
{intx='f';printf("%c\n",'A'+(x-'a'+1));}
(19)以下程序的输出结果是()
A)编译不通过,无输出B)acegC)acegiD)abcdefghi
以下是引用片段:
main()
{inti;
for(i='A';i<'I';i++,i++)printf("%c",i+32);
printf("\n");
}
(20)在执行以下程序时,如果从键盘上输入,ABCdef<回车>,则输出为()
A)ABCdefB)abcDEFC)abcD)DEF
以下是引用片段:
#include
main()
{charch;
while((ch=getchar())!
='\n')
{if(ch>='A'&&ch<='Z')ch=ch+32;
elseif(ch>='a'&&ch<='z')ch=ch-32;
printf("%c",ch);
}
printf("\n");
}
(21)运行以下程序后,如果从键盘上输入china#<回车>,则输出结果为()
A)2,0B)5,0C)5,5D)2,5
以下是引用片段:
#include
main()
{intv1=0,v2=0;
charch;
while((ch=getchar())!
='#')
switch(ch)
{case'a';
case'h';
default;v1++;
case'0';v2++;
}
printf("%d,%d\n",v1,v2);
}
(22)下列不正确的转义字符是()
A)'\\'B)'\"C)'074'D)'\0'
(23)在C语言中,合法的字符常量是()
A)‘\084'B)‘\x43'C)‘ab'D)“\0”
(24)若有以下定义和语句
charc1='b',c2='e';
printf("%d,%c\n",c2-c1,c2-'a'+"A");
则输出结果是:
()
A)2,MB)3,EC)2,ED)输出项与对应的格式控制不一致,输出结果不确定
(25)已知字母A的ASCII码为十进制的65,下面程序的输出是()
A)67,DB)B,CC)C,DD)不确定的值
以下是引用片段:
main()
{charch1,ch2;
ch1='A'+'5'-'3';
ch2='A'+'6'-'3';
printf("%d,%c\n",ch1,ch2);}
(26)设ch是char型变量,其值为A,且有下面的表达式:
ch=(ch>='A'&&ch<='Z')?
(ch+32):
ch
上面表达式的值是()
A)AB)aC)ZD)z
(27)已知在ASCII代码中,字母A的序号为65,以下程序的输出的结果是()
以下是引用片段:
#include
main()
{charc1='A',c2='Y';
printf("%d,%d\n",c1,c2);}
A)因输出格式不合法,输出错误信息B)65,90C)A,YD)65,89
(28)有以下程序:
以下是引用片段:
#include
main()
{intc;
while((c=getchar())!
='\n')
{switch(c-'2')
{case0:
case1:
putchar(c+4);
case2:
putchar(c+4);break;
case3:
putchar(c+3);
case4:
putchar(c+2);break;}}
printf("\n");}
从第一列开始输入以下数据,
2743
程序的输出结果是 ()
A)668977B)668966C)6677877D)6688766
二、填空题:
(1)已知字母A的ASCII码为65。
以下程序运行后的输出结果是:
以下是引用片段:
main()
{chara,b;
a='A'+'5'-'3';b=a+'6'-'2';
printf("%d%c\n",a,b);
}
(2)以下程序运行后的输出结果是:
以下是引用片段:
main()
{
charc1,c2;
for(c1='0',c2='9';c1
printf("%c%c",c1,c2);
printf("\n");
}
(3)已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:
B33<回车>.输出结果是
:
以下是引用片段:
#include"stdio.h"
main()
{
chara,b;
a=getchar();scanf("%d",&b);
a=a-'A'+'0';
b=b*2;
printf("%c%c\n",a,b);
}
(4)已知字符A的ACSII码值为65,以下语句的输出结果是:
charch=’B’;
printf(“%c%d\n”,ch,ch);
(5)有以下程序
以下是引用片段:
#include
main()
{charch1,ch2;intn1,n2;
ch1=getchar();ch2=getchar();
n1=ch1-‘0’;n2=n1*10+(ch2-‘0’);
printf(“%d\n”,n2);
}
程序运行时输入:
12<回车>,执行后输出结果是:
(6)以下程序运行后的输出结果是:
以下是引用片段:
main()
{charm;
m=‘B’+32;printf("%c\n",m);
}
(7)执行以下程序后,输出‘#’号的个数是:
以下是引用片段:
#include
main()
{inti,j;
for(i=1;i<5;i++)
for(j=2;j<=i;j++)putchar('#');
}
(8)若有以下程序
以下是引用片段:
main()
{chara;
a='H'-'A'+'0';
print("%c\n",a);
}
执行后的输出结果是:
(9)有以下程序:
以下是引用片段:
#include
main()
{charc;
while((c=getchar())!
=’?
’)putchar(--c);
}
程序运行时,如果从键盘输入:
Y?
N?
<回车>,则输出结果为:
(10)下列程序段的输出结果是:
以下是引用片段:
intn=’c’;
switch(n++)
{default:
printf(“error”);break;
case‘a’:
case‘A’:
case‘b’:
case‘B’:
printf(“good”);break;
case‘c’:
case‘C’:
printf(“pass”);
case‘d’:
case‘D’:
printf(“warn”);
}
(11)若输入字符串:
abcde<回车>,则以下while循环体将执行次。
While((ch=getchar())==’e’)printf(“*”);
时间:
2012年11月12号
热点作文2
Directions:
Forthispart,youareallowed30minutestowriteacompositiononthetopicIsGoodAppearanceMoreImportantthanCapability?
Youshouldwriteatleast150words,andbaseyourcompositionontheoutline(giveninChinese)below:
1)现在很多漂亮的女孩子尽管没有很强的能力仍能找到很好的工作,因此一些人得出结论说外貌比能力更重要
2)你是否同意?
给出你的理由
【思路点拨】
本题属于提纲式文字命题。
提纲第1点提出一种有争议的看法,提纲第2点要求表明“我”的态度,由此可判断本文应为对比选择型作文。
根据所给提纲,本文应包含以下内容:
描述目前很多漂亮的女孩子找工作更容易的现象,由此引出争议的观点:
外貌比能力重要;表明“我”是否同意该观点并说明理由;针对外貌和能力提出“我”的建议。
【参考范文】
IsGoodAppearanceMoreImportantthanCapability?
Oldpeopleoftentelltheyoung,“Don’tjudgeapersonbyhisappearance”,meaningcapabilityismoreimportantthanappearance.However,nowadays,withmoreinterviewersputtingemphasisonlooksandtheappearanceoftheapplicants,alotofpeoplecometotheconclusionthatappearanceismoreimportantthancapability.
Asforme,Ican’tagreewiththisargument.Goodappearanceispleasant,butcapabilityismoreimportant,becauseitdemonstratesone’sself-cultivationandpracticalvalues.Itshowstheeffortsandthegloryofacquiringsomethingthroughone’shardworkwhereasgoodlooksbespeaknostruggleoftheindividual.Besides,maybesometimesabeautifulfacecanhelpagirlacquireagoodposition,butinthelongrunitishertalentnotherlookthatreallyworksinhercareerdevelopment.
Therefore,thosewithoutgoodappearanceneedn’tfeeldepressedbecauseone’ssuccessdependsonhiscapability;thosewithgoodappearancehavetoworkhardsincegoodappearancecannotbringapersonfinalsuccess.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 复习 第二十一