Tất cả bài tập

80 bài trắc nghiệm & tự luận thực tế, có đáp án chi tiết.

80 bài
📦 Cơ bảnDễTrắc nghiệm

Khai báo biến nguyên

Câu lệnh nào dưới đây khai báo một biến số nguyên tên là x và gán giá trị 10?

📦 Cơ bảnDễTrắc nghiệm

Kích thước kiểu dữ liệu

Trên đa số hệ thống 64-bit, `sizeof(int)` thường trả về giá trị nào?

📦 Cơ bảnDễTrắc nghiệm

Kết quả phép chia nguyên

Giá trị của biểu thức `7 / 2` trong C++ là gì khi cả hai toán hạng là int?

📦 Cơ bảnDễTrắc nghiệm

Toán tử modulo

Giá trị của `17 % 5` là?

📦 Cơ bảnTBTrắc nghiệm

Toán tử tăng hậu tố

Cho `int a = 5; int b = a++;`. Sau đó giá trị của a và b là?

📦 Cơ bảnDễTự luận

In Hello World

Viết chương trình C++ in ra dòng chữ "Hello, World!" trên màn hình.

📦 Cơ bảnDễTự luận

Tính tổng hai số

Viết chương trình nhập vào hai số nguyên a và b, in ra tổng của chúng.

🔀 Điều kiệnDễTrắc nghiệm

if-else cơ bản

Đoạn code sau in ra gì?

🔀 Điều kiệnTBTrắc nghiệm

Toán tử ba ngôi

Giá trị của biểu thức `(5 > 3) ? "yes" : "no"` là?

🔀 Điều kiệnDễTự luận

Số chẵn hay lẻ

Viết chương trình nhập một số nguyên và kiểm tra số đó là chẵn hay lẻ.

🔀 Điều kiệnTBTự luận

Giải phương trình bậc 2

Viết chương trình giải phương trình bậc 2: ax² + bx + c = 0 (a ≠ 0).

🔁 Vòng lặpDễTrắc nghiệm

Số lần lặp for

Vòng lặp `for (int i = 0; i < 5; i++)` chạy bao nhiêu lần?

🔁 Vòng lặpTBTrắc nghiệm

while vs do-while

Đoạn code này in ra gì?

🔁 Vòng lặpDễTự luận

Tính tổng từ 1 đến N

Nhập số nguyên dương N, tính tổng S = 1 + 2 + ... + N.

🔁 Vòng lặpTBTự luận

Kiểm tra số nguyên tố

Viết chương trình kiểm tra số n có phải là số nguyên tố hay không.

🔁 Vòng lặpTBTự luận

Dãy Fibonacci

In ra n số đầu tiên của dãy Fibonacci: 0, 1, 1, 2, 3, 5, 8, ...

🧩 HàmDễTrắc nghiệm

Hàm trả về void

Hàm khai báo `void foo()` có thể chứa câu lệnh nào sau đây?

🧩 HàmTBTrắc nghiệm

Truyền tham chiếu

Sau khi gọi `swap(x, y)` với `void swap(int& a, int& b) { int t=a; a=b; b=t; }` và x=3, y=7. Kết quả?

🧩 HàmTBTự luận

Hàm tính giai thừa (đệ quy)

Viết hàm đệ quy tính n! (n giai thừa).

🧩 HàmTBTự luận

UCLN hai số (Euclid)

Viết hàm tính ước chung lớn nhất (UCLN/GCD) của hai số nguyên dương a và b.

📊 MảngDễTrắc nghiệm

Chỉ số mảng

Mảng `int a[5];` có các chỉ số hợp lệ là?

📊 MảngTBTrắc nghiệm

Mảng truyền vào hàm

Khi truyền mảng vào hàm `void f(int a[])`, thực chất truyền cái gì?

📊 MảngTBTự luận

Tìm max trong mảng

Nhập n và mảng n số nguyên. In ra giá trị lớn nhất.

📊 MảngTBTự luận

Đảo ngược mảng

Đảo ngược thứ tự các phần tử của mảng a có n phần tử.

📊 MảngKhóTự luận

Sắp xếp nổi bọt (Bubble Sort)

Cài đặt thuật toán Bubble Sort cho mảng n số nguyên tăng dần.

🔤 ChuỗiDễTrắc nghiệm

Khai báo chuỗi

Khai báo nào dưới đây tạo một chuỗi C++ (std::string) chứa "hello"?

🔤 ChuỗiTBTrắc nghiệm

Độ dài chuỗi

Cách nào lấy độ dài chuỗi `string s = "abc"`?

🔤 ChuỗiTBTự luận

Đếm nguyên âm

Đếm số nguyên âm (a, e, i, o, u, không phân biệt hoa thường) trong chuỗi.

🔤 ChuỗiTBTự luận

Kiểm tra Palindrome

Kiểm tra một chuỗi có phải là chuỗi đối xứng (palindrome) hay không.

👉 Con trỏTBTrắc nghiệm

Toán tử dereference

