What is the output of the following code snippet?

4 phương ánCó giải thích
Đề bài
#include <stdio.h>
int num(int a, int b){
    int sum;
    sum = a + b;
    return sum;
}

int main()
{
    int a, b, result;
    a = 10;
    b= 12;
    result = num(a, b);
    printf("%d", result);
    return 0;
}

Các phương án trả lời

Chọn một phương án
Lời giảiChọn phương án để mở
Đáp án đúng: "22". Hàm num nhận hai tham số rồi trả về tổng của chúng; main gọi num(a, b) với a bằng 10 và b bằng 12 nên a + b bằng 22, giá trị đó đi ra ngoài qua lệnh return, được gán cho result rồi in. Tham số trong C truyền theo giá trị nên hàm làm việc trên bản sao và không đổi được a hay b ở main, nhưng kết quả vẫn ra ngoài được nhờ return. "10" chỉ là giá trị của a, ứng với việc hiểu hàm trả về tham số thứ nhất. "12" chỉ là giá trị của b, ứng với việc hiểu hàm trả về tham số còn lại. "21" không khớp phép cộng nào của hai số này, nó lệch một đơn vị so với tổng thật.

Cùng phần 4

Xuất hiện trong 2 bộ đề