阿摩線上測驗 登入

申論題資訊

試卷:97年 - 097年專門職業及技術人員高等建築師、技師暨普通記帳士、97年第二次高等暨普通消防設備人員、普通不動產經紀人資訊技師#32446
科目:程式設計
年份:97年
排序:0

題組內容

三、

申論題內容

⑴描述下列程式中函式 func 的作用為何?(10 分)

詳解 (共 1 筆)

詳解 提供者:hchungw

图中的func函数是一个递归函数,它的作用是倒序打印一个整数的每一位数字。这个函数检查传入的整数i是否小于10:
如果i小于10(即i是一位数),它会直接打印出该数字。
如果i大于或等于10,它会先递归调用自己,传入的参数是i除以10的结果,这个操作会不断地移除i的最后一位,直到i变成一位数。在递归返回后,它打印出i除以10的余数,也就是被移除的最后一位。
递归的这种方式使得数字的最后一位最先被打印,然后是倒数第二位,以此类推,从而实现倒序打印。举个例子,如果传入的整数是123,打印顺序将会是3、2、1。
这段代码的正确版本应该是:
cpp
Copy code
#include <iostream>
void func(int i) {
    if (i < 10) {
        std::cout << i << std::endl;
    } else {
        func(i / 10);
        std::cout << (i % 10) << std::endl;
    }
}
int main() {
    int n = 123;
    func(n);
    return 0;
}
执行这段代码时,将会打印出:
Copy code
3
2
1
这是整数123的每一位数字倒序打印的结果。