B GIAO THÔNG VN TI
TRƢỜNG ĐẠI HC CÔNG NGH GIAO THÔNG VN TI
LÊ CHÍ LUN (Ch biên)
LÊ TRUNG KIÊN - LÊ TH CHI
PHM TH THUN - NGUYN TH KIM HU
GIÁO TRÌNH
NGÔN NG LP TRÌNH C
NHÀ XUT BN KHOA HC T NHIÊN VÀ CÔNG NGH
HÀ NI - 2020
3
MC LC
DANH MC BNG ................................................................................ 12
DANH MC HÌNH ................................................................................ 13
DANH MC CH VIT TT .............................................................. 14
LỜI NÓI ĐẦU ......................................................................................... 15
Chƣơng 1. CÁC KHÁI NIỆM CƠ BẢN CA NGÔN NG C .......... 21
1.1. GII THIU NGÔN NG C ............................................................ 21
1.1.1. Lch s ngôn ng lp trình C .......................................................... 21
1.1.2. Các tính cht ca ngôn ng C. ........................................................ 22
1.2. TP KÝ T HP L TRONG C ..................................................... 23
1.2.1. Tp ký t ......................................................................................... 23
1.2.2. T khóa ........................................................................................... 24
1.2.3. Định danh ........................................................................................ 24
1.3. MT S QUY ƢỚC KHI VIẾT CHƢƠNG TRÌNH ....................... 25
1.3.1. Chƣơng trình đầu tiên ..................................................................... 25
1.3.2. Cấu trúc chƣơng trình viết trong C ................................................. 26
1.3.2.1. Phn tài liu ................................................................................. 28
1.3.2.2. Phn liên kết (Bao hàm tp) ........................................................ 29
1.3.2.3. Phần định nghĩa marco................................................................ 30
1.3.2.4. Khai báo nguyên mu .................................................................. 31
1.3.2.5. Phần định nghĩa các cấu trúc ...................................................... 31
1.3.2.6. Định nghĩa hàm ........................................................................... 32
1.3.2.7. Hàm main() .................................................................................. 32
1.3.2.8. Câu lnh ....................................................................................... 33
1.3.2.9. Chú thích ...................................................................................... 34
1.3.3. Trình t các bƣớc thc thi một chƣơng trình viết bng C .............. 35
1.4. KIU D LIU TRONG C .............................................................. 37
1.4.1. Kiu d liu nguyên thy ................................................................ 39
4
1.4.1.1. Kiu ký t ..................................................................................... 39
1.4.1.2. Kiu nguyên ................................................................................. 39
1.4.1.3. Kiu thc ...................................................................................... 39
1.4.1.4. Kiu void ...................................................................................... 40
1.4.2. Kiu d liu dn xut ...................................................................... 40
1.4.2.1. B t signed và unsigned ............................................................. 41
1.4.2.2. B t short và long ....................................................................... 42
1.4.3. Kiu d liệu do ngƣời dùng định nghĩa. ......................................... 43
1.5. BIN VÀ HNG ............................................................................... 43
1.5.1. Biến ................................................................................................. 43
1.5.1.1. Định nghĩa ................................................................................... 43
1.5.1.2. Khai báo biến ............................................................................... 44
1.5.1.3. Khai báo và khi to giá tr cho các biến .................................... 44
1.5.1.4. Phm vi ca biến .......................................................................... 45
1.5.2. Hng ................................................................................................ 46
1.5.2.1. Định nghĩa ................................................................................... 46
1.5.2.2. Khai báo hng s dng t khóa const ......................................... 48
1.5.2.3. Khai báo hng s dng ch th #define ........................................ 48
1.5.2.4. Phân loi hng ............................................................................. 49
1.6. BIU THC VÀ PHÉP TOÁN ........................................................ 51
1.6.1. Toán t gán ..................................................................................... 51
1.6.2. Ép kiu d liu ................................................................................ 51
1.6.3. Biu thc ......................................................................................... 53
1.6.3.1. Định nghĩa biểu thc ................................................................... 53
1.6.3.2. Biu thc s hc ........................................................................... 53
1.6.3.3. Biu thc logic ............................................................................. 54
1.6.3.4. Biu thức điều kin....................................................................... 55
1.6.4. Các toán t ...................................................................................... 55
1.6.4.1. Toán t s hc .............................................................................. 56
1.6.4.2. Toán t quan h ........................................................................... 57
5
1.6.4.3. Toán t logic ................................................................................ 59
1.6.4.4. Toán t tăng giảm ........................................................................ 60
1.6.4.5. Toán t gán .................................................................................. 62
1.6.4.6. Toán t bit .................................................................................... 63
1.7. MT S TOOL S DNG .............................................................. 68
1.7.1. Turbo C ........................................................................................... 68
1.7.1.1. Gi Turbo C ................................................................................. 68
1.7.1.2. Son thảo chương trình mới ........................................................ 69
1.7.1.3. Ghi chương trình đang soạn thảo vào đĩa ................................... 71
1.7.1.4. Thc hiện chương trình ............................................................... 72
1.7.1.5. Chạy chương trình ....................................................................... 72
1.7.2. DevC ............................................................................................... 72
1.7.2.1. Son thảo chương trình C bằng DevC++ ................................... 72
1.7.2.2. Thc hiện chương trình ............................................................... 74
BÀI TẬP CHƢƠNG 1 .............................................................................. 76
A. BÀI TP CÓ LI GII ...................................................................... 76
B. BÀI TP T GII .............................................................................. 80
Chƣơng 2. CÁC LNH NHP - XUT D LIU TRONG C .......... 89
2.1. NHP XUT D LIU ................................................................... 89
2.1.1. Hàm kết xut d liu printf() .......................................................... 89
2.1.2. Hàm nhp liu scanf() ..................................................................... 96
2.1.3. Hàm đọc và ghi tp trong C .......................................................... 102
2.1.3.1. Hàm fprintf() .............................................................................. 102
2.1.3.2. Hàm fscanf() .............................................................................. 103
2.2. HÀM NHP/XUT KÍ T VÀ DÒNG VÀO STDIN .................. 104
2.2.1. Dòng vào stdin .............................................................................. 104
2.2.1.1. Hàm gets() .................................................................................. 105
2.2.1.2. Hàm getchar() ............................................................................ 107
2.2.2. Các hàm xut ký t puts(), putchar() ............................................ 110
2.2.2.1. Hàm puts() ................................................................................. 110
6
2.2.2.2. Hàm putchar() ............................................................................ 111
2.2.3. Các hàm vào ra trên màn hình, bàn phím ..................................... 112
2.2.3.1. Hàm getch() ............................................................................... 112
2.2.3.2. Hàm getche() .............................................................................. 113
2.2.3.3. Hàm putch() ............................................................................... 114
2.2.3.4. Hàm kbhit() ................................................................................ 115
2.3. MT S VÍ D .............................................................................. 115
BÀI TẬP CHƢƠNG 2 ............................................................................ 118
A. BÀI TP CÓ LI GII .................................................................... 118
B. BÀI TP T GII ............................................................................ 123
Chƣơng 3. CÁC CU TRÚC PHÂN NHÁNH VÀ VÒNG LP ...... 125
3.1. CU TRÚC PHÂN NHÁNH .......................................................... 126
3.1.1. Câu lệnh điều kin If ..................................................................... 126
3.1.1.1. Câu lệnh điều kin dng khuyết ................................................. 126
3.1.1.2. Câu lệnh điều kiện đầy đủ .......................................................... 129
3.1.1.3. Câu lệnh điều kiện else… if ....................................................... 131
3.1.1.4. Câu lệnh điều kin lng nhau .................................................... 135
3.1.2. Cu trúc switch ............................................................................. 144
3.1.3. Toán t goto và nhãn .................................................................... 152
3.1.3.1. Cú pháp ...................................................................................... 152
3.1.3.2. Hoạt động .................................................................................. 152
3.2. CU TRÚC VÒNG LP (FOR, WHILE, DO WHILE) ............ 156
3.2.1. Cu trúc vòng lp For ................................................................... 157
3.2.1.1. Cú pháp ...................................................................................... 157
3.2.1.2. Hoạt động .................................................................................. 157
3.2.1.3. Sơ đồ khi .................................................................................. 158
3.2.2. Cu trúc vòng lp while ................................................................ 167
3.2.2.1. Cú pháp ...................................................................................... 167
3.2.2.2. Hoạt động .................................................................................. 168
3.2.2.3. Sơ đồ khi .................................................................................. 168