Choose the correct statement about the following statement: scanf("%d, %d", &a, &b);

4 phương ánCó giải thích

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: "scanf will expect two integers inputted by user separated by a comma, and write the first integer to variable a, the second integer to variable b.". Trong chuỗi định dạng của scanf, mỗi đặc tả %d đọc một số nguyên rồi ghi qua địa chỉ đi kèm, còn ký tự thường như dấu phẩy là đòi hỏi phải khớp đúng ký tự ấy trong dòng nhập; không gặp dấu phẩy thì scanf dừng ngay tại đó và biến thứ hai không nhận được gì. Vậy mô tả đúng phải nêu cả dấu phẩy phân cách lẫn thứ tự ghi vào a trước rồi b sau. Cách nói "scanf will expect two integers inputted by user and write them to variables a and b" bỏ mất ràng buộc dấu phẩy, khiến người đọc tưởng cứ cách nhau bằng khoảng trắng là đọc được. Cách nói "two floating-point numbers" sai đặc tả: số thực phải dùng %f cùng con trỏ float, đưa %d cho số thực là hành vi không xác định. Cách nói "the comma to variable b" sai bản chất: ký tự khớp được tiêu thụ rồi bỏ đi, scanf không lưu nó vào biến nào.

Cùng phần 6

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