Kết quả của đoạn chương trình sau là gì? Nếu gõ vào: “r 45”. char c; int n; scanf(“ % c % d”, & n, & c);
Trả lời:
Đáp án đúng: D
Đoạn chương trình sử dụng hàm `scanf` để đọc dữ liệu từ đầu vào chuẩn. Cụ thể, `scanf(" %c %d", &n, &c)` cố gắng đọc một ký tự vào biến `n` (kiểu `int`) và một số nguyên vào biến `c` (kiểu `char`).
Khi nhập "r 45", chương trình sẽ gặp lỗi. Do `%c` sẽ đọc ký tự đầu tiên mà nó gặp (trong trường hợp này là 'r') và gán giá trị số của ký tự 'r' này cho biến `n` (kiểu int). Vì vậy, n sẽ có giá trị là mã ASCII của 'r' (là 114).
Sau đó, `%d` sẽ cố gắng đọc một số nguyên nhưng sẽ gặp ký tự ' ', vì vậy, việc đọc sẽ thất bại và `c` sẽ không được gán giá trị.
Như vậy không có đáp án nào đúng ở đây.