有以下程序: #include void fun(int a) { if(a>1)fun(a一1); printf(“%d”,a); } main() { int q=5;fun(q);prinf

admin2021-07-09  19

问题 有以下程序:
    #include
    void fun(int a)
    {  if(a>1)fun(a一1);
    printf(“%d”,a);
    }
    main()
    {  int q=5;fun(q);prinff(“\n”);}
    执行后的输出结果是(    )。

选项 A、1 2 3 4 5
B、5 4 3 2 1
C、0 1 2 3 4 5
D、5 4 3 2 1 0

答案A

解析 本题考查递归函数。函数fun(a)在a>1时,递归调用。fun(a—1),否则输出a的值,由于prinff()函数在递归调用之后,所以直到递归函数运行完后再执行printf()函数,所以fun(5)中首先递归调用fun(4),再递归调用fun(3)、fun(2),fun(1),最后当a=1时,输出1,接着输出2、3、4、5,所以输出结果为:1 2 3 4 5,答案为A。
转载请注明原文地址:https://kaotiyun.com/show/YEkp777K
0

最新回复(0)