JavaScript is required

Cho đoạn chương trình sau. Giả sử khi chạy chương trình ta gõ từ bản phím: “29h b”. Kết quả in ra n và c tương ứng sẽ là: #include void main() { char c; int n; scanf(“ % d % c”, & n, & c); printf(“ % 3 d % c”, n, c); };

A.

“ 29b”

B.

“ 29h b”

C.

“ 29h”

D.

Kết quả khác

Trả lời:

Đáp án đúng: C


Đề bài cho đoạn chương trình C và yêu cầu xác định kết quả in ra khi nhập một chuỗi cụ thể. Phân tích đoạn chương trình: - `scanf(" %d %c", &n, &c);` : Đoạn code này đọc dữ liệu từ đầu vào chuẩn (bàn phím). "%d" đọc một số nguyên và gán cho biến `n`. " %c" (chú ý khoảng trắng trước %c) đọc một ký tự và gán cho biến `c`. Khoảng trắng trước `%c` có vai trò quan trọng: nó bỏ qua mọi ký tự khoảng trắng (space, tab, newline) ở đầu vào cho đến khi gặp một ký tự khác không phải khoảng trắng. - `printf(" %3d %c", n, c);`: Đoạn code này in ra giá trị của `n` và `c`. "%3d" in số nguyên `n` với độ rộng tối thiểu là 3. Nếu `n` có ít hơn 3 chữ số, nó sẽ được căn phải và thêm khoảng trắng vào bên trái. "%c" in ký tự `c`. Phân tích đầu vào "29h b": 1. `scanf(" %d %c", &n, &c)`: `%d` đọc "29" và gán cho `n`, vậy `n = 29`. Sau đó, `%c` đọc ký tự 'h' và gán cho `c`, vậy `c = 'h'`. Ký tự ' ' và 'b' sẽ còn lại trong bộ đệm đầu vào, nhưng không được sử dụng. 2. `printf(" %3d %c", n, c)`: In `n` (29) với định dạng `%3d`, kết quả là " 29" (có một khoảng trắng ở đầu). Sau đó in `c` ('h'). Kết quả in ra sẽ là " 29h".

Câu hỏi liên quan