Cho `int x = 5; int* p = &x;`. Giá trị của `*p` là?

👉 Con trỏKhóTự luận

Hoán đổi qua con trỏ

Viết hàm `void swap(int* a, int* b)` để hoán đổi giá trị hai biến qua con trỏ.

🏛️ OOPTBTrắc nghiệm

Constructor

Hàm dựng (constructor) được gọi khi nào?

🏛️ OOPTBTrắc nghiệm

Đóng gói (Encapsulation)

Từ khoá nào dùng để giới hạn truy cập, chỉ cho phép trong cùng class?

🏛️ OOPKhóTự luận

Class Hình chữ nhật

Tạo class `Rectangle` có 2 thuộc tính private `width`, `height`. Viết constructor, hàm `area()` và `perimeter()`.

🏛️ OOPKhóTự luận

Kế thừa & đa hình

Tạo class `Animal` có phương thức ảo `speak()`. Tạo class `Dog` kế thừa `Animal` và override `speak()` để in "Gau gau".

⚙️ STLTBTrắc nghiệm

Vector size

Sau `vector<int> v = {1,2,3}; v.push_back(4);` thì `v.size()` là?

⚙️ STLTBTự luận

Sắp xếp vector với STL

Dùng STL để sắp xếp một vector các số nguyên tăng dần và giảm dần.

🧠 Giải thuậtKhóTrắc nghiệm

Độ phức tạp Binary Search

Độ phức tạp thuật toán tìm kiếm nhị phân trên mảng đã sắp xếp n phần tử là?

🧠 Giải thuậtKhóTự luận

Tìm kiếm nhị phân

Cài đặt thuật toán tìm kiếm nhị phân trên mảng đã sắp xếp. Trả về chỉ số phần tử cần tìm, hoặc -1 nếu không có.

🧠 Giải thuậtTBTự luận

Đếm số chữ số

Đếm số chữ số của một số nguyên dương n (ví dụ n=12345 → 5).

📦 Cơ bảnDễTự luận

Tính tiền taxi

Giá mở cửa 12.000đ (1km đầu). Từ km thứ 2 đến km 30: 15.000đ/km. Từ km 31 trở đi: 12.000đ/km. Viết chương trình nhập số km, in tổng tiền.

📦 Cơ bảnDễTrắc nghiệm

Kiểu dữ liệu cho số tiền lớn

Cần lưu tổng doanh thu năm khoảng 15 tỷ VNĐ. Nên dùng kiểu nào?

📦 Cơ bảnDễTự luận

Máy tính chỉ số BMI

Nhập chiều cao (cm) và cân nặng (kg), tính BMI = kg / (m*m). In ra 2 chữ số thập phân.

📦 Cơ bảnTBTrắc nghiệm

Phép chia nguyên

Kết quả `int a = 7; double b = a / 2;` là bao nhiêu?

📦 Cơ bảnDễTự luận

Đổi giây sang h:m:s

Nhập tổng số giây S (ví dụ 3725), in ra dạng H:M:S (1:2:5).

🔀 Điều kiệnTBTự luận

Tính thuế thu nhập cá nhân bậc thang

Thu nhập chịu thuế X (triệu/tháng). Bậc: ≤5tr: 5%, 5-10: 10%, 10-18: 15%, >18: 20% (đơn giản hoá). Tính thuế.

🔀 Điều kiệnDễTrắc nghiệm

Fall-through trong switch

Trong switch, nếu quên `break` sau một case thì điều gì xảy ra?

🔀 Điều kiệnDễTự luận

Kiểm tra tam giác hợp lệ

Nhập 3 cạnh a, b, c. Kiểm tra có tạo thành tam giác không, và nếu có thì thuộc loại: đều, cân, vuông, thường.

🔀 Điều kiệnTBTự luận

Xếp loại học lực cuối kỳ

Nhập điểm 3 môn Toán, Văn, Anh. Tính TB và xếp loại: Giỏi (>=8 và không môn <6.5), Khá (>=6.5 và không <5), TB (>=5 và không <3.5), Yếu.

🔁 Vòng lặpTBTự luận

Tính lãi kép ngân hàng

Gửi P đồng, lãi r%/năm, kỳ hạn n năm. In số dư mỗi năm và tổng cuối kỳ.

🔁 Vòng lặpDễTrắc nghiệm

Vòng lặp vô hạn

Đoạn `for (int i = 0; i < 10; ) cout << i;` có vấn đề gì?

🔁 Vòng lặpTBTự luận

Đếm số nguyên tố ≤ N

Nhập N, in tất cả số nguyên tố từ 2 đến N và tổng số lượng.

🔁 Vòng lặpKhóTự luận

In hình tam giác cân bằng dấu *

Nhập N, in tam giác cân N dòng (dòng i có i dấu * căn giữa).

🔁 Vòng lặpTBTự luận

Đảo ngược số

Nhập số nguyên N, in số đảo ngược (ví dụ 12345 → 54321).

🧩 HàmDễTự luận

