JavaScript is required

Trong các cách sử dụng sau đây, cách nào là đúng đối với toán tử điều kiện trong C?

A.

a>b? c = 20 : c = 21;

B.

a>b? c = 20;

C.

max = a>b? a>c?a:c:b>c?b:c;

D.

trả về (a>b)?(a:b);

Trả lời:

Đáp án đúng: C


Toán tử điều kiện (ternary operator) trong C có cú pháp như sau: `condition ? expression_if_true : expression_if_false`. * **Đáp án A:** `a>b? c = 20 : c = 21;` là cách sử dụng **đúng**. Nó kiểm tra điều kiện `a>b`. Nếu đúng, `c` được gán giá trị 20; nếu sai, `c` được gán giá trị 21. * **Đáp án B:** `a>b? c = 20;` là **sai**. Toán tử điều kiện yêu cầu cả hai phần `expression_if_true` và `expression_if_false` phải được cung cấp. * **Đáp án C:** `max = a>b? a>c?a:c:b>c?b:c;` là cách sử dụng **đúng** (dù hơi khó đọc). Nó sử dụng toán tử điều kiện lồng nhau để tìm giá trị lớn nhất trong ba biến `a`, `b`, và `c`. * **Đáp án D:** `trả về (a>b)?(a:b);` là cách sử dụng **đúng**. Nó trả về `a` nếu `a>b` đúng, ngược lại trả về `b`. Vì có nhiều hơn một đáp án đúng, nên đáp án C là đầy đủ nhất vì nó bao hàm được cách sử dụng toán tử điều kiện lồng nhau. Tuy nhiên, A và D vẫn đúng cú pháp. Câu hỏi có thể gây nhầm lẫn vì có nhiều đáp án đúng. Ở đây, ta chọn đáp án tổng quát nhất.

Câu hỏi liên quan