有如下程序 #include <stdio.h> void get_put() { char ch; ch = getchar(); if (ch != ’\n’) get_put(); putchar(ch); } mai

admin2020-01-10  20

问题 有如下程序
#include <stdio.h>
void get_put()
{
    char ch;
    ch = getchar();
    if (ch != ’\n’) get_put();
    putchar(ch);
}
main()
{
    get_put();  printf("\n");
}
程序运行时,输入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选项正确。
转载请注明原文地址:https://jikaoti.com/ti/EKG0FFFM
0

最新回复(0)