正在载入在线练习界面,本页内容可直接阅读…

AK CSP › CSP-S 2022 第一轮真题 › 第15题

CSP-S 2022 第一轮 第15题:ack函数在输入参数“(2,2)”时的返回值为()。

单项选择 · 函数与递归 · 答案 B

题目

ack 函数在输入参数“(2,2)”时的返回值为()。

unsigned ack(unsigned m, unsigned n) {
    if (m == 0) return n + 1;
    if (n == 0) return ack(m - 1, 1);
    return ack(m - 1, ack(m, n - 1));
}

选项

  • A. 5
  • B. 7
  • C. 9
  • D. 13

答案

B

题解

答案是 B. 7。这道题按递归规则展开,注意先计算内层的 ack。

先看 m = 1 时:

  • ack(1,0) = ack(0,1) = 2
  • ack(1,n) = ack(0,ack(1,n-1)) = ack(1,n-1) + 1

所以 ack(1,n) = n + 2。

再计算 m = 2: ```text ack(2,0) = ack(1,1) = 3

ack(2,1) = ack(1,ack(2,0)) = ack(1,3) = 5

ack(2,2) = ack(1,ack(2,1)) = ack(1,5) = 7 ```

因此返回值为 7。

真题版权归 CCF 所有,本站仅用于非商业教学用途。页面加载后可直接在线作答,作答记录保存在本浏览器或账号中。 京ICP备2026056990号-1 京公网安备11010502062986号