Bài giảng Nhập môn tin học - Chương 2: Những khái niệm cơ bản về ngôn ngữ C - Đào Nam Anh

1. Giới thiệu về ngôn ngữ lập trình C 2. Cấu trúc chương trình C 3. Biên dịch và thực thi một chương trình C 4. Các kiểu dữ liệu cơ sở và dẫn xuất 5. Biến, hằng, định danh 6. Nhập và xuất trong C 7. Bài tập 1.Giới thiệu về ngôn ngữ lập trình C  Ngôn ngữ C do Brian W.Kernighan và Dennis M.Ritchie phát triển vào đầu những năm 70 với mục đích ban đầu là phát triển hệ điều hành UNIX.  Cuốn sách viết về C đầu tiên “The Programming Language” do Brian W.Kernighan và Dennis M.Ritchie viết năm 1978.

pdf73 trang | Chia sẻ: candy98 | Lượt xem: 463 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Bài giảng Nhập môn tin học - Chương 2: Những khái niệm cơ bản về ngôn ngữ C - Đào Nam Anh, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
NHẬP MÔN TIN HỌC NHỮNG KHÁI NIỆM CƠ BẢN VỀ NGÔN NGỮ C TS Đào Nam Anh Tài liệu Slides do TS.Đào Nam Anh thực hiện dựa trên tài liệu [1,2] và các mã nguồn [3]: 1. B. W. Kernighan and D. M. Ritchie The C Programming Language Prentice Hall 1978, ISBN 0-13-110163-3. 2. TS.Nguyễn Thị Thu Hà, TS.Nguyễn Hữu Quỳnh, TS.Nguyễn Thị Thanh Tân, Giáo trình Nhập môn tin học, Khoa CNTT, Đại học Điện lực, 2013 3. Programiz.com 2 Nội dung 1. Giới thiệu về ngôn ngữ lập trình C 2. Cấu trúc chương trình C 3. Biên dịch và thực thi một chương trình C 4. Các kiểu dữ liệu cơ sở và dẫn xuất 5. Biến, hằng, định danh 6. Nhập và xuất trong C 7. Bài tập c nh CNTT Nhập môn tin học 3 1.Giới thiệu về ngôn ngữ lập trình C i u 4  Ngôn ngữ C do Brian W.Kernighan và Dennis M.Ritchie phát triển vào đầu những năm 70 với mục đích ban đầu là phát triển hệ điều hành UNIX.  Cuố sách viết về C đầu tiên “The Programming Language” do Brian W.Kernighan và Dennis M.Ritchie viết năm 1978. 1.Giới thiệu về ngôn ngữ lập trình C i u CNTT Nhập môn tin học 5  C được Viện Tiêu chuẩn hoá của Mỹ (ANSI: American National Standard Institute) làm thành tiêu chuẩn với tên gọi ANSI C.  C rất hiệu quả để viết các chương trình thuộc nhiều lĩnh vực khác nhau. C cũng được dùng để lập trình hệ thống. Mã C rất dễ di chuyển, nghĩa là phần mềm viết cho loại máy tính này có thể chạy trên một loại máy tính khác và ít bị lỗi. 1.Giới thiệu về ngôn ngữ lập trình C . c chương nh ch C cơ n CNTT Nhập môn tin học 6 Ngôn ngữ lập trình C hiện tại thường sử dụng các trình dịch:  Turbo C/C++, Borland C/C++ của hãng Borland International Inc.  C-Free của của hãng phần mềm ProgramArts.  Dev C/C++ của hãng Bloodshed Software.  Các phần mềm mã nguồn mở Code::Blocks, Eclipse  MSC, VC của Microsoft Corp.  Lattice C của Lattice. Sau này, C++ đã được phát triển từ C, bổ sung các yếu tố về lập trình hướng đối tượng từ C. 1.Giới thiệu về ngôn ngữ lập trình C . c m a ngôn C CNTT Nhập môn tin học 7  C là ngôn ngữ lập trình cấu trúc. Tuy nhiên, C không phải là ngôn ngữ cấu trúc khối, không cho phép việc tạo hàm trong hàm.  C là ngôn ngữ có độ thích nghi cao. Bởi các kiểu dữ liệu và cấu trúc điều khiển của C có hầu hết trên các máy tính nên thư viện lúc chạy cần để cài đặt chương trình khá gọn.  C độc lập với kiến trúc máy đặc thù, mọi chương trình chạy không liên quan tới sự thay đổi về phần cứng của máy tính. 1.Giới thiệu về ngôn ngữ lập trình C . c m a ngôn C CNTT Nhập môn tin học 8  C được sử dụng rộng rãi trong các lĩnh vực chuyên nghiệp vì đáp ứng được yêu cầu và có tính hiệu quả cao.  C cung cấp những cấu trúc điều khiển như các câu lệnh lựa chọn, lệnh lặp giống ở Pascal.  C cung cấp con trỏ và khả năng định địa chỉ số học.  C cho phép hàm được gọi đệ quy và các biến cục bộ của hàm sẽ được tự động sinh ra hoặc được tạo mới với mỗi lần gọi mới.  C tương đối thoải mái trong chuyển đổi dữ liệu. 1.Giới thiệu về ngôn ngữ lập trình C . u c cơ n a t chương nh C CNTT Nhập môn tin học 9 C có chính xác là 32 từ khóa. Những từ khóa này kết hợp với cú pháp của C hình thành ngôn ngữ C. Nhưng nhiều trình biên dịch cho C đã thêm vào những từ khóa dùng cho việc tổ chức bộ nhớ ở những giai đoạn tiền xử lý nhất định. Một số quy tắc khi lập trình C như sau:  Tất cả từ khóa là chữ thường (không in hoa).  Ðoạn mã trong chương trình C có phân biệt chữ thường và chữ hoa. Ví dụ: do while thì khác với DO WHILE.  Từ khóa không thể dùng cho các mục đích khác như đặt tên biến (variable name) hoặc tên hàm (function name). 1.Giới thiệu về ngôn ngữ lập trình C . u c cơ n a t chương nh C Nhập môn tin học 10 Cấu trúc cơ bản nhất của C gồm 5 phần: Phần tiền xử lý, phần khai báo các biến ngoài, các hàm nguyên mẫu, định nghĩa các hàm và phần chương trình chính. Một chương trình C thông thường có dạng như sau: #include//Gọi tiền xử lý #define // định nghĩa hằng xâu ký tự typedef // Định nghĩa kiểu dữ liệu function prototype // Nguyên mẫu các hàm int x,y; // Phần khai báo các biến ngoài void main // Chương trình chính { float a; int k=6; printf (); scanf(); .......... các câu lệnh, lời gọi hàm .... getch(); } function 1// Định nghĩa hàm { ..........các câu lệnh trong thân của hàm } function 2 { ..........các câu lệnh trong thân của hàm } 1.Giới thiệu về ngôn ngữ lập trình C . u c cơ n a t chương nh C 11 Phần tiền xử lý: Sử dụng các thư viện cần dùng trong chương trình bắt đầu bằng dấu # và từ khoá include. Tên thư viện được đặt sau từ khoá include và đặt trong dấu .  Thư viện hàm chuẩn dùng cho những tác vụ chung. Thư viện ở trong một tập tin (file) lớn trong khi đa số còn lại chứa nó trong nhiều tập tin nhỏ.  Hàm được chứa trong thư viện có thể được dùng cho nhiều loại tác vụ khác nhau.  Vài trình biên dịch cho phép hàm được thêm vào thư viện chuẩn trong khi số khác lại yêu cầu tạo một thư viện riêng. #include//Gọi tiền xử lý #define // định nghĩa hằng xâu ký tự typedef // Định nghĩa kiểu dữ liệu function prototype // Nguyên mẫu các hàm int x,y; // Phần khai báo các biến ngoài void main // Chương trình chính { float a; int k=6; printf (); scanf(); .......... các câu lệnh, lời gọi hàm .... getch(); } function 1// Định nghĩa hàm { ..........các câu lệnh trong thân của hàm } function 2 { ..........các câu lệnh trong thân của hàm } 1.Giới thiệu về ngôn ngữ lập trình C . u c cơ n a t chương nh C CNTT Nhập môn tin học 12  Phần khai báo các biến ngoài: Đây là khu vực các biến toàn cục, được khai báo tại phần các biến ngoài của chương trình C. Khai báo các hàm nguyên mẫu: Trong Pascal chương trình con có 2 loại: thủ tục và hàm, ở trong C chỉ có một loại chương trình con duy nhất đó là hàm. Hàm trong C có thể trả về giá trị hay không trả về giá trị. Trong các hàm có sử dụng khai báo các biến dùng trong phạm vi hàm đó. #include//Gọi tiền xử lý #define // định nghĩa hằng xâu ký tự typedef // Định nghĩa kiểu dữ liệu function prototype // Nguyên mẫu các hàm int x,y; // Phần khai báo các biến ngoài void main // Chương trình chính { float a; int k=6; printf (); scanf(); .......... các câu lệnh, lời gọi hàm .... getch(); } function 1// Định nghĩa hàm { ..........các câu lệnh trong thân của hàm } function 2 { ..........các câu lệnh trong thân của hàm } 1.Giới thiệu về ngôn ngữ lập trình C . u c cơ n a t chương nh C 13  Phần định nghĩa các hàm: Chương trình C được chia thành từng đơn vị gọi là hàm.  Tên hàm luôn được theo sau là cặp dấu ngoặc đơn (). Trong dấu ngoặc đơn có thể có hay không có các tham số (parameters). Một định nghĩa hàm thường gồm các câu lệnh, lời gọi hàm,... chúng đều được nằm giữa 2 dấu {}. Dấu ngoặc nhọn mở { đánh dấu điểm bắt đầu của một khối mã lệnh, dấu ngoặc nhọn đóng } đánh dấu điểm kết thúc của khối mã lệnh đó. #include//Gọi tiền xử lý #define // định nghĩa hằng xâu ký tự typedef // Định nghĩa kiểu dữ liệu function prototype // Nguyên mẫu các hàm int x,y; // Phần khai báo các biến ngoài void main // Chương trình chính { float a; int k=6; printf (); scanf(); .......... các câu lệnh, lời gọi hàm .... getch(); } function 1// Định nghĩa hàm { ..........các câu lệnh trong thân của hàm } function 2 { ..........các câu lệnh trong thân của hàm } 1.Giới thiệu về ngôn ngữ lập trình C . u c cơ n a t chương nh C 14  Phần chương trình chính - Hàm main(): Hàm main() là hàm đầu tiên được gọi đến khi một chương trình bắt đầu chạy. Hệ điều hành luôn trao quyền điều khiển cho hàm main() khi một chương trình C được thực thi. Lệnh getch() cuối thân chương trình dùng để lưu lại trên màn hình các kết quả. #include//Gọi tiền xử lý #define // định nghĩa hằng xâu ký tự typedef // Định nghĩa kiểu dữ liệu function prototype // Nguyên mẫu các hàm int x,y; // Phần khai báo các biến ngoài void main // Chương trình chính { float a; int k=6; printf (); scanf(); .......... các câu lệnh, lời gọi hàm .... getch(); } function 1// Định nghĩa hàm { ..........các câu lệnh trong thân của hàm } function 2 { ..........các câu lệnh trong thân của hàm } 1.Giới thiệu về ngôn ngữ lập trình C . u c cơ n a t chương nh C 15  Dấu kết thúc câu lệnh: Dòng int x,y; trong đoạn mã mẫu là một câu lệnh (statement). Một câu lệnh trong C được kết thúc bằng dấu chấm phẩy (;). C không hiểu việc xuống dòng dùng phím enter, khoảng trắng dùng phím spacebar hay một khoảng cách do dùng phím tab. Có thể có nhiều hơn một câu lệnh trên cùng một hàng nhưng mỗi câu lệnh phải được kết thúc bằng dấu chấm phẩy. Một câu lệnh không được kết thúc bằng dấu chấm phẩy được xem như một câu lệnh sai. #include//Gọi tiền xử lý #define // định nghĩa hằng xâu ký tự typedef // Định nghĩa kiểu dữ liệu function prototype // Nguyên mẫu các hàm int x,y; // Phần khai báo các biến ngoài void main // Chương trình chính { float a; int k=6; printf (); scanf(); .......... các câu lệnh, lời gọi hàm .... getch(); } function 1// Định nghĩa hàm { ..........các câu lệnh trong thân của hàm } function 2 { ..........các câu lệnh trong thân của hàm } 1.Giới thiệu về ngôn ngữ lập trình C . u c cơ n a t chương nh C CNTT Nhập môn tin học 16  Dòng chú thích (Comment): Những chú thích thường được viết để mô tả công việc của một lệnh đặc biệt, một hàm hay toàn bộ chương trình. Trình biên dịch sẽ không dịch chúng. Trong C, chú thích bắt đầu bằng ký hiệu /* và kết thúc bằng */. Trường hợp chú thích có nhiều dòng, ta phải chú ý ký hiệu kết thúc (*/), nếu thiếu ký hiệu này, toàn bộ chương trình sẽ bị coi như là một chú thích. Trong trường hợp chú thích chỉ trên một dòng ta có thể dùng //. Ví dụ: float a; // Biến ‘a’ đã được khai báo như là một kiểu số thực (float) 1.Giới thiệu về ngôn ngữ lập trình C . Biên ch c thi t chương nh CNTT Nhập môn tin học 17 # include file Tập tin thêm vào Source file Mã nguồn Compiler Trình biên dịch Object File Tập tin đối tượng Library File Thư viện Other User- generated Object File Các tập tin thực thi khác của người dùng Linker Bộ liên kết Executable File Tập tin thực thi 1.Giới thiệu về ngôn ngữ lập trình C . Biên ch c thi t chương nh 18  Soạn thảo/Xử lý từ: Lập trình viên dùng một trình xử lý từ (word processor) hay trình soạn thảo (editor) để viết mã nguồn (source code). C chỉ chấp nhận loại mã nguồn viết dưới dạng tập tin văn bản chuẩn. Mã nguồn: Ðây là đoạn văn bản của chương trình mà người dùng có thể đọc. Nó là đầu vào của trình biên dịch C.  Bộ tiền xử lý C: Từ mã nguồn, bước đầu tiên là chuyển nó qua bộ tiền xử lý của C. Bộ tiền xử lý này sẽ xem xét những câu lệnh bắt đầu bằng dấu #. Những câu lệnh này gọi là các chỉ thị tiền biên dịch (directives). 1.Giới thiệu về ngôn ngữ lập trình C . Biên ch c thi t chương nh CNTT Nhập môn tin học 19 Mã nguồn mở rộng C: Bộ tiền xử lý của C khai triển các chỉ thị tiền biên dịch và đưa ra kết quả.  Trình biên dịch C (Compiler) Trình biên dịch C dịch mã nguồn mở rộng thành ngôn ngữ máy để máy tính hiểu được. Nếu chương trình quá lớn nó có thể được chia thành những tập tin riêng biệt và mỗi tập tin có thể được biên dịch riêng rẽ. 1.Giới thiệu về ngôn ngữ lập trình C . Biên ch c thi t chương nh CNTT Nhập môn tin học 20  Bộ liên kết (Linker): Mã đối tượng cùng với những thủ tục hỗ trợ trong thư viện chuẩn và những hàm được dịch riêng lẻ khác kết nối lại bởi bộ liên kết để cho ra mã có thể thực thi được.  Bộ nạp (Loader): Mã thực thi được thi hành bởi bộ nạp của hệ thống 1.Giới thiệu về ngôn ngữ lập trình C . n, ng, nh danh CNTT Nhập môn tin học 21 Biến (variable) Một chương trình ứng dụng có thể quản lý nhiều loại dữ liệu. Trong trường hợp này, chương trình phải chỉ định bộ nhớ cho mỗi đơn vị dữ liệu. Khi chỉ định bộ nhớ, có hai điểm cần lưu ý như sau : 1. Bao nhiêu bộ nhớ sẽ được gán? 2. Mỗi đơn vị dữ liệu được lưu trữ ở đâu trong bộ nhớ? Các ngôn ngữ lập trình hiện đại cho phép chúng ta sử dụng các tên tượng trưng gọi là biến (variable), chỉ đến một vùng bộ nhớ nơi mà các giá trị cụ thể được lưu trữ. Kiểu dữ liệu quyết định tổng số bộ nhớ được chỉ định. Những tên được gán cho biến giúp chúng ta sử dụng lại dữ liệu khi cần đến. 1.Giới thiệu về ngôn ngữ lập trình C . n, ng, nh danh 22 Khai báo biến: danh sách tên các biến; Ví dụ: int a; // khai báo biến a có kiểu dữ liệu là số nguyên float b; // khai báo biến a có kiểu dữ liệu là số thực. char c; // khai báo biến a có kiểu dữ liệu là ký tự Các kí hiệu a, b và c trong đoạn mã trên là các biến. Tên biến giúp chúng ta tránh phải nhớ địa chỉ của vị trí bộ nhớ. Khi đoạn mã được viết và thực thi, hệ điều hành đảm nhiệm việc cấp không gian nhớ còn trống cho những biến này. Hệ điều hành ánh xạ một tên biến đến một vị trí xác định trong bộ nhớ (ô nhớ). Để tham chiếu tới một giá trị riêng biệt trong bộ nhớ, chúng ta chỉ cần chỉ ra tên của biến. 1.Giới thiệu về ngôn ngữ lập trình C . n, ng, nh danh CNTT Nhập môn tin học 23 Hằng (constant)  Khi dùng biến, giá trị được lưu sẽ thay đổi. Một biến tồn tại từ lúc khai báo đến khi thoát khỏi phạm vi dùng nó. Những câu lệnh trong phạm vi khối mã này có thể truy cập giá trị của biến, thậm chí có thể thay đổi giá trị của biến. Trong thực tế, đôi khi cần sử dụng một vài khoản mục mà giá trị của chúng không bao giờ bị thay đổi.  Một hằng là một giá trị không bao giờ bị thay đổi. Chẳng hạn, 5 là một hằng, giá trị toán học luôn là 5 và không thể bị thay đổi. 1.Giới thiệu về ngôn ngữ lập trình C . n, ng, nh danh CNTT Nhập môn tin học 24 Khai báo hằng: const = giá trị hằng; Ví dụ: const int a = 6; const float b = 7.5; Định nghĩa hằng bằng #define #define < n a ng>; Ví dụ: # define laptrinh “ngonnguC”; 1.Giới thiệu về ngôn ngữ lập trình C . n, ng, nh danh CNTT Nhập môn tin học 25 Biểu diễn hằng ký tự: Trong C, biểu diễn hằng ký tự bằng ký hiệu trong bảng mã ASCII đặt giữa hai dấu nháy đơn ví dụ „A‟ hoặc bằng số thứ tự của ký tự đó trong bảng mã ASCII và đặt giữa dấu „\‟ ví dụ „\65‟ Ngoài ra còn có một số hằng ký tự đặc biệt ví dụ: „\n‟: ký tự xuống dòng „\0‟: ký tự null „\t‟: ký tự tab. 1.Giới thiệu về ngôn ngữ lập trình C . n, ng, nh danh 26 Định danh (identifier) Tên của các biến (variables), các hàm (functions), các nhãn (labels) và các đối tượng khác nhau do người dùng định nghĩa gọi là định danh. Những định danh này có thể chứa một hay nhiều ký tự. Ký tự đầu tiên của định danh phải là một chữ cái c dấu gạch dưới. Các ký tự tiếp theo có thể là các chữ cái, các con số hay dấu gạch dưới. Ví dụ: X, sum, m_ncount, Array10: Là những định danh đúng. sum, print!, #Multiple: những định danh sai. Các định danh có thể có chiều dài tuỳ ý, nhưng số ký tự trong một biến được nhận diện bởi trình biên dịch thì thay đổi theo trình biên dịch. Các định danh trong C có phân biệt chữ hoa và chữ thường, cụ thể While sẽ khác while. 1.Giới thiệu về ngôn ngữ lập trình C . n, ng, nh danh CNTT Nhập môn tin học 27 Một số nguyên tắc cho việc chỉ đặt tên định danh Các quy tắc đặt tên biến khác nhau tuỳ ngôn ngữ lập trình. Tuy nhiên, vài quy ước chuẩn được tuân theo như :  Tên biến phải bắt đầu bằng một ký tự chữ cái.  Các ký tự theo sau ký tự đầu bằng một chuỗi các chữ cái hoặc con số và cũng có thể bao gồm ký tự đặc biệt như dấu gạch dưới.  Tránh dùng ký tự O tại những vị trí mà có thể gây lầm lẫn với số không (0) và tương tự chữ cái l (chữ thường của chữ hoa L) có thể lầm lẫn với số 1.  Tên riêng nên tránh đặt tên cho biến. 1.Giới thiệu về ngôn ngữ lập trình C . n, ng, nh danh CNTT Nhập môn tin học 28 Một số nguyên tắc cho việc chỉ đặt tên định danh Các quy tắc đặt tên biến khác nhau tuỳ ngôn ngữ lập trình. Tuy nhiên, vài quy ước chuẩn được tuân theo như :  Theo tiêu chuẩn C các chữ cái thường và hoa thì xem như khác nhau chẳng hạn, biến ADD, add và Add là khác nhau.  Việc phân biệt chữ hoa và chữ thường khác nhau tuỳ theo ngôn ngữ lập trình. Do đó, tốt nhất nên đặt tên cho biến theo cách thức chuẩn.  Tên một biến nên có ý nghĩa, gợi tả và mô tả rõ kiểu dữ liệu của nó. Ví dụ, nếu tìm tổng của hai số thì tên biến lưu trữ tổng nên đặt là sum (tổng). Nếu đặt tên là s hay ab12 thì không hay lắm. 1.Giới thiệu về ngôn ngữ lập trình C . n, ng, nh danh CNTT Nhập môn tin học 29 Từ khóa (Keywords) Tất cả các ngôn ngữ dành một số từ nhất định cho mục đích riêng được gọi là “từ khóa”. Những từ này được sử dụng mặc định và có một ý nghĩa đặc biệt trong ngữ cảnh của từng ngôn ngữ. Khi đặt tên cho các biến, chúng ta cần bảo đảm rằng không dùng bất cứ từ khóa nào làm tên biến. 1.Giới thiệu về ngôn ngữ lập trình C . n, ng, nh danh CNTT Nhập môn tin học 30 Từ khóa (Keywords) asm char do extern goto interrupt register sizeof typedef volatile break const double far huge long return static union while case continue else float if near short struct unsigned cdecl default enum for int pascal signed switch Void 1.Giới thiệu về ngôn ngữ lập trình C . c u u cơ n t 31 Kiểu dữ liệu thường được dùng trong các công cụ lập trình có thể được phân chia thành:  Kiểu dữ liệu số - lưu trữ giá trị số.  Kiểu dữ liệu ký tự – lưu trữ thông tin mô tả. Những kiểu dữ liệu này có thể có tên khác nhau trong các ngôn ngữ lập trình khác nhau. Ví dụ, một kiểu dữ liệu số được gọi trong C là int trong khi đó với Pascal được gọi là integer. Tương tự, một kiểu dữ liệu ký tự được đặt tên là char trong C trong khi đó trong Visual Basic nó được đặt tên là string. Trong bất cứ trường hợp nào, các dữ liệu được lưu trữ luôn giống nhau. Ðiểm khác duy nhất là các biến được dùng trong một công cụ phải được khai báo theo tên của kiểu dữ liệu được hỗ trợ bởi chính công cụ đó. 1.Giới thiệu về ngôn ngữ lập trình C . c u u cơ n t CNTT Nhập môn tin học 32 Những kiểu dữ liệu cơ sở  C có kiểu dữ liệu cơ bản int, float, double, character void. Tất cả những kiểu dữ liệu khác dựa vào một trong số những kiểu này. 1.Giới thiệu về ngôn ngữ lập trình C . c u u cơ n t CNTT Nhập môn tin học 33 Kiểu dữ liệu int  Là kiểu dữ liệu lưu trữ dữ liệu số nguyên và là một trong những kiểu dữ liệu cơ bản trong bất cứ ngôn ngữ lập trình nào. Nó bao gồm một chuỗi của một hay nhiều con số.  Trong C, để lưu trữ một giá trị số nguyên trong một biến tên là num1, ta khai báo như sau: int num1;  Kiểu dữ liệu số này cho phép các số nguyên trong phạm vi - 32768 tới 32767 được lưu trữ. Hệ điều hành cấp phát 16 bit (2 byte) cho một biến đã được khai báo kiểu int. 1.Giới thiệu về ngôn ngữ lập trình C . c u u cơ n t 34 Kiểu dữ liệu float  Một biến có kiểu dữ liệu số thực được dùng để lưu trữ các giá trị chứa phần thập phân. Trình biên dịch phân biệt các kiểu dữ liệu float và int. Ðiểm khác nhau chính của chúng là kiểu dữ liệu int chỉ bao gồm các số nguyên, trong khi kiểu dữ liệu float có thể lưu giữ thêm cả các phân số.  Trong C, để lưu trữ một giá trị float trong một biến tên gọi là num2, việc khai báo như sau :  float num2;  Biến đã khai báo là kiểu dữ liệu float có thể lưu giá trị thập phân có độ chính xác tới 6 con số. Biến này được cấp phát 32 bit (4 byte) của bộ nhớ. 1.Giới thiệu về ngôn ngữ lập trình C . c u u cơ n t 35 Kiểu dữ liệu double  Kiểu dữ liệu double được dùng khi giá trị được lưu trữ vượt quá giới hạn về dung lượng của kiểu dữ liệu float. Biến có kiểu dữ l