Which of the following is the proper keyword or function to deallocate memory in C language?
Trả lời:
Đáp án đúng: B
Trong ngôn ngữ C, hàm `free()` được sử dụng để giải phóng bộ nhớ đã được cấp phát động trước đó bởi các hàm như `malloc()`, `calloc()` hoặc `realloc()`. Các lựa chọn khác không phải là các phương pháp hợp lệ để giải phóng bộ nhớ trong C.
- `delete` là toán tử giải phóng bộ nhớ trong C++, không phải C.
- `clear` thường được sử dụng để xóa nội dung của một biến hoặc cấu trúc dữ liệu, nhưng không giải phóng bộ nhớ.
- `remove` thường được sử dụng để xóa một tập tin, không phải để giải phóng bộ nhớ.
Câu hỏi liên quan
Lời giải:
Đáp án đúng: B
Câu hỏi này kiểm tra kiến thức về cách truy cập các thành phần (biến) trong một cấu trúc (structure) trong ngôn ngữ lập trình C (hoặc C++).
* Phương án A: `b→var;` Đây là cách truy cập một thành phần của cấu trúc thông qua một con trỏ trỏ tới cấu trúc đó. Toán tử `→` được sử dụng để truy cập các thành viên của cấu trúc khi bạn có một con trỏ đến cấu trúc. Ví dụ, nếu `b` là một con trỏ kiểu structure nào đó, thì `b→var` sẽ truy cập vào biến `var` của structure mà `b` đang trỏ tới. Đây là một cách truy cập hợp lệ.
* Phương án B: `b.var;` Đây là cách truy cập một thành phần của cấu trúc trực tiếp thông qua tên biến cấu trúc. Toán tử `.` được sử dụng khi bạn có một biến cấu trúc trực tiếp (không phải con trỏ). Ví dụ, nếu `b` là một biến cấu trúc (không phải con trỏ), thì `b.var` sẽ truy cập vào biến `var` của structure `b`. Đây cũng là một cách truy cập hợp lệ.
* Phương án C: `b-var;` Đây là phép trừ giữa `b` và `var`, không phải là cách truy cập thành phần của cấu trúc.
* Phương án D: `b>var;` Đây là phép so sánh `b` có lớn hơn `var` hay không, không phải là cách truy cập thành phần của cấu trúc.
Vì câu hỏi không chỉ rõ `b` là biến cấu trúc hay con trỏ đến cấu trúc, cả A và B đều đúng. Tuy nhiên, theo cách các câu hỏi trắc nghiệm thường được thiết kế, ta chọn đáp án phổ biến và tổng quát hơn. Ở đây ta giả sử b là một con trỏ.
* Phương án A: `b→var;` Đây là cách truy cập một thành phần của cấu trúc thông qua một con trỏ trỏ tới cấu trúc đó. Toán tử `→` được sử dụng để truy cập các thành viên của cấu trúc khi bạn có một con trỏ đến cấu trúc. Ví dụ, nếu `b` là một con trỏ kiểu structure nào đó, thì `b→var` sẽ truy cập vào biến `var` của structure mà `b` đang trỏ tới. Đây là một cách truy cập hợp lệ.
* Phương án B: `b.var;` Đây là cách truy cập một thành phần của cấu trúc trực tiếp thông qua tên biến cấu trúc. Toán tử `.` được sử dụng khi bạn có một biến cấu trúc trực tiếp (không phải con trỏ). Ví dụ, nếu `b` là một biến cấu trúc (không phải con trỏ), thì `b.var` sẽ truy cập vào biến `var` của structure `b`. Đây cũng là một cách truy cập hợp lệ.
* Phương án C: `b-var;` Đây là phép trừ giữa `b` và `var`, không phải là cách truy cập thành phần của cấu trúc.
* Phương án D: `b>var;` Đây là phép so sánh `b` có lớn hơn `var` hay không, không phải là cách truy cập thành phần của cấu trúc.
Vì câu hỏi không chỉ rõ `b` là biến cấu trúc hay con trỏ đến cấu trúc, cả A và B đều đúng. Tuy nhiên, theo cách các câu hỏi trắc nghiệm thường được thiết kế, ta chọn đáp án phổ biến và tổng quát hơn. Ở đây ta giả sử b là một con trỏ.
Lời giải:
Đáp án đúng: A
Trong C/C++, khi bạn có một con trỏ đến một cấu trúc (ví dụ, `*b`), bạn sử dụng toán tử `->` để truy cập các thành viên của cấu trúc đó. Toán tử này kết hợp việc giải tham chiếu con trỏ và truy cập thành viên.
- Phương án A (`b->var`) là cách chính xác để truy cập biến `var` thông qua con trỏ `b`. Nó tương đương với `(*b).var` nhưng ngắn gọn và dễ đọc hơn.
- Phương án B (`b.var`) sử dụng toán tử `.` để truy cập thành viên, nhưng toán tử này chỉ dùng khi `b` là một biến cấu trúc trực tiếp, không phải là một con trỏ.
- Phương án C (`b-var`) là một phép trừ không hợp lệ giữa con trỏ `b` và biến `var`.
- Phương án D (`b>var`) là một phép so sánh lớn hơn giữa con trỏ `b` và biến `var`, không phải là cách để truy cập thành viên của cấu trúc.
- Phương án A (`b->var`) là cách chính xác để truy cập biến `var` thông qua con trỏ `b`. Nó tương đương với `(*b).var` nhưng ngắn gọn và dễ đọc hơn.
- Phương án B (`b.var`) sử dụng toán tử `.` để truy cập thành viên, nhưng toán tử này chỉ dùng khi `b` là một biến cấu trúc trực tiếp, không phải là một con trỏ.
- Phương án C (`b-var`) là một phép trừ không hợp lệ giữa con trỏ `b` và biến `var`.
- Phương án D (`b>var`) là một phép so sánh lớn hơn giữa con trỏ `b` và biến `var`, không phải là cách để truy cập thành viên của cấu trúc.
Lời giải:
Đáp án đúng: A
Trong hầu hết các ngôn ngữ lập trình, mảng (array) được đánh chỉ số (index) bắt đầu từ 0. Điều này có nghĩa là phần tử đầu tiên của mảng `foo` được truy cập thông qua `foo[0]`, phần tử thứ hai là `foo[1]`, và cứ tiếp tục như vậy. Vì vậy, để truy cập phần tử thứ bảy, ta cần sử dụng chỉ số 6, tức là `foo[6]`.
* Phương án A (`foo[6]`) là đáp án đúng. Nó truy cập phần tử thứ bảy của mảng `foo`.
* Phương án B (`foo[7]`) sai vì nó truy cập phần tử thứ tám.
* Phương án C (`foo(7)`) sai vì cách gọi hàm không đúng cú pháp trong hầu hết các ngôn ngữ lập trình phổ biến (C, C++, Java, Python, JavaScript...). Đây có thể là cách gọi hàm trong một số ngôn ngữ đặc biệt, nhưng không phải là cách truy cập phần tử mảng thông thường.
* Phương án D (`foo`) sai vì nó trả về toàn bộ mảng, chứ không phải là một phần tử cụ thể.
* Phương án A (`foo[6]`) là đáp án đúng. Nó truy cập phần tử thứ bảy của mảng `foo`.
* Phương án B (`foo[7]`) sai vì nó truy cập phần tử thứ tám.
* Phương án C (`foo(7)`) sai vì cách gọi hàm không đúng cú pháp trong hầu hết các ngôn ngữ lập trình phổ biến (C, C++, Java, Python, JavaScript...). Đây có thể là cách gọi hàm trong một số ngôn ngữ đặc biệt, nhưng không phải là cách truy cập phần tử mảng thông thường.
* Phương án D (`foo`) sai vì nó trả về toàn bộ mảng, chứ không phải là một phần tử cụ thể.
Lời giải:
Đáp án đúng: B
Trong C/C++, string literal (chuỗi ký tự) là một dãy các ký tự được đặt trong cặp dấu ngoặc kép ("). Dấu nháy đơn (') thường được sử dụng cho ký tự đơn (char), không phải chuỗi. Khai báo mảng ký tự (char string[100]) là khai báo biến, không phải string literal.
* Phương án A: `Static String` không phải là string literal vì nó không được đặt trong dấu ngoặc kép.
* Phương án B: `“Static String”` là string literal vì nó được đặt trong dấu ngoặc kép.
* Phương án C: `'Static String'` không phải là string literal vì nó được đặt trong dấu nháy đơn. Dấu nháy đơn chỉ được dùng cho một ký tự duy nhất.
* Phương án D: `char string[100]` là khai báo một mảng các ký tự, không phải là một string literal.
* Phương án A: `Static String` không phải là string literal vì nó không được đặt trong dấu ngoặc kép.
* Phương án B: `“Static String”` là string literal vì nó được đặt trong dấu ngoặc kép.
* Phương án C: `'Static String'` không phải là string literal vì nó được đặt trong dấu nháy đơn. Dấu nháy đơn chỉ được dùng cho một ký tự duy nhất.
* Phương án D: `char string[100]` là khai báo một mảng các ký tự, không phải là một string literal.
Lời giải:
Đáp án đúng: A
Trong chương trình C, điểm bắt đầu thực thi luôn là hàm `main()`. Do đó, câu lệnh đầu tiên được thực thi sẽ là câu lệnh đầu tiên bên trong hàm `main()`. Các câu lệnh khác (trong các hàm khác hoặc bên ngoài hàm) sẽ chỉ được thực thi khi được gọi một cách tường minh hoặc gián tiếp từ `main()` hoặc các hàm được gọi từ `main()`.
* A. The first statement of main( ): Đây là đáp án đúng. Chương trình C bắt đầu thực thi từ hàm `main()`, vì vậy câu lệnh đầu tiên trong `main()` sẽ được thực thi đầu tiên.
* B. The first statement of program: Đây không phải là đáp án đúng. Không có khái niệm "first statement of program" trong C.
* C. The first statement after the comment //**: Đây không phải là đáp án đúng. Các comment chỉ mang tính chất giải thích, chú thích cho code, không ảnh hưởng đến quá trình thực thi chương trình. Code sau comment chỉ được thực thi khi nằm trong hàm `main()` hoặc các hàm được gọi.
* D. The first statement of end function: Đây không phải là đáp án đúng. Không có khái niệm "end function" trong C, và thứ tự thực thi không liên quan đến tên hàm.
* A. The first statement of main( ): Đây là đáp án đúng. Chương trình C bắt đầu thực thi từ hàm `main()`, vì vậy câu lệnh đầu tiên trong `main()` sẽ được thực thi đầu tiên.
* B. The first statement of program: Đây không phải là đáp án đúng. Không có khái niệm "first statement of program" trong C.
* C. The first statement after the comment //**: Đây không phải là đáp án đúng. Các comment chỉ mang tính chất giải thích, chú thích cho code, không ảnh hưởng đến quá trình thực thi chương trình. Code sau comment chỉ được thực thi khi nằm trong hàm `main()` hoặc các hàm được gọi.
* D. The first statement of end function: Đây không phải là đáp án đúng. Không có khái niệm "end function" trong C, và thứ tự thực thi không liên quan đến tên hàm.
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP

FORM.08: Bộ 130+ Biểu Mẫu Thống Kê Trong Doanh Nghiệp
136 tài liệu563 lượt tải

FORM.07: Bộ 125+ Biểu Mẫu Báo Cáo Trong Doanh Nghiệp
125 tài liệu585 lượt tải

FORM.06: Bộ 320+ Biểu Mẫu Hành Chính Thông Dụng
325 tài liệu608 lượt tải

FORM.05: Bộ 330+ Biểu Mẫu Thuế - Kê Khai Thuế Mới Nhất
331 tài liệu1010 lượt tải

FORM.04: Bộ 240+ Biểu Mẫu Chứng Từ Kế Toán Thông Dụng
246 tài liệu802 lượt tải

CEO.22: Bộ Tài Liệu Quy Trình Kiểm Toán, Kiểm Soát Nội Bộ Doanh Nghiệp
138 tài liệu417 lượt tải
ĐĂ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.
77.000 đ/ tháng