Cho đoạn chương trình:char S[] = “Helen”;char *p = S; char c = *(p+3);Giá trị của c sẽ là:
Đáp án đúng: B
Đoạn chương trình khai báo một mảng ký tự S
được khởi tạo với chuỗi "Helen". Sau đó, một con trỏ ký tự p
được gán địa chỉ của phần tử đầu tiên trong mảng S
. Cuối cùng, biến ký tự c
được gán giá trị của phần tử tại vị trí p+3
. Vì p
trỏ đến phần tử đầu tiên của S
(tức là 'H'), thì p+3
sẽ trỏ đến phần tử thứ tư của S
, tức là 'n'.
Câu hỏi liên quan
Trong C, để truy xuất một thành phần của một con trỏ cấu trúc, chúng ta sử dụng toán tử mũi tên ->
. Toán tử chấm .
được sử dụng để truy xuất thành phần của một biến cấu trúc trực tiếp, không phải là con trỏ. Vì vậy, đáp án B là đáp án chính xác.
Để khai báo một cấu trúc (struct) trong C/C++, ta cần tuân theo cú pháp nhất định. Cấu trúc này dùng để nhóm các biến có kiểu dữ liệu khác nhau thành một đơn vị duy nhất. Trong trường hợp này, chúng ta cần khai báo một cấu trúc mô tả sinh viên, bao gồm tên (kiểu chuỗi ký tự) và điểm 3 môn học (kiểu số thực để có thể lưu điểm lẻ).
- Lựa chọn A: Sai vì sử dụng
structure
thay vìstruct
(trong C/C++, từ khóa đúng làstruct
). Hơn nữa, khai báo mảngName[]
không chỉ rõ kích thước. Các biến điểm khai báo kiểuint
là không phù hợp, cần khai báo kiểu số thực (float
hoặcdouble
) để lưu điểm chính xác hơn. - Lựa chọn B: Sai vì sử dụng
struct
đúng, nhưng khai báo mảngName[]
không chỉ rõ kích thước và các biến điểm khai báo kiểuint
là không phù hợp. - Lựa chọn C: Đúng vì sử dụng
typedef struct STUDENT
để định nghĩa một kiểu dữ liệu mới tên làSTUDENT
.char Name[]
không chỉ rõ kích thước (vấn đề này có thể được giải quyết bằng cách cấp phát động hoặc chỉ định kích thước tối đa). Điểm số s1, s2, s3 khai báo kiểufloat
là phù hợp để lưu điểm số có phần thập phân. - Lựa chọn D: Sai vì
typedef
cần đi kèm vớistruct
khi định nghĩa cấu trúc, vàSTUDENT
chưa được định nghĩa trước đó. Thêm vào đó, khai báo mảngName[]
không chỉ rõ kích thước và các biến điểm khai báo kiểuint
là không phù hợp.
Vậy đáp án đúng nhất là C.
Biến con trỏ trong lập trình C/C++ (và nhiều ngôn ngữ khác) được sử dụng để lưu trữ địa chỉ của một vùng nhớ khác. Vùng nhớ này thường là nơi lưu trữ giá trị của một biến khác. Do đó:
- Phương án A: "Địa chỉ vùng nhớ của một biến khác" -> Đúng, vì đây chính là chức năng cơ bản của con trỏ.
- Phương án B: "Giá trị của một biến khác" -> Sai, con trỏ không lưu trữ giá trị trực tiếp của biến khác, mà lưu địa chỉ nơi biến đó được lưu trữ. Để truy cập giá trị của biến thông qua con trỏ, ta cần sử dụng toán tử giải tham chiếu (dereference).
Vì vậy, đáp án đúng nhất là A.
- `m.k` được gán giá trị 8, khi in ra với định dạng "%0.1f" sẽ là "8.0".
- `m.a` được gán giá trị 6.5, khi in ra với định dạng "%0.1f" sẽ là "6.5".
- `m.l` được gán giá trị 6, khi in ra với định dạng "%0.1f" sẽ là "6.0".
Kết quả in ra sẽ là chuỗi các giá trị này nối tiếp nhau: "8.06.56.0".

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.