What is the output of the following code snippet?

4 phương ánCó giải thích
Đề bài
#include <stdio.h>
int x = 9;
void someFunction() {
    int x = 8;
    printf("%d ", x);
}
int main() {
    someFunction();
    printf("%d", x);
    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: "8 9". Hàm someFunction khai báo một biến cục bộ tên x bằng 8; tên cục bộ che tên toàn cục trong suốt thân hàm nên lệnh in trong hàm cho ra 8. Khi hàm trả về, biến cục bộ hết phạm vi, tên x trong main lại chỉ về biến toàn cục bằng 9 nên lệnh in sau cho ra 9; thứ tự thực thi là gọi hàm trước rồi mới in, vì vậy màn hình hiện 8 9. Cần công bố khuyết điểm: bản khoá in kèm ghi 9 8, thứ tự đó chỉ đúng nếu hai lệnh in đổi chỗ cho nhau, nên "9 8" sai. "8 8" sai vì sau khi ra khỏi hàm không còn biến cục bộ nào, không ai gán 8 cho biến toàn cục. "9 9" sai vì trong thân hàm biến cục bộ đã che biến toàn cục nên lệnh in ở đó không thể thấy giá trị 9.

Cùng phần 4

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