NMLT
M
U
Tr n Ph
c Tu n
ng bài gi ng
M c tiêu môn h c: Cung c p cho sinh viên các k
ng c
b n l p trình gi i quy t các v n , bài toán. Các ch ng
trình
c th hi n b ng NNLT C. Riêng v ngôn ng l p
trình C, các sinh viên
c cung c p các k
ng:
c và vi t
c ch ng trình n gi n
Hi u c u trúc ngôn ng
S d ng thành th o các th vi n chu n
Nh n bi t và s a ch a các l i th ng g p khi l p trình
Các môn h c tiên quy t: không.
N i dung bài gi ng:
NH P MÔN L P TRÌNH
12/23/2009
2
N i dung môn h c
T ng quan
Các ki u d li u c b n
L nh nh p, xu t d li u
Các c u trúc i u khi n
Hà m
Struct
M ng
Con tr
Chu i ký t
NH P MÔN L P TRÌNH
12/23/2009
3
T ng quan
Khái ni m ch
ng trình – l p trình
C u trúc m t ch
ng trình
n gi n
Khái ni m Thu t toán – bi u di n thu t toán
Khái ni m NNLT,
l
c l ch s phát tri n NNLT
Ngôn ng l p trình C
NH P MÔN L P TRÌNH
12/23/2009
4
Các thành ph n
c a ch ng trình C
Ví d ch
ng trình C
Th
Ghi chú
chú
vi n nh p xu t chu n
/*VIDU.CPP*/
/*VIDU.CPP*/
#include
#include <stdio.h>
<stdio.h>
Hàm main
int
int main()
main()
{{
printf(“Nhap
printf(“Nhap mon
mon lap
lap trinh\n");
trinh\n");
printf(“Vi
du
don
gian\n");
printf(“Vi du don gian\n");
return
return 0;
0;
}}
Nhap
Nhap mon
mon lap
lap trinh
trinh
Vi
du
don
gian
Vi du don gian
Báo CT k t thúc cho H H
NH P MÔN L P TRÌNH
12/23/2009
6
M ts
Ph n ghi chú
u ý t ví d
c trình biên d ch b qua
Phân bi t ch in hoa và ch in th
ng
Câu l nh luôn
c k t thúc b ng d u ;
Chu i ký t ph i ghi gi a c p nháy kép “
In xu ng dòng dùng ký t \n
Ch ng trì
trình nên thông bá
báo k t qu th c hi n v i h
th ng: T t – 0, có l i – 1, 2, 3 …
Ch
ng trình có m t hàm main
NH P MÔN L P TRÌNH
12/23/2009
7
Ví d 2
Khai báo 2 bi n s
nguyên, “a” và “b”
#include
#include <stdio.h>
<stdio.h>
int
int main(void)
main(void)
{{
int
int a,
a, b;
b;
Nh p 2 s nguyên
vào a và b
printf(“Nhap
printf(“Nhap 22 so
so ngguyen:
ngguyen: ");
");
scanf("%i
%i",
&a,
&b);
scanf("%i %i", &a, &b);
printf("%i
printf("%i -- %i
%i == %i\n",
%i\n", a,
a, b,
b, aa -- b);
b);
Vi t các bi u th c “a”,
“b” và “a-b” theo nh }}
ng %i
NH P MÔN L P TRÌNH
return
return 0;
0;
Nhap
Nhap 22 so
so nguyen:
nguyen: 21
21 17
17
21
21 -- 17
17 == 44
12/23/2009
8
Bi n – Variable
int a, b;
Ch a d li u có th thay
i
c trong ch
ng trình.
Mu n s d ng ph i khai báo.
Tên: g m ch cái, ký s , d u n i (_), không
u b ng ký s .
cb t
Bi n khai báo trong kh i
c g i là bi n c c b ,
không thu c kh i nào
c g i là bi n toàn c c
Có tác d ng trong toàn kh i k t lúc
NH P MÔN L P TRÌNH
c khai báo.
12/23/2009
9
L nh xu t - printf
Xu t d li u ra màn hình:
printf("%i - %i = %i\n", a, b, a - b);
Các ký t h ng
c in nguyên v n
Các ký t
nh d ng
th c t ng ng:
%i: ký t
c thay b ng giá tr c a bi u
nh d ng s nguyên ki u int
Các ký t i u khi n: \n – xu ng dòng; \t – d u tab;
\\ – d u \; \“– d u “ …
Th vi n: stdio.h
NH P MÔN L P TRÌNH
12/23/2009
10
L nh nh p - scanf
Nh p d li u t bàn phím
scanf("%i %i", &a, &b);
Trong chu i nh d ng ch có ký t
kho ng tr ng.
D li u ph i
nh d ng và
c nh p vào các bi n.
Tr c tên bi n ph i ghi d u & - toán t
a ch . N u
không có toán t
a ch , giá tr c a bi n s không
c c p nh t
Th vi n: stdio.h
NH P MÔN L P TRÌNH
12/23/2009
Ki u d li u c s
trong C
11
Các ki u s nguyên c a C
C h tr khá nhi u ki u s nguyên
Các giá tr l n nh t và nh nh t
vi n “limits.h”
c
nh ngh a trong th
Ki u
nh d ng kích th c nh nh t
l n nh t
char
%c
1
CHAR_MIN CHAR_MAX
unsigned char %c
1
0
UCHAR_MAX
short [int]
%hi
2
SHRT_MIN SHRT_MAX
unsigned short%hu
2
0
USHRT_MAX
int
%i
2 or 4 INT_MIN INT_MAX
unsigned int
%u
2 or 4
0
UINT_MAX
long [int]
%li
4
LONG_MIN LONG_MAX
unsigned long %lu
4
0
ULONG_MAX
NH P MÔN L P TRÌNH
12/23/2009
13
Ví d v s nguyên
#include
#include
#include
#include
<stdio.h>
<stdio.h>
<limits.h>
<limits.h>
int
int main()
main()
{{
unsigned
unsigned long
long
big
big == ULONG_MAX;
ULONG_MAX;
printf("minimum
printf("minimum int
int == %i,
%i, ",
", INT_MIN);
INT_MIN);
printf("maximum
int
=
%i\n",
INT_MAX);
printf("maximum int = %i\n", INT_MAX);
printf("maximum
printf("maximum unsigned
unsigned == %u\n",
%u\n", UINT_MAX);
UINT_MAX);
printf("maximum
long
int
=
%li\n",
printf("maximum long int = %li\n", LONG_MAX);
LONG_MAX);
printf("maximum
printf("maximum unsigned
unsigned long
long == %lu\n",
%lu\n", big);
big);
return
return 0;
0;
}}
NH P MÔN L P TRÌNH
minimum
minimum int
int == -32768,
-32768, maximum
maximum int
int == 32767
32767
maximum
unsigned
=
65535
maximum unsigned = 65535
maximum
maximum long
long int
int == 2147483647
2147483647
maximum
maximum unsigned
unsigned long
long == 4294967295
4294967295
12/23/2009
14
Ví d ki u ký t
In ra mã ASCII c a ký t
#include
#include
#include
#include
<stdio.h>
<stdio.h>
<limits.h>
<limits.h>
int
int main()
main()
{{
char
char lower_a
lower_a == 'a';
'a';
char
lower_m
=
'm';
char lower_m = 'm';
Trong NNLT C, ký t
chính là s nguyên
printf("minimum
printf("minimum char
char == %i,
%i, ",
", CHAR_MIN);
CHAR_MIN);
printf("maximum
char
=
%i\n",
CHAR_MAX);
printf("maximum char = %i\n", CHAR_MAX);
printf(“Sau
printf(“Sau '%c'
'%c' la
la '%c'\n",
'%c'\n", lower_a,
lower_a, lower_a
lower_a ++ 1);
1);
printf(“Ky
tu
in
hoa
'%c'\n",
lower_m
'a'
+
'A');
printf(“Ky tu in hoa '%c'\n", lower_m - 'a' + 'A');
return
return 0;
0;
}}
minimum
minimum char
char == -128,
-128, maximum
maximum char
char == 127
127
Sau
'a'
la
'b'
Sau 'a' la 'b'
Ky
Ky tu
tu in
in hoa
hoa 'M'
'M'
NH P MÔN L P TRÌNH
15
12/23/2009
S nguyên trong các c s khác
Các h
s có th th c hi n
c:
10 (decimal), s 16 (hexadecimal)
s 8 (octal),
0: s octal
s
0x: s
hexadecimal
#include
#include <stdio.h>
<stdio.h>
int
int main(void)
main(void)
{{
int
int dec
dec == 20,
20, oct
oct == 020,
020, hex
hex == 0x20;
0x20;
printf("dec=%d,
printf("dec=%d, oct=%d,
oct=%d,
printf("dec=%d,
oct=%o,
printf("dec=%d, oct=%o,
return
return 0;
0;
}}
NH P MÔN L P TRÌNH
hex=%d\n",
hex=%d\n", dec,
dec, oct,
oct,
hex=%x\n",
dec,
oct,
hex=%x\n", dec, oct,
dec=20,
dec=20, oct=16,
oct=16,
dec=20,
oct=20,
dec=20, oct=20,
12/23/2009
hex);
hex);
hex);
hex);
hex=32
hex=32
hex=20
hex=20
16
S th c
C h tr nhi u ki u s th c l u tr d u ch m ng.
Các giá tr l n nh t và nh nh t
c nh ngh a trong th vi n
“float.h”
Ki u
nh d ng
kích th
float
%f %e %g
4
double
%lf %le %lg
8
long double %Lf %Le %Lg
10
NH P MÔN L P TRÌNH
c nh nh t
n nh t
FLT_MIN
FLT_MAX
DBL_MIN
DBL_MAX
LDBL_MIN
LDBL_MAX
17
12/23/2009
Ví d s th c:
#include
#include
#include
#include
<stdio.h>
<stdio.h>
<float.h>
<float.h>
int
int main(void)
main(void)
{{
double
double ff == 3.1416,
3.1416, gg == 1.2e-5,
1.2e-5, hh == 5000000000.0;
5000000000.0;
printf("f=%lf\tg=%lf\th=%lf\n",
printf("f=%lf\tg=%lf\th=%lf\n", f,
f, g,
g, h);
h);
printf("f=%le\tg=%le\th=%le\n",
f,
g,
h);
printf("f=%le\tg=%le\th=%le\n", f, g, h);
printf("f=%lg\tg=%lg\th=%lg\n",
printf("f=%lg\tg=%lg\th=%lg\n", f,
f, g,
g, h);
h);
printf("f=%7.2lf\tg=%.2le\th=%.4lg\n",
printf("f=%7.2lf\tg=%.2le\th=%.4lg\n", f,
f, g,
g, h);
h);
return
return 0;
0;
}} f=3.141600
f=3.141600
f=3.141600e+00
f=3.141600e+00
f=3.1416
f=3.1416
f=
3.14
f=
3.14
NH P MÔN L P TRÌNH
g=0.000012
g=0.000012
g=1.200000e-05
g=1.200000e-05
g=1.2e-05
g=1.2e-05
g=1.20e-05
g=1.20e-05
12/23/2009
h=5000000000.000000
h=5000000000.000000
h=5.000000e+09
h=5.000000e+09
h=5e+09
h=5e+09
h=5e+09
h=5e+09
18
H ng – Constant
const int days_in_week = 7;
Ch a d li u không th thay
i
c trong ch
ng trình.
Mu n s d ng ph i khai bá
báo.
Ph i có ki u ( ng t nh bi n)
H ng s có ch a “.” ho c “e” có ki u double (3.5, 1e1e-7, -1.29e15)
H ng s ki u float k t thú
thúc b i “F” (3.5F, 1e1e-7F)
H ng s ki u long double
double k t thú
thúc b i “L” (-1.29e15L, 1e1e-7L)
H ng s không có
có “.”, “e” ho c “F” có ki u int. Ví d : 10000, -35.
(M t và
ng chuy n thà
vài trì
trình biên d ch t
thành long int n u giá
giá tr
h ng tràn ki u int)
Khai bá
báo h ng long int ph i thêm và
vào cu i “L” (9000000L)
NH P MÔN L P TRÌNH
12/23/2009
19
Ví d v h ng
Các h ng pi, days_in_week, sunday
c t o v i t khóa const
#include
#include <stdio.h>
<stdio.h>
L i
int
intmain(void)
main(void)
{{
const
const long
long double
double pi
pi == 3.141592653590L;
3.141592653590L;
const
const int
int days_in_week
days_in_week == 7;
7;
const
const sunday
sunday == 0;
0;
days_in_week
days_in_week == 5;
5;
return
return 0;
0;
}}
NH P MÔN L P TRÌNH
12/23/2009
20
H ng x lý tr
c biên d ch
Các h ng có th
c xác l p tr c khi biên d ch
B n ch t là tìm ki m và thay th
Th ng
c t tên v i các ch cái in hoa
Tìm t “PI”, thay b ng 3.1415....
#include
#include <stdio.h>
<stdio.h>
#define
#definePI
PI
#define
DAYS_IN_WEEK
#define DAYS_IN_WEEK
#define
#defineSUNDAY
SUNDAY
3.141592653590L
3.141592653590L
77
00
u ý: không
có “=” và “;”
int
int day
day == SUNDAY;
SUNDAY;
long
long flag
flag == USE_API;
USE_API;
Không thay th “PI”
NH P MÔN L P TRÌNH
12/23/2009
Toán t trong C
21
Toán t trong C
Phé
Phép toá
toán s h c
Ép ki u
Các toán t trên bit
Các toán t so sánh
Phép gán
Toá
Toán t sizeof
Bi u th c i u ki n
NH P MÔN L P TRÌNH
12/23/2009
23
Toán t s h c
NNLT C h tr các phép toán s h c:
+
c ng
tr
*
nhân
/
chia
%
chia l y d
u ý:
ý:
“/” cho k t qu ph thu c vào ki u c a các toán h ng
“%” không th c hi n
c v i các s th c
NH P MÔN L P TRÌNH
12/23/2009
24
Ví d v toán t chia “/”
Trình biên d ch d a vào ki u c a các toán h ng
nh phép chia t ng ng
“i”, “j” ki u int, “/” là
phép chia l y nguyên
k nh n giá tr 1
int
int main(void)
main(void)
{{
int
ii == 5,
int
5,
double
f
=
5.0,
double f = 5.0,
“f”, “g” ki u double, “/”
là phép chia s th c
h nh n giá tr 1.25
Phép chia nguyên, b t
“h” có ki u double.
t qu là 1.00000
kk
hh
hh
==
==
==
ii
ff
ii
//
//
//
jj
gg
==
==
quy t
4,
4,
4.0,
4.0,
k;
k;
h;
h;
j;
j;
g;
g;
j;
j;
return
return 0;
0;
}}
NH P MÔN L P TRÌNH
12/23/2009
25
Ép ki u
Ép ki u làm thay
bi u th c.
i t m th i ki u c a m t bi n trong m t
int
int main(void)
main(void)
{{
int
int ii == 5,
5, jj == 4;
4;
double
f;
double f;
ff
ff
ff
ff
Phép chia s nguyên
c th c hi n, k t
qu , 1,
c i sang
ki u double, 1.00000
==
==
==
==
(double)i
(double)i // j;
j;
ii // (double)j;
(double)j;
(double)i
(double)i // (double)j;
(double)j;
(double)(i
(double)(i // j);
j);
return
return 0;
0;
}}
NH P MÔN L P TRÌNH
12/23/2009
26
Phép t ng (gi m) 1
NNLT C có
c bi t h tr vi c t ng (gi m) giá
có 2 toá
toán t
giá tr
c a m t bi n thay i 1 n v
++
--
ng 1
gi m 1
Các toán t này có th
“i”
“j”
t tr
6
3
“i”
7
NH P MÔN L P TRÌNH
Tr
c ho c sau bi n.
int
int ii == 5,
5, jj == 4;
4;
ii ++;
++;
--- j;
j;
++
++ i;
i;
27
12/23/2009
c hay sau ?
Th t th c hi n các toán t ++ và -- ph thu c vào v trí c a
chúng (t c hay sau) so v i bi n:
#include
#include <stdio.h>
<stdio.h>
int
intmain(void)
main(void)
{{
int
i,
int
i, jj == 5;
5;
ii == ++j;
++j;
printf("i=%d,
printf("i=%d, j=%d\n",
j=%d\n",
jj == 5;
5;
ii == j++;
j++;
printf("i=%d,
printf("i=%d, j=%d\n",
j=%d\n",
return
return 0;
0;
}}
NH P MÔN L P TRÌNH
ng
1. j++;
2. i = j;
i,
i, j);
j);
ng
1. i = j;
2. j++;
ng:
ng:
i,
i, j);
j);
i=6,
i=6,
i=5,
i=5,
12/23/2009
j=6
j=6
j=6
j=6
28
Ki u lu n lý trong C
Trong C không có ki u d li u lu n lý (th hi n các
giá tr ÚNG – SAI), thay vào ó các bi u th c so
sánh s cho k t qu là S
Giá tr 0 (0.0) ng v i k t qu SAI (FALSE)
Các giá
giá tr khá
khác nh 1, -3.5, -7, 10.4, … (khá
(khác không)
u
c xem là ÚNG (TRUE)
NH P MÔN L P TRÌNH
12/23/2009
29
Các toán t so sánh
NNLT C h tr các phé
phép so sá
sánh:
<
<=
>
>=
==
!=
bé n
bé n hay b ng
l nh n
l n h n hay b ng
b ng
không b ng
T t c
u cho k t qu 1 khi so sánh úng và 0 trong
tr ng h p ng c l i.
NH P MÔN L P TRÌNH
12/23/2009
30
Toán t lu n lý
NNLT C h tr các toá
toán t lu n lý:
&&
||
!
và (and)
ho c (or)
ph
nh (not)
T tc
u cho k t qu 1 ho c 0
ÚNG ho c SAI
ng ng các tr
ng h p
int
int i,
i, jj == 10,
10, kk == 28;
28;
ii == ((j
((j >> 5)
5) &&
&& (k
(k << 100))
100)) ||
|| (k
(k >> 24);
24);
NH P MÔN L P TRÌNH
31
12/23/2009
Toán t lu n lý
u ý khi s d ng cá
các toá
toán t lu n lý:
N u không có
có các d u (), cá
các phé
phép toá
toán
trái sang ph i
c th c hi n t
if((i
if(i
10)
&&
a[i]
(a[i]
>> 0)
>> 0))
if((i<<<<10
10)
&&
(a[i]
0))
if(i
10
&&&&
a[i]
0)
printf("%i\n",
printf("%i\n", a[i]);
a[i]);
Nên vi t
“i < 10”
c ki m tra tr c, n u không úng giá tr
a bi u th c s là 0 và “a[i] > 0” s không
c tính
Không
Không nên:(a
nên:(a << bb << c)
c)
NH P MÔN L P TRÌNH
Nên:((a
Nên:((a << b)
b) &&
&& (b<
(b< c)
c)
12/23/2009
32
Toán t trên bit
Các toán t trên bit ch có tác d ng trên các ki u s nguyên:
&
|
^
>>
<<
And
Or
XOr
y ph i
y trái
NH P MÔN L P TRÌNH
12/23/2009
33
Ví d v các toán t trên bit
#include
#include <stdio.h>
<stdio.h>
0x6eb9
0x6eb9 0110
0110 1110
1110 1011
1011 1001
1001
0x5d27
0101
1101
0010
0x5d27 0101 1101 0010 0111
0111
0x4c21
0100
1100
0010
0001
0x4c21 0100 1100 0010 0001
int
int main(void)
main(void)
{{
short
short aa == 0x6eb9;
0x6eb9;
short
b
=
0x5d27;
short b = 0x5d27;
unsigned
unsigned short
short cc == 7097;
7097;
0x6eb9
0x6eb9 0110
0110 1110
1110 1011
1011 1001
1001
0x5d27
0101
1101
0010
0111
0x5d27 0101 1101 0010 0111
0x7fbf
0x7fbf 0111
0111 1111
1111 1011
1011 1111
1111
0x6eb9
0x6eb9 0110
0110 1110
1110 1011
1011 1001
1001
0x5d27
0101
1101
0010
0111
0x5d27 0101 1101 0010 0111
0x339e
0x339e 0011
0011 0011
0011 1001
1001 1110
1110
printf("0x%x,
printf("0x%x, ",
", aa && b);
b);
printf("0x%x,
",
a
|
b);
printf("0x%x, ", a | b);
printf("0x%x\n",
printf("0x%x\n", aa ^^ b);
b);
printf("%u,
printf("%u, ",
", cc <<
<< 2);
2);
printf("%u\n",
c
>>
1);
printf("%u\n", c >> 1);
7097
7097 0001
0001 1011
1011 1011
1011 1001
1001
28388
0110
1110
1110
0100
28388 0110 1110 1110 0100
return
return 0;
0;
}}
0x4c21,
0x4c21, 0x7fbf,
0x7fbf, 0x339e
0x339e
28388,
3548
28388, 3548
NH P MÔN L P TRÌNH
7097
7097 0001
0001 1011
1011 1011
1011 1001
1001
3548
0000
1101
1101
1100
3548 0000 1101 1101 1100
12/23/2009
34
Phép gán
Có th s d ng liên ti p nhi u phép gán
Giá tr
c gán s s n sàng cho l nh k ti p
“n = 22” gán tr c, l i
gán “n” cho “m”, “m”
cho “l”, …
i, j, k, l, m,
n u nh n giá tr 22.
int
int i,
i, j,
j, k,
k, l,
l, m,
m, n;
n;
ii == jj == kk == ll == mm == nn == 22;
22;
printf("%i\n",
printf("%i\n", jj == 93);
93);
“j”
NH P MÔN L P TRÌNH
c gán 93, giá tr 93 s
c in ra màn hình
12/23/2009
35
Phép gán
u ý:
V trái phép gán luôn ph i là bi n
Không
c nh m l n gi a so sánh b ng “==” và gán “=”
#include
#include <stdio.h>
<stdio.h>
int
int main(void)
main(void)
{{
int
int ii == 0;
0;
if(i
if(i == 0)
0)
printf("i
printf("i
else
else
printf(“i
printf(“i
ii khac
khac khong
khong
nhan
nhan gia
gia tri
tri khong\n");
khong\n");
khac
khac khong\n");
khong\n");
return
return 0;
0;
}
}
NH P MÔN L P TRÌNH
12/23/2009
36
M t s phép gán
c bi t
Các phép gán k t h p toán t khác:
+=
-=
*=
/=
&=
|=
^=
<<=
>>=
T ng quá
quát:
bi n
op=
%=
bi u th c
ng
ng:
bi n = bi n op (bi u th c)
aa +=
+= 27;
27;
aa == aa ++ 27;
27;
ff /=
ii *=
/= 9.2;
9.2;
*= jj ++ 2;
2;
ff == ff // 9.2;
ii == ii ** (j
9.2;
(j ++ 2);
2);
NH P MÔN L P TRÌNH
37
12/23/2009
Toán t sizeof
sizeof(Obj)
Cho bi t kích th
cc a
it
ng theo
n v byte
#include
#include <stdio.h>
<stdio.h>
int
int main(void)
main(void)
{{
long
long big;
big;
printf("\"big\"
printf("\"big\" is
is %u
%u bytes\n",
bytes\n", sizeof(big));
sizeof(big));
printf("a
short
is
%u
bytes\n",
sizeof(short));
printf("a short is %u bytes\n", sizeof(short));
printf("a
printf("a double
double is
is %u
%u bytes\n",
bytes\n", sizeof
sizeof (double));
(double));
return
return 0;
0;
}}
NH P MÔN L P TRÌNH
"big"
"big" is
is 44 bytes
bytes
aa short
short is
is 22 bytes
bytes
aa double
is
8
double is 8 bytes
bytes
12/23/2009
38
Bi u th c ch n theo i u ki n
( i u ki n) ? BT1 : BT2
Bi u th c nh n giá tr BT1 n u i u ki n khác 0 ( ÚNG),
các tr ng h p khác nh n giá tr BT2
int
int i,
i, jj == 100,
100, kk == -1;
-1;
int
int i,
i, jj == 100,
100, kk == -1;
-1;
ii == (j
(j >> k)
k) ?? jj :: k;
k;
ii == (j
(j << k)
k) ?? jj :: k;
k;
uu (j
(j << k)
k)
ii == j;
j;
Ng
c
l
i
Ng c l i
ii == k;
k;
uu (j
(j >> k)
k)
ii == j;
j;
Ng
c
l
i
Ng c l i
ii == k;
k;
Có th nh ngh a s n m t macro tìm s l n:
#define max(x, y) ((x>y) ? x : y)
NH P MÔN L P TRÌNH
39
12/23/2009
u tiên c a toán t
Th t th c hi n các toán t trong m t bi u th c ph thu c
vào
u tiên c a chúng.
Có 15 m c u tiên.
Thông th ng, toán t m t ngôi có
u tiên cao h n toán
t hai ngôi.
Các c p d u ngo c n () t
ng
c dùng ch rõ th t
các toán t .
#include
#include <stdio.h>
<stdio.h>
int
int main(void)
main(void)
{{
int
int jj == 33 ** 44 ++ 48
48 // 7;
7;
printf("j
printf("j == %i\n",
%i\n", j);
j);
return
return 0;
0;
NH P MÔN L P TRÌNH
}}
12/23/2009
jj == 18
18
40
B ng th t th c hi n các toán t
Toán t
Th
() [] -> .
! ++ -- - + (cast) * & sizeof
* / %
+ << >>
< <= >= >
== !=
&
|
^
&&
||
?:
= += -= *= /= %= …
NH P MÔN L P TRÌNH
(n u cùng
T)
41
12/23/2009
Luy n t p
#include
#include <stdio.h>
<stdio.h>
int
int main(void)
main(void)
{{
int
int ii == 0,
0, j,
j, kk ==
jj == mm +=
+= 2;
2;
printf("j
printf("j == %d\n",
%d\n",
jj == k++
>
7;
k++ > 7;
printf("j
printf("j == %d\n",
%d\n",
jj == ii ==
0
&
== 0 & k;
k;
printf("j
=
%d\n",
printf("j = %d\n",
nn == !i
!i >> kk >>
>> 2;
2;
printf("n
=
%d\n",
printf("n = %d\n",
return
return 0;
0;
}}
NH P MÔN L P TRÌNH
12/23/2009
7,
7, mm == 5,
5, n;
n;
j);
j);
j);
j);
j);
j);
n);
n);
42
Tóm l
c
M t s thành ph n c a ch ng trình trong C
Hàm main
L nh xu t / nh p – printf / scanf
Bi n
Các ki u s nguyên và s th c
H ng – 2 cách khai báo
S d ng toá
toán t trong C
NH P MÔN L P TRÌNH
12/23/2009
43