C primer plus课后习题 第八章

1.设计一个程序, 统计在读到文件结尾之前读取的字符数。
#include <stdio.h>
int main(void)
{ char c ;
int i=0 ;
while((c=getchar())!=EOF)
i++ ;

printf("Total characters :%d",i ) ;

}

2.编写一个程序, 在遇到 EOF 之前, 把输入作为字符流读取。 程序要打印每个输入的字符及其相应的ASCII十进制值。
注意, 在ASCII序列中,空格字符前面的字符都是非打印字符, 要特殊处理这些字符。 如果非打印字符是换行符或制表符, 则分别打印\n或\t。
否则, 使用控制字符表示法。 例如, ASCII的1是Ctrl+A, 可显示为^A。 注意, A的ASCII值是Ctrl+A的值加上64。 其他非打印字符也有类似的关系。
除每次遇到换行符打印新的一行之外, 每行打印10对值。 (注意: 不同的操作系统其控制字符可能不同。 )
//2.编写一个程序, 在遇到 EOF 之前, 把输入作为字符流读取。 程序要打印每个输入的字符及其相应的ASCII十进制值。
//注意, 在ASCII序列中,空格字符前面的字符都是非打印字符, 要特殊处理这些字符。 如果非打印字符是换行符或制表符, 则分别打印\n或\t。
//否则, 使用控制字符表示法。 例如, ASCII的1是Ctrl+A, 可显示为^A。 注意, A的ASCII值是Ctrl+A的值加上64。 其他非打印字符也有类似的关系。
//除每次遇到换行符打印新的一行之外, 每行打印10对值。 (注意: 不同的操作系统其控制字符可能不同。 )

#include <stdio.h>
int main(void)
{ int ch,i=0 ;
while((ch=getchar())!=EOF)
{
if (ch<’ ‘)
{
switch (ch)
{
case ‘\t’:
printf("\t-%d “,ch) ;
break ;
case ‘\n’:
printf(”\n-%d “,ch) ;
break ;
default :
printf(”^%c-%d “,ch+64,ch) ;
break ;
}
}
else
{
printf(”%c-%d ",ch,ch) ;
}
if(i++>0 && i%10==0)
putchar(’\n’) ;

}

}

3.编写一个程序, 在遇到 EOF 之前, 把输入作为字符流读取。 该程序
要报告输入中的大写字母和小写字母的个数。 假设大小写字母数值是连续
的。 或者使用ctype.h库中合适的分类函数更方便。
#include <stdio.h>
#include <ctype.h>
int main(void)
{
int ch ,upper=0,lower=0;
while ((ch=getchar())!=EOF)
{
if(isupper(ch))
upper++ ;
if(islower(ch))
lower++ ;
}
printf(“Upper

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值