Nếu có các khai báo sau. Câu nào sau đây là đúng:
char msg[10]
char * ptr;
char value;
char msg[10]
char * ptr;
char value;
Trả lời:
Đáp án đúng: B
Câu hỏi kiểm tra về cách sử dụng con trỏ và mảng trong C.
* `char msg[10]` khai báo một mảng ký tự có tên `msg` với 10 phần tử.
* `char *ptr` khai báo một con trỏ ký tự có tên `ptr`. Con trỏ này có thể trỏ đến một vùng nhớ chứa một ký tự hoặc một chuỗi ký tự.
* `char value` khai báo một biến ký tự có tên `value`.
**Đánh giá các phương án:**
* **A. `ptr = value;` (Sai):** `ptr` là một con trỏ (lưu địa chỉ), trong khi `value` là một biến kiểu `char` (lưu giá trị). Không thể gán trực tiếp một giá trị `char` cho một con trỏ `char*`. Cần phải gán địa chỉ của `value` cho `ptr` bằng cách sử dụng toán tử `&` (ví dụ: `ptr = &value;`).
* **B. `ptr = msg;` (Đúng):** `msg` là tên của một mảng, khi sử dụng tên mảng trong biểu thức (như trong phép gán này), nó sẽ tự động chuyển đổi thành địa chỉ của phần tử đầu tiên của mảng (tức là `&msg[0]`). Vì vậy, `ptr` sẽ trỏ đến địa chỉ của phần tử đầu tiên trong mảng `msg`. Điều này là hợp lệ vì `ptr` là một con trỏ ký tự, và `msg` (sau khi chuyển đổi) là một địa chỉ bộ nhớ chứa ký tự.
* **C. Cả hai câu trên đều đúng (Sai):** Vì phương án A sai.
* **D. Cả hai câu trên đều sai (Sai):** Vì phương án B đúng.
Vậy, đáp án đúng là B. `ptr=msg;`
Tổng hợp 600+ câu hỏi trắc nghiệm lập trình C có đáp án đầy đủ nhằm giúp các bạn dễ dàng ôn tập lại toàn bộ các kiến thức.
50 câu hỏi 60 phút
Câu hỏi liên quan

FORM.08: Bộ 130+ Biểu Mẫu Thống Kê Trong Doanh Nghiệp

FORM.07: Bộ 125+ Biểu Mẫu Báo Cáo Trong Doanh Nghiệp

FORM.06: Bộ 320+ Biểu Mẫu Hành Chính Thông Dụng

FORM.05: Bộ 330+ Biểu Mẫu Thuế - Kê Khai Thuế Mới Nhất

FORM.04: Bộ 240+ Biểu Mẫu Chứng Từ Kế Toán Thông Dụng
