有以下程序 void fun1(char *p) {char *q; q=p; while(*q! =’\0’) { (*q)+ +;q+ +;} } main( ) { char a[ ]={"Program"}, *p; p=&a[3];fun1(p)

admin2020-05-19  26

问题 有以下程序
void fun1(char *p)
{char *q;
q=p;
while(*q! =’\0’)
{ (*q)+ +;q+ +;}
}
main( )
{ char a[ ]={"Program"}, *p;
p=&a[3];fun1(p);printf("%s\n",a);
}
程序执行后的输出结果是

选项 A、Prphsbn
B、Prohsbn
C、Progsbn
D、Program

答案B

解析 在函数void fun1(char *p)中,语句(*q)++的功能是q所指的字符加1,变成其后面的字符;q++就是指针q指向下一个字符的位置。所以在主函数中,语句p=&a[3]的作用是使指针p指向字符数组a[ ]中的第四个字符的位置,即p指向字符’g’;然后调用函数fun1(p)后,字符’g’变成’h’,字符’r’变成’s’,字符’a’变成’b’,字符’m’变成’n’,因而字符数组a[ ]中的内容就成“Prohsbn”。
转载请注明原文地址:https://kaotiyun.com/show/XcCp777K
0

最新回复(0)