若有以下定义:char s='\092'; 则该语句().A:使s的值包含1个字符B:定义不合法,s的
若有以下定义:chars='\092';则该语句()。A:使s的值包含1个字符B:定义不合法,s的值不确定C:使s的值包含4个字符D:使s的值包含3个字求具体解释...
若有以下定义:char s='\092';
则该语句(
)。A:使s的值包含1个字符 B:定义不合法,s的值不确定
C:使s的值包含4个字符 D:使s的值包含3个字
求具体解释 展开
则该语句(
)。A:使s的值包含1个字符 B:定义不合法,s的值不确定
C:使s的值包含4个字符 D:使s的值包含3个字
求具体解释 展开
2个回答
展开全部
这个问题真的挺有意思的。\0oo是标志该字符是以八进制定义的。但如果o不是合法的数字(应该在0-7)之间,就会忽略这些数字,只取最后一位数字。
比如\092因为9不在有效范围,所以被忽略。上述定义就等价于char s = '2';
可以做个实验,char s='\095235235212';然后printf("%c",s);看看,一样输出2.
所以答案是A。
比如\092因为9不在有效范围,所以被忽略。上述定义就等价于char s = '2';
可以做个实验,char s='\095235235212';然后printf("%c",s);看看,一样输出2.
所以答案是A。
追问
答案给的是B
追答
但是编译器是能够通过的,而是s就是'2'。
答案给B应该就是因为9不是0-7之间的值,这个看您怎么理解吧。
是选择理论还是事实。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询