单选题 有以下程序 void fun1(char*p) main() {char*q; {char a[]={"Program"),*p; q=p; p=&a[3];fun1(p);printf("%s\n",a); while(*q!='\0') } {(*q)++;q++;}} 程序执行后的输出结果是
【正确答案】 B
【答案解析】解析:在函数void funl(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”。