C语言字节的问题!

来源:百度知道 编辑:UC知道 时间:2024/05/31 04:47:06
1:char str[]=”abt\n\012\\\”;
printf(“%d”,strlen(str));
执行后输出的结果是()
A 11 B 7 C 6 D 5
2.字符串”\\\’a\tbcd\’\\”的长度是( )
A.9 B 14 C 8 D 13

希望高手解释一下给我听,谢谢!我知道这样一个字符占一个字符,一个字符
串占两个字符

第一题:abt分别占一个,就是3个,然后\n不算,因为那是特殊的,表示转行的,然后是\012,这个也不是,这个是表示的是以八进制的方式输入012这个数,但是输出的时候用的是%d,是十进制的数,而八进制的012转成十进制的数是10,后面的\\表示输出一个\,而后面的\"表示输出一个",所以你应该还少一个"才对,不信你可以打到电脑上去试试,最后输出的应该是字符串
abt
10\"
这些加起来长度就是7了
第二题:这个和上一个同理,但是需要注意的是这里有一个\t,\t表示的意思是从第一个字符开始数,数八个字符,然后光标停在第九个字符的位置上,拿这道题来说吧.先是输出\'a,对吧,这就去了三个字符了,然后遇到\t,就从第一个字符开始数,数八格,然后光标停在第九个字符位置,那就应该是\'a,,,,,(这里不太好表示空格,我就用逗号表示了,每一个逗号所占的就是一个字符的位置,而光标会停在最后一个逗号的后面,那就是第九个字符的位置,然后再从那开始输出后面的东西)就应该是\'a,,,,,bad'\