Which of the following is the proper keyword or function to allocate memory in C?
Đáp án đúng: B
Trong ngôn ngữ C, hàm malloc
(memory allocation) được sử dụng để cấp phát bộ nhớ động. Hàm này trả về một con trỏ tới vùng nhớ đã được cấp phát. Các lựa chọn khác không phải là cách đúng để cấp phát bộ nhớ trong C:
new
: Là một toán tử trong C++ để cấp phát bộ nhớ, không phải trong C.create
: Không phải là một hàm chuẩn trong C để cấp phát bộ nhớ.value
: Không liên quan đến việc cấp phát bộ nhớ.
Câu hỏi liên quan
Các phương án khác:
- `b.var`: Toán tử `.` được sử dụng để truy cập một biến thành viên của một struct trực tiếp, không thông qua con trỏ.
- `b-var` và `b>var`: Đây không phải là các toán tử hợp lệ để truy cập các biến thành viên struct trong C/C++.
Do đó, phương án A là chính xác.
Trong C/C++, một string literal (chuỗi ký tự hằng) là một chuỗi các ký tự được đặt trong dấu ngoặc kép. Nó được lưu trữ trong bộ nhớ và có giá trị không thể thay đổi trong quá trình thực thi chương trình.
- Phương án A (Static String): Đây không phải là một string literal mà là một cụm từ mô tả một chuỗi tĩnh, tức là chuỗi có vùng nhớ được cấp phát và giữ nguyên trong suốt thời gian chạy của chương trình. Nó không phải là cách biểu diễn trực tiếp một chuỗi ký tự hằng.
- Phương án B (“Static String”): Đây là một string literal. Chuỗi "Static String" được đặt trong dấu ngoặc kép, đúng cú pháp của một chuỗi ký tự hằng trong C/C++.
- Phương án C (‘Static String’): Trong C/C++, dấu nháy đơn được sử dụng để biểu diễn một ký tự đơn (character literal), không phải là một chuỗi ký tự. Do đó, đây không phải là một string literal hợp lệ.
- Phương án D (char string[100]): Đây là khai báo một mảng các ký tự (character array) có tên là `string` với kích thước 100. Mảng này có thể được sử dụng để lưu trữ một chuỗi ký tự, nhưng bản thân nó không phải là một string literal.
Vậy, phương án B là đáp án đúng.
Trong C/C++, để lấy số dư của phép chia hai số thực (số dấu phẩy động), chúng ta sử dụng hàm fmod()
. Hàm này được định nghĩa trong thư viện math.h
(hoặc cmath
trong C++). Nó trả về số dư của phép chia x/y, với cùng dấu với x. Toán tử %
chỉ dùng cho số nguyên.
A. Sai. Toán tử %
chỉ dùng cho số nguyên, không dùng cho số thực.
B. Đúng. Hàm fmod(3.14, 2.1)
sẽ trả về số dư của phép chia 3.14 cho 2.1.
C. Sai. Hàm modf()
được sử dụng để tách một số thực thành phần nguyên và phần thập phân, chứ không phải để tính số dư của phép chia.
D. Sai. Có thể lấy số dư của phép chia số dấu phẩy động bằng hàm fmod()
.
Trong Python, để biểu diễn một số thực, bạn chỉ cần viết số đó với dấu chấm thập phân. Nếu bạn muốn chắc chắn rằng một giá trị được coi là số thực, bạn có thể sử dụng hàm float()
để chuyển đổi nó. Tuy nhiên, trong trường hợp hằng số 3.14, nó đã là một số thực rồi.
- Phương án A:
float(3.14f)
không đúng vì hậu tốf
không hợp lệ trong Python. Python không sử dụng hậu tố nhưf
cho số thực như trong một số ngôn ngữ khác (ví dụ: C# hoặc Java). - Phương án B:
3.14f
cũng không đúng vì lý do tương tự như trên. - Phương án C:
f(3.14)
không đúng vìf
ở đây không được định nghĩa là một hàm. - Phương án D:
(f)(3.14)
tương tự như phương án C, không đúng vìf
không được định nghĩa.
Tuy nhiên, nếu mục đích của câu hỏi là chuyển đổi một giá trị thành số thực một cách tường minh, thì việc sử dụng float(3.14)
sẽ là cách tốt nhất để đảm bảo rằng giá trị đó được coi là một số thực. Vì không có đáp án nào hoàn toàn chính xác trong các lựa chọn đã cho, ta cần phải xem xét mục đích của câu hỏi. Trong trường hợp này, có lẽ câu hỏi đang kiểm tra về cách ép kiểu dữ liệu sang số thực. Mặc dù 3.14 mặc định là số thực, để ép kiểu tường minh, ta dùng float(). Vì vậy, không có đáp án nào đúng hoàn toàn.
Lệnh `goto` cho phép nhảy đến một vị trí được đánh dấu bằng một nhãn trong chương trình. Tuy nhiên, việc sử dụng `goto` thường bị khuyến cáo vì có thể làm cho code khó đọc và khó bảo trì.
Lệnh `continue` được sử dụng để bỏ qua phần còn lại của vòng lặp hiện tại và chuyển sang lần lặp tiếp theo. Nó không dừng hoàn toàn vòng lặp mà chỉ bỏ qua phần còn lại của code trong lần lặp đó.
Vì vậy, chỉ có `break` là lệnh dừng câu lệnh điều khiển (vòng lặp hoặc switch) một cách trực tiếp.

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.