Đáp án đúng: B
Câu trả lời đúng là B. Không. Trong một hàm, khi một câu lệnh return được thực thi, hàm sẽ kết thúc ngay lập tức và trả về giá trị (nếu có) cho nơi gọi hàm. Do đó, chỉ có một câu lệnh return được thực thi trong một lần gọi hàm. Mặc dù có thể có nhiều câu lệnh return trong thân hàm (ví dụ: trong các nhánh if/else khác nhau), nhưng chỉ một trong số chúng được thực thi trong một lần chạy hàm cụ thể.
Câu hỏi liên quan
* Đáp án A sai vì kiểu trả về của hàm không nhất thiết phải là void.
* Đáp án B sai vì kiểu đầu vào của hàm không nhất thiết phải là void.
* Đáp án C đúng vì hàm phải được khai báo trước khi gọi.
* Đáp án D sai vì hàm có thể trả về nhiều kiểu dữ liệu khác nhau, không chỉ boolean.
* A. Dãy các mã định dạng dữ liệu hiển thị: Đây là đáp án chính xác vì nó mô tả đúng chức năng của dãy mã quy cách trong `printf()`. Các mã định dạng xác định cách các giá trị được biểu diễn khi in ra.
* B. Con trỏ của xâu kí tự: Mặc dù `printf()` có thể làm việc với con trỏ chuỗi (ví dụ: `%s` nhận một con trỏ `char *`), nhưng "dãy mã quy cách" không chỉ là con trỏ chuỗi, mà là tập hợp các mã định dạng.
* C. Các xâu kí tự mang tính chất thông báo: Các xâu kí tự thông báo có thể có trong chuỗi định dạng của `printf()`, nhưng không phải là toàn bộ nội dung của "dãy mã quy cách". Dãy mã quy cách còn bao gồm các mã định dạng.
* D. Cả 3 phương án trên: Vì chỉ có phương án A đúng, nên phương án này sai.
Phân tích đoạn code:
- Đoạn code sử dụng một vòng lặp `for` để duyệt các phần tử trong mảng `arr`.
- Bên trong vòng lặp, có một lệnh `if` kiểm tra xem giá trị của `arr[i]` có chia hết cho 2 hay không.
- Nếu `arr[i]` chia hết cho 2, giá trị của `arr[i]` sẽ được in ra màn hình.
Xét các giá trị trong mảng `arr`:
- `arr[0] = 1`, không chia hết cho 2.
- `arr[1] = 2`, chia hết cho 2, in ra `2`.
- `arr[2] = 3`, không chia hết cho 2.
- `arr[3] = 4`, chia hết cho 2, in ra `4`.
Vậy kết quả in ra màn hình là "2 4".
Trong C, msg là một mảng các ký tự (chuỗi), và value là một biến kiểu ký tự (char).
Phương án A: msg[2] = value;
- Câu lệnh này gán giá trị của biến value cho phần tử thứ 3 (index 2) của mảng msg. Đây là một thao tác hợp lệ vì cả hai vế đều là kiểu ký tự (char).
Phương án B: msg = value;
- Câu lệnh này không hợp lệ. Trong C, bạn không thể gán trực tiếp một giá trị cho một mảng. msg là một con trỏ đến địa chỉ đầu tiên của mảng, và bạn không thể thay đổi địa chỉ này bằng một giá trị đơn lẻ. Bạn chỉ có thể gán giá trị cho từng phần tử của mảng.
Do đó, chỉ có phương án A là đúng.
Trong C/C++, việc gán giá trị giữa các con trỏ cần tuân thủ một số quy tắc về kiểu dữ liệu. Dưới đây là phân tích chi tiết từng lựa chọn:
- A.
tongquat = nguyen;tongquatlà con trỏ kiểuvoid*, có thể trỏ đến bất kỳ kiểu dữ liệu nào.nguyenlà con trỏ kiểuint*. Phép gán này hợp lệ vì một con trỏ kiểu cụ thể (int*) có thể được gán cho con trỏ kiểuvoid*mà không cần ép kiểu tường minh. Con trỏ void* có thể nhận giá trị từ bất kỳ con trỏ nào. - B.
*nguyen = *tongquat;nguyenlà con trỏ kiểuint*, do đó*nguyenlà một biến kiểuint.tongquatlà con trỏ kiểuvoid*, nên*tongquatkhông có kiểu dữ liệu cụ thể. Phép gán này không hợp lệ vì bạn đang cố gắng gán một giá trị không rõ kiểu (từ*tongquat) cho một biến kiểuint(*nguyen). Để thực hiện phép gán này, bạn cần ép kiểutongquatvề một kiểu con trỏ cụ thể trước khi dereference nó (ví dụ:*nguyen = *(int*)tongquat;). Nếu không ép kiểu, trình biên dịch sẽ báo lỗi. - C.
kitu = (char*)tongquat;kitulà con trỏ kiểuchar*.tongquatlà con trỏ kiểuvoid*. Phép gán này hợp lệ vì bạn đang ép kiểutongquatthànhchar*trước khi gán chokitu. Việc ép kiểu tường minh cho phép trình biên dịch hiểu rõ kiểu dữ liệu mà con trỏ sẽ trỏ tới. - D.
tongquat = kitu;tongquatlà con trỏ kiểuvoid*.kitulà con trỏ kiểuchar*. Phép gán này hợp lệ vì một con trỏ kiểu cụ thể (char*) có thể được gán cho con trỏ kiểuvoid*mà không cần ép kiểu tường minh.
Vậy, phép gán không hợp lệ là *nguyen = *tongquat; vì cần phải ép kiểu tường minh trước khi dereference con trỏ tongquat.

Bộ Đồ Án Tốt Nghiệp Ngành Trí Tuệ Nhân Tạo Và Học Máy

Bộ 120+ Đồ Án Tốt Nghiệp Ngành Hệ Thống Thông Tin

Bộ Đồ Án Tốt Nghiệp Ngành Mạng Máy Tính Và Truyền Thông

Bộ Luận Văn Tốt Nghiệp Ngành Kiểm Toán

Bộ 370+ Luận Văn Tốt Nghiệp Ngành Kế Toán Doanh Nghiệp

Bộ Luận Văn Tốt Nghiệp Ngành Quản Trị Thương Hiệu
ĐĂNG KÝ GÓI THI VIP
- Truy cập hơn 100K đề thi thử và chính thức các năm
- 2M câu hỏi theo các mức độ: Nhận biết – Thông hiểu – Vận dụng
- Học nhanh với 10K Flashcard Tiếng Anh theo bộ sách và chủ đề
- Đầy đủ: Mầm non – Phổ thông (K12) – Đại học – Người đi làm
- Tải toàn bộ tài liệu trên TaiLieu.VN
- Loại bỏ quảng cáo để tăng khả năng tập trung ôn luyện
- Tặng 15 ngày khi đăng ký gói 3 tháng, 30 ngày với gói 6 tháng và 60 ngày với gói 12 tháng.