- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《全国计算机等级考试二级教程——C语言程序设计》习题分析与解答(三)
第六章 字符型数据习题分析与解答
一、 选择题
6.1【参考答案】 B)
6.2【参考答案】 D)
6.3【参考答案】 A)
6.4【参考答案】 A)
6.5【参考答案】 B)
6.6【参考答案】 D)
6.7【参考答案】 D)
6.8【参考答案】 B)
6.9【参考答案】 A)
6.10【参考答案】 A)
6.11【参考答案】 C)
二、 填空题
6.12【参考答案】 -1
6.13【参考答案】 1
6.14【参考答案】 ctype.h
6.15【参考答案】 0
6.16【参考答案】 10A 20B 30C 40DCR
或: 10ACR
20BCR
30CCR
40DCR
6.17【参考答案】 7.29 101.298ABCR
或: 7.29CR
101.29ABCR
6.18【参考答案】
三、 编程题
6.20【分析与解答】
(1) 在进行字符输入时,即使一次输入了一行字符(最后用回车结束输入),字符也只能一个一个地读入。若ch已定义为char型变量,可以用以下的程序段来完成操作: ch=getchar();
while(ch![KG-*2]=′\n′)
{ ……
ch=getchar();
}
当读入的是一个回车符时,循环就结束。循环体内的“……”符号表示需要在循环体内完成的其他操作。
(2) 在循环内要求进行的操作之一是:输出每个字符以及与之对应的ASCII代码值。因此可用以下语句来实现。
printf(″%c : %d ″,ch,ch);
(3) 在循环内要求进行的另一个操作是:每行只能输出3对字符和与之对应的ASCII代码值。若n已定义为int型变量,则可用来作计数器;使n的初值为0,每输出一次,n的值增1,当n的值为3的整数倍时,额外输出一个换行符。例如:
n++;
if(n%3==0)putchar(′\n′);
(4) 把(2)和(3)中给出的语句放在循环体内,并按要求给出正确的定义和初值,就可完成题目所要求的操作。
(5) 也可以在while后的一对括号中来完成字符的读入,如while((ch=getchar())![KG-*2]=′\n′)。这时,循环内、外的“ch=getchar();”语句应当去掉。
6.21【分析与解答】
(1) 一行字符的读入,请参照题6.20(1)和(5)中的解释。循环体内的“……”符号表示需要在循环体内完成的其他操作。
ch=getchar();
while(ch![KG-*2]=′\n′)
{ ……
ch=getchar();
}
(2) 在本题中循环体内需要把读入的所有数字字符转换成一个整数。若用变量n来存放这个整数,为了保证有效的存放,应当把它定义成long类型。
(3) 要把输入的一串数字字符转换成一个整数,首先需要判断当前读入的字符是否是数字字符,若不是则什么也不做;若是,则进行以下操作:
① 把当前读入的一个字符转换成一个一位整数,这可由语句“d=ch-′0′; ”来实现,在这里d是一个整型变量;
② 把d中的一位数归并到n的低位中,这可用语句“n=n*10+d;”来实现。这里所述的操作可由以下语句来完成:
if(ch=′0′ch=′9′){ d=ch-′0′; n=n*10+d; }
if语句后一对括号中的判断表达式可以调用字符函数isdigit来实现:
if( isdigit(ch) ) { d=ch-′0′; n=n*10+d; }
if子句的两个语句可以合并成:n=n*10+ch-′0′;。
(4) 把(3)中的语句放入循环中:
ch=getchar();
while(ch![KG-*2]=′\n′)
{ if(ch=′0′ch=′9′) n=n*10+ ch-′0′;
ch=getchar();
}
(5) 请自己写出定义语句并赋初值。注意,最后输出n时,应当使用格式说明%ld,而不能使用%d。
6.22【分析与解答】
(1) 行数的统计可通过统计输入的′\n′符的个数来完成。
(2) 统计的过程应当放在一个while循环体中;判断循环是否进行的条件可以
文档评论(0)