问题
单项选择题
有以下程序:
#include <stdio.h>
main( )
chars[] ="Yes\n/No",*ps=s;
puts(ps +4); * (pa +4) =0;
puts(s);
程序运行后的输出结果是()。
A.n/No
Yes
/No
B./No
Yes
C./NO
Yes
/No
D.n/No
Yes
答案
参考答案:B
解析: 用puts函数输出的字符串中可以包含转义字符,遇到转义字符,自动跳过去。例如本题中ps+4指的是'/'的地址,并不是'\n'的地址,所以puts(ps+4)输出的是/NO。
C规定以字符'\0',作为字符串结束标志,以便系统据此判断字符串是否结束。本题执行 *(Ps+4)=0之后,再执行puts(s),就相当于输出字符串Yes后遇到结束标志。