问题 单项选择题

有以下程序: 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.Prohsbn

B.Prphsbn

C.Progsbn

D.Program

答案

参考答案:A

解析:在函数fun1()中,首先将形参p的内容存入临时指针q中,然后使用—个while循环,当q所指内容不是字符串结束标志"\0'时,让q所指内容增1,然后将指针q增1指向下一个位置。所以函数fun1()实现的功能是:将传入字符串的所有字符自增1。主函数,指针p在被传入fun1()函数之前,初始化指向的是宁符数组a的第4个元素'g',所以最终输出的结果应该是Prohsbn。故应该选择A。

单项选择题
问答题 案例分析题