44 câu hỏi 60 phút
Cho a=3, b=2 và c là 3 biến nguyên. Biểu thức nào sau đây viết sai cú pháp trong ngôn ngữ lập trình C?
(c=a & b)
(c=a && b)
(c= a/b)
Trong ngôn ngữ lập trình C:
&
là toán tử AND bitwise. Nó thực hiện phép AND trên từng bit của hai toán hạng. Trong biểu thức c = a & b
, giá trị của a
và b
sẽ được biểu diễn dưới dạng nhị phân, sau đó phép AND bitwise được thực hiện, và kết quả gán cho c
.&&
là toán tử AND logic. Nó trả về 1 (true) nếu cả hai toán hạng đều khác 0, và 0 (false) nếu một trong hai hoặc cả hai toán hạng bằng 0. Trong biểu thức c = a && b
, kết quả của phép AND logic (0 hoặc 1) sẽ được gán cho c
./
là toán tử chia. Trong biểu thức c = a / b
, giá trị của a
sẽ được chia cho b
, và kết quả (phần nguyên nếu a
và b
là số nguyên) sẽ được gán cho c
.<<
là toán tử dịch trái bitwise. Nó dịch các bit của toán hạng bên trái sang trái một số lượng vị trí được chỉ định bởi toán hạng bên phải. Trong biểu thức c = a << b
, giá trị của a
sẽ được dịch trái b
bit, và kết quả gán cho c
.Như vậy, cả 4 biểu thức đều hợp lệ về mặt cú pháp trong C.
Do đó, không có đáp án nào sai.
50 câu hỏi 60 phút
45 câu hỏi 60 phút
50 câu hỏi 60 phút
22 câu hỏi 60 phút
50 câu hỏi 60 phút
50 câu hỏi 60 phút
50 câu hỏi 60 phút
50 câu hỏi 60 phút
50 câu hỏi 60 phút
50 câu hỏi 60 phút
Trong ngôn ngữ lập trình C:
&
là toán tử AND bitwise. Nó thực hiện phép AND trên từng bit của hai toán hạng. Trong biểu thức c = a & b
, giá trị của a
và b
sẽ được biểu diễn dưới dạng nhị phân, sau đó phép AND bitwise được thực hiện, và kết quả gán cho c
.&&
là toán tử AND logic. Nó trả về 1 (true) nếu cả hai toán hạng đều khác 0, và 0 (false) nếu một trong hai hoặc cả hai toán hạng bằng 0. Trong biểu thức c = a && b
, kết quả của phép AND logic (0 hoặc 1) sẽ được gán cho c
./
là toán tử chia. Trong biểu thức c = a / b
, giá trị của a
sẽ được chia cho b
, và kết quả (phần nguyên nếu a
và b
là số nguyên) sẽ được gán cho c
.<<
là toán tử dịch trái bitwise. Nó dịch các bit của toán hạng bên trái sang trái một số lượng vị trí được chỉ định bởi toán hạng bên phải. Trong biểu thức c = a << b
, giá trị của a
sẽ được dịch trái b
bit, và kết quả gán cho c
.Như vậy, cả 4 biểu thức đều hợp lệ về mặt cú pháp trong C.
Do đó, không có đáp án nào sai.
Đầu tiên, cần hiểu rõ toán tử <<=
. Toán tử này là toán tử gán kết hợp với dịch trái bit. Biểu thức a <<= b
tương đương với a = a << b
.
Giá trị ban đầu của a
là 3 và b
là 2.
Phép dịch trái a << b
(tức 3 << 2
) dịch các bit của a
sang trái b
vị trí. Số 3 trong hệ nhị phân là 11
. Dịch trái 2 vị trí sẽ thành 1100
, tương ứng với số 12 trong hệ thập phân.
Sau phép gán a = a << b
, giá trị của a
sẽ là 12.
Cuối cùng, c = a
, nên c
sẽ nhận giá trị 12.
Khai báo hàm tính tổng các phần tử trong một mảng các số nguyên dưới đây, khai báo nào đúng?