NGÔN NGỮ LẬP TRÌNH C
Một số khái niệm cơ bản
Ninh Thị Thanh Tâm
Khoa CNTT – HV Quản lý Giáo dục
Mục đích
Làm quen với các kiểu dữ liệu cơ sở
Biết cách khai báo biến, hằng
Làm quen với các toán tử
toán
tử gán
toán tử điều kiện
Biết cách sử dụng hàm vào/ra
Nội dung
Một số khái niệm cơ bản
Bộ kí tự
Tên
Từ khóa
Hằng
Biến
Các kiểu dữ liệu cơ sở
Biểu thức
Các phép toán
Hàm vào/ra
printf()
scanf()
Bộ kí tự
26 chữ cái hoa, 26 chữ cái thường
10 chữ số thập phân
Kí hiệu toán học: + - * / = < >
Dấu cách: . ; , : space
Dấu ngoặc ( ) [ ] { }
Kí hiệu đặc biệt: _ ? % # & ^ \ !...
Tên
Là một dãy các kí tự (chữ cái, chữ số, dấu
gạch dưới)
đầu bằng chữ cái hoặc dấu gạch dưới
Phân biệt chữ hoa và chữ thường
Độ dài mặc định 32
Ví dụ: ab, _hoa, a_1…
Bắt
Từ khóa
Là tên được định nghĩa trước với ý nghĩa
xác định, không thể thay đổi
Không
được dùng vào việc khác
Không được đặt tên mới trùng với từ khóa
Ví dụ: char, const, do while, struct…
Các kiểu dữ liệu cơ sở (tiếp)
Số float có độ chính xác là 6 chữ số sau dấu
chấm thập phân
Số double có độ chính xác là 15 chữ số sau dấu
chấm thập phân
Một số tiền tố đi kèm kiểu dữ liệu cơ sở
short
long
(ngầm định với char, int)
unsigned
signed
Các kiểu dữ liệu cơ sở
Tên
char
int
float
Ý nghĩa
Phạm vi
Kích thước
Kí tự
-128 ÷ 127
1 byte
Số nguyên
-32768 ÷ 32767
2 byte
±3.4E-38 ÷ ±3.4E+38
4 byte
±1.7E-308 ÷ ±1.7E+308
8 byte
Số thực dấu
phẩy động, độ
chính xác đơn
double Số thực dấu
phẩy động, độ
chính xác đơn
Hằng
Là những giá trị có đại lượng không đổi khi thực
hiện chương trình (CT)
Định nghĩa hằng tượng trưng
Toán
tử #define
Cú pháp: #define <tên> <giá trị>
CT, CT dịch thay thế mọi xuất hiện của <tên> bằng
<giá trị>
Định nghĩa biến hằng
Từ
khóa: const
Cú pháp: const <tên kiểu> <tên biến hằng>=<giá trị>;
CT dịch cấp phát vùng nhớ tương ứng với kiểu của
hằng và gán giá trị
Hằng (tiếp)
Ví dụ
#define MAX 80
#define newline ‘\n’
cont int MAX = 100;
const char newline = ‘\n’;
Biến
Cú pháp khai báo biến:
<Kiểu> <tên biến>;
báo biến sau kí hiệu bắt đầu khối lệnh
hay thân hàm
Khởi đầu giá trị cho biến: Vừa khai báo, vừa
gán giá trị
Khai
Biến (tiếp)
Ví dụ:
int
x, y, z;
float a, b, c;
char ch1, ch2;
int i = 1, j = 5, k;
char c1 =‘A’, c2 = ‘\n’;
Biểu thức
Định nghĩa: là kết quả của việc ghép nối các
toán tử và các toán hạng
Sử dụng:
Vế
phải của lệnh gán
Làm tham số thực của các hàm
Làm chỉ số
Trong các câu lệnh if, for, while, do while
Biểu thức trong C:
Biểu
thức gán
Biểu thức điều kiện
Phép toán số học
Toán tử
Ý nghĩa
-
Đổi dấu (thực, nguyên)
+
Cộng 2 số (thực, nguyên)
-
Trừ (thực, nguyên)
*
Nhân (thực, nguyên)
/
Chia (thực, nguyên)
%
Chia lấy số dư
Phép toán quan hệ
Toán tử
Ý nghĩa
>
So sánh lớn hơn
>=
So sánh lớn hơn hoặc bằng
<
So sánh nhỏ hơn
<=
So sánh nhỏ hơn hoặc bằng
==
So sánh bằng nhau
!=
So sánh không bằng nhau
Phép toán lô-gic
Liên từ
&&
||
!
Ý nghĩa
Và
Hoặc
Ví dụ
3<7 && 8>6 có
giá trị 1
n <=0 || n>=100
Với n=5, BT = 0
Phủ định !12 có giá trị 0
!0 có giá trị 1
Phép toán thao tác trên bit
Cho phép xử lý đến Phép toán
từng bit của một số &
nguyên
|
Không
dùng cho float
^
hoặc double
Ý nghĩa
VÀ nhị phân
HOẶC nhị phân
HOẶC có loại trừ
<<
Dịch trái
>>
Dịch phải
~
Bù 1
Phép toán thao tác trên bit (tiếp)
1&1=1
1|1=1
1^1=0
~1=0
1&0=0
1|0=1
1^0=1
~0=1
0&1=0
0|1=1
0^1=1
a << n = a*2n
0&0=0
0|0=0
0^0=0
a >> n = a/2n
C phân biệt
Phép dịch chuyển số học trên giá trị nguyên, bảo toàn bit dấu
Phép dịch chuyển lô-gic, thực hiện trên giá trị unsigned.
Ví dụ
0xa1b6
&
0xff
=
0xb6
0xa1b6
|
0xff
=
0xa1ff
0xa1b6
^
0xffff
=
0x5e49
0xa1b6
<<
8
=
0xb600
0xa1b6
>>
8
=
0xa1
=
0x5e49
~0xa1b6
Biểu thức gán
<Biến> = <Biểu thức>
Nếu
thêm dấu ; ta thu được câu lệnh gán
Dạng thông thường
Dạng thu gọn
Ý nghĩa
i=i+k
i += k
Tự cộng
i=i–k
i -= k
Tự trừ
i=i*k
i *= k
Tự nhân
i=i/k
i /= k
Tự chia
i=i%k
i %= k
Tự chia dư
i=i&k
i &= k
Tự và
i=i|k
i |= k
Tự hoặc
i=i^k
i ^= k
Tự bù
i = i >> k
i >>= k
Tự dịch bit phải
i = i <
i <<= k
Tự dịch bit trái
Biểu thức điều kiện
BT1? BT2 : BT3
BT1,
BT2, BT3: biểu thức
BT1 != 0, biểu thức điều kiện nhận giá trị cho
bởi BT2
BT1 = 0, biểu thức điều kiện nhận giá trị cho
bởi BT3
Biểu thức điều kiện (tiếp)
Ví dụ
lệnh xác định giá trị lớn nhất giữa hai số
a và b
max2= (a>b)? a : b;
Câu lệnh xác định giá trị lớn nhất giữa ba số
a, b và c
max3= (a>b)? (a>c?a:c) : (b>c?b:c);
Câu
Phép toán tăng giảm một đơn vị
Toán tử
Tăng một đơn vị
Giảm một đơn vị
Dạng tiền tố
++n
--n
Dạng hậu tố
n++
n--
Khi phép toán nằm trong một biểu thức khác
tố: thay đổi giá trị của biến trước khi sử dụng
Hậu tố: giá trị cũ của biến được sử dụng, thay đổi giá
trị
Tiền
Ví dụ
Phép toán
Tương đương
i = j++;
i = ++j;
i = j; j = j + 1;
j = j + 1; i = j;
i = j--;
i = --j;
i = j; j = j - 1;
j = j - 1; i = j;
Lấy địa chỉ biến
Toán tử: &
Cú pháp: &<tên biến>
Không
sử dụng toán tử cho hằng, biểu thức