What is the output of the following code if the user enters the value "20"?
4 phương ánCó giải thích
int n;
char c;
scanf("%d", &n);
c = getchar();
printf("%d",c);Các phương án trả lời
Chọn một phương ánLời giảiChọn phương án để mở
Đáp án đúng: "10". Khi người dùng gõ 20 rồi nhấn phím xuống dòng, vùng đệm của luồng vào chuẩn chứa hai chữ số và một ký tự xuống dòng. Đặc tả %d đọc hai chữ số rồi dừng ngay khi gặp ký tự không phải chữ số, và bỏ lại ký tự xuống dòng trong đệm. Lệnh getchar kế đó lấy đúng ký tự còn lại ấy, tức ký tự xuống dòng, mã ASCII bằng 10; in nó bằng %d nên màn hình hiện 10. Số "20" là giá trị của n, nhưng printf in biến c chứ không in n, và c chỉ giữ được một ký tự. Số "0" ứng với byte rỗng, thứ không có trong dòng người dùng gõ. Kết luận "Undefined" sai vì luồng vào chuẩn có vùng đệm nên ký tự xuống dòng còn nguyên ở đó, kết quả hoàn toàn đoán được; đây cũng là lý do phải dọn đệm trước khi đọc ký tự.
Cùng phần 6
(Choose 1 answer)
What will the code bellow print when executed?
double a = -7.5, b = 7.5;
printf( "%.0f : %.0f\n", ceil( a ), ceil( b ) );
printf( "%.0f : %.0f\n", floor( a ), floor( b ) );Có lời giảiCâu hỏiWhat is the returned type of the sqrt() function from the math.h library in C?Có lời giảiCâu hỏiThe function islower() returns a non-zero value if a character is:Có lời giảiCâu hỏiCả 28 câu của chủ đề28 câu
Xuất hiện trong 1 bộ đề
Đi tiếp từ đây