有以下程序: #include<stdio。h> void fun(ehar*a,char*b) {while(*a==’*’)a++; while(*b=*a){b++;a++;} } main() {char*s="*****a*b****",t[80

admin2020-07-28  37

问题 有以下程序:
#include<stdio。h>
void fun(ehar*a,char*b)
{while(*a==’*’)a++;
while(*b=*a){b++;a++;}
}
main()
{char*s="*****a*b****",t[80];
fun(s,t);puts(t);
}
}
程序运行后的输出结果是(  )。

选项 A、ab
B、a*b
C、*****a*b
D、a*b****

答案D

解析 在函数fun(char*a,char*b)中,while(*a==’*’)a++的功能是:如果*a的内容为‘*’则a指针向后移动,卣到遇到非’*’字符为止,退出循环进入下一个whik循环,在while(*b=*a){b++;a++;}中,把字符数组a中的字符逐个赋给字符数组b。所以在主函数中,执行fun(s,t)语句后,字符数组t中的内容为“a*b****”。因此D选项正确。
转载请注明原文地址:https://kaotiyun.com/show/6W3p777K
0

最新回复(0)