以下程序段的输出结果是:
#include<stdio.h>
#include<string.h>
void main()
{
char s[]="\\141\141abc\t";
printf("%d\n",strlen(s));
}
A) 9
B)12
C)13
D)14
我选了 C 因为 我各人认为 \ 算一个字符 \t 算一个字符!
结果我选了 13个 对下答案正确!
但是我在 VC++ 6.0 上一运行! 不对啊! 结果是 9 !
为什么????
为什么是9啊??????
还有 \ 表示什么?? \\ 表示什么???? 141 有特别意思吗?????
\t 算一个字符吗???
??????????????????
晕啊~~~~~~~~~~
如果我把 "\\141\141abc\t" 改为 "\141\141abc\t"
输出结果为6 !
晕死~~~~~~~~~~~~~~~~~~~~~````````
究竟怎么回事啊~~~~~~~~~~~`
"\\141\141abc\t"中的9个字符分别是‘\','1','4','1','\141'(即‘a’),‘a','b','c','\t'.
其中\\,\141,\t均为转义字符;因为转义字符中有\,所以要想输出\,需要写两个\;\141是用八进制表示的ASCII码,八进制141即97,所以为a,也可以用16进制表示,方法是\xhh,其中x表示16进制,hh是两位16进制数(0~f);\t是水平制表符。
如此分析,"\141\141abc\t"就表示'a','a','a','b','c','\t'这6个字符
其中\\,\141,\t均为转义字符;因为转义字符中有\,所以要想输出\,需要写两个\;\141是用八进制表示的ASCII码,八进制141即97,所以为a,也可以用16进制表示,方法是\xhh,其中x表示16进制,hh是两位16进制数(0~f);\t是水平制表符。
如此分析,"\141\141abc\t"就表示'a','a','a','b','c','\t'这6个字符
温馨提示:答案为网友推荐,仅供参考
第1个回答 2007-08-27
\\是一个转义符相当于“\”
\141
\t
都是转义符,只算一个字符
\141
\t
都是转义符,只算一个字符
第2个回答 2007-08-27
楼上说的对,你写一个printf("/141");s试试就知道了,应该是个特殊字符,\t应该是相当于tab键,c书上都有写