问题 填空题

以下程序的输出结果是______。
#include <stdio.h>
#include <string.h>
char* fun( char *t)
char *p=t;
return(p+strlen(t)/2);

main()
char *str="abcdefgh";
str=fun(str);
puts(str);

答案

参考答案:efgh

解析: 程序从main函数开始执行,首先执行的函数是str=fun(str);,由程序可知str="abcdefgh",传递到char *t,char*p=t;指向char的指针p包含的是t的首地址str[0],由p+strlen(t)/2;可知t的长度是8除以2等于4,因此p+strlen(t)/2就是str[4]即e字符那个位置,输出结果为efgh。

多项选择题
单项选择题