Bài Giảng Ngôn Ngữ Lập Trình C Cơ Bản Cho Sinh Viên

Chuyên khảo phân tích Bai giang ngôn ngữ lập trình c cơ bản cho sinh vien, đánh giá các khía cạnh quan trọng, đề xuất hướng nghiên cứu tiếp theo.

Chuyên ngành

Tin Học

Người đăng

Ẩn danh

Thể loại

Bài Giảng

2020

155
2
0

Phí lưu trữ

45 Point

Mục lục chi tiết

MỞ ĐẦU

1. GIỚI THIỆU CHUNG

1.1. Ngôn ngữ lập trình

1.2. Sự ra đời và phát triển của ngôn ngữ C

2. MỘT SỐ KIẾN THỨC CƠ SỞ

2.1. Bộ kí tự, từ khóa,tên

2.1.1. Bộ kí tự trong C

2.1.2. Các từ khoá (Keywords)

2.1.3. Tên và cách đặt tên

2.1.4. Lời giải thích

2.2. Cấu trúc chương trình trong C

2.2.1. Cấu trúc tổng quát của chương trình trong C

2.2.2. Chương trình đơn giản nhất trong C

2.3. Các kiểu dữ liệu cơ sở

2.4. Biến,hằng, câu lệnh và các phép toán

2.4.1. Biến và hằng

2.5. Thủ tục vào và ra chuẩn

2.5.1. Vào ra ra bằng getchar(), putchar()

2.5.2. In ra theo khuôn dạng - Printf

2.5.3. Nhập vào có khuôn dạng - scanf

2.5.4. Thâm nhập vào thư viện chuẩn

3. CÁC CẤU TRÚC LỆNH ĐIỀU KHIỂN

3.1. Câu lệnh khối

3.2. Cấu trúc lệnh if

3.3. Cấu trúc lệnh switch

3.4. Vòng lặp for

3.5. Vòng lặp không xác định while

3.6. Vòng lặp không xác định do

3.7. Lệnh break và lệnh Continue

4. HÀM VÀ PHẠM VI HOẠT ĐỘNG CỦA BIẾN

4.1. Tính chất của hàm

4.2. Khai báo, thiết kế hàm

4.3. Phương pháp truyền tham biến cho hàm

4.4. Biến địa phương, biến toàn cục

4.5. Tính đệ qui của hàm

5. CẤU TRÚC DỮ LIỆU KIỂU MẢNG (Array)

5.1. Khái niệm về mảng

5.2. Các thao tác đối với mảng

5.3. Mảng và đối của hàm

6. Kiểu dữ liệu Con trỏ

6.1. Con trỏ và địa chỉ

6.2. Con trỏ và đối của hàm

6.3. Con trỏ và mảng

6.4. Cấp phát bộ nhớ cho con trỏ. Mảng các con trỏ

6.5. Đối của hàm main()

6.6. Con trỏ hàm

7. DỮ LIỆU KIỂU TỆP (FILE)

7.1. Thâm nhập vào thư viện chuẩn

7.2. Thâm nhập tệp

7.3. Xử lý lỗi - Stderr và Exit

7.4. Đưa vào và đưa ra cả dòng

7.5. Đọc và ghi file bằng fscanf, fprintf

7.6. Một số hàm thông dụng khác

7.7. Định nghĩa cấu trúc

7.8. Khai báo và sử dụng cấu trúc

7.9. Sử dụng từ khóa typedef khi làm việc với cấu trúc

7.10. Truy cập vào các thành phần của cấu trúc

7.11. Cấu trúc và hàm. Cấu trúc lồng

7.12. Cấu trúc và con trỏ

7.13. Cấu trúc và file

Tóm tắt

I. Giới thiệu về ngôn ngữ lập trình C cho sinh viên

