C Primer Plus(第6版)第八章复习题答案

8.10复习题

  1. putchar(getchar())是一个有效的表达式,它实现了接受一个字符并且输出
    getchar(putchar())不是一个有效的表达式,因为getchar()不需要参数鸭

  2. a. 打印H
    b. 响一声警报beep
    c. 打印换行符
    d. 光标向前退一个字符

//设计的命令行如下,在windows下注意要加上文件后缀名
count.exe < essay.txt > essayct.txt
//因为命令与重定向运算符的顺序无关所以还可以这样写
count.exe > essayct.txt < essay.txt
a.	essayct < essay	无效,两个文件搞什么 
b. count essay			无效,没有运算符不知道干什么啊
c. essay > count		无效,可执行程序必须放在前面

答:EOF是文件结尾标记,用来标记文件结尾,在stdin.h中将其定义为 #define EOF -1,通过键盘也可以模拟EOF,UNIX,Linux下是在行首按下组合键 Ctrl+D,Windows(DOS)是在任意位置下按下组合键Ctrl+Z
最初这曾是操作系统使用的唯一标记,但后来有了用文件大小来标记文件结尾,这样文件中就可以储存Ctrl+D了。

a. If you qu
b. HJacrthjacrt	

C如何处理不同计算机系统中的不同文件和换行规定?
答:C通过标准I/O来消除这种系统差异
书后的答案:C的标准I/O库把不同的文件映射为同意的流来同一处理
8.

在使用缓冲输入的系统中,把数值和字符混合输入会遇到什么潜在的问题?
答:数值输入使用scanf();格式控制来控制输入,输入完成将输入内容发送至目标处时同时也发送了换行符,这使得在scanf()后使用getchar会首先读取在缓冲区中的换行符。scanf()会跳过空格,制表符,和换行符。
如果在使用getchar()之前使用scanf(),因当在getchar()之前添加处理缓冲中的换行符的代码。
标准的空白字符(空格、水平制表符或换行符)

猜你喜欢

转载自blog.csdn.net/weixin_42912350/article/details/82926069