有如下程序:
#include <stdio.h>
void get_put()
{
char ch;
ch = getchar();
if (ch != '\n')
get_put();
putchar(ch);
}
int main()
{
get_put();
printf("\n");
return 0;
}
程序运行时,输入1234<回车>,则输出结果是()
A) 1234
B) 4321
C) 4444
D) 1111
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊阿啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
做完再看答案~~
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
【答案】B
【分析】在调用一个函数的过程中又出现直接或间接的调用该函数本身,称为函数的递归调用。本题程序的执行过程为:在输入1234<回车>的情况下,调用get_put()函数,getchar()读入1,在这次调用中的局部变量ch='1',if条件成立->调用get_put()函数,读入2,局部变量ch='2'->调用get_put()函数,读入3,局部变量ch='3'->调用get_put()函数,读入4,局部变量ch='4'->调用get_put()函数,读入回车,if条件不成立,返回执行每次调用函数中if语句后的输出语句,即依次输出4321。B选项正确。
留言区