Ngôn ngữ lập trình C là một trong những ngôn ngữ lập trình phổ biến nhất hiện nay. Được phát triển vào những năm 1970, C đã trở thành nền tảng cho nhiều ngôn ngữ lập trình hiện đại. Bài viết này sẽ cung cấp cái nhìn tổng quan về ngôn ngữ lập trình C, từ lịch sử phát triển đến ứng dụng thực tiễn trong lập trình.

1.1. Lịch sử ra đời và phát triển của ngôn ngữ C

Ngôn ngữ C được phát triển bởi Dennis Ritchie tại Bell Laboratories vào năm 1972. Ban đầu, nó được thiết kế để cải thiện ngôn ngữ B. Sau khi xuất bản cuốn sách 'The C Programming Language', C nhanh chóng trở nên phổ biến và được sử dụng rộng rãi trong phát triển hệ điều hành UNIX.

1.2. Tại sao ngôn ngữ C lại quan trọng

Ngôn ngữ C không chỉ là ngôn ngữ lập trình bậc cao mà còn cho phép lập trình viên tiếp cận gần hơn với phần cứng. Điều này giúp tối ưu hóa hiệu suất và khả năng kiểm soát tài nguyên hệ thống, điều mà nhiều ngôn ngữ khác không thể làm được.

II. Các vấn đề thường gặp khi học lập trình C cho người mới bắt đầu

Học lập trình C có thể gặp nhiều thách thức, đặc biệt là đối với những người mới bắt đầu. Những vấn đề này có thể bao gồm cú pháp phức tạp, quản lý bộ nhớ và hiểu biết về cấu trúc dữ liệu.

2.1. Cú pháp và cấu trúc chương trình trong C

Cú pháp của ngôn ngữ C có thể gây khó khăn cho người mới. Một chương trình C cơ bản bao gồm các phần như khai báo thư viện, định nghĩa hàm main và các lệnh thực thi. Việc nắm vững cấu trúc này là rất quan trọng.

2.2. Quản lý bộ nhớ trong lập trình C

Quản lý bộ nhớ là một trong những thách thức lớn nhất khi lập trình bằng C. Lập trình viên cần phải hiểu cách cấp phát và giải phóng bộ nhớ để tránh rò rỉ bộ nhớ và các lỗi khác.

III. Phương pháp học lập trình C hiệu quả cho sinh viên

Để học lập trình C hiệu quả, sinh viên cần áp dụng một số phương pháp học tập nhất định. Những phương pháp này sẽ giúp cải thiện khả năng lập trình và hiểu biết về ngôn ngữ.

3.1. Thực hành lập trình thường xuyên

Thực hành là chìa khóa để thành công trong lập trình. Sinh viên nên viết mã thường xuyên và giải quyết các bài tập lập trình để củng cố kiến thức.

3.2. Sử dụng tài liệu và nguồn học tập

Có nhiều tài liệu và nguồn học tập trực tuyến về ngôn ngữ lập trình C. Sinh viên nên tận dụng các khóa học trực tuyến, sách và diễn đàn để mở rộng kiến thức.

IV. Ứng dụng thực tiễn của ngôn ngữ lập trình C trong khoa học kỹ thuật

Ngôn ngữ lập trình C được ứng dụng rộng rãi trong nhiều lĩnh vực, đặc biệt là trong khoa học kỹ thuật. Từ phát triển phần mềm đến lập trình nhúng, C đóng vai trò quan trọng trong việc xây dựng các ứng dụng hiệu quả.

4.1. Lập trình hệ điều hành và phần mềm

Nhiều hệ điều hành như UNIX và Linux được viết bằng ngôn ngữ C. Điều này cho thấy sức mạnh và tính linh hoạt của ngôn ngữ trong việc phát triển phần mềm hệ thống.

4.2. Ứng dụng trong lập trình nhúng

Ngôn ngữ C thường được sử dụng trong lập trình nhúng, nơi mà hiệu suất và khả năng kiểm soát phần cứng là rất quan trọng. Các thiết bị như máy tính nhúng, vi điều khiển thường sử dụng C để phát triển.

