What will be printed when the following program is executed?
4 phương ánCó giải thích
#include <stdio.h>
int f(int a, int b, int c) {
int t = 2*(a+b-c)/5;
return t;
}
int main() {
int x = 5, y = 6, z = 7;
int t = 3*f(y,x,z);
printf("%d", t);
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: "3". Thứ tự đối số là chỗ cần bám: lời gọi f(y,x,z) gán a bằng 6, b bằng 5, c bằng 7. Trong hàm, a cộng b trừ c cho 4, nhân 2 thành 8, rồi 8 chia 5 là phép chia giữa hai số nguyên nên C cắt phần thập phân cho ra 1, không làm tròn lên 2. Hàm trả về 1, main nhân 3 và in 3. Lựa chọn "1" là giá trị hàm trả về, bỏ quên phép nhân 3 ở main. Lựa chọn "8" là tử số 2 nhân với 4, tức dừng lại trước khi chia cho 5. Lựa chọn "2" ứng với cách hiểu 8 chia 5 bằng 1.6 rồi làm tròn thành 2, nhưng chia nguyên trong C luôn cắt về phía 0, và ngay cả khi làm tròn thì kết quả cuối vẫn còn phải nhân 3 nữa.
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 2 bộ đề
Đi tiếp từ đây