一题C语言选择

来源:百度知道 编辑:UC知道 时间:2024/06/18 13:32:53
6.若有以下说明和语句,则输出的结果是(6) c 。

char sp[ ]=“\x69\082\n”;

printf (“%d”, strlen(sp));
A. 3 B. 5 C. 1 D. 字符串中有非法字符,输出值不定

strlen(sp),统计sp中的字符个数,如果是1,那么是说明一个字符串相当于一个字符吗?
那请问sunqiangqidian 是不是在69前面有\x的情况下才当作是一个字符?单独时算2个字符?

理论和实践都表面是1
为什么?
C的字符串结束标志是\0,因此\0后面的就不算在长度内了,\x是转义字符也不计算在内,那么就是69了,请注意别认为这是6和9!
另外我调试了下答案也是1!
2009年2月23日0:20:04

这个函数是计算到字符串第一个字符到空格(即/0)为止的lenth,上题是选A吧

\x表示一个16进制数啊,就是一个字符啦
然后遇到空\0就终止了了
所以选c咯

做这道题之前你是否弄清出啦printf函数的格式呢?
\o表示“以八进制无符号形式输出整数”注意是o,不是0.
\x表示“十六进制”
\n表示换行;
所以呢\x69表示十六进制69,\0表示字符串的结束标志,程序执行到这里就结束啦,说以呢是c。
我进行调试过啦,结果也是c
清楚啦吗?