以下程序的输出结果是?
1
2
3
4
5
6
7
|
#include <stdio.h> main()
{
char
a[10]={
'1'
,
'2'
,
'3'
,
'4'
,
'5'
,
'6'
,
'7'
,
'8'
,
'9'
,0},*p;
int
i;
i=8;
p=a+i;
printf
(
"%s\n"
,p-3);
}
|
6
6789
'6'
789
答案 B 错选 A
1、p指向a[5]
2、“%s”输出直到'\0'的字符串
3、最后的0为数字而非字符‘0’,ASIIC码中0为空字符
所以输出的结果是 6789 而不是67890