A-A+

有以下程序 yoidfunl(char*p) {char*q; q*p; while(*q!

2022-08-12 18:44:30 问答库 阅读 197 次

问题详情

有以下程序 yoidfunl(char*p) {char*q; q*p; while(*q!=0) {(*q)++;q++;} } main() {chara[]={“Program”),*p; p=&a[3];funl(p);printf(“%sn”,a); } 程序执行后的输出结果是
A.Prphsbn
B.Prohsbn
C.Progsbn
D.Program

请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:B
在函数voidfun1(char*p)中,语句(*q)++的功能是q所指的字符加1,变成其后面的字符;q++就是指钊。q指向下一个字符的位置。所以在主函数中,语句p=&a[3]的作用是使指针p指向字符数组a[]中的第四个字符的位置,即p指向字符"g";然后调用函数fun1(p)后,字符"g"变成Ih,字符"r"变成"s",字符"a"变成"b",字符"m"变成"n",因而字符数组a[]中的内容就成“Prohsbn”。

考点:程序