putchar(getchar())
是一个有效的表达式,它实现什么功能?getchar(putchar())
是否也是有效表达式?
putchar(getchar())
功能:将程序读取的下一个字符并打印,getchar()的返回值是putchar() 的参数。
getchar(putchar())
无效表达式,原因:getchar()无需参数,而putchar则需要一个参数。
- 下面的语句分别完成什么任务?
a. putchar('H'); // 打印H
b. putchar('\007'); // 发出一下警报声
c. putchar('\n'); // 自带换行,所以会再进行一次换行
d. putchar('\b'); // 退后一格
- 假设有一个名为count的可执行程序,用于统计输入的字符数。设计一个使用count程序统计essay文件字符数的命令行,并把统计结果保存在essayct文件中。
count <essay > essayct #将essay作为输入,然后通过重定向降结果放在essayct文件中
- 给定复习题3中的程序和文件,下面哪一条是有效的命令?
a. essayct <essay // 不是,essay不是可执行文件
b. count essay // 不是,不是shell一样,可读取参数
c. essay > count // 不是,essay是输入文件,不是可执行文件
- EOF是什么?✅
一个返回信号(一个特殊值,一般是-1),表明监测到文件结尾处。主要是getchar() 和scanf() 函数来使用。
- 对于给定的输入(ch是int类型,而且是缓冲输入),下面各个程序的输出分别是什么?
a. 输入如下:
If you quit, i will.[enter]
程序段如下:
while ((ch == getchar())!='i') // 输入读取中,如果=i就直接输出前面的内容
putchar(ch); // 输出内容:If you qu
b. 输入如下:
Harbor[enter]
程序段如下:
while((ch = getchar()) != '\n') // 从第一个进行读取,读到最后是空行时结束
{
// 最后的输出是:HJacrthjacrt
putchar(ch++); // 注意H+1是I
putchar(++ch); // 上一个是I,再次++,就变成了J
}
- C如何处理不同计算机系统中的不同文件和换行约定?
将文件的不同属性和种类统一映射为流来处理。
- 在使用缓冲输入的系统汇总,把数值和字符串混合输入会遇到什么潜在的问题?
a. 读取到数值类型时:会直接跳过空格和换行符
b. 读取到字符串类型时:字符串则不会。
所以如果存在混合情况,则需要在处理字符输入之前就把换行符直接优先处理掉。