What does the following program print?
4 phương ánCó giải thích
#include <stdio.h>
float max(float a, float b) {
return a > b ? a : b;
}
int main() {
float x = 5.5, y = 4.5, z = 2;
printf("%f", max(max(x++, y--), ++z));
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: "5.500000". Hàm max dùng toán tử ba toán hạng để trả về số lớn hơn. Lời gọi trong cùng là max(x++, y--): cả hai phép tăng giảm đều ở dạng hậu tố nên truyền sang hàm giá trị cũ, tức 5.5 và 4.5, và hàm cho 5.5; sau đó x thành 6.5, y thành 3.5 nhưng không còn ai đọc. Lời gọi ngoài so 5.5 với ++z, dạng tiền tố nên z tăng trước rồi truyền sang 3.0, kết quả vẫn là 5.5. Đặc tả %f in số thực với sáu chữ số thập phân mặc định, nên màn hình hiện 5.500000. Dòng "5.5" là cách con người viết số đó, không phải cách printf in với %f. Dòng "4.500000" là giá trị cũ của y, thứ bị loại ngay ở lời gọi trong cùng. Kết luận "An error will be raised." sai vì tham số float, phép tăng giảm trên số thực và việc lồng hai lời gọi đều hợp lệ.
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