题目

编写函数 <code>calc_power(base_val, exp_val)</code>,演示使用内部特殊变量 <code>nargin</code>(Number of Input Arguments)实现函数参数的默认缺省值机制:当用户仅传入底数时,指数默认自动设定为 2(求平方)。

输入格式:无需外部输入。

输出格式:分别展示传入 1 个参数与传入 2 个参数时的调用结果。

数据范围与约定:nargin 缺省参数处理。

思路与算法

1. nargin 的运行机制
nargin 是每个函数内部自动生成的局部变量,其数值等于调用方当前实际传进来的实参总个数。

2. 默认参数标准设计模式
```matlabif nargin < 2 exp_val = 2; % 赋予默认值end```

3. 避免空指针/未定义错误
若调用方未传某个参数而函数内部未做 nargin 拦截直接使用该形参变量,将触发 `undefined variable` 崩溃。

完整程序

% Octave / MATLAB 第63题:nargin 默认参数处理
1;

function result = calc_power(base_val, exp_val)
    % 如果只传入 1 个参数,指数默认为 2
    if nargin < 2
        exp_val = 2;
    end
    result = base_val ^ exp_val;
end

% 主程序
res1 = calc_power(5);      % 使用默认指数 2 -> 5^2
res2 = calc_power(2, 8);   % 显式指定指数 8 -> 2^8

fprintf("calc_power(5)    [单参数,默认平方]: %d\n", res1);
fprintf("calc_power(2, 8) [双参数,计算2^8]:  %d\n", res2);

运行示例

输出:

calc_power(5)    [单参数,默认平方]: 25
calc_power(2, 8) [双参数,计算2^8]:  256