有以下程序: main() { char a,b,c,*d; a=’\’;b=’\xbc’; c=’\0xab’;d="\017"; printf("%c%c%c\n",a,b,c,*d); } 编译时出

admin2010-01-10  35

问题 有以下程序:    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’;”语句都不正确

答案8

解析 语句a=’\’是错误的,因为\是转义字符,应该用\\来表示,语句“B=’\xbc’;”是正确的,它是将一个用十六进制表示的转义字符赋给一个字符型变量;语句“c=\0xab;”是错误的,反斜线后的十六进制只可由小写x开头,不能用0x。语句“d="\0127";”是正确的,可以给字符型指针变量赋一个字符串常量,其作用是让该指针变量指向该字符串常量。所以,D选项为所选。
转载请注明原文地址:https://kaotiyun.com/show/qQWp777K
0

最新回复(0)