Consider the following code:
4 phương ánCó giải thích
int func(int* a, int n){
int S = 0;
for(int i = 0; i < n; i++) {
S = S + (a[i] % 2)*a[i];
}
return S;
}What does the above code snippet do?
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: "Calculates the sum of the absolute value of all odd elements in the array a of size n." Chìa khoá là biểu thức (a[i] % 2)*a[i]: với số chẵn phần dư là 0 nên hạng tử bằng 0; với số lẻ dương phần dư là 1 nên hạng tử bằng chính a[i]; với số lẻ âm, phép lấy dư trong C giữ dấu của toán hạng bên trái nên -3 % 2 cho -1, hạng tử thành -1 nhân -3 là 3, tức trị tuyệt đối. "Calculates the sum of all odd elements in the array a of size n." chỉ trùng kết quả khi mảng không có số lẻ âm, nên sai trong trường hợp tổng quát: gặp -3 thì hàm cộng 3 chứ không cộng -3. "Calculates the sum of all even elements in the array a of size n." sai vì số chẵn cho phần dư 0 nên không góp gì vào tổng. "Calculates the sum of squares of all elements in the array a of size n." sai vì bình phương phải là a[i] nhân a[i], còn ở đây một thừa số chỉ nhận 0, 1 hoặc -1.
Cùng phần 7
Why is an array considered an efficient data structure for index-based element access?Có lời giảiCâu hỏiWhich sorting algorithm repeatedly steps through the list, compares adjacent elements, and swaps them if they are in the wrong order?Có lời giảiCâu hỏiWhich of the following is the correct syntax for declaring a structure in C?Có lời giảiCâu hỏiCả 21 câu của chủ đề21 câu
Xuất hiện trong 1 bộ đề
Đi tiếp từ đây