#z68. 基础篇-函数

基础篇-函数

[题目描述]

{{ 以下关于自定义函数的说法正确的是? }} {{ select(1) }}

  • [选项1] 函数定义必须放在main函数之前
  • [选项2] 函数名可以使用关键字(如int)
  • [选项3] 函数参数列表可以为空
  • [选项4] 有返回值的函数可以不写return语句

[题目描述]

{{ 观察以下代码,输出结果是? }}

void swap(int a, int b) { int t=a; a=b; b=t; }
int main() {
    int x=3, y=5;
    swap(x, y);
    cout << x << y;
}

{{ select(2) }}

  • [选项1] 35
  • [选项2] 53
  • [选项3] 33
  • [选项4] 55

[题目描述]

{{ 函数递归的必要条件是? }} {{ select(3) }}

  • [选项1] 至少有一个递归终止条件
  • [选项2] 必须调用自身至少两次
  • [选项3] 参数必须为整数
  • [选项4] 返回值类型必须为int

[题目描述]

{{ 以下哪个变量属于全局变量? }} {{ select(4) }}

  • [选项1] 函数参数列表中的变量
  • [选项2] main函数内定义的变量
  • [选项3] 所有函数外部定义的变量
  • [选项4] 循环体内定义的变量

[题目描述]

{{ 若函数声明为double calc(int x, double y),以下调用正确的是? }} {{ select(5) }}

  • [选项1] calc(3.5, 5)
  • [选项2] calc(5, 3.5)
  • [选项3] calc("3", 5.0)
  • [选项4] calc(5, "3.5")

[题目描述]

{{ 关于函数参数传递,错误的是? }} {{ select(6) }}

  • [选项1] 传值参数传递的是副本
  • [选项2] 引用参数需用&声明
  • [选项3] 数组名作为参数传递的是指针
  • [选项4] 引用参数不能修改实参值

[题目描述]

{{ 以下代码的输出是? }}

int f(int n) {
    if(n==1) return 1;
    return n * f(n-1);
}
int main() { cout << f(3); }

{{ select(7) }}

  • [选项1] 3
  • [选项2] 6
  • [选项3] 9
  • [选项4] 12

[题目描述]

{{ 函数作用域内的局部变量在何时释放? }} {{ select(8) }}

  • [选项1] 程序结束时
  • [选项2] 函数调用结束时
  • [选项3] 变量赋值时
  • [选项4] 永远不释放

[题目描述]

{{ 以下关于函数参数传递的说法,正确的是: }} {{ select(9) }}

  • [选项1] 传值参数会创建变量的副本,函数内修改不影响原始变量
  • [选项2] 指针参数传递的是变量的值,无法修改原始变量
  • [选项3] 数组名作为参数时,传递的是数组的所有元素
  • [选项4] 在 C++ 中,引用参数本质是传递变量的副本

[题目描述]

{{ 以下函数定义正确的是? }} {{ select(10) }}

  • [选项1] void f(int x; int y)
  • [选项2] int f(x) { return x*2; }
  • [选项3] double f(double x) { return x+1; }
  • [选项4] char f() { int x; return x; }

[题目描述]

{{ 函数必须有返回值才能被调用。( ) }} {{ select(11) }}

  • [选项1] 正确
  • [选项2] 错误
  • [选项3]
  • [选项4]

[题目描述]

{{ 全局变量可以在任何函数中修改。( ) }} {{ select(12) }}

  • [选项1] 正确
  • [选项2] 错误
  • [选项3]
  • [选项4]

[题目描述]

{{ 以下代码能正确交换 x 和 y 的值:

void swap(int &a, int &b) { int t=a; a=b; b=t; }

{{ select(13) }}

  • [选项1] 正确
  • [选项2] 错误
  • [选项3]
  • [选项4]

[题目描述]

{{ 递归函数的递归深度不受限制。( ) }} {{ select(14) }}

  • [选项1] 正确
  • [选项2] 错误
  • [选项3]
  • [选项4]

[题目描述]

{{ 函数声明需要与定义的参数类型一致。( ) }} {{ select(15) }}

  • [选项1] 正确
  • [选项2] 错误
  • [选项3]
  • [选项4]

[题目描述]

{{ 局部变量和全局变量同名时,函数内优先使用全局变量。( ) }} {{ select(16) }}

  • [选项1] 正确
  • [选项2] 错误
  • [选项3]
  • [选项4]

[题目描述]

{{ 函数参数传递时,数组名会退化为指针。( ) }} {{ select(17) }}

  • [选项1] 正确
  • [选项2] 错误
  • [选项3]
  • [选项4]

[题目描述]

{{ 以下函数会导致无限递归

int f(int n) { return f(n-1); }

{{ select(18) }}

  • [选项1] 正确
  • [选项2] 错误
  • [选项3]
  • [选项4]

[题目描述]

{{ 引用参数必须在定义时初始化。( ) }} {{ select(19) }}

  • [选项1] 正确
  • [选项2] 错误
  • [选项3]
  • [选项4]

[题目描述]

{{ 函数返回值类型为 void 时,可以使用return 0;语句。( ) }} {{ select(20) }}

  • [选项1] 正确
  • [选项2] 错误
  • [选项3]
  • [选项4]