Dưới đây là 20 bài tập C++ cơ bản + lời giải chi tiết để bạn ôn tập (rất phù hợp cho nền tảng kỹ sư tự động hóa, PLC → C/C++).
💻 20 BÀI TẬP C++ CƠ BẢN (CÓ LỜI GIẢI)
🔹 1. In “Hello World”
#include <iostream>
using namespace std;int main() {
cout << "Hello World";
return 0;
}
🔹 2. Nhập 2 số, in tổng
int a, b;
cin >> a >> b;
cout << "Tong = " << a + b;
🔹 3. Tính diện tích hình chữ nhật
float a, b;
cin >> a >> b;
cout << "Dien tich = " << a * b;
🔹 4. Kiểm tra số chẵn/lẻ
int n;
cin >> n;
if (n % 2 == 0)
cout << "Chan";
else
cout << "Le";
🔹 5. Tìm số lớn nhất trong 3 số
int a, b, c;
cin >> a >> b >> c;
int max = a;
if (b > max) max = b;
if (c > max) max = c;
cout << max;
🔹 6. Tính giai thừa
int n;
cin >> n;
long long gt = 1;
for (int i = 1; i <= n; i++)
gt *= i;
cout << gt;
🔹 7. In bảng cửu chương
int n;
cin >> n;
for (int i = 1; i <= 10; i++)
cout << n << " x " << i << " = " << n*i << endl;
🔹 8. Kiểm tra số nguyên tố
int n;
cin >> n;
bool isPrime = true;
if (n < 2) isPrime = false;
for (int i = 2; i*i <= n; i++)
if (n % i == 0) isPrime = false;if (isPrime) cout << "Prime";
else cout << "Not Prime";
🔹 9. Tính tổng từ 1 đến n
int n, sum = 0;
cin >> n;
for (int i = 1; i <= n; i++)
sum += i;
cout << sum;
🔹 10. Đảo ngược số
int n, rev = 0;
cin >> n;
while (n != 0) {
rev = rev * 10 + n % 10;
n /= 10;
}
cout << rev;
🔹 11. Kiểm tra số đối xứng
int n, temp, rev = 0;
cin >> n;
temp = n;
while (n != 0) {
rev = rev * 10 + n % 10;
n /= 10;
}
if (temp == rev) cout << "Palindrome";
else cout << "Not";
🔹 12. Nhập mảng và in ra
int n;
cin >> n;
int a[100];
for (int i = 0; i < n; i++)
cin >> a[i];for (int i = 0; i < n; i++)
cout << a[i] << " ";
🔹 13. Tìm phần tử lớn nhất trong mảng
int max = a[0];
for (int i = 1; i < n; i++)
if (a[i] > max) max = a[i];
cout << max;
🔹 14. Đếm số chẵn trong mảng
int count = 0;
for (int i = 0; i < n; i++)
if (a[i] % 2 == 0) count++;
cout << count;
🔹 15. Sắp xếp mảng tăng dần (bubble sort)
for (int i = 0; i < n-1; i++)
for (int j = 0; j < n-i-1; j++)
if (a[j] > a[j+1])
swap(a[j], a[j+1]);
🔹 16. Hàm tính tổng
int sum(int a, int b) {
return a + b;
}
🔹 17. Truyền mảng vào hàm
void printArray(int a[], int n) {
for (int i = 0; i < n; i++)
cout << a[i] << " ";
}
🔹 18. Con trỏ cơ bản
int a = 10;
int *p = &a;
cout << *p; // in 10
🔹 19. Struct cơ bản
struct SinhVien {
string ten;
int tuoi;
};
🔹 20. Nhập và in struct
SinhVien sv;
cin >> sv.ten >> sv.tuoi;
cout << sv.ten << " " << sv.tuoi;
🚀 Cách học hiệu quả (rất quan trọng)
🔹 Level 1
- Gõ lại code
- Hiểu từng dòng
🔹 Level 2
- Tự sửa:
- đổi input
- thêm điều kiện
🔹 Level 3
- Tự viết lại không nhìn
💡 Gợi ý nâng cấp (phù hợp automation)
Sau bộ này, bạn nên học tiếp:
- File (ghi log)
- Class (OOP)
- Linked list
- Giao tiếp serial (rất hữu ích cho PLC/IoT)
