After the following code is executed with the input is 2.5 3.6, what are the values of the variables N, RE and X?
4 phương ánCó giải thích
#include <stdio.h>
int main(){
int n =12, re;float x, y;
printf("input =");
re = scanf("%d%f%f",&n,&x,&y);
printf("%d, %d, %f",n, re, x);
}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: "2, 3, 0.5". Dãy ký tự nhập là 2.5 rồi dấu cách rồi 3.6, nhưng scanf đọc theo đặc tả chứ không theo cách con người đọc. Đặc tả %d chỉ nhận chữ số nên nó lấy 2 rồi dừng ngay trước dấu chấm, n thành 2. Đặc tả %f tiếp tục từ dấu chấm, đọc .5 thành số thực 0.5 cho x. Đặc tả %f thứ hai bỏ qua dấu cách rồi đọc 3.6 cho y. Cả ba chuyển đổi đều thành công nên scanf trả về 3, giá trị gán cho re. Dãy "2, 2, 2.5" đếm thiếu một chuyển đổi và coi như %f đã lấy trọn 2.5. Dãy "2, 3, 2.5" đúng số chuyển đổi nhưng vẫn gán 2.5 cho x, điều không thể vì phần nguyên đã bị %d lấy mất. Dãy "2, 2, 0.5" đúng x nhưng báo chỉ hai chuyển đổi, trong khi y cũng được nạp từ 3.6.
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