What will be printed when the following program is executed?
4 phương ánCó giải thích
#include <stdio.h>
double average(int a, int b, int c) {
double result;
result = (a+b+c)/3.0;
return result;
}
int main() {
printf("%.6f", average(5, 8, 7));
return 0;
}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: "6.666667". Tổng ba đối số là 20, và chia cho 3.0 là phép chia có một toán hạng thực nên C nâng 20 lên double rồi chia thực, cho 6.666 và còn lặp mãi, khác hẳn việc chia cho hằng nguyên. Giá trị ấy được trả về qua kiểu double, còn đặc tả yêu cầu in sáu chữ số sau dấu thập phân kèm làm tròn chữ số cuối, nên màn hình hiện 6.666667. Lựa chọn "6.000000" là kết quả nếu mẫu số viết là hằng nguyên 3, khi đó chia nguyên cắt phần thập phân trước cả lúc gán vào biến double. Lựa chọn "20.000000" là tổng chưa chia. Lựa chọn "6" sai về dạng in vì đặc tả này luôn kéo đủ sáu chữ số thập phân chứ không rút ngắn, và cũng sai về giá trị vì phần thập phân bị bỏ mất.
Cùng phần 4
In module design, what does high "cohesion" mean?Có lời giảiCâu hỏiThe function which will return the average of two real numbers should be prototyped as:Có lời giảiCâu hỏiWhat is the output of the following code snippet?
#include <stdio.h>
int num(int a, int b){
int sum;
sum = a + b;
return sum;
}
int main()
{
int a, b, result;
a = 10;
b= 12;
result = num(a, b);
printf("%d", result);
return 0;
}Có lời giảiCâu hỏiCả 22 câu của chủ đề22 câu
Xuất hiện trong 1 bộ đề
Đi tiếp từ đây