
BỘ NỘI VỤ
TRƯỜNG ĐẠI HỌC LAO ĐỘNG - XÃ HỘI
KHOA CÔNG NGHỆ THÔNG TIN
------
BÀI GIẢNG
CƠ SỞ LẬP TRÌNH
Nhóm biên soạn:
ThS. Nguyễn Thanh Huyền
ThS. Nguyễn Sao Mai
ThS. Nguyễn Nam Thắng
HÀ NỘI, 2026

LỜI NÓI ĐẦU
Trong bối cảnh khoa học – công nghệ phát triển mạnh mẽ, kỹ năng lập trình đã trở
thành nền tảng không thể thiếu đối với sinh viên các ngành Công nghệ thông tin, Kỹ
thuật và các lĩnh vực liên quan. Ngôn ngữ lập trình C, với tính hiệu quả, linh hoạt và
khả năng kiểm soát bộ nhớ cao, vẫn giữ vai trò quan trọng trong giảng dạy và phát triển
phần mềm, đặc biệt là ở các hệ thống nhúng, hệ điều hành và lập trình hiệu năng cao.
Bài giảng CƠ SỞ LẬP TRÌNH được biên soạn nhằm cung cấp cho sinh viên khoa
Công nghệ thông tin những kiến thức cơ bản và hệ thống về cấu trúc ngôn ngữ, kỹ năng
tư duy thuật toán và năng lực xây dựng chương trình. Nội dung giáo trình bám sát
chương trình đào tạo, được trình bày theo trình tự từ dễ đến khó, giúp người học từng
bước tiếp cận và vận dụng kiến thức vào thực hành.
Cấu trúc giáo trình gồm ba phần chính:
Phần cơ sở lý thuyết: Trình bày các khái niệm nền tảng về thuật toán, biến, kiểu
dữ liệu, toán tử, cấu trúc điều khiển và hàm, cấu trúc mảng, xâu ký tự, bản ghi, cấu trúc
động…
Phần thực hành: Tập trung vào các ví dụ minh họa, bài tập lập trình ứng dụng,
giúp sinh viên củng cố và rèn luyện kỹ năng.
Phần mở rộng: Giới thiệu một số kỹ thuật lập trình nâng cao, hướng tới khả năng
tự học và phát triển.
Trong quá trình biên soạn, nhóm tác giả đã tham khảo nhiều tài liệu giảng dạy uy
tín, đồng thời cập nhật các phương pháp tiếp cận hiện đại, phù hợp với đối tượng người
học. Tuy nhiên, mặc dù đã có nhiều nỗ lực, giáo trình khó tránh khỏi những thiếu sót.
Chúng tôi rất mong nhận được các ý kiến góp ý của đồng nghiệp và sinh viên để tài liệu
ngày càng hoàn thiện hơn.
Ban biên soạn rất mong sự đóng góp ý kiến của bạn đọc để cuốn sách được hoàn
thiện hơn trong những lần tái bản lần sau. Mọi ý kiến đóng góp xin gửi về địa chỉ
Email:bomoncntt1@gmail.com.
Chúng tôi xin chân thành cảm ơn!
Hà Nội, tháng 03 năm 2026
Nhóm tác giả

Mục luc
LỜI NÓI ĐẦU ....................................................................................................................................... 2
Chương 1: Thuật toán và lưu đồ thuật toán ...................................................................................... 7
1.1. Lập trình máy tính ..................................................................................................................... 7
1.1.1. Khái niệm .............................................................................................................................. 7
1.1.2. Các lĩnh vực ứng dụng ......................................................................................................... 7
1.2. Ngôn ngữ lập trình ..................................................................................................................... 8
1.2.1. Khái niệm .............................................................................................................................. 8
1.2.2. Vai trò và lợi ích của việc nghiên cứu ngôn ngữ lập trình ................................................. 8
1.2.3. Tiêu chuẩn đánh giá ngôn ngữ lập trình ............................................................................ 8
1.2.4. Phân loại ............................................................................................................................... 9
Phân loại theo mô hình lập trình ..................................................................................................... 9
Phân loại theo thế hệ (Generation) .................................................................................................. 9
1.2.5. Môi trường lập trình ......................................................................................................... 10
1.3. Giới thiệu một số ngôn ngữ lập trình thông dụng ................................................................. 11
1.3 Khái niệm thuật toán ................................................................................................................ 12
1.4. Các đặc trưng của thuật toán .................................................................................................. 13
1.5 Các công cụ biểu diễn thuật toán ............................................................................................. 13
1.5.1 Ngôn ngữ tự nhiên .............................................................................................................. 13
1.5.2 Mã giả .................................................................................................................................. 15
1.5.3 Lưu đồ .................................................................................................................................. 17
Chương 2: Các thành phần cơ bản của ngôn ngữ lập trình C ........................................................ 25
2.1. Lịch sử ngôn ngữ lập trình C .................................................................................................. 25
2.2. Các yếu tố cơ bản (bộ ký tự, từ khóa, tên gọi, ghi chú) ......................................................... 25
2.3 Môi trường làm việc .................................................................................................................. 28
2.3.1. Cài đặt và sử dụng Dev-C++ .............................................................................................. 28
2.3.2.Tạo chương trình mới hoặc dự án mới .............................................................................. 28
2.4. Cấu trúc chung của một chương trình C .............................................................................. 31
2.5. Các kiểu dữ liệu cơ bản ............................................................................................................ 34
2.5.1. Kiểu số nguyên ................................................................................................................... 34
2.5.2. Kiểu số thực ........................................................................................................................ 36
2.5.3. Kiểu kí tự ............................................................................................................................ 38
2.5.4. Kiểu Boolean ...................................................................................................................... 40
2.5.4. Kiểu enum ........................................................................................................................... 41
2.5.5.1. Công dụng ........................................................................................................................ 42

