Tải bản đầy đủ

Chuong 2 thanh phan c

NGÔN NGỮ C
Chương 2:

Các Thành Phần
Trong Ngôn ngữ C
Giáo viên: Tạ Thúc Nhu
Khoa CNTT trường ĐH Lạc Hồng


Nội dung

I. Kiểu Dữ Liệu Sơ Cấp
II. Biến
III. Các Phép Toán
IV. Một số hàm thường dùng:

2

Mã hóa



I- Kiểu Dữ Liệu Sơ Cấp
A. Kiểu số nguyên:
1. Kiểu unsigned char
2. Kiểu char
3. Kiểu int
4. Kiểu unsigned int
5. Kiểu long int
6. Kiểu unsigned long

B. Kiểu số thực:
7. Kiểu float : 4 byte
8. Kiểu double : 8 byte
9. Kiểu long double : 10 byte
3

Mã hóa


1- Kiểu unsigned char (1 byte không dấu)


Miền giá trị: 0 .. 255



Biểu diễn giá trị bằng số hay bằng ký tự bao trong cặp dấu
nháy đơn có mã ASCII tương ứng.
Ví dụ 1: unsigned char X;
X = 65; ó X = ‘A’;
Ví dụ 2: ‘1’ + ‘9’ ó 49 + 57 = 106



Mã nhập xuất:


%d : Nhập xuất dạng số;




%c : Nhập xuất dạng ký tự
4

Mã hóa


2- Kiểu char (1 byte có dấu)
• Tương tự unsigned char nhưng có miền giá trị: -128 ... 127.
• Các giá trị từ -128 đến -1 tương ứng với các giá trị từ 128
đến 255 của unsigned char.

5

Mã hóa


3- Kiểu int (2 byte có dấu)


Miền giá trị: -32768 .. 32767



Biểu diễn theo hệ 8: bắt đầu bằng số không (0), sau đó là
các ký số từ 0 đến 7.



Biểu diễn theo hệ 16: bắt đầu là (0x) hay (0X) sau đó là các
ký số từ 0 đến 9 và từ a đến f (hay từ A đến F).
Ví dụ: n = 169; ó n = 0251; ó n = 0xa9; hay n = 0XA9;



Mã nhập xuất:

– %d hay %i : Nhập xuất số hệ thập phân
– %o : (chữ o) Nhập xuất số hệ bát phân
– %x hay %X : Nhập xuất số hệ thập lục phân
6

Mã hóa


4- Kiểu unsigned int (2 byte không dấu)
• Miền giá trị: 0 .. 65.535
• Mã nhập xuất:

%u

7

Mã hóa


5- Kiểu long int (4 byte có dấu)
• Miền giá trị: -2.147.483.648 .. 2.147.483.647
• Mã nhập xuất:

%ld hay %li

• Biểu diễn giá trị: 65l hay 65L
Ví dụ: int n = 20000;
long m;
Giá trị của m trong 2 biểu thức sau có khác nhau hay
không?
• m = n * 2;
• m = n * 2L;
8

Mã hóa


6- Kiểu unsigned long (2 byte không dấu)
• Miền giá trị: 0 .. 4.294.967.295
• Mã nhập xuất:

%lu

9

Mã hóa


7- Kiểu float
• Kích thước: 4 byte
• Miền giá trị tuyệt đối : 3.4E-38 .. 3.4E+38
• Mã nhập xuất:

%f

• Biểu diễn giá trị: 3.0F
0

-3.4E+38

3.4E-38

3.4E+38

-3.4E-38

10

Mã hóa


8- Kiểu double
• Kích thước: 8 byte
• Miền giá trị tuyệt đối : 1.7E-308.. 1.7E+308
• Biểu diễn giá trị: 3.0
• Mã nhập xuất:

%lf
0

-1.7E+308

1.7E-308

1.7E+308

-1.74E-308

11

Mã hóa


9- Kiểu long double
• Kích thước: 10 byte
• Miền giá trị tuyệt đối : 3.4E-4932..1.1E+4932
• Mã nhập xuất:

%Lf

• Biểu diễn giá trị: 3.0L
0

-1.1E+4932

3.4E-4932

1.1E+4932

-3.44E-4932

12

Mã hóa


II- Biến nhớ (Variable):

13

Mã hóa


1- Khai báo biến:
Tênkiểu Tênbiến1[= giátrị1], .. , Tênbiếnn[=giátrịn] ;


Tên (identifier): là 1 chuỗi tối đa 32 ký tự gồm chữ cái, số,
dấu gạch dưới; ký tự đầu tiên không phải là số.



Có thể chỉ định chiều dài tối đa của tên bằng chức năng:
OptionsðCompilerðSourceðIdentifier length.

14

Mã hóa


2- Vị trí khai báo biến:


Khai báo bên ngoài các khối lệnh: (Biến ngoài)
– Phạm vi sử dụng: từ vị trí khai báo xuống các khối lệnh bên
dưới.
– Giá trị ban đầu: bằng 0.
– Thời gian tồn tại: cho đến khi kết thúc chương trình.



Khai báo bên trong khối lệnh: (Biến trong)
– Phạm vi sử dụng: bên trong khối lệnh đó và cả các khối lệnh
lồng bên trong khối đó.
– Giá trị ban đầu: chưa được xác định
– Thời gian tồn tại: Khi thực hiện xong khối lệnh

15

Mã hóa


3- Biến trùng tên:
Cho phép
• Tên biến ngoài trùng tên biến trong khối lệnh
• Tên biến ở khối lệnh ngoài trùng với tên biến ở khối lệnh
lồng bên trong.
Phạm vi sử dụng
• Khi chương trình thực hiện đến khối lệnh nào thì ưu tiên sử
dụng biến được khai báo trong khối lệnh đó.

16

Mã hóa


Ví dụ:
Int x;
void main()
{
int a =5, b = 2;
{
int a = 4;
b = a+b;
printf(“\n In trong khối 2: a = %d, b = %d, x = %d” , a, b, x);
}
printf(“\n In trong khối 1: a = %d, b = %d, x = %d“, a, b, x);
}
17

Mã hóa


III- Các Phép Toán

18

Mã hóa


1- Các phép toán số học 2 ngôi:
(Arithmetic Operators)



Nhân

Chia

Lấy dư

Cộng

Trừ

*

/

%

+

-

Phép chia trên 2 số nguyên cho kết quả là 1 số nguyên, cắt bỏ phần
thập phân không làm tròn số.
Ví dụ: 19 / 5 = 3 cắt bỏ 0.8



Phép chia lấy phần dư chỉ được dùng trên 2 toán hạng kiểu số
nguyên (nếu không sẽ sinh lỗi cú pháp)
Ví dụ: 19 % 5 = 4



Thứ tự thực hiện các toán tử trong một biểu thức tương tự như
trong Pascal
Ví dụ:

19

Mã hóa


2- Phép toán tăng hay giảm giá trị
của biến một đơn vị:
• Phép toán tăng (++) : ++biến; biến++;
Ví dụ:

++n; hay n++

• Phép toán giảm (--):
Ví dụ:

<==> n = n+1;

--biến; biến--;

--n; hay n--;

<==> n = n -1;

Trường hợp sử dụng toán tử này trong một biểu thức thì việc
đặt trước hay sau sẽ ảnh hưởng đến kết quả bài toán:
• Đặt trước: để thay đổi giá trị cho n trước khi sử dụng n
• Đặt sau: để thay đổi giá trị cho n sau khi sử dụng n xong.
Ví dụ: Với n = 4.

Lệnh x = ++n; <==> n = n + 1; x = n;
Lệnh x = n++; <==> x = n; n = n + 1;
20

Mã hóa


3- Phép toán gán rút gọn và biểu thức gán:
• Phép gán rút gọn:

biến pt= biểu thức;
<==>biến = biến pt biểuthức

Trong đó, pt là các phép toán số học: +, -, *, /, %
Ví dụ: a = a + 2;

<==> a += 2;

a = a*(b-c); <==> a *= b-c;
• Biểu thức gán: (biến = biểuthức)
Giá trị của biểu thức gán là giá trị của biến sau khi gán
Ví dụ:

a = b = 5;

<==> a = 5; b = 5;

x = (a = 2) * (b = 3); <==> a = 2; b = 3; x = a * b ;
21

Mã hóa


4- Phép toán chuyển đổi kiểu dữ liệu:
(tênkiểu) Biểuthức
• Phép chuyển kiểu cho ra giá trị thuộc kiểu chỉ định.
• Bản thân của biểu thức thì không thay đổi kiểu.
Ví dụ 1: Đổi số thực sang số nguyên có làm tròn số
int a; float x;
a = (int)( x + 0.5);
Ví dụ 2: x1 và x2 bằng bao nhiêu ?
int a = 5, b = 2; float x1, x2;
x1 = (float) a / b;
x2 = a / b;
22

Mã hóa


5- Các phép toán quan hệ:
(Ralational operators)



Bằng

Khác

Lớn hơn

Nhỏ hơn

==

!=

>

<

Lớn hơn
Nhỏ hơn
hoặc bằng hoặc bằng

>=

<=

Phép toán so sánh có độ ưu tiên thấp hơn so với các phép toán số học.
Ví dụ: a < b + c <==> a < (b + c)

Chú ý


C không có kiểu Boolean như Pascal, mà xem:
Số <> 0 là True;
Số = 0 là False.



Các phép toán quan hệ cho kết quả là 1 nếu đúng và là 0 nếu sai.
23

Mã hóa


6- Các phép toán logic:
(logical operators)
Phép toán
Phép phủ định
Phép Tuyển
Phép Hội

Ký hiệu
!
&&
||

Ví dụ
!A
A && B
A || B



Các phép toán logic cho kết quả là 1 nếu đúng và là 0
nếu sai.



Độ ưu tiên: Các phép toán quan hệ có độ ưu tiên nhỏ
hơn phép phủ định nhưng lớn hơn phép && và ||.
Ví dụ:

a < b && c > d

<==>

24

(a < b) && (c > d)

Mã hóa


7- Biểu thức dấu chấm hỏi :
(điều kiện) ? : ;
Nếu <điều kiện> đúng thì trả về giá trị của ;
ngược lại trả về giá trị của
Ví dụ: Tìm số lớn nhất trong 2 số bất kỳ nhập từ bàn phím.
void main()
{ float a, b, c;
printf(“\n Nhập số thứ nhất: “); scanf(“%f”,&a);
printf(“\n Nhập số thứ hai : “); scanf(“%f”,&b);
c = (a > b) ? a : b;
printf(“\n Số lớn nhất là : %f “, c);
}
25

Mã hóa


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay

×