Hàm tính khoảng cách 2 điểm

Viết hàm double distance(double x1,y1,x2,y2) dùng công thức Euclid.

🧩 HàmTBTrắc nghiệm

Truyền tham chiếu

Với `void swap(int& a, int& b)`, sau khi gọi swap(x, y) thì?

🧩 HàmKhóTự luận

Đệ quy tính giai thừa

Viết hàm đệ quy tính n! (0! = 1).

🧩 HàmTBTự luận

Hàm kiểm tra ngày hợp lệ

Viết bool isValidDate(int d, int m, int y). Kiểm tra tháng có 30/31 ngày, tháng 2 có xét năm nhuận.

📊 MảngDễTự luận

Điểm cao nhất lớp

Nhập N điểm, in điểm cao nhất và vị trí của học sinh đó.

📊 MảngTBTrắc nghiệm

Vượt biên mảng

`int a[5]; a[10] = 3;` — điều gì xảy ra?

📊 MảngTBTự luận

Xoá phần tử trùng lặp

Cho vector int, xoá các phần tử trùng lặp, giữ thứ tự xuất hiện đầu tiên.

📊 MảngKhóTự luận

Xoay ma trận 90°

Cho ma trận vuông NxN, xoay 90° theo chiều kim đồng hồ (in-place hoặc dùng ma trận phụ).

🔤 ChuỗiDễTự luận

Đếm nguyên âm

Nhập chuỗi, đếm số nguyên âm (a, e, i, o, u — cả hoa và thường).

🔤 ChuỗiTBTự luận

Kiểm tra palindrome

Nhập chuỗi, kiểm tra có phải palindrome không (đọc xuôi ngược như nhau). Bỏ qua khoảng trắng và hoa/thường.

🔤 ChuỗiTBTrắc nghiệm

getline sau cin >>

`int n; cin >> n; string s; getline(cin, s);` — s nhận được gì khi nhập `5⏎Nguyen Van A⏎`?

🔤 ChuỗiKhóTự luận

Tách chuỗi CSV

Nhập chuỗi dạng "Minh,20,Hanoi,IT". In từng trường trên một dòng.

👉 Con trỏDễTrắc nghiệm

Con trỏ null

Cách nào đúng để khai báo con trỏ int không trỏ đến đâu?

👉 Con trỏTBTự luận

Rò rỉ bộ nhớ (memory leak)

Đoạn code sau bị rò rỉ ở đâu? Sửa lại. `void f(){ int* p = new int(5); if (p == nullptr) return; }`

👉 Con trỏKhóTự luận

Đảo ngược danh sách liên kết

Cho danh sách liên kết đơn, viết hàm đảo ngược thứ tự (không cấp phát nút mới).

🏛️ OOPTBTự luận

Class Quản lý sinh viên

Tạo class SinhVien có: MSSV, tên, GPA. Constructor, getter/setter, method inThongTin(). Tạo mảng 3 sinh viên và in ra người có GPA cao nhất.

🏛️ OOPKhóTự luận

Hệ thống nhân viên với kế thừa

Class NhanVien (lương cứng). Kế thừa: NVBanHang (lương + %doanh_số), NVSanXuat (lương + phụ_cấp*giờ_làm). Method ảo tinhLuong(). In tổng lương công ty.

🏛️ OOPTBTrắc nghiệm

Constructor mặc định

Khi nào compiler tự sinh constructor mặc định?

⚙️ STLTBTự luận

Danh bạ điện thoại

Dùng map<string, string> lưu (Tên → SĐT). Cho phép thêm, tra cứu, xoá, in danh sách theo thứ tự tên.

⚙️ STLTBTự luận

Sắp xếp học sinh theo GPA giảm dần

Cho vector<pair<string,double>> (tên, GPA). Sắp xếp GPA giảm dần; nếu bằng thì tên tăng dần.

⚙️ STLKhóTự luận

Thứ tự BFS trên đồ thị

Cho đồ thị vô hướng (danh sách kề). In thứ tự duyệt BFS từ đỉnh 0.

🧠 Giải thuậtTBTự luận

Ước chung lớn nhất (GCD)

Viết hàm gcd(a, b) dùng thuật toán Euclid.

🧠 Giải thuậtKhóTự luận

Bài toán trả tiền lẻ ít tờ nhất

Cho các mệnh giá {500k, 200k, 100k, 50k, 20k, 10k, 5k, 2k, 1k} và số tiền X. Tính số tờ ít nhất để trả đủ X.

🧠 Giải thuậtTBTrắc nghiệm

Độ phức tạp bubble sort

Độ phức tạp trường hợp xấu nhất của Bubble Sort?

🧠 Giải thuậtKhóTự luận

Dãy con tăng dài nhất (LIS)

Cho mảng n số, tìm độ dài dãy con tăng dài nhất (không cần liên tiếp).

🧠 Giải thuậtTBTự luận

Kiểm tra số nguyên tố nhanh

Viết hàm bool isPrime(long long n) chạy nhanh cho n đến 10^12.