2.5.5.1. Cách viết ........................................................................................................................... 42
2.6. Chuyển đổi kiểu giá trị............................................................................................................. 43
2.6.1. Chuyển đổi kiểu trong biểu thức ....................................................................................... 43
2.6.2. Các phép chuyển đổi kiểu số .............................................................................................. 44
2.6.2. Sự chuyển đổi cho kiểu kí tự char. .................................................................................... 44
2.6.3. Ép kiểu ................................................................................................................................ 45
2.7. Biến, hằng .................................................................................................................................. 45
2.7.1. Biến ..................................................................................................................................... 45
2.7.2. Hằng(Constant) .................................................................................................................. 47
2.8. Các phép toán số học ................................................................................................................ 50
2.8.1. Biểu thức số học ................................................................................................................. 50
2.8.2. Các hàm số học chuẩn (dùng cho số nguyên và số thực) ................................................. 51
2.9. Các phép toán logic .................................................................................................................. 52
2.10. Các phép toán về biểu thức và lệnh gán ............................................................................... 53
2.10.1. Qui tắc thực hiện biểu thức hay thứ tự ưu tiên các phép toán ....................................... 53
2.10.2. Câu lệnh (Instruction, Statement) ................................................................................... 53
2.11. Hàm nhập xuất dữ liệu .......................................................................................................... 59
2.11.1. Hàm nhập dữ liệu ............................................................................................................. 59
2.11.2. Hàm xuất dữ liệu .............................................................................................................. 67
2.11.3. Trình bày màn hình ......................................................................................................... 77
Câu hỏi và bài tập chương 2 .................................................................................................................. 82
Chương 3: Các cấu trúc điều khiển ................................................................................................... 88
3.1. Cấu trúc rẽ nhánh if ................................................................................................................. 89
3.1.1. Cấu trúc : if, if...else .......................................................................................................... 89
3.1.2. Cấu trúc : else if ................................................................................................................. 96
3.2. Cấu trúc lựa chọn ..................................................................................................................... 97
3.2.1. switch case ......................................................................................................................... 97
3.2.2. Toán tử goto và nhãn ....................................................................................................... 104
3.3. Cấu trúc lặp ............................................................................................................................ 106
3.3.1. Cấu trúc lặp với số vòng lặp xác định for ....................................................................... 106
3.3.2. Cấu trúc lặp với số vòng lặp không xác định while ........................................................ 111
3.3.3. Cấu trúc lặp với số vòng lặp không xác định do ..while ................................................ 113
3.4. Lệnh break, continue ............................................................................................................. 116
3.4.1.Lệnh break ......................................................................................................................... 116
3.4.2.Lệnh continue .................................................................................................................... 116
Câu hỏi và bài tập chương 3 ................................................................................................................ 118
Chương 4: Lập trình đơn thể ........................................................................................................... 137

4.1. Các khái niệm ......................................................................................................................... 137
4.2. Phương pháp xây dựng hàm ................................................................................................. 138
4.2.1.Quy tắc xây dựng một hàm ............................................................................................. 140
4.3. Khai báo hàm, gọi hàm .......................................................................................................... 141
4.4. Tham số là tham trị, tham biến ............................................................................................. 144
4.4. Phạm vi của biến .................................................................................................................... 147
4.4.1.Biến toàn cục ..................................................................................................................... 147
4.4.1.Biến địa phương ................................................................................................................ 148
4.5. Tính đệ qui của hàm............................................................................................................... 151
4.6. Dùng hàm (function) hay macro? ......................................................................................... 155
4.7. Thư viện hàm chuẩn .............................................................................................................. 156
4.7. Một số hàm thông dụng ......................................................................................................... 156
Câu hỏi và bài tập chương 4 ................................................................................................................ 157
Chương 5: Kiểu dữ liệu mảng, chuỗi ký tự ..................................................................................... 165
5.1. Mảng ....................................................................................................................................... 165
5.1.1. Định nghĩa ........................................................................................................................ 165
5.1.2. Khai báo và truy xuất mảng ............................................................................................. 165
5.1.3.Khởi tạo giá trị mảng ........................................................................................................ 169
5.1.4. Khai báo xâu kí tự ............................................................................................................ 169
5.1.5. Sắp xếp mảng.................................................................................................................... 171
5.1.6. Mảng nhiều chiều ............................................................................................................ 174
5.2. Chuỗi ký tự ............................................................................................................................ 177
5.2.1. Khái niệm .......................................................................................................................... 177
5.2.2. Khai báo và khởi tạo chuỗi .............................................................................................. 178
5.2.3. Một số hàm xử lý chuỗi. ................................................................................................... 178
5.3. Kiểu dữ liệu cấu trúc (structure) ......................................................................................... 192
5.3.1. Khái niệm và định nghĩa structure .................................................................................. 192
Câu hỏi và bài tập chương 5 ................................................................................................................ 200
PHẦN 1: CÂU HỎI TRẮC NGHIỆM ............................................................................................ 200
PHẦN II: BÀI TẬP THỰC HÀNH ............................................................................................. 204
Chương 6: Cấu trúc động của dữ liệu ............................................................................................. 218
6.1 Con trỏ và địa chỉ .................................................................................................................... 218
6.1.1. Biến con trỏ ...................................................................................................................... 219
6.1.2. Khai báo biến con trỏ ....................................................................................................... 219
6.1.3. Lấy địa chỉ của một biến .................................................................................................. 220
6.1.4. Cách truy xuất .................................................................................................................. 220
6.2 .Các phép toán trên con trỏ ................................................................................................ 220