V. Kết luận và tương lai của ngôn ngữ lập trình C

Ngôn ngữ lập trình C vẫn giữ vị trí quan trọng trong lĩnh vực lập trình. Mặc dù có nhiều ngôn ngữ mới ra đời, C vẫn được ưa chuộng nhờ vào tính hiệu quả và khả năng kiểm soát phần cứng.

5.1. Tương lai của ngôn ngữ C trong công nghệ

Với sự phát triển không ngừng của công nghệ, ngôn ngữ C vẫn sẽ tiếp tục được sử dụng trong nhiều lĩnh vực. Các phiên bản mới của C như C++ và C# cũng cho thấy sự phát triển của ngôn ngữ này.

5.2. Lời khuyên cho sinh viên khi học C

Sinh viên nên tiếp tục học hỏi và thực hành lập trình C. Việc nắm vững ngôn ngữ này sẽ mở ra nhiều cơ hội nghề nghiệp trong tương lai.

Tóm tắt và mô tả trên trang này được tạo với sự hỗ trợ của AI từ nội dung tài liệu gốc; tài liệu do người dùng đóng góp và được kiểm duyệt trước khi xuất bản. Báo lỗi nội dung.

15/07/2025
Bai giang ngôn ngữ lập trình c cơ bản cho sinh vien

Trích đoạn nội dung tài liệu

MỞ ĐẦU Tin học cơ sở 2 là môn học quan trọng trong chương trình giáo dục đại cương ở bậc đại học, đây là môn bắt buộc đối với tất cả các sinh viên trong Học Viện CNBCVT. Tài liệu này nhằm cung cấp cho sinh viên các kiến thức tổng quan và cơ bản về ngôn ngữ lập trình C. Qua đó sinh viên có thể nắm được các khái niệm cơ bản về lập trình và thiết lập được một số chương trình đơn giản phục vụ cho khoa học kĩ thuật và đặc biệt là làm công cụ để phục vụ cho các môn học về tin học và viễn thông mà các em sắp học. Chúng tôi đã biên soạn bài giảng này cho tất cả các sinh viên các ngành kỹ thuật ở bậc đại học với mục đích giúp cho các sinh viên có một tài liệu học cần thiết cho môn học này và cũng để đáp ứng nhu cầu càng ngày càng cao về tư liệu dạy và học tin học.

5 BÀI GIẢNG TIN HỌC CƠ SỞ 2 – KHOA CNTT1 GIỚI THIỆU CHUNG 1. Ngôn ngữ lập trình Trong phần “Tin học cơ sở 1” chúng ta đã tìm hiểu Winword và Excel, là các phần mềm ứng dụng trong công việc soạn thảo văn bản và làm các bảng tính toán được. Đặc điểm của các phần mềm ứng dụng là luôn định rõ phạm vi ứng dụng và cung cấp càng nhiều càng tốt các công cụ để hoàn thành chức năng đó. Tuy nhiên người sử dụng cũng hầu như bị bó buộc trong phạm vi quy định của phần mềm.

Chẳng hạn ta khó có thể dùng Excel để giải một bài toán gồm nhiều bước tính toán như tính nghiệm gần đúng một phương trình vi phân hay giải một hệ phương trình tuyến tính. Mặc dầu các phần mềm ứng dụng ngày càng nhiều và thuộc đủ các lĩnh vực như xây dựng, thiết kế, hội họa, âm nhạc.nhưng không thể bao trùm hết các vấn đề nẩy sinh trong thực tế vô cùng phong phú. Rõ ràng không chỉ những chuyên gia tin học mà ngay cả những người sử dụng, nhất là các cán bộ kỹ thuật, rất cần đến những phần mềm uyển chuyển và mềm dẻo hơn, có khả năng thực hiện được nhiều hơn các chỉ thị của người sử dụng để giúp họ giải quyết những công việc đa dạng bằng máy tính. Phần mềm có tính chất như thế được gọi là ngôn ngữ lập trình.

Chính xác hơn ngôn ngữ lập trình là một ngôn ngữ nhân tạo bao gồm một tập các từ vựng (mà ta sẽ gọi là từ khóa để phân biệt với ngôn ngữ thông thường) và một tập các quy tắc (gọi là Syntax - cú pháp) mà ta có thể sử dụng để biên soạn các lệnh cho máy tính thực hiện. Như ta đã biết, các ô nhớ của máy tính chỉ có thể biểu diễn các số 0 và 1. Vì vậy ngôn ngữ mà máy có thể hiểu trực tiếp là ngôn ngữ trong đó các lệnh là các dãy số nhị phân và do đó được gọi là ngôn ngữ máy (machine language). Mọi ngôn ngữ khác đều phải thông dịch hoặc biên dịch sang ngôn ngữ máy (Interpreter - thông dịch và cho chạy từng lệnh.

Compiler - biên dịch thành 1 chương trình ngôn ngữ máy hoàn chỉnh, do vậy chạy nhanh hơn thông dịch). Có nhiều loại ngôn ngữ lập trình, và hầu hết các nhà khoa học về máy tính đều cho rằng không có một ngôn ngữ độc nhất nào có đủ khả năng phục vụ cho các yêu cầu của tất cả các lập trình viên. Theo truyền thống, các ngôn ngữ lập trình được phân làm 2 loại: các ngôn ngữ bậc thấp và ngôn ngữ bậc cao. Ngôn ngữ lập trình bậc thấp (low-level programming language): Ngôn ngữ máy, hợp ngữ (assembler: chương trình dịch hợp ngữ, assembly language: ngôn ngữ hợp ngữ).

Hợp ngữ là ngôn ngữ lập trình bậc thấp từ ngôn ngữ 6 BÀI GIẢNG TIN HỌC CƠ SỞ 2 – KHOA CNTT1 máy. Nó chỉ khác với ngôn ngữ máy trong việc sử dụng các mã biểu thị các chức năng chính mà máy thực hiện. Lập trình bằng hợp ngữ rất phiền toái: có đến vài tá dòng mã cần thiết chỉ để thực hiện phép cộng 2 con số. Các chương trình hợp ngữ rất khó viết; chúng không có cấu trúc hoặc modun hóa rõ ràng.

Chương trình hợp ngữ cũng không dễ chuyển từ loại máy tính này sang loại máy tính khác. Các chương trình này được viết theo các tập lệnh đặc thù của loại bộ vi xử lý nhất định. Lập trình bằng hợp ngữ thì mã gọn và chạy nhanh. Do đó hầu hết các chương trình điều hành hệ thống đều được viết bằng hợp ngữ.

Tuy nhiên do sự phức tạp của công việc lập trình nên các hãng sản xuất phần mềm chuyên dụng thích viết chương trình bằng ngôn ngữ C (do Bell Laboratories của hãng AT&T xây dựng) là loại ngôn ngữ kết hợp được cấu trúc của ngôn ngữ bậc cao hiện đại với tốc độ và tính hiệu quả của hợp ngữ bằng cách cho phép nhúng các lệnh hợp ngữ vào chương trình. Ngôn ngữ lập trình bậc cao: Các ngôn ngữ lập trình bậc cao như Basic, Pascal, C, C++. cho phép các lập trình viên có thể diễn đạt chương trình bằng các từ khóa và các câu lệnh gần giống với ngôn ngữ tự nhiên. Các ngôn ngữ này dược gọi là “bậc cao” vì chúng giải phóng các lập trình viên khỏi những quan tâm về từng lệnh sẽ được máy tính tiến hành như thế nào, bộ phận thông dịch hoặc biên dịch của chương trình sẽ giải quyết các chi tiết này khi mã nguồn được biến đổi thành ngôn ngữ máy.

Một câu lệnh trong ngôn ngữ bậc cao tương ứng với một số lệnh ngôn ngữ máy, cho nên bạn có thể thảo chương theo ngôn ngữ bậc cao nhanh hơn so với bậc thấp. Tuy nhiên bạn cũng phải trả giá cho việc này. Chương trình ngôn ngữ máy được dịch ra từ mã nguồn được viết bằng ngôn ngữ bậc cao chứa rất nhiều chi tiết thừa, do đó tốc độ chạy sẽ chậm hơn nhiều so với chương trình viết bằng hợp ngữ. Thông thường một trình biên dịch đặc trưng thường sinh ra số lệnh mã máy gấp 2 lần hay nhiều hơn số lệnh cần thiết nếu viết bằng mã máy.

Một cách phân loại khác của các ngôn ngữ lập trình: Ngôn ngữ thủ tục (Procedural Language) và ngôn ngữ khai báo (Declarative Language) Ngôn ngữ thủ tục: Lập trình viên phải xác định một thủ tục mà máy tính sẽ tuân theo để hoàn thành một công việc định trước. Thí dụ: Basic, C, Fortran,. Ngôn ngữ khai báo: Ngôn ngữ sẽ định nghĩa một loạt các yếu tố và các quan hệ, đồng thời cho phép bạn có thể tiến hành xếp hàng đối với những kết quả xác định. Thí dụ: Prolog, SQL (Structured Query Language) 7 BÀI GIẢNG TIN HỌC CƠ SỞ 2 – KHOA CNTT1 Điều then chốt trong việc lập trình chuyên dụng là môdun hóa ngôn ngữ - đó là sự phát triển sao cho nhiệm vụ lập trình có thể phân phối được cho các thành viên của một nhóm lập trình, và kết quả đạt được là các bộ phận khác nhau sẽ hoạt động phù hợp với nhau khi nhiệm vụ của từng người hoàn thành.

Ngôn ngữ lập trình môdun, như Module-2 hoặc ngôn ngữ hướng đối tượng như C++, sẽ cho phép từng lập trình viên có thể tập trung vào việc lập mã, biên dịch và gỡ rối các module chương trình riêng biệt, đồng thời có thể cho chạy (kiểm tra thử) riêng từng module của mình. Khi từng module riêng đã chạy tốt chúng sẽ được liên kết với nhau mà không gây trục trặc nào. Thuật toán (Algorithm) Thuật ngữ Algorithm được dịch ra tiếng Việt là thuật toán, thuật giải hoặc giải thuật. Ở đây dùng từ thuật toán là cách gọi quen thuộc với nhiều người.

Thuật toán là một dãy hữu hạn các bước, mỗi bước mô tả chính xác các phép toán hoặc hành động cần thực hiện, để giải quyết một vấn đề. Để hiểu đầy đủ ý nghĩa của khái niệm thuật toán, chúng ta nêu ra 6 đặc trưng sau đây của thuật toán: Input Mỗi thuật toán thường có một số dữ liệu vào. Output Mỗi thuật toán thường có một số dữ liệu ra. Tính xác định (Definiteness) Mỗi bước được mô tả chính xác, chỉ có một cách hiểu duy nhất và đủ đơn giản để có thể thực hiện được.

Tính dừng (Finiteness) Thuật toán phải dừng sau một số hữu hạn bước thực hiện Tính hiệu quả (Effectiveness) Các phép toán trong các bước phải đủ đơn giản để có thể thực hiện được. Tính tổng quát (Generalness) Thuật toán phải có tính tổng quát, có thể áp dụng cho một lớp đối tượng. Ví dụ: Thuật toán Euclid: Tìm ước số chung lớn nhất của hai số tự nhiên m,n. Input: m,n nguyên dương Output: g là ước số chung lớn nhất của m và n Phương pháp: 1.

r:= m mod n 8 BÀI GIẢNG TIN HỌC CƠ SỞ 2 – KHOA CNTT1 2. Nếu r=0 thì g:=n Ngược lại (r>0) m:=n; n:=r và quay lại bước 1. Sự ra đời và phát triển của ngôn ngữ C Năm 1970 Ken Thompson sáng tạo ra ngôn ngữ B dùng trong môi trường hệ điều hành UNIX trên máy điện toán DEC PD-7. B cũng là chữ tắt của BCPL (Basic Combined Progamming Language) do Martin Richards viết.

Năm 1972 Dennis Ritchie của hãng Bell Laboratories (và Ken Thompson) sáng tạo nên ngôn ngữ C nhằm tăng hiệu quả cho ngôn ngữ B. Lúc đầu ngôn ngữ C không được mọi người ưa dùng. Nhưng sau khi D.Ritchie cho xuất bản cuốn "The C Programming Language" (“Ngôn ngữ lập trình C”) thì ngôn ngữ C được chú ý và được sử dụng rộng rãi. Người ta đã dùng C để viết hệ điều hành đa nhiệm UNIX, O/S 2 và ngôn ngữ Dbase.

C đã được cải tiến qua nhiều phiên bản: trình biên dịch Turbo C từ phiên bản 1 đến phiên bản 5, Microsoft C từ phiên bản 1 đến phiên bản 6. Hiện nay, C lại được phát triển để thành C++ với 3 trình biên dịch: Borland C++, Visual C++ và Turbo C++. Mặc dù hiện nay có khá nhiều ngôn ngữ lập trình mới, nhưng C vẫn là một ngôn ngữ lập trình được ưa chuộng. C được ứng dụng để viết các phần mềm trong nhiều lĩnh vực, đặc biệt là trong khoa học kỹ thuật.

9 BÀI GIẢNG TIN HỌC CƠ SỞ 2 – KHOA CNTT1 2. MỘT SỐ KIẾN THỨC CƠ SỞ 2. Bộ kí tự, từ khóa,tên 2.1 Bộ kí tự trong C Mọi ngôn ngữ đều được xây dựng trên một bộ kí tự (các chữ, các kí hiệu). Đối với ngôn ngữ C sử dụng bộ kí tự sau: Tập các chữ cái in hoa: A, B, C, D, ., Z Tập các chữ cái in thường: a, b, c, d,.

, z Tập các chữ số: 0, 1, 2, 3,. , 9 Các dấu chấm câu: ,. ; : / ? [ ] { } !

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Tài liệu "Hướng Dẫn Ngôn Ngữ Lập Trình C Cơ Bản Dành Cho Sinh Viên" cung cấp một cái nhìn tổng quan về ngôn ngữ lập trình C, giúp sinh viên nắm bắt các khái niệm cơ bản và kỹ thuật lập trình cần thiết. Tài liệu này không chỉ giải thích các cú pháp và cấu trúc của ngôn ngữ C mà còn hướng dẫn cách áp dụng chúng vào thực tế thông qua các ví dụ cụ thể. Độc giả sẽ được trang bị kiến thức vững chắc để phát triển các chương trình đơn giản, từ đó tạo nền tảng cho việc học hỏi các ngôn ngữ lập trình phức tạp hơn trong tương lai.

Để mở rộng kiến thức của bạn, bạn có thể tham khảo tài liệu Thực hành ngôn ngữ lập trình C, nơi cung cấp các bài tập thực hành giúp củng cố kỹ năng lập trình. Ngoài ra, tài liệu Tổng quan về ngôn ngữ lập trình C sẽ giúp bạn hiểu rõ hơn về các tính năng nổi bật của ngôn ngữ này. Cuối cùng, tài liệu Giáo trình kỹ thuật lập trình nghề công nghệ thông tin trình độ cao đẳng 2 cung cấp hướng dẫn chi tiết cho sinh viên cao đẳng, giúp bạn nắm vững các kỹ thuật lập trình cần thiết trong ngành công nghệ thông tin. Những tài liệu này sẽ là nguồn tài nguyên quý giá để bạn phát triển kỹ năng lập trình của mình.