问题 单项选择题

函数fun的返回值是( )。 fun(char *a,char *b) int num=0,n=0; while(*(a+num))!='\0')num++; while(b[n]){ *(a+num)=b[n];num++;n++;)return num; }

A.字符串a的长度

B.字符串b的长度

C.字符串a和b的长度之差

D.字符串a和b的长度之和

答案

参考答案:D

解析: 因为'\0'是字符串结束标记,而fun函数中的第一个while循环从字符串a的第一个字符开始,直到碰到'\0'时结束循环,所以其作用就是将字符串a的长度记录到变量num中。而第二个while循环从b[0]开始,将字符串b中的字符依次复制到字符串a的结尾处,直到b[n]为假,即b[n]为字符串结束标志'\0'时,所以最后返回的num保存了字符串a和b的长度之和。故应该选择D。

选择题
读图填空题