TUYÊN B BN QUYN
Tài liu này thuc loi sách giáo trình nên các ngun thông tin th
đưc phép dùng nguyên bn hoc trích dùng cho các mục đích về đào tạo và
tham kho.
Mi mục đích khác mang tính lch lc hoc s dng vi mục đích kinh
doanh thiếu lành mnh s b nghiêm cm.
LỜI NÓI ĐẦU
Trong thế giới công nghệ phát triển không ngừng, lập trình không chỉ một kỹ năng
nghề nghiệp còn một duy logic mạnh mẽ, giúp bạn giải quyết vấn đề hiệu quả hơn
trong mọi lĩnh vực của cuộc sống. Với phƣơng châm "Học đi đôi với hành", giáo trình này sẽ
giúp bạn tiếp cận lập trình một cách tự nhiên và bài bản nhất.
Mc tiêu ca giáo trình
- y dựng nền tảng vững chắc: Giúp ngƣời học nắm vững các khái niệm cốt lõi nhƣ
biến, kiểu dữ liệu, cấu trúc điều khiển và các cấu trúc dữ liệu cơ bản.
- Hình thành duy logic: Rèn luyện khả năng phân tích, phân tách một vấn đề lớn thành các
phần nhỏ hơn và tìm ra giải pháp thông qua việc viết code.
- Làm quen với các ngôn ngữ lập trình: đƣợc viết với một ngôn ngữ cụ thể (ví dụ: C,
Python, Java), giáo trình này tập trung vào các nguyên lý chung, giúp bạn dễ dàng chuyển đổi
sang các ngôn ngữ khác trong tƣơng lai.
Đối tƣợng độc gi
Giáo trình này phù hợp với:
- Sinh viên các ngành kỹ thuật, công nghệ thông tin.
- Học sinh phổ thông, ngƣời đi làm muốn làm quen với lập trình.
- Những ngƣời tự học và muốn có một tài liệu bài bản để bắt đầu.
Giáo trình đƣợc cấu tạo bởi chƣơng, gồm:
Chƣơng 1. Tổng quan về ngôn ngữ C
Chƣơng 2. Các thành phần cơ bản
Chƣơng 3. Các lệnh có cấu trúc
Chƣơng 4. Hàm
Chƣơng 5. Mảng
Chƣơng 6. Con trỏ
Chƣơng 7. Chuỗi ký tự
Với cấu trúc ràng, từ thuyết đến dụ và bài tập thực hành, giáo trình Lập trình bản
sẽ là ngƣời bạn đồng hành tin cậy, giúp bạn tự tin khám phá và làm chủ thế giới lập trình.
T/M nhómTác gi
Ch biên
Lê Phú Tho
Ph lc
TUYÊN B BN QUYN ............................................................................................. 1
LI NÓI ĐU ................................................................................................................. 2
Ph lc ............................................................................................................................. 3
CHƢƠNG 1. TỔNG QUAN VỀ NGÔN NGỮ C ........................................................ 10
1. Giới thiệu về ngôn ngữ C ..................................................................................... 10
1.1. Lch s phát trin ........................................................................................... 10
1.1.1 Lch s ca ngôn ng lp trình C bt đu t đầu những năm 1970 tại Phòng
thí nghim Bell (Bell Labs) ca AT&T M. ..................................................... 10
1.1.2. Các giai đoạn chuẩn hóa và phát triển chính: ...................................... 10
1.1.3. Ảnh hƣởng và vị trí của C trong thế giới lập trình ............................... 11
1.2. S cn thiết ................................................................................................... 12
1.2.1. Nền tảng vững chắc cho kiến thức khoa học máy tính ......................... 12
1.2.2. Ngôn ngữ "mẹ" và nền tảng cho các ngôn ngữ khác ........................... 12
1.2.3. Ứng dụng rộng rãi trong các lĩnh vực cốt lõi ........................................ 12
1.2.4. Ƣu điểm về hiệu suất và tính linh hoạt .................................................. 13
2. Các thao tác cơ bn .............................................................................................. 13
2.1. Khởi động ..................................................................................................... 13
2.2. Thoát khi ..................................................................................................... 14
2.2.1. Thoát Chƣơng Trình Bạn Đang Chạy (Console Program) ................. 14
2.2.2. Thoát Khỏi Môi Trƣờng Dev-C++ IDE: Cách để đóng toàn bộ ứng
dụng Dev-C++: ..................................................................................................... 14
2.3. To mi, ghi một chƣơng trình C ................................................................. 14
2.3.1. To mt tp ngun (Source File) mi ......................................................... 14
2.3.2. Lƣu tệp ngun: ............................................................................................ 14
3. S dng tr giúp ................................................................................................... 15
3.1. S dng menu tr giúp (help) ....................................................................... 15
3.2. S dng các chức năng của tr giúp ............................................................. 15
3.2.1. Truy cập Nội dung Trợ giúp (Help Contents): ...................................... 15
Đây là chức năng quan trọng nhất để tìm hiểu về cách sử dụng Dev-C++. ......... 15
3.2.2. Sử dụng Chức năng "About Dev-C++" ................................................. 15
3.2.3. Tìm kiếm trợ giúp trực tuyến (Online Help/Forums) ........................... 16
Câu hi ôn tp: .......................................................................................................... 16
CHƢƠNG 2. CÁC THÀNH PHẦN CƠ BẢN ............................................................. 17
1. T khoá và ký hiu. ............................................................................................... 17
1.1. T khoá ......................................................................................................... 17
1.2. Ký hiu ........................................................................................................... 18
2. Các kiu d liệu sơ cp ......................................................................................... 20
2.1. Kiu s nguyên: ............................................................................................ 20
2.2. Du phy động .............................................................................................. 23
2.3. Kiu ký t ..................................................................................................... 25
2.3.1. Kiu ký t (character type) ......................................................................... 25
2.3.2. Cách Khai Báo và Khởi Tạo ................................................................... 25
2.3.3. Bảng Mã ASCII và Ý nghĩa của char .................................................... 26
2.3.4. Các Ký Tự Thoát (Escape Sequences) ................................................... 26
2.3.5. Kiểu wchar_t (Wide Character) ............................................................. 27
3. Biến, hng, biu thc............................................................................................ 27
3.1. Phân loi, khai báo và s dng biến. ............................................................ 27
3.1.1. biến (variables): ......................................................................................... 27
3.1.2. Phân Loại Biến theo Kiểu Dữ liệu .......................................................... 27
3.1.3. Khai Báo Biến ........................................................................................... 28
3.1.4. Khởi Tạo Biến ........................................................................................... 29
3.1.5. Sử dụng Biến: ........................................................................................... 29
3.2. Hng .............................................................................................................. 31
3.2.1. Sử dụng #define (Chỉ thị tiền xử lý) ........................................................ 31
3.2.2. Sử dụng từ khóa const ............................................................................. 32
3.2.3. Sử dụng enum (Enumeration) ................................................................ 32
3.3. Biu thc ....................................................................................................... 34
3.3.1. Các Thành Phần của Biểu Thức: Một biểu thức thƣờng đƣợc tạo thành
từ các thành phần sau: ........................................................................................... 34
3.3.2. Các Loại Biểu Thức Phổ Biến: Dựa vào loại toán tử chính, chúng ta có
thể phân loại biểu thức: ......................................................................................... 34
4. Cu trúc một chƣơng trình ................................................................................... 36
4.1. Tin x lý và trình biên dch ......................................................................... 36
4.1.1. Tiền xử lý (Preprocessing) ....................................................................... 36
4.1.2. Biên dịch (Compilation) .......................................................................... 37
4.2. Cu trúc một chƣơng trình C ........................................................................ 39
4.3. Các thƣ viện thông dng ............................................................................... 42
4.3.2. Thƣ Viện Đầu Vào/Đầu Ra Chuẩn (Standard Input/Output Library)
............................................................................................................................... 42
4.3.3. Thƣ Viện Chức Năng Chung (Standard Library) ................................ 43
4.3.4. Thƣ Viện Xử Lý Chuỗi (String Handling Library) .............................. 43
4.3.5. Thƣ Viện Toán Học (Mathematics Library) ......................................... 44
4.3.6. Thƣ Viện Thời Gian và Ngày Tháng (Date and Time Utilities) .......... 45
4.3.7. Các Thƣ Viện Quan Trọng Khác ........................................................... 45
5. Câu lnh ................................................................................................................. 45
5.1. Khái nim ....................................................................................................... 45
5.1.2. Các Loại Câu Lệnh Phổ Biến Trong C ................................................... 46
5.2. Lnh gán và lnh gp ..................................................................................... 48
5.2.1. Câu Lệnh Gán (Assignment Statement): ................................................ 48
5.2.2. Lệnh Gộp (Compound Statement / Block Statement) .......................... 50
5.3. Nhp và xut d liu ...................................................................................... 51
5.3.1. Xut D Liệu (Output): Để xut d liu ra màn hình console, hàm ph
biến nht là printf(). .............................................................................................. 51
5.3.2. Nhp D Liệu (Input): Để nhp d liu t bàn phím console, hàm ph
biến nht là scanf(). ............................................................................................... 51
5.3.4. Các Hàm Nhp/Xut Ký T Chui Khác ............................................. 53
6. Thc thi chƣơng trình ........................................................................................... 53
Câu hi ôn tp: .......................................................................................................... 56
CHƢƠNG 3. CÁC LNH CÓ CU TRÚC ................................................................ 57
Gii thiu .............................................................................................................. 57
Mc đích ............................................................................................................... 57
1. Cu trúc r nhánh ................................................................................................. 57
1.1. Dạng đầy đủ: ................................................................................................. 57
1.2. Dạng không đy đủ ....................................................................................... 59
2. Cu trúc la chn .................................................................................................. 60
2.1 Khái nim ........................................................................................................ 60
2.2 Cú pháp ........................................................................................................... 61
3. Cu trúc lp ........................................................................................................... 63
3.1. Cu trúc lp For ............................................................................................. 63
3.2. Cu trúc lp while, do while .......................................................................... 65
4. Các lệnh đặc bit ................................................................................................... 67
4.1. Lnh Break ..................................................................................................... 67
4.2. Lnh Continue ................................................................................................ 70
Câu hi ôn tp: ........................................................................................................ 72
CHƢƠNG 4: M ....................................................................................................... 73
Giới thiệu ............................................................................................................. 73
Mục đích .............................................................................................................. 73
1. Khái nim hàm ..................................................................................................... 73
1.1. Khái nim và phân loi .................................................................................. 73
1.2. Quy tc hot đng ca hàm ............................................................................ 76
1.2.1. Giai Đoạn Khai Báo và Định Nghĩa Hàm: Trƣớc khi một hàm có thể
đƣợc sử dụng, nó cần đƣợc khai báo và định nghĩa.............................................. 76
2. Xây dng hàm ....................................................................................................... 79
2.1. Định nghĩa hàm .............................................................................................. 79
2.1.1. Cu Trúc Ca Mt Định Nghĩa Hàm: Mt định nghĩa hàm bao gm hai
phn chính: ............................................................................................................ 79
2.1.2. Các Thành Phn C Th. ............................................................................ 80
2.1.3. Ví D V Định Nghĩa Hàm ........................................................................ 81
2.1.4. V Trí Của Định Nghĩa Hàm: ..................................................................... 81
2.2. S dng hàm .................................................................................................. 82
2.2.1. Khái Nim Gi Hàm .................................................................................. 82
2.2.2. Các Trƣờng Hp S Dng Hàm ................................................................ 83
3. Các tham s ca hàm ............................................................................................ 86
3.1. Phân bit các loi tham s .............................................................................. 86
3.1.1. Tham S Hình Thức (Formal Parameters) và Đối S Thc Tế (Actual
Arguments): Để hiểu rõ hơn, hãy xem xét một ví d: ......................................... 87
3.1.2. Các Cách Truyn Tham S (Passing Mechanisms) .................................... 87
3.2. Cách truyn tham s....................................................................................... 90
3.2.1. Truyền Tham Số theo Giá Trị (Call by Value) ...................................... 90
3.1.2. Truyền Tham Số theo Tham Chiếu (Call by Reference) ..................... 91
3.1.3. Truyền Mảng vào Hàm (Một Trƣờng Hợp Đặc Biệt của Truyền Theo
Tham Chiếu) ........................................................................................................ 93
4. Hàm đệ quy .......................................................................................................... 94
4.1. Khái niệm đệ quy ........................................................................................... 94
4.1.1. Khái Niệm Cơ Bản Về Đệ Quy ............................................................... 94
4.1.2. Minh Họa Hoạt Động Của Đệ Quy ........................................................ 95
4.1.3. Ƣu và Nhƣợc Điểm Của Đệ Quy ............................................................ 96
4.1.4. Khi Nào Nên Dùng Đệ Quy? ................................................................... 96
4.2. Các bài toán dùng đệ quy ............................................................................... 96
4.2.1. Các Bài Toán Cơ Bản: Nhng bài toán này giúp bn làm quen vi cu
trúc và tƣ duy đ quy. ........................................................................................... 96
4.2.2. Các Bài Toán Nâng Cao Hơn .................................................................... 98
4.2.3. Các Bài Toán Quay Lui (Backtracking) .................................................. 101