Given the following code snippet:

4 phương ánCó giải thích
Đề bài
#include <stdio.h>
#define MONTHS_IN_YEAR 12
int main() {
    const int WORKING_DAYS = 22;
    printf("%d ", MONTHS_IN_YEAR);
    printf("%d", WORKING_DAYS);
    return 0;
}

Choose the correct statement:

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: "The output will be: 12 22". Dòng define là chỉ thị tiền xử lý: trước khi dịch, mọi chỗ viết MONTHS_IN_YEAR bị thay bằng dãy ký tự 12, nên lệnh in đầu nhận hằng số 12. Biến WORKING_DAYS khai báo const int kèm giá trị khởi tạo là hợp lệ, vì const chỉ ngăn gán lại về sau chứ không ngăn khởi tạo, nên lệnh in thứ hai cho 22. Chuỗi định dạng đầu có dấu cách sau %d nên hai số cách nhau một khoảng. Kết luận "No output" sai vì cả hai lệnh printf đều chạy với đối số hợp lệ. Kết luận "Compile error" sai vì không có vi phạm nào: tên hằng viết hoa chỉ là quy ước, và const int khởi tạo ngay là lối dùng đúng. Kết luận "Runtime error" sai vì chương trình chỉ in hai số nguyên rồi trả về 0, không chạm tới vùng nhớ nào có thể gây lỗi.

Cùng phần 2

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