问题
单项选择题
有以下程序: main() { char a,b,c,*d; a='\';b='\xbc'; c='\0xab';d="\017"; printf("%c%c%c\n",a,b,c,*d); } 编译时出现错误,以下叙述中正确的是( )。
A.程序中只有“a='\';”语句不正确
B.“b='\xbc';”语句不正确
C.“d="\0127";”语句不正确
D.“a='\';”和“c='\0xab';”语句都不正确
答案
参考答案:D
解析: 语句a='\'是错误的,因为\是转义字符,应该用\\来表示,语句“B='\xbc';”是正确的,它是将一个用十六进制表示的转义字符赋给一个字符型变量;语句“c=\0xab;”是错误的,反斜线后的十六进制只可由小写x开头,不能用0x。语句“d="\0127";”是正确的,可以给字符型指针变量赋一个字符串常量,其作用是让该指针变量指向该字符串常量。所以,D选项为所选。