0
K
K
Ỹ
Ỹ
THU
THU
Ậ
Ậ
T L
T L
Ậ
Ậ
P TRÌNH
P TRÌNH
NGÔN NGỮ LẬP TRÌNH C
TÀI LIỆU THAM KHẢO
Phạm Văn Ất, Kỹ thuật lập trình C cơ sở và nâng cao,
NXB KH&KT, 1999.
Quách Tuấn Ngọc, Ngôn ngữ lập trình C, NXBGD, 1998.
1
Giới thiệu ngôn ngữ C
Cấu trúc cơ bản của một chương trình C. Ví dụ một
chương trình C đơn giản
Các khái niệm cơ bản: Biến, hằng, Kiểu dữ liệu, Toán tử
Gi
Gi
ớ
ớ
i thi
i thi
ệ
ệ
u v
u v
ề
ề
ngôn ng
ngôn ng
ữ
ữ
l
l
ậ
ậ
p tr
p tr
ì
ì
nh
nh
C
C
Ngôn ngữ C
Gi
ớ
ớ
i thi
i thi
ệ
ệ
u v
u v
ề
ề
ngôn ng
ngôn ng
ữ
ữ
l
l
ậ
ậ
p tr
p tr
ì
ì
nh
nh
C
C
4
C
C
int main (void) /* 6. “Chương trình chính” */
{ Khai báo các biến;
Tập lệnh;
}
/* 7. “Các chương trình con”- các hàm */
5
V
V
í
í
d
d
ụ
ụ
chương tr
chương tr
ì
ì
nh C đơn gi
nh C đơn gi
ả
ả
n
n
Comments: Giải thích
Các ký tự nằm trong cặp
/* */
là chú thích
• Sử dụng để mô tả, giải thích trong chương trình
chương tr
ì
ì
nh C đơn gi
nh C đơn gi
ả
ả
n
n
int main()
9 Một chương trình C có thể có 1 hoặc một số function,
nhưng chỉ có duy nhất 1 hàm là
main
9 int có nghĩa là hàm main tr
ả về
một giá trị nguyên
9 Cặp “{}” thể hiện một khối, đoạn chương trình
9 Phần thân của tất cả các h
àm
phải nằm trong cặp “{}”
9 Có thể sử dụng: void main(void) và không cần câu
lệnh return ở cuối hàm
9 K
ết thúc lệnh bởi dấu ;
7
Môi trư
Môi trư
ờ
ờ
ng l
executes.
Compiler creates
object code and stores
it on disk.
Linker links the object
code with the libraries
Loader
Primary Memory
Compiler
Editor
Preprocessor
Linker
Primary Memory
.
.
.
.
.
.
.
.
.
.
.
.
Disk
Disk
Disk
CPU
Disk
9
T
T
ừ
ừ
kh
kh
ó
ó
a
a
Những từ trong ngôn ngữ được dành riêng cho một ý
nghĩa xác định (tên kiểu dữ liệu, toán tử, câu lệnh)
• Không dùng từ khóa để đặt tên cho hằng, biến, hàm,…
• Phân biệt chữ hoa và chữ thường
Các từ khóa cơ bản trong ngôn ngữ C
10
Ki
Ki
ể
ể
u d
u d
ữ
ữ
li
li
ệ
Hằng số: 100, 10L, 10U, 0x10,…
Hằng kí tự: ‘A’, ‘a’,…
Hằng xâu kí tự: “A”
Lưu ý: phân biệt hằng kí tự và hằng xâu kí tự
• Lưu trữ ‘A’ (1 byte)
• Lưu trữ “A” (2 byte)
Hằng biểu thức
A
A \0
12
Bi
Bi
ế
ế
n
n
1.
/*Ví dụ chương trình C: Cộng hai số nguyên*/
2.
#include <stdio.h>
3.
#include <conio.h>
4.
/* function main begins program execution */
5.
int main()
Bi
ế
ế
n
n
Khái niệm Biến:
• Tên biến tương ứng với vị trí xác định trong bộ nhớ máy tính
• Mỗi biến gồm: một tên, kiểu dữ liệu, kích thước và giá trị
• Mỗi khi giá trị mới được gán cho biến thì giá trị trước đósẽ được
thay thế (xoá mất). Chẳng hạn khi sử dụng lệnh scanf để đọc giá
trị biến.
• Đọc các biến từ bộ nhớ giá trị của nó không thay đổi
Mô tả trực giác về biến trong bộ nhớ
Khai báo biến trước khi sử dụng
Đặt tên biến đúng quy tắc (trong C, phân biệt chữ hoa và
chữ thường)
integer1 45
14
C
C
á
á
c to
c to
á
á
-
p – c
p - c
Multiplication
*
bm
b * m
Division
/
x / y
x / y
Modulus
%
r mod s
r % s
15
C
C
á
á
c to
c to
á
á
n t
n t
ử
ử
<
<
x < y
x
is less than
y
>=
>=
x >= y
x
is greater than or equal to
y
<=
<=
x <= y
x
is less than or equal to
y16
C
C
á
á
c to
c to
Toán tử tăng (++) và Toán tử giảm (−−)
• c ++ sử dụng thay cho c += 1
• c−− sử dụng thay cho c −= 1
• Toán tử đặt trước biến: biến thay đổi giá trị trước khi biểu thức sử dụng
nó được tính toán
• Toán tử đặt sau biến: biến thay đổi giá trị sau khi biểu thức sử dụng nó
được tính toán
18
C
C
á
á
c l
c l
ệ
ệ
nh v
nh v
à
à
o/ra
o/ra
cơ b
cơ b
ả
ả
n
n
2.
#include <conio.h>
3.
int main()
4.
{
5.
printf( "%d\n", 455 );
6.
printf( "%i\n", 455 ); /* i same as d in printf */
7.
printf( "%d\n", +455 );
8.
printf( "%d\n", -455 );
9.
printf( "%hd\n", 32000 );
10.
printf( "%ld\n", 2000000000 );
11.
printf( "%o\n", 455 );
12.
printf( "%u\n", 455 );
13.
printf( "%u\n", -455 );
14.
printf( "%x\n", 455 );
15.
printf( "%X\n", 455 );
16.
getch();