Giáo trình Ngôn ngữ lập trình C - Nguyễn Hữu Tuấn

pdf 144 trang hoanguyen 4070
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Ngôn ngữ lập trình C - Nguyễn Hữu Tuấn", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfgiao_trinh_ngon_ngu_lap_trinh_c_nguyen_huu_tuan.pdf

Nội dung text: Giáo trình Ngôn ngữ lập trình C - Nguyễn Hữu Tuấn

  1. Giỏo trỡnh Ngụn ngữ lập trỡnh C
  2. www.nhipsongcongnghe.net Giới thiệu Tin học là một ngành khoa học mũi nhọn phát triển hết sức nhanh chóng trong vài chục năm lại đây và ngày càng mở rộng lĩnh vực nghiên cứu, ứng dụng trong mọi mặt của đời sống xã hội. Ngôn ngữ lập trình là một loại công cụ giúp con ng−ời thể hiện các vấn đề của thực tế lên máy tính một cách hữu hiệu. Với sự phát triển của tin học, các ngôn ngữ lập trình cũng dần tiến hoá để đáp ứng các thách thức mới của thực tế. Khoảng cuối những năm 1960 đầu 1970 xuất hiện nhu cầu cần có các ngôn ngữ bậc cao để hỗ trợ cho những nhà tin học trong việc xây dựng các phần mềm hệ thống, hệ điều hành. Ngôn ngữ C ra đời từ đó, nó đã đ−ợc phát triển tại phòng thí nghiệm Bell. Đến năm 1978, giáo trình " Ngôn ngữ lập trình C " do chính các tác giả của ngôn ngữ là Dennish Ritchie và B.W. Kernighan viết, đã đ−ợc xuất bản và phổ biến rộng rãi. C là ngôn ngữ lập trình vạn năng. Ngoài việc C đ−ợc dùng để viết hệ điều hành UNIX, ng−ời ta nhanh chóng nhận ra sức mạnh của C trong việc xử lý cho các vấn đề hiện đại của tin học. C không gắn với bất kỳ một hệ điều hành hay máy nào, và mặc dầu nó đã đ−ợc gọi là " ngôn ngữ lập trình hệ thống" vì nó đ−ợc dùng cho việc viết hệ điều hành, nó cũng tiện lợi cho cả việc viết các ch−ơng trình xử lý số, xử lý văn bản và cơ sở dữ liệu. Và bây giờ chúng ta đi tìm hiểu thế giới của ngôn ngữ C từ những khái niệm ban đầu cơ bản nhất. Hà nội tháng 11 năm 1997 Nguy ễn H ữu Tu ấn
  3. Ch−ơng 1 các khái niệm cơ bản 1.1. Tập ký tự dùng trong ngôn ngữ C : Chú ý : ∆ ∆ 1.2. Từ khoá :
  4. ý 1.3. Tên : Ví dụ : Chú ý :
  5. 1.4. Kiểu dữ liệu : 1.4.1. Kiểu ký tự (char) : Phân loại ký tự :
  6. 1.4.2. Kiểu nguyên : Chú ý : 1.4.3. Kiểu dấu phảy động : Giải thích :
  7. 1.5. Định nghĩa kiểu bằng TYPEDEF : 1.5.1. Công dụng : 1.5.2. Cách viết : 1.6. Hằng : 1.6.1. Tên hằng : Ví dụ :
  8. 1.6.2. Các loại hằng : 1.6.2.1. Hằng int : Ví dụ : Chú ý : 1.6.2.2. Hằng long : Ví dụ : 1.6.2.3. Hằng int hệ 8 : ở
  9. Ví dụ : 1.6.2.4. Hằng int hệ 16 : ở Ví dụ : 1.6.2.5. Hằng ký tự : Ví dụ :
  10. Chú ý : 1.6.2.5. Hằng xâu ký tự : Ví dụ : Chú ý :
  11. 1.7. Biến : Ví dụ : Vị trí của khai báo biến : Khởi đầu cho biến :
  12. Ví dụ : Lấy địa chỉ của biến : 1.8 Mảng :
  13. Chú ý : Chỉ số mảng : Chú ý : Ví dụ :
  14. Lấy địa chỉ một phần tử của mảng : Địa chỉ đầu của một mảng : Khởi đầu cho biến mảng : Để khởi đầu cho biến mảng ngoài ta áp dụng các qui tắc sau : Ví dụ :
  15. Ví dụ : Ví dụ : Ví dụ :
  16. Ví dụ : =
  17. Ch−ơng 2 Các lệnh vào ra 2.1. Thâm nhập vào th− viện chuẩn : 2.2. Các hàm vào ra chuẩn - getchar() và putchar() - getch() và putch() : 2.2.1. Hàm getchar () : Cách dùng : Công dụng : Ví dụ :
  18. 2.2.2. Hàm putchar () : Cách dùng : Công dụng : Ví dụ : 2.2.3. Hàm getch() : Cách dùng : Công dụng : Nếu dùng :
  19. Ví dụ : 2 2.4. Hàm putch() : Cách dùng : Công dụng : 2.3. Đ−a kết quả lên màn hình - hàm printf : Cách dùng : điều khiển. điều khiển Chuỗi điều khiển có thể có các ký tự điều khiển : Dạng tổng quát của đặc tả :
  20. Dấu trừ : fw : Ví dụ : pp :
  21. Ví dụ : Các ký tự chuyển dạng và ý nghĩa của nó : ý
  22. Chú ý : Các ví dụ : 2.4. Vào số liệu từ bàn phím - hàm scanf : Cách dùng : điều khiển Đặc tả có thể viết một cách tổng quát nh− sau :
  23. Ví dụ : Ký tự chuyển dạng :
  24. Các ký tự chuyển dạng và ý nghĩa của nó : Ví dụ :
  25. Chú ý : 2.5. Đ−a kết quả ra máy in : Ví dụ :
  26. Ch−ơng 3 Biểu thức 3.1. Biểu thức : 3.2. Lệnh gán và biểu thức:
  27. Ví dụ : 3.3. Các phép toán số học : ý Ví dụ : 3.4. Các phép toán quan hệ và logic :
  28. Các phép toán quan hệ là : ý Các phép toán logic :
  29. Chú ý : 3.5. Phép toán tăng giảm : Ví dụ : Ví dụ : 3.6. Thứ tự −u tiên các phép toán :
  30. Chú thích : trình tự kết hợp Ví dụ : Các phép toán lạ :
  31. , 3.7. Chuyển đổi kiểu giá trị : Ví dụ : Chuyển đổi kiểu trong biểu thức : Ví dụ : Chuyển đổi kiểu thông qua phép gán :
  32. Ví dụ : Đổi kiểu dạng (type)biểu thức : Ví dụ : Chú ý
  33. Ch−ơng 4 Cấu trúc cơ bản của ch−ơng trình 4.1. Lời chú thích : Ví dụ :
  34. 4.2. Lệnh và khối lệnh : 4.2.1. Lệnh : Ví dụ : 4.2.2. Khối lệnh : Khai báo ở đầu khối lệnh : Sự lồng nhau của các khối lệnh và phạm vi hoạt động của các biến và mảng :
  35. Ví dụ : 4.3. Cấu trúc cơ bản của ch−ơng trình :
  36. • • • • • •
  37. Ví dụ : 4.4. Một số qui tắc cần nhớ khi viết ch−ơng trình : Qui tắc đầu tiên cần nhớ là : Mỗi câu lệnh có thể viết trên một hay nhiều dòng nh−ng phải kết thúc bằng dấu ; Qui tắc thứ hai là : ác lời giải thích cần đ−ợc đặt giữa các dấu /* và */ và có thể đ−ợc viết Trên một dòng Trên nhiều dòng Trên phần còn lại của dòng Qui tắc thứ ba là : Trong ch−ơng trình, khi ta sử dụng các hàm chuẩn, ví dụ nh− printf(), getch() mà các hàm này lại chứa trong file stdio.h trong th− mục của C, vì vậy ở đầu ch−ơng trình ta phải khai báo sử dụng ; #include "stdio.h " Qui tắc thứ t− là :
  38. Một ch−ơng trình có thể chỉ có một hàm chính ( hàm main() ) hoặc có thể có thêm vài hàm khác.
  39. Ch−ơng 5 Cấu trúc điều khiển 5.1. Cấu trúc có điều kiện : 5.1.1. Lệnh if-else : Hoạt động của biểu thức dạng 1 : Hoạt động của biểu thức dạng 2 :
  40. Ví dụ : Sự lồng nhau của các toán tử if :
  41. 5.1.2. Lệnh else-if :
  42. Ví dụ :
  43. 5.2. Lệnh nhảy không điều kiện - toán tử goto : Ví dụ : ts Khi dùng toán tử goto cần chú ý : Ví dụ :
  44. 5.3. Cấu trúc rẽ nhánh - toán tử switch: Chú ý :
  45. Ví dụ :
  46. 5.4. Cấu trúc lặp : 5.4.1. Cấu trúc lặp với toán tử while và for : 5.4.1.1. Cấu trúc lặp với toán tử while : Chú ý :
  47. Ví dụ : Cách 1 : Cách 2 :
  48. Cách 3 : 5.4.1.2. Cấu trúc lặp với toán tử for : Hoạt động của toán tử for :
  49. Chú ý : Ví dụ 1: Cách 1:
  50. Cách 2 : Cách 3 : Ví dụ 2:
  51. 5.4.2. Chu trình do-while
  52. Hoạt động của chu trình nh− sau : Chú ý : Ví dụ :
  53. 5.5. Câu lệnh break : Ví dụ : 5.6. Câu lệnh continue :
  54. Chú ý : Ví dụ :
  55. Ch−ơng 6 Hàm 6.1. Cơ sở : Dòng tiêu đề : Ví dụ : Thân hàm :
  56. Ví dụ :
  57. Quy tắc hoạt động của hàm : Các tham số thực, các đối và biến cục bộ : Chú ý :
  58. 6.2. Hàm không cho các giá trị : C 6.3. Hàm đệ qui : 6.3.3. Mở đầu :
  59. Chú ý : 6.3.2. Các bài toán có thể dùng đệ qui : 6.3.3. Cách xây dựng hàm đệ qui :
  60. 6.3.4. Các ví dụ về dùng hàm đệ qui : Ví dụ 1 :
  61. Ví dụ 2 : 6.4. Bộ tiền sử lý C :
  62. Bao hàm file : Phép thế MACRO : Ví dụ :
  63. Ví dụ : Chú ý : Ví dụ :
  64. Ch−ơng 7 Con trỏ 7.1. Con trỏ và địa chỉ : Ví dụ :
  65. Ví dụ : 7.2. Con trỏ và mảng một chiều :
  66. 7.2.1.Phép toán lấy địa chỉ : 7.2.2. Tên mảng là một hằng địa chỉ : 7.2.3. Con trỏ trỏ tới các phần tử của mảng một chiều : Ví dụ :
  67. Cách 1: Cách 2 :
  68. Cách 3 : Chú ý : 7.2.4. Mảng, con trỏ và xâu ký tự : xau
  69. xau Ha noi. xau xau xau 7.3. Con trỏ và mảng nhiều chiều : 7.3.1.Phép lấy địa chỉ :
  70. Thủ thuật đọc từ bàn phím phần tử mảng hai chiều dùng lệnh scanf : 7.3.2. Phép cộng địa chỉ trong mảng hai chiều:
  71. 7.3.3. Con trỏ và mảng hai chiều : Ví dụ : Cách 1 : Cách 2 :
  72. 7.4. Kiểu con trỏ, kiểu địa chỉ, các phép toán trên con trỏ : 7.4.1. Kiểu con trỏ và kiểu địa chỉ : 7.4.2. Các phép toán trên con trỏ: Phép gán : Phép tăng giảm địa chỉ :
  73. Phép truy cập bộ nhớ :
  74. Phép so sánh : Ví dụ : Ví dụ 1 : Ví dụ 2 : 7.4.3. Con trỏ kiểu void :
  75. Chú ý : Ví dụ : 7.5. Mảng con trỏ :
  76. Kiểu Tên_mảng_con_trỏ Tên_mảng_con_trỏ Ví dụ : Chú ý Ví dụ :
  77. 7.6. Con trỏ tới hàm : 7.6.1. Cách khai báo con trỏ hàm và mảng con trỏ hàm : Ví dụ 1: • • Ví dụ 2:
  78. • • 7.6.2. Tác dụng của con trỏ hàm : Ví dụ 1: Ví dụ 2:
  79. 7.6.3. Đối của con trỏ hàm : Cách dùng con trỏ hàm trong thân hàm : Ví dụ :
  80. Ch−ơng 8 Cấu trúc 8.1. Kiểu cấu trúc : • • Ví dụ : Ví dụ 1:
  81. ngay ngaythu thang nam Ví dụ 2: nhancong ngaysinh ngaybatdaucongtac ngay Định nghĩa cấu trúc bằng typedef : ngay nhancong