JavaScript is required

Nếu có khai báo. Câu nào sẽ đúng:
char * ptr;
char msg[10]
char v;

A.
ptr=v;
B.
ptr=msg;
C.
Cả hai câu đều đúng
D.
Cả hai câu đều sai
Trả lời:

Đáp án đúng: B


Câu hỏi kiểm tra sự hiểu biết về con trỏ và mảng trong C. * `char *ptr;` khai báo một con trỏ `ptr` trỏ đến một vùng nhớ chứa kiểu dữ liệu `char`. * `char msg[10];` khai báo một mảng `msg` gồm 10 phần tử kiểu `char`. Tên mảng `msg` trong nhiều ngữ cảnh (như trong câu hỏi này) có thể được sử dụng như một con trỏ đến phần tử đầu tiên của mảng. * `char v;` khai báo một biến `v` kiểu `char`. **Phân tích các lựa chọn:** * **A. `ptr = v;`** * Sai. `ptr` là một con trỏ (địa chỉ), trong khi `v` là một biến kiểu `char` (giá trị). Không thể gán một giá trị `char` cho một con trỏ `char *`. Cần phải lấy địa chỉ của `v` bằng toán tử `&` (ví dụ: `ptr = &v;`). * **B. `ptr = msg;`** * Đúng. `msg` là tên của mảng, và trong biểu thức này, nó tự động chuyển đổi thành một con trỏ đến phần tử đầu tiên của mảng (tức là địa chỉ của `msg[0]`). Vì vậy, chúng ta đang gán một địa chỉ (con trỏ) cho con trỏ `ptr`, điều này hợp lệ. * **C. Cả hai câu đều đúng** * Sai. Vì A sai. * **D. Cả hai câu đều sai** * Sai. Vì B đúng. Vậy đáp án đúng là B.

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