main() {char a,b,c,*d; a=✀尀✀;b=✀尀xbc✀;c=✀尀0xab✀;d="尀0127"; printf("%c%c%c%c尀n",a,b,c,*d);}

2025-02-25 17:29:43
推荐回答(5个)
回答1:

d
我也是刚做到
\ddd 任意字符 三位八进制
\xhh 任意字符 二位十六进制
首先,C语言这2种字符的表示方法,但不限于这2种。
a='\';这是非法的,如果要表示\则用a='\\',如果要表示'则用a='\''(后面是2个单引号,不是1个双引号)
b='\xbc',符合上面\xhh的情况,合法
c='\0xab',C语言不支持这种表示方法
除了xhh之外,剩下的都当作是8进制处理,包括\0,
c表示指针指向字符串首地址

回答2:

答案选D
\ddd 任意字符 三位八进制
\xhh 任意字符 二位十六进制
a='\';这是非法的,如果要表示\则用a='\\',如果要表示'则用a='\''(后面是2个单引号,不是1个双引号)
b='\xbc',符合上面\xhh的情况,合法
c='\0xab',C语言不支持这种表示方法
d='\0127 ',除了xhh之外,剩下的都当作是8进制处理,包括\0,所以这里写0127和127是等效的,都是合法的,

回答3:

这道题选择C,因为d在声明时是指针,指针只能指向地址,在这道题目中d可以指向a,b或者c其中的任何一个,但不能以“d=\0127”这种方式赋值。他的赋值方法可以是“d=&a”或者“*d="\0127" ”

回答4:

A错了,因为你要输出'\'的话,必须要'\\'才能输出,因为这个上转义字符。其它的都是对的。

回答5:

把单引号和双引号都去掉试试。