有以下程序 #include void fun( char *a, char *b ) { while( *a==’*’ ) a++; while( *b=*a ){ b++;a++; } } main() { char *s="*****a

admin2015-07-31  16

问题 有以下程序
#include
void  fun( char  *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指针向后移动,直到遇到非’*’字符为止,退出循环进入下一个while循环,在while(*b=*a){b++;a++;}中,把字符数组a中的字符逐个赋给字符数组b。所以在主函数中,执行fun(s,t)语句后,字符数组t中的内容为"a*b****"。因此D选项正确。
转载请注明原文地址:https://jikaoti.com/ti/pbi0FFFM
0

最新回复(0)