下面程序输出的结果是( )。 #include<stdio.h> main() { char *a="1234"; fun(a); printf("\n"); } fun(char *s) {

admin2013-02-23  25

问题 下面程序输出的结果是(  )。    #include<stdio.h>    main()    {    char *a="1234";    fun(a);    printf("\n");    }    fun(char *s)    {    char t;    if(*s)      {  t=*S++;fun(s);}    else return;    if(t!=’\0’)    putchar(t);    }

选项 A、1234
B、4321
C、1324
D、4231

答案2

解析 本题的fun()函数是用递归法实现逆序输出一个字符串。函数中首先定义一个局部变量t,然后s所指的内容是否为字符串结束符,不是的话将s所指的内容赋给t,同时使s后移一位,然后递归调用fun(s)。到这条语句为止是递归过程,即接下来连续递归调用fun(s)都只会执行到这一半,直到回朔条件(s所指内容是字符串结束符)出现,fun()函数连续返回,判断t不等于0的话,就输出t,所以输入的字符串被逆序输出,故本题的正确答案应该是B。
转载请注明原文地址:https://kaotiyun.com/show/RsJp777K
0

最新回复(0)