Ngôn ngữ C++ là gì? a) Ngôn ngữ lập trình hướng đối tượng b) Ngôn ngữ lập trình thủ tục c) Ngôn ngữ lập trình đa mô hình (hỗ trợ cả hướng đối tượng và thủ tục) d) Ngôn ngữ lập trình chức năng Đáp án: c
Từ khóa nào được sử dụng để khai báo một lớp trong C++? a) class b) struct c) object d) namespace Đáp án: a
Ký hiệu nào được sử dụng để chỉ con trỏ trong C++? a) & b) * c) # d) % Đáp án: b
Hàm nào sau đây được gọi đầu tiên khi chương trình C++ bắt đầu chạy? a) main() b) start() c) init() d) begin() Đáp án: a
Ký hiệu nào được sử dụng để nhận địa chỉ của một biến trong C++? a) * b) & c) # d) % Đáp án: b
Kiểu dữ liệu nào sau đây không phải là kiểu dữ liệu cơ bản trong C++? a) int b) float c) string d) char Đáp án: c
Lệnh nào sau đây được sử dụng để nhập dữ liệu từ bàn phím? a) cin b) cout c) scanf d) printf Đáp án: a
Lệnh nào sau đây được sử dụng để xuất dữ liệu ra màn hình? a) cin b) cout c) scanf d) printf Đáp án: b
Từ khóa nào được sử dụng để định nghĩa một hằng số trong C++? a) const b) static c) final d) define Đáp án: a
Cú pháp đúng để khai báo một mảng trong C++ là gì? a) int array[5]; b) array int[5]; c) int array = new int[5]; d) int[5] array; Đáp án: a
Phần 2: Hàm và Con trỏ
Hàm nào sau đây được sử dụng để cấp phát bộ nhớ động trong C++? a) malloc() b) new c) calloc() d) realloc() Đáp án: b
Từ khóa nào được sử dụng để giải phóng bộ nhớ đã cấp phát bằng new? a) delete b) free c) release d) remove Đáp án: a
Con trỏ này trỏ đến vùng nhớ nào nếu giá trị của nó là nullptr? a) Vùng nhớ hợp lệ b) Không trỏ đến đâu cả c) Vùng nhớ bị lỗi d) Vùng nhớ tạm thời Đáp án: b
Hàm nào sau đây có thể trả về nhiều giá trị? a) Hàm thông thường b) Hàm sử dụng tham chiếu c) Hàm inline d) Hàm lambda Đáp án: b
Từ khóa inline trong C++ có tác dụng gì? a) Tăng tốc độ thực thi bằng cách thay thế lệnh gọi hàm bằng mã hàm b) Giảm kích thước chương trình c) Tạo hàm đệ quy d) Tạo hàm ẩn danh Đáp án: a
Phần 3: Lớp và Đối tượng
Thuộc tính nào sau đây không phải là đặc điểm của lập trình hướng đối tượng? a) Đa hình b) Kế thừa c) Đóng gói d) Tối ưu hóa Đáp án: d
Từ khóa nào được sử dụng để ngăn chặn việc ghi đè phương thức trong lớp con? a) final b) static c) const d) virtual Đáp án: a
Từ khóa this trong C++ được sử dụng để làm gì? a) Trỏ đến đối tượng hiện tại b) Trỏ đến lớp cha c) Trỏ đến lớp con d) Trỏ đến con trỏ Đáp án: a
Phương thức nào được gọi tự động khi một đối tượng được tạo ra? a) Constructor b) Destructor c) Method d) Operator Đáp án: a
Phương thức nào được gọi tự động khi một đối tượng bị hủy? a) Constructor b) Destructor c) Method d) Operator Đáp án: b
Phần 4: STL và Thư viện chuẩn
STL là viết tắt của gì? a) Standard Template Library b) Simple Template Library c) Standard Type Library d) System Template Library Đáp án: a
Loại container nào sau đây không thuộc STL? a) vector b) list c) array d) stack Đáp án: c
Hàm nào sau đây được sử dụng để sắp xếp một vector trong STL? a) sort() b) order() c) arrange() d) organize() Đáp án: a
Container nào sau đây hỗ trợ truy cập ngẫu nhiên (random access)? a) vector b) list c) set d) map Đáp án: a
Hàm nào sau đây được sử dụng để tìm kiếm một phần tử trong một container STL? a) find() b) search() c) locate() d) detect() Đáp án: a
Phần 5: Nâng cao
Từ khóa friend trong C++ được sử dụng để làm gì? a) Cho phép một hàm hoặc lớp truy cập vào các thành viên private của lớp khác b) Định nghĩa một hàm mới c) Tạo một lớp con d) Tạo một đối tượng mới Đáp án: a
Đặc điểm nào sau đây không đúng với template trong C++? a) Hỗ trợ lập trình tổng quát b) Có thể áp dụng cho hàm và lớp c) Chỉ hoạt động với kiểu dữ liệu số nguyên d) Tăng khả năng tái sử dụng mã nguồn Đáp án: c
Từ khóa explicit trong C++ được sử dụng để làm gì? a) Ngăn chặn chuyển đổi kiểu ngầm định b) Định nghĩa một hàm inline c) Tạo một constructor mặc định d) Định nghĩa một destructor Đáp án: a
Lambda expression trong C++ được sử dụng để làm gì? a) Tạo hàm ẩn danh b) Định nghĩa một lớp mới c) Tạo một đối tượng d) Định nghĩa một con trỏ Đáp án: a
Từ khóa override trong C++ được sử dụng để làm gì? a) Ghi đè phương thức của lớp cha b) Tạo một lớp mới c) Định nghĩa một constructor d) Định nghĩa một destructor Đáp án: a
Phần 6: Xử lý ngoại lệ và đa luồng
Từ khóa nào được sử dụng để bắt đầu một khối xử lý ngoại lệ trong C++? a) try b) catch c) throw d) finally Đáp án: a
Từ khóa nào được sử dụng để ném ra một ngoại lệ trong C++? a) try b) catch c) throw d) finally Đáp án: c
Khối nào sau đây được sử dụng để bắt và xử lý ngoại lệ trong C++? a) try b) catch c) throw d) finally Đáp án: b
Ngoại lệ nào sau đây không phải là một loại ngoại lệ chuẩn trong C++? a) std::runtime_error b) std::logic_error c) std::syntax_error d) std::bad_alloc Đáp án: c
Hàm nào sau đây được sử dụng để tạo một luồng mới trong C++? a) std::thread b) std::mutex c) std::lock_guard d) std::async Đáp án: a
Từ khóa nào được sử dụng để đảm bảo rằng tài nguyên được giải phóng ngay cả khi xảy ra ngoại lệ? a) try b) catch c) finally d) RAII (Resource Acquisition Is Initialization) Đáp án: d
Lớp nào trong thư viện chuẩn C++ được sử dụng để đồng bộ hóa giữa các luồng? a) std::mutex b) std::thread c) std::future d) std::promise Đáp án: a
Hàm nào sau đây được sử dụng để chờ một luồng hoàn thành trong C++? a) join() b) detach() c) wait() d) sleep() Đáp án: a
Khi sử dụng std::async, giá trị trả về của hàm được lưu trữ trong đối tượng nào? a) std::future b) std::promise c) std::thread d) std::mutex Đáp án: a
Từ khóa nào được sử dụng để đánh dấu một hàm hoặc biến chỉ được thực thi bởi một luồng tại một thời điểm? a) volatile b) atomic c) synchronized d) mutex Đáp án: b
Phần 7: File I/O và Streams
Lớp nào trong thư viện chuẩn C++ được sử dụng để đọc dữ liệu từ file? a) std::ifstream b) std::ofstream c) std::fstream d) std::iostream Đáp án: a
Lớp nào trong thư viện chuẩn C++ được sử dụng để ghi dữ liệu vào file? a) std::ifstream b) std::ofstream c) std::fstream d) std::iostream Đáp án: b
Chế độ mở file nào sau đây cho phép đọc và ghi đồng thời? a) ios::in b) ios::out c) ios::app d) ios::in | ios::out Đáp án: d
Hàm nào sau đây được sử dụng để kiểm tra xem đã đến cuối file hay chưa? a) eof() b) fail() c) bad() d) good() Đáp án: a
Hàm nào sau đây được sử dụng để di chuyển con trỏ file đến vị trí cụ thể? a) seekg() b) tellg() c) read() d) write() Đáp án: a
Hàm nào sau đây được sử dụng để lấy vị trí hiện tại của con trỏ file? a) seekg() b) tellg() c) read() d) write() Đáp án: b
Để đóng một file trong C++, bạn sử dụng phương thức nào? a) close() b) shutdown() c) terminate() d) end() Đáp án: a
Hàm nào sau đây được sử dụng để đọc một ký tự từ file? a) get() b) getline() c) read() d) write() Đáp án: a
Hàm nào sau đây được sử dụng để ghi một dòng văn bản vào file? a) put() b) write() c) << d) >> Đáp án: c
Để mở một file ở chế độ ghi thêm (append), bạn sử dụng chế độ nào? a) ios::in b) ios::out c) ios::app d) ios::binary Đáp án: c