You are on page 1of 27

Chæång 1

caïc yãúu täú cå baín cuía ngän ngæî C

1.1 MÄÜT VÊ DUÛ MÅÍ ÂÁÖU


Xem xeït âoaûn chæång trçnh sau:
#include <stdio.h>
main()
{
printf("Chaìo mæìng baûn âãún våïi NNLT C!\n");
getch();
return 0;
}
Giaíi thêch så bäü yï nghéa tæìng cáu lãûnh :
- Doìng lãûnh âáöu tiãn #include <stdio.h> duìng âãø måí mäüt file dáùn
hæåïng stdio.h trong âoï coï caìi âàût caïc haìm nháûp xuáút maì (åí âáy laì
haìm printf), doìng lãûnh naìy âæåüc goüi laì doìng lãûnh tiãön xæí lyï. Cuäúi
doìng lãûnh naìy khäng coï dáúu cháúm pháøy.
- Doìng lãûnh main() : Duìng âãø khai baïo bàõt âáöu khäúi chæång trçnh
chênh. Moüi chæång trçnh trong C bàõt buäüc phaíi coï mäüt haìm main().
Cuäúi doìng lãûnh naìy khäng coï dáúu cháúm pháøy.
- Càûp dáúu ngoàûc { } coï taïc duûng giåïi haûn khäúi lãûnh (tæång tæû Begin
...End cuía ngän ngæî Pascal), sau } cuîng khäng coï dáúu cháúm pháøy.
- Doìng lãûnh printf("Chaìo mæìng baûn âãún våïi NNLT C!\n");
nhàòm muûc âêch in ra maìn hçnh doìng chæî Chaìo mæìng baûn âãún våïi
NNLT C!.Haìm printf() duìng âãø in dæî liãûu nàòm trong càûp dáúu ngoàûc ra
thiãút bë xuáút (åí âáy laì maìn hçnh), haìm naìy âaî âæåüc caìi sàôn trong file
stdio.h
- Doìng lãûnh getch() coï taïc duûng dæìng maìn hçnh âãø xem kãút quaí,
tæång tæû cáu lãûnh readln cuía Pascal. Nãúu khäng coï cáu lãûnh naìy thç sau
khi thæûc hiãûn chæång trçnh seî traí vãö maìn hçnh soaûn thaío, muäún xem
kãút quaí ta báúm täø håüp phêm Alt-F5
- Doìng lãûnh return 0; coï thãø coï hoàûc khäng duìng âãø kãút thuïc vaì traí
giaï trë vãö cho haìm.
Ta coï thãø âæa ra mäüt cáúu truïc chung cuía mäüt chæång trçnh C laì :
[ Caïc lãûnh tiãön xæí lyï ]
[ Caïc khai baïo baïo kiãøu, hàòng, biãún, haìm ]
[ Caïc âënh nghéa haìm ]
main ([âäúi säú doìng lãûnh])

Giaïo Trçnh Ngän Ngæî Láûp Trçnh C 7


Chæång 1, Nhæîng thaình pháön cå baín cuía C

{
[ caïc khai baïo ]
<Caïc cáu lãûnh>
}
[ Âënh nghéa haìm ]

1.2 BÄÜ KYÏ TÆÛ VAÌ TÆÌ KHOÏA


1.2.1 BÄÜ KYÏ TÆÛ
Ngän ngæî láûp trçnh C âæåüc xáy dæûnhg trãn bäü kyï tæû sau:
 Chæî caïi: Gäöm 26 chæî caïi thæåìng a, b, ..., z vaì 26 chæî caïi in
hoa A, B, C, ..., Z.
 Chæî säú: Gäöm 10 chæî säú 0, 1, 2, ..., 9
 Kyï hiãûu: laì toaìn bäü caïc kyï hiãûu hiãûn coï trãn baìn phêm nhæ: _
% & ( ) + - * / { } , ‘ “ < > ! ~ ...

1.2.2 TÆÌ KHOÏA


Tæì khoïa laì nhæîng tæì coï mäüt yï nghéa hoaìn toaìn xaïc âënh, caïc tæì
khoïa cuía C phaíi âæåüc viãút chæî thæåìng. Sau âáy laì caïc tæì khoïa cuía
Turbo C :
Asm break case cdecl
char const continue default
Do double else enum
extern far float for
goto huge if int
long near pascal register
return short static struct
signed sizeof switch typedef
union unsigned void volatile
while

1.3 LÅÌI CHUÏ THÊCH (COMMENT)


Caïc chuï thêch trong C âæåüc âàût trong càûp dáúu /* .... */. Doìng chuï thêch
coï thãø trãn nhiãöu doìng.
Vê duû: /* Bàõt âáöu làûp */
Trong C++ coï thãø duìng hai dáúu // âãø taûo chuï thêch trãn tæìng doìng.
Vê duû: // Bàõt âáöu làûp
Khi gàûp caïc chuï thêch, C khäng dëch chuïng sang ngän ngæî maïy.

Giaïo Trçnh Ngän Ngæî Láûp Trçnh C 8


Chæång 1, Nhæîng thaình pháön cå baín cuía C

1.4 CAÏC KIÃØU DÆÎ LIÃÛU CÅ BAÍN (VÄ HÆÅÏNG)


1.4.1 KIÃØU char
Kiãøu char coï kêch thæåïc 1 byte (8 bit) vaì biãøu diãùn âæåüc 1 kyï tæû trong
baíng maî ASCII.
Coï hai kiãøu char laì signed char (char coï dáúu) vaì unsigned char (char
khäng dáúu). Kiãøu signed char biãøu diãùn mäüt säú nguyãn tæì -128 âãún
127 vaì unsigned char biãøu diãùn säú nguyãn coï giaï trë tæì 0 âãún 255.

1.4.2 KIÃØU NGUYÃN

Tãn kiãøu Kêch cåî (byte) Phaûm vi biãøu diãùn


int 2 -32,768 .. 32,767
short int 2 -32,768 .. 32,767
long (int) 4 -2,147,483,468 .. -2,147,483,467
unsigned int 2 0 .. 65,535
unsigned long (int) 4 0 .. 4,294,967,295

Âäúi våïi háöu hãút caïc ngän ngæî láûp trçnh, luän luän phán biãût giæîa dæî
liãûu kiãøu säú vaì kiãøu kyï tæû, 5 laì mäüt säú vaì A laì mäüt kyï tæû. Tháût
ra, cho duì kyï tæû hay säú âãöu âæåüc læu træî trong bäü nhåï maïy tênh âãöu
laì säú båíi vç mäùi mäüt kyï tæû âãöu coï mäüt maî duy nháút.
Trong C, viãûc phán biãût kyï tæû vaì säú chè laì mäüt caïch tæång âäúi, thæûc
ra khi C xem xeït kyï tæû laì xem xeït âãún maî ASCII cuía noï. char laì mäüt
kiãøu säú nguyãn mäüt byte, noï âæåüc duìng âãø læu træî væìa kyï tæû, væìa
säú nguyãn. Vê duû, sau khi ta khai baïo nhæ sau :
char c;
baûn coï thãø thæûc hiãûn caïc pheïp gaïn sau :
c = 'A';
c = 65;
Trong caïc chæång trçnh, âãø âoüc mäüt kyï tæû vaìo tæì thiãút bë thç trong
chuäùi âënh daûng cuía haìm scanf() ta duìng %c, cuîng tæång tæû váûy âäúi
våïi haìm printf(), nãúu duìng %d trong haìm printf() thç seî in ra maî ASCII
cuía kyï tæû âoï.
Vê duû:
1. #include <stdio.h>
main()
{
char c;
printf("Nháûp vaìo kyï tæû: ");
scanf("%c",&c);
printf("Maî ASCII cuía %c laì %d\n",c,c);
Giaïo Trçnh Ngän Ngæî Láûp Trçnh C 9
Chæång 1, Nhæîng thaình pháön cå baín cuía C

getch();
return 0;
}

2. #include <stdio.h>
main()
{
char c1, c2;
printf("Nháûp hai säú: ");
scanf("%d %c",&c1,&c2);
printf("Giaï trë säú cuía c1 laì %d\n",c1);
printf("Giaï trë säú cuía c2 laì %d\n",c2);
getch();
return 0;
}

1.4.3 KiãøU NGUYÃN


Tãn kiãøu Kêch cåî (byte) Phaûm vi biãøu diãùn
float 4 3.4E-38 .. 3.4E+38
double 8 1.7E-308 .. 1.7E+308
long double 10 3.4E-4932 .. 3.4E+4932

Kiãøu float coï âäü chênh xaïc laì 6 chæî säú sau dáúu cháúm tháûp phán
Kiãøu double coï âäü chênh xaïc laì 15 chæî säú sau dáúu cháúm tháûp phán.

1.5 KIÃØU LIÃÛT KÃ


Cuï phaïp: enum {<caïc_giaï_trë_liãût_kã>} <biãún>;
Vê duû: enum {red, blue, green, yellow } color;
enum {bright, medium, dark } intensity;
Caïc thaình pháön cuía kiãøu enum thæåìng âæåüc âaïnh säú tæì 0, kiãøu enum
coï kêch thæåïc laì 1 byte nhæ kiãøu nguyãn 1 byte..
Tuy nhiãn ta cuîng coï thãø xaïc âënh caïc giaï trë màûc nhiãn bàòng caïch âæa
caïc giaï trë træûc tiãúp vaìo khi khai baïo. Nãúu ta âæa vaìo mäüt giaï trë thç
caïc giaï trë tiãúp theo sau seî âæåüc tuáön tæû âaïnh tàng dáön.
Vê duû:
enum {APPLES, ORANGE = 10, LEMONS, GRAPES = -5, MELONS };
enum {APPLES = 0, ORANGE = 10, LEMONS = 11, GRAPES = -5,
MELONS = -4 };

1.6 KIÃØU DÆÎ LIÃÛU void

Giaïo Trçnh Ngän Ngæî Láûp Trçnh C 10


Chæång 1, Nhæîng thaình pháön cå baín cuía C

Kiãøu dæî liãûu void khäng coï trong tiãu chuáøn K&R, nhæng trong nhæîng
nàm gáön âáy noï âaî âæåüc cháúp nháûn trong ngän ngæî C.
Kiãøu void coï hai tênh cháút quan troüng, thæú nháút noï chè ra ràòng mäüt
haìm khäng traí vãö giaï trë. Vê duû, ta coï thãø âënh nghéa mäüt haìm nhæ sau
:
void func( int a, int b )
{
....
}
Khi sæí duûng ta chè viãûc thæûc hiãûn nhæ sau:
func( x, y )
Tênh cháút thæï hai cuía void laì âãø khai baïo cho mäüt con troí khäng kiãøu
maì ta seî xeït sau.

1.7 ÂËNH NGHÉA KIÃØU


C cho pheïp ta taûo caïc tãn cuía caïc kiãøu dæî liãûu cuía riãng ta våïi tæì
khoaï typedef.
Cuï phaïp: typedef <Tãn_kiãøu> <Tãn_kiãøu_âënh_nghéa>;
Vê duû: typedef long int FOUR_BYTE_INT;
Våïi âënh nghéa naìy thç caïc khai baïo sau laì giäúng nhau:
long int j;
FOUR_BYTE_INT j;

1.8 BIÃÚN
Biãún laì mäüt âaûi læåüng coï thãø biãøu diãùn nhiãöu giaï trë khaïc nhau
trong mäüt chæång trçnh. Chuïng âæåüc læu træî trong bäü nhåï åí mäüt âëa
chè naìo âoï.
1.8.1 TÃN BIÃÚN
Mäùi biãún khi sæí duûng trong chæång trçnh âãöu phaíi âæåüc âàût tãn theo
quy âënh nhæ sau:
 Tãn biãún laì mäüt daîy kyï tæû coï thãø gäöm: chæî caïi, chæî säú vaì
dáúu gaûch ngang dæåïi ( _ )
 Kyï tæû âáöu tiãn phaíi laì chæî caïi hoàûc kyï tæû _
Chuï yï:
- Khi âàût tãn biãún khäng âæåüc âàût truìng tãn våïi caïc tæì khoïa cuía C.
- Tãn biãún trong C coï sæû phán biãût giæîa chæî hoa vaì chæî thæåìng
Vê duû: aBc, abc hay ABC laì khaïc nhau

Giaïo Trçnh Ngän Ngæî Láûp Trçnh C 11


Chæång 1, Nhæîng thaình pháön cå baín cuía C

- Âäü daìi màûc âënh cuía tãn biãún laì 32.


- Caïc tãn hàòng, tãn maíng, tãn haìm, tãn kiãøu, tãn con troí,... âæåüc âàût
theo quy âënh cuía tãn biãún

 Âãø thuáûn tiãûn trong viãûc láûp trçnh, caïc tãn biãún chuïng ta nãn âàût
in thæåìng (lower_case), caïc tãn hàòng nãn âàût in hoa (UPPER_CASE), caïc
tãn kiãøu, tãn haìm nãn âàût theo daûng in hoa kyï tæû âáöu (Title_Case).

1.8.2 KHAI BAÏO BIÃÚN


Moüi biãún âãöu phaíi âæåüc khai baïo træåïc khi sæí duûng. Viãûc khai baïo
biãún thæûc hiãûn theo cuï phaïp sau âáy:
<Tãn_kiãøu_dæî liãûu> <Danh_saïch_biãún>;
Trong âoï:
<Tãn_kiãøu_dæî liãûu>: Tãn kiãøu dæî liãûu âaî nãu hoàûc tãn mäüt
kiãøu âaî âæåüc âënh nghéa laûi.
<Danh_saïch_biãún>: Nãúu coï nhiãöu biãún thuäüc cuìng mäüt kiãøu
dæî liãûu thç caïc biãún âæåüc ngàn caïch bàòng
dáúu pháøy ( , ).
Vê duû:
int j; /* khai baïo biãún j kiãøu nguyãn */
float x, y; /* khai baïo hai biãún x,y kiãøu thæûc*/

1.8.3 VË TRÊ ÂÆA CAÏC KHAI BAÏO BIÃÚN


Vë trê cuía caïc biãún trong chæång trçnh laì ráút quan troüng, ta coï caïc caïch
khai baïo vë trê cuía caïc biãún nhæ sau:

1.8.3.1 KHAI BAÏO NGOAÌI CAÏC HAÌM


Vë trê cuía caïc khai baïo biãún âàût bãn ngoaìi táút caí caïc haìm, luïc âoï caïc
biãún naìy seî taïc âäüng âãún toaìn bäü chæång trçnh.
Vê duû:
int a, b; /* a,b taïc âäüng âãún toaìn bäü chæång trçnh */
main()
{
...
a = a + b;
...
}

Giaïo Trçnh Ngän Ngæî Láûp Trçnh C 12


Chæång 1, Nhæîng thaình pháön cå baín cuía C

1.8.3.2 KHAI BAÏO TRONG CAÏC HAÌM


Caïc khai baïo biãún âàût ngay sau dáúu { âáöu tiãn cuía thán haìm vaì âæïng
træåïc caïc cáu lãûnh khaïc. Luïc âoï caïc biãún chè taïc âäüng bãn trong haìm
âoï.
Vê duû:
main()
{
int a, b; /* a,b chè taïc âäüng trong main */
a = 1;
int c, d; /* khai baïo sai vë trê */
...
}
Chuï yï: Coï thãø âàût caïc khai baïo biãún trong mäüt khäúi lãûnh ( { ... } ) åí
sau dáúu {. Luïc âoï caïc biãún chè hoaût âäüng trong khäúi âoï maì thäi.
Vê duû:
main()
{
int a, b; /* a,b chè taïc âäüng trong main */
a = b = 5;
{
int c, d;
c = 1;
d = 2;
}
...
}

1.8.3.3 KHÅÍI GAÏN GIAÏ TRË CHO CAÏC BIÃÚN


Trong khi khai baïo caïc biãún, chuïng ta cuîng coï thãø cho caïc biãún caïc giaï
trë. Thao taïc naìy goüi laì khåíi gaïn biãún, caïc giaï trë khåíi gaïn goüi laì caïc
giaï trë khåíi âäüng.
 Cuï phaïp âãø khåíi gaïn mäüt hay nhiãöu biãún laì:
<Tãn_kiãøu> <Tãn_biãún> = <Giaï_trë_khåíi_âäüng>;
Vê duû:
char c = 65; /* khåíi gaïn c laì 65 */
int a = 6, b = 7; /* khåíi gaïn cho a vaì b */
float x = 6.5, y; /* khåíi gaïn cho x */

1.8.3.4 LÁÚY ÂËA CHÈ BIÃÚN


Mäùi biãún khi âæåüc khai baïo seî âæåüc cáúp phaït mäüt vuìng nhåï, coï kêch
thæåïc laì kêch thæåïc cuía kiãøu, gäöm mäüt säú byte liãn tiãúp. Âãø láúy âëa

Giaïo Trçnh Ngän Ngæî Láûp Trçnh C 13


Chæång 1, Nhæîng thaình pháön cå baín cuía C

chè cuía biãún (tæïc laì âëa chè vuìng nhåï chæïa giaï trë cuía biãún) ta duìng
pheïp toaïn & , cuï phaïp nhæ sau :
&<tãn_biãún>
Pheïp toaïn láúy âëa chè thæåìng duìng âãø chuyãøn âëa chè cuía biãún cho
haìm scanf() âãø nháûp dæî liãûu tæì baìn phêm.

1.9 HÀÒNG
Hàòng laì mäüt âaûi læåüng maì giaï trë cuía noï khäng thay âäøi trong khi
thæûc hiãûn chæång trçnh.

1.9.1 HÀÒNG NGUYÃN


Laì säú nguyãn coï giaï trë trong khoaíng tæì -32768 âãún 32767.
Vê duû: 12 -34
 Hàòng tháûp phán: khäng bàõt âáöu bàòng con säú 0
 Hàòng baït phán: bàõt âáöu bàòng säú 0 våïi daûng nhæ sau: 0n1n2n3...,
trong âoï ni laì säú nguyãn trong khoaíng tæì 0 âãún 7.
Vê duû: const int i = 010; /* i = 8 */
 Hàòng tháûp luûc phán: hàòng bàõt âáöu bàòng 0x (0X), âæåüc viãút theo
daûng sau:
0xn1n2n3...
hay 0Xn1n2n3...
Trong âoï ni laì mäüt chæî säú tæì 0 âãún 9 hoàûc chæî caïi tæì a(A) âãún
f(F).
Vê duû: const int i = 0x10; /* i = 16 */
const int j = 0xFF; /* j = 255 */

1.9.2 HÀÒNG DÁÚU PHÁØY ÂÄÜNG


Caïc hàòng dáúu pháøy âäüng âæåüc viãút theo hai caïch:
 Daûng tháûp phán: Säú bao gäöm pháön nguyãn, dáúu cháúm tháûp phán
vaì pháön tháûp phán.
Vê duû: 23.45 -12.34
 Daûng khoa hoüc: Säú gäöm hai pháön:
- Pháön âënh trë: laì säú nguyãn hoàûc thæûc daûng tháûp phán
- Pháön báûc: laì mäüt säú nguyãn.
- Hai pháön naìy caïch nhau båíi kyï tæû e hoàûc E.
Vê duû: 12e+3 (biãøu diãùn säú 12000)
12e-2 (biãøu diãùn säú 0.12)

Giaïo Trçnh Ngän Ngæî Láûp Trçnh C 14


Chæång 1, Nhæîng thaình pháön cå baín cuía C

Chuï yï træåìng håüp sau âáy khi khai baïo hàòng dáúu pháøy âäüng
3.5 /* Hàòng double */
3.5f /* Hàòng float */
3.5e3L /* Hàòng long double */

1.9.3 HÀÒNG long


Laì caïc hàòng säú âæåüc viãút theo caïch thãm L hay l vaìo sau säú. Caïc
hàòng nhæ váûy seî coï kiãøu laì long + kiãøu nguyãn gäúc.
Vê duû: 123456L hay 123456l laì caïc hàòng kiãøu long int.

1.9.4 HÀÒNG KYÏ TÆÛ


Hàòng kyï tæû laì mäüt kyï tæû âæåüc viãút trong hai dáúu nhaïy âån ‘...’
Vê duû: ’a’
Hàòng kyï tæû cuîng âæåüc xem laì nhæîng trë nguyãn vç mäùi kyï tæû âæåüc
gaïn bàòng mäüt giaï trë nguyãn trong tæång æïng våïi maî cuía noï trong baíng
maî ASCII. Váûy hàòng kyï tæû coï thãø tham gia vaìo pheïp toaïn nhæ moüi
säú nguyãn khaïc, vê duû:
’a’ - ’A’ cho kãút quaí laì 32
Hàòng kyï tæû coìn coï caïch viãút khaïc nhæ sau: ’\x1x2x3’
trong âoï x1x2x3 laì säú hãû baït phán (cå säú 8) maì giaï trë cuía noï bàòng maî
ASCII cuía kyï tæû biãøu diãùn.
Vê duû: hàòng kyï tæû ’a’ coï maî ASCII laì 97, âäøi sang baït phán laì 0141,
váûy hàòng kyï tæû ’a’ coï thãø viãút caïch khaïc laì ’\141’.
* Hàòng âa kyï tæû: maî âiãöu khiãøn
\a alert Chuäng
\b backspace Âæa con troí luìi 1 kyï tæû
\f form feed Âæa con troí âãún trang logic kãú tiãúp
\n newline Doìng måïi (xuäúng doìng)
\r carriage return Âæa con troí vãö âáöu doìng
\t tab Âàût dáúu tab

1.9.5 HÀÒNG CHUÄÙI


Hàòng chuäùi laì mäüt cuûm kyï tæû báút kyì âàût trong hai dáúu nhaïy keïp
“...”, vê duû:
"Trung tám" hay "" (chuäùi räùng)
Chuäùi kyï tæû âæåüc læu træî trong maïy dæåïi daûng mäüt maíng coï caïc
pháön tæí laì caïc kyï tæû riãng biãût. Trçnh biãn dëch tæû âäüng thãm kyï tæû

Giaïo Trçnh Ngän Ngæî Láûp Trçnh C 15


Chæång 1, Nhæîng thaình pháön cå baín cuía C

null (‘\0’) vaìo cuäúi mäùi chuäùi (kyï tæû ‘\0’ âæåüc xem laì dáúu hiãûu kãút
thuïc chuäùi).
Chuï yï: Cáön phán biãût 'a' vaì "a"
‘a’ laì hàòng kyï tæû læu træî trong mäüt byte coìn “a” laì mäüt hàòng chuäùi
læu træî trong mäüt baíng gäöm 2 pháön tæí : pháön tæí thæï nháút chæïa ‘a’
vaì pháön tæí thæï hai laì ‘\0’.

1.9.6 KHAI BAÏO HÀÒNG


Cuï phaïp khai baïo:
const <kiãøu> <tãn_hàòng> = <giaï_trë>;
hoàûc #define <Tãn_hàòng> <giaï_trë>
Cáu lãûnh #define laì cáu lãûnh tiãön xæí lyï nãn chè coï thãø âàût åí ngoaìi
caïc haìm åí âáöu chæång trçnh hoàûc bàõt âáöu cuía mäüt khäúi.
Vê duû:
#define PI 3.1416
const float R = 10.5;

1.10 BIÃØU THÆÏC VAÌ CAÏC PHEÏP TOAÏN


1.10.1 BIÃØU THÆÏC
Biãøu thæïc laì sæû kãút håüp cuía caïc toaïn haûng vaì caïc toaïn tæí, coï thãø
sæí duûng dáúu ngoàûc âån (), vaì cho kãút quaí laì mäüt giaï trë goüi laì giaï
trë cuía biãøu thæïc.
- Toaïn haûng coï thãø gäöm caïc biãún, caïc hàòng, caïc haìm (låìi goüi
haìm)
- Toaïn tæí coï thãø laì caïc pheïp toaïn säú hoüc, logic, quan hãû, ...
Vê duû: Caïc daîy biãøu diãùn dæåïi âáy laì caïc biãøu thæïc
5+j
5*j + 6
5 >= (a^2) * (b >> 2)
f()/(4*x)

1.10.2 CAÏC PHEÏP TOAÏN


1.10.2.1 PHEÏP TOAÏN SÄÚ HOÜC
 Caïc pheïp toaïn hai ngäi
Pheïp toaïn YÏ nghéa Daûng thæïc
+ Cäüng a+b

Giaïo Trçnh Ngän Ngæî Láûp Trçnh C 16


Chæång 1, Nhæîng thaình pháön cå baín cuía C

- Træì a–b
* Nhán a*b
/ Chia a/b
% Láúy pháön dæ a%b

Chuï yï: int / int  int (2/3  0; nhæng (float) 2/3  0.6666667 )
 Pheïp toaïn mäüt ngäi: Pheïp toaïn - (ám) âæïng træåïc mäüt toaïn haûng,
chè roî laì traí vãö giaï trë traïi dáúu våïi toaïn haûng.
Vê duû: -10
1.10.2.2 Pheïp Toaïn Quan hãû
Pheïp toaïn YÏ nghéa Daûng thæïc
> Låïn hån a> b
>= Låïn hån hay bàòng a >= b
< Beï hån a< b
<= Beï hån hay bàòng a <= b
== Bàòng nhau a == b
!= Khaïc nhau a != b
Chuï yï:
- Kãút quaí cuía pheïp toaïn quan hãû luän luän laì mäüt säú nguyãn: 1 nãúu
âuïng vaì 0 nãúu sai.
- Caïc pheïp toaïn >, >=, <, <= laì cuìng thæï tæû æu tiãn, hai pheïp toaïn
==, != cuìng thæï tæû æu tiãn nhæng tháúp hån thæï tæû æu tiãn cuía bäún
pheïp toaïn âáöu.

1.10.2.3 Pheïp toaïn logic


Pheïp toaïn YÏ nghéa Daûng thæïc
! Phuí âënh !a
&& Pheïp giao a && b
Pheïp hoàûc a b

Kãút quaí cuía pheïp toaïn logic traí vãö mäüt trong hai giaï trë: 1 nãúu âuïng
vaì 0 nãúu sai. YÏ nghéa cuía caïc pheïp toaïn âæåüc cho båíi caïc baíng sau:

a !a
bàòng 0 1
khaïc 0 0

Giaïo Trçnh Ngän Ngæî Láûp Trçnh C 17


Chæång 1, Nhæîng thaình pháön cå baín cuía C

a b a && b a b
khaïc 0 khaïc 0 1 1
khaïc 0 bàòng 0 0 1
bàòng 0 khaïc 0 0 1
bàòng 0 bàòng 0 0 0

1.10.2.4 CAÏC PHEÏP TOAÏN XÆÍ LYÏ BIT (BITWISE)


C cung cáúp caïc pheïp toaïn xæí lyï bit nhæ sau:
Pheïp toaïn YÏ nghéa Daûng thæïc
~ Láúy pháön buì theo ~a
bit
& Pheïp AND theo bit a&b
Pheïp OR theo bit a b
^ Pheïp XOR theo bit a^b
<< Dëch traïi a << b
>> Dëch phaíi a >> b

Caïc pheïp toaïn naìy chè thæûc hiãûn trãn caïc toaïn haûng coï kiãøu dæî liãûu
laì säú nguyãn nhæ: char, int, long (kãø caí signed hoàûc unsigned).
Baíng sau âáy cho kãút quaí cuía caïc pheïp toaïn
a b ~a a&b a b a^b
0 0 1 0 0 0
0 1 1 0 1 1
1 0 0 0 1 1
1 1 0 1 1 0

1.10.2.5 PHEÏP TOAÏN GAÏN


Kyï hiãûu: =
C coï hai kiãøu gaïn giaï trë nhæ sau:
- Pheïp gaïn âån giaín coï daûng
<biãún> = <biãøu thæïc>
- Pheïp gaïn phæïc taûp coï daûng
<biãún> pt= <biãøu thæïc>
trong âoï pt coï thãø laì mäüt trong caïc pheïp toaïn sau: +, -, *, /, %, &, |, ^, >>,
<<

Giaïo Trçnh Ngän Ngæî Láûp Trçnh C 18


Chæång 1, Nhæîng thaình pháön cå baín cuía C

Vê duû 1: a = b;
c = d = e = 1;
x = (y = 2)*(z = 3);
Vê duû 2: a += b; tæång âæång a = a + b;
a -= b; tæång âæång a = a - b;
a *= b; tæång âæång a = a * b;
a /= b; tæång âæång a = a / b;
a %= b; tæång âæång a = a % b;
Chuï yï: Trong pheïp gaïn âån giaín thç giaï trë cuía toaïn haûng bãn phaíi
âæåüc gaïn nguyãn veûn cho biãún bãn traïi nãúu chuïng cuìng kiãøu. Nãúu
chuïng khaïc kiãøu thç C seî thæûc hiãûn viãûc chuyãøn kiãøu tæû âäüng.

1.10.2.6 PHEÏP TOAÏN TÀNG GIAÍM


C âæa ra hai pheïp toaïn mäüt ngäi duìng âãø tàng giaím giaï trë cuía caïc biãún
(nguyãn, thæûc vaì con troí) goüi laì pheïp toaïn tàng ++ vaì pheïp toaïn giaím
--.
Pheïp toaïn tàng ++ seî coüng thãm 1.
Pheïp toaïn tàng -- seî træì âi 1.
Caïc pheïp toaïn ++ hay -- coï thãø âàût træåïc hay sau biãún vaì sæû khaïc
nhau laì åí chäù:
- Nãúu âàût træåïc (++n hay --n) coï nghéa laì:
Tàng (hay giaím) giaï trë n räöi måïi sæí duûng
- Nãúu âàût sau (n++ hay n--) coï nghéa laì:
Sæí duûng giaï trë n træåïc räöi sau âoï tàng (hay giaím) giaï trë cuía
n.
Vê duû 1: Nãúu n = 5 thç cáu lãûnh
x = ++n; seî cho ra giaï trë cuía x laì x = 6
coìn x = n++; seî cho ra giaï trë cuía x laì x = 5
Sau khi thæûc hiãûn hai cáu lãûnh naìy thç n âãöu coï giaï trë laì 6.

Vê duû 2: Cáu lãûnh j = ++n tæång âæång

Cáu lãûnh j = n++ tæång âæång

Vê duû 3: Xem xeït kãút quaí cuía chæång trçnh sau:


main()
{ int x=2;
printf("%d %d\n",x++,sqr(x));
printf("%d %d\n",++x,sqr(x));
}

24
Giaïo4Trçnh
9 Ngän Ngæî Láûp Trçnh C 19
Chæång 1, Nhæîng thaình pháön cå baín cuía C

 HIÃÛU ÆÏNG LÃÖ CUÍA CAÏC TOAÏN TÆÍ ++ VAÌ --


Caïc hiãûu æïng lãö phæïc taûp váùn coï thãø bë nháöm láùn ngay caí våïi
nhæîng trçnh biãn dëch C. Xeït mäüt âoaûn maî sau:
value = 1;
result = (value++ * 5) + (value++ * 3);
Biãøu thæïc naìy baío cho C laìm nhæîng bæåïc láön læåüt nhæ sau:
1. Nhán value våïi 5, vaì cäüng 1 vaìo value.
2. Nhán value våïi 3, vaì cäüng 1 vaìo value.
3. Cäüng kãút quaí cuía hai pheïp nhán trãn våïi nhau
Bæåïc 1 vaì 2 coï âäü æu tiãn nhæ nhau, vç thãú trçnh biãn dëch coï thãø choün
thæï tæû thæûc hiãûn.
Giaí sæí trçnh biãn dëch thæûc hiãûn bæåïc 1 træåïc, ta coï hçnh veî minh hoüa
nhæ sau:

Giaí sæí trçnh biãn dëch thæûc hiãûn bæåïc 2 træåïc, ta coï hçnh veî minh hoüa
nhæ sau:

Giaïo Trçnh Ngän Ngæî Láûp Trçnh C 20


Chæång 1, Nhæîng thaình pháön cå baín cuía C

1.10.2.7 PHEÏP TOAÏN PHÁØY ( , )


Pheïp toaïn pháøy duìng âãø phán caïch hai biãøu thæïc trong biãøu thæïc
pháøy. Viãûc tênh toaïn âæåüc thæûc hiãûn tæì traïi sang phaíi. Kãút quaí cuía
biãøu thæïc pháøy laì giaï trë cuía biãøu thæïc åí bãn phaíi cuía biãøu thæïc
pháøy, kiãøu dæî liãûu cuía biãøu thæïc åí bãn phaíi naìy chênh laì kiãøu dæî
liãûu cuía biãøu thæïc pháøy.
Vê duû: a = (b = 2, b*5+3);
Kãút quaí laì b = 2 vaì a = 13.
Chuï yï: Biãøu thæïc pháøy thæåìng âæåüc duìng trong voìng làûp for.

1.10.8 PHEÏPTOAÏN ÂIÃÖU KIÃÛN 3 NGÄI ( ? : )


Cuï phaïp: biãøu_thæïc_1 ? biãøu_thæïc_2 : biãøu_thæïc_3
Diãùn giaíi: Nãúu biãøu_thæïc_1 khaïc 0 (âuïng) thç kãút quaí cuía pheïp toaïn
laì giaï trë cuía biãøu_thæïc_2, ngæåüc laûi kãút quaí toaïn tæí laì giaï trë cuía
biãøu_thæïc_3.
Kiãøu cuía pheïp toaïn âiãöu kiãûn laì kiãøu låïn nháút trong caïc kiãøu cuía
biãøu_thæïc_2 vaì biãøu_thæïc_3.
Toaïn tæí naìy thæûc cháút laì caïch viãút tàõt cuía cáúu truïc if ... else maì ta
seî hoüc, âæåüc trçnh baìy nhæ sau:
Nãúu ta coï cáu lãûnh:

z = ( biãøu_thæïc_1 ? biãøu_thæïc_2 : biãøu_thæïc_3 );

thç ta coï thãø viãút laûi:

if ( biãøu_thæïc_1 )
z = biãøu_thæïc_2;
else
z = biãøu_thæïc_1;

Vê duû: Cáu lãûnh z = ((x < y) ? x : y);


seî gaïn giaï trë nhoí nháút cuía x vaì y cho biãún z.

1.10.2.9 CHUYÃØN ÂÄØI KIÃØU


Trong mäüt biãøu thæïc, caïc toaïn haûng coï thãø coï caïc kiãøu dæî liãûu
khaïc nhau, âãø viãûc tênh toaïn âæåüc chênh xaïc, âäi luïc chuïng ta cáön phaíi
chuyãøn âäøi kiãøu dæî liãûu cho phuì håüp. C coï hai caïch chuyãøn âäøi kieíu
dæî liãûu:
1. Chuyãøn kiãøu tæû âäüng: Thæûc hiãûn theo quy tàõc sau:

Giaïo Trçnh Ngän Ngæî Láûp Trçnh C 21


Chæång 1, Nhæîng thaình pháön cå baín cuía C

 Khi hai toaïn haûng trong mäüt pheïp toaïn coï kiãøu khaïc nhau thç
toaïn haûng coï kiãøu beï hån seî tæû âäüng chuyãøn thaình kiãøu låïn
hån cuía toaïn haûng kia træåïc khi thæûc hiãûn pheïp toaïn.
 Âäúi våïi lãûnh gaïn thç sæû chuyãøn kiãøu càn cæï vaìo kiãøu dæî liãûu
cuía biãún åí vãú traïi.
Vê duû 1: 1.2*(10/3) cho kãút quaí laì 3.6
Vê duû 2: Giaí sæí n laì biãún nguyãn thç sau lãûnh gaïn n = 2.5 seî cho
kãút quaí laì n = 2.
2. Chuyãøn kiãøu bàõt buäüc: Thæûc hiãûn theo cuï phaïp sau
( Kiãøu ) Biãøu_thæïc
Kiãøu cuía giaï trë biãøu thæïc seî âæåüc chuyãøn thaình Kiãøu.
Vê duû 1: (int)(1.4)*10 cho kãút quaí laì 10
Vê duû 2: int a=10, b=3;
float x;
x = (float)a/(float)b;
Vê duû 3: Sau âáy laì mäüt chæång trçnh minh hoüa
#include <stdio.h>
main()
{
float a = 66.7;
printf( "%d %c\n", (int)a, (char)a );
return 0;
}

Chuï 66 B
yï:
- Âäúi våïi caïc haìm toaïn hoüc cuía thæ viãûn chuáøn thç giaï trë cuía âäúi
vaì giaï trë cuía haìm âãöu coï kiãøu double, vç váûy âãø tênh toaïn âæåüc
chênh xaïc ta cáön phaíi chuyãøn âäøi kiãøu cho âäúi säú.
Vê duû: Âãø tênh càn báûc hai cuía mäüt biãún nguyãn n, ta nãn viãút :
sqrt((double)n)
- Pheïp chuyãøn âäøi kiãøu coï cuìng âäü æu tiãn nhæ caïc toaïn tæí mäüt
ngäi.

1.10.2.10 ÂÄÜ ÆU TIÃN CUÍA CAÏC PHEÏP TOAÏN


Baíng sau âáy liãût kã âäü æu tiãn cuía táút caí caïc pheïp toaïn trong nhoïm vaì
caïc nhoïm khaïc nhau:

Giaïo Trçnh Ngän Ngæî Láûp Trçnh C 22


Chæång 1, Nhæîng thaình pháön cå baín cuía C

Caïc Pheïp toaïn Æu tiãn nhoïm Âäü æu tiãn


() [] -> Traïi sang Phaíi CAO NHÁÚT
âäøi_kiãøu & * - + ~ ++ -- ! Phaíi sang Traïi
* / % Traïi sang Phaíi
+ - Traïi sang Phaíi
<< >> Traïi sang Phaíi
< <= > >= Traïi sang Phaíi
== != Traïi sang Phaíi
& Traïi sang Phaíi
^ Traïi sang Phaíi
Traïi sang Phaíi
&& Traïi sang Phaíi
Traïi sang Phaíi
?: Phaíi sang Traïi
= += -= *=
/= %= >>= <<= Phaíi sang Traïi
&= ^=
, Traïi sang Phaíi THÁÚP NHÁÚT

1.11 HAÌM
Haìm laì mäüt khaïi niãûm quan troüng báûc nháút áøn dæåïi caïc ngän ngæî
báûc cao. Mäüt haìm cuía C laì táûp håüp cuía caïc toaïn haûng cuía C. Trong C
khäng coï khuynh hæåïng phán chia raình maûch thaình thuí tuûc hoàûc haìm
nhæ caïc ngän ngæî khaïc, táút caí moüi thuí tuûc vaì haìm âæåüc goüi mäüt tãn
duy nháút laì haìm.
Mäüt caïch chuáøn tàõc, caïc chæång trçnh âæåüc phaït triãøn tæì viãûc caìi
âàût caïc haìm. Caïc haìm åí mæïc tháúp biãøu diãùn caïc pheïp toaïn âån giaín
nháút, caïc haìm åí mæïc cao âæåüc taûo ra tæì nhæîng haìm mæïc tháúp.
Vê duû: Sau âáy laì mäüt haìm (mæïc tháúp) âån giaín âãø tênh bçnh phæång
cuía mäüt säú, noï biãøu diãùn mäüt pheïp toaïn khäng âæåüc xáy dæûng trong
C.
int sqr( int so )
{
int k_qua;
k_qua = so * so;
return k_qua;
}
Mäüt haìm giäúng nhæ mäüt cäù maïy âæåüc chuyãn män hoaï, noï nháûn dæî
liãûu vaìo, xæí lyï chuïng trong nhæîng bäü pháûn âaî âæåüc xaïc âënh, vaì traí
vãö kãút quaí. Vê duû nhæ haìm sqr() nháûn mäüt säú nguyãn nhæ dæî liãûu
vaìo vaì traí vãö bçnh phæång cuía säú âoï nhæ laì kãút quaí (dæî liãûu ra).

Giaïo Trçnh Ngän Ngæî Láûp Trçnh C 23


Chæång 1, Nhæîng thaình pháön cå baín cuía C

1.12 HAÌM main()


Chuïng ta âaî coï haìm sqr(), nhæng váùn chæa thæûc hiãûn âæåüc noï. Mäüt
chæång trçnh C goüi laì thæûc hiãûn âæåüc phaíi coï mäüt haìm âàûc biãût coï
tãn laì main(), åí âoï chæång trçnh bàõt âáöu thæûc hiãûn, cuîng nhæ thán haìm
trong Pascal (BEGIN ... END.). Âãø goüi thæûc hiãûn haìm sqr() ta coï thãø
viãút
main()
{
extern int sqr();
int kqua;
kqua = sqr( 5 );
return 0;
}
Täø chæïc cuía haìm main() cuîng giäúng nhæ báút kyì mäüt haìm naìo trong C,
tuy nhiãn våïi main() thæåìng chuïng ta khäng xaïc âënh kiãøu cuía haìm vaì
khäng khai baïo caïc âäúi säú. Thæûc ra main() khäng traí vãö giaï trë vaì baín
thán noï coï hai âäúi säú âàûc biãût, goüi laì âäúi säú doìng lãûnh.

1.13 XUÁÚT NHÁÛP DÆÎ LIÃÛU


1.13.1 XUÁÚT DÆÎ LIÃÛU VÅÏI HAÌM printf()
Cuï phaïp cuía haìm printf() nhæ sau
int printf( const char *format [,arg,...]);
Chuäùi format coï daûng: %[flags][width][.prec][l,L]<type>
 flags: nãúu khäng coï: dæî liãûu âæåüc in ra canh phaíi
- : dæî liãûu âæåüc in ra canh traïi
+ : dæî liãûu âæåüc in ra coï dáúu phuû.
blank : dæî liãûu âæåüc in ra coï dáúu ám, nãúu laì dæång thç
dáúu +
âæåüc thay bàòng khoaíng tràõng
# : âäøi daûng biãøu diãùn (chuyãøn âuïng kiãøu våïi maî
âäøi kiãøu
åí âäúi säú sau).
 width: chè âäü räüng täúi thiãøu âãø in dæî liãûu.
n: nãúu säú chæî säú cuía dæî liãûu beï hån n thç caïc khoaíng thæìa
âæåüc làõp âáöy båíi caïc khoaíng tràõng
0n: tæång tæû nhæ trãn nhæng thay vç khoaíng tràõng, báy giåì laì
säú 0
 .prec: daûng säú thæûc. Säú con säú coï yï nghéa sau dáúu cháúm tháûp phán.

Giaïo Trçnh Ngän Ngæî Láûp Trçnh C 24


Chæång 1, Nhæîng thaình pháön cå baín cuía C

 [l.L]: hai âäúi säú âãø âäøi dæî liãûu thaình long, L duìng cho kiãøu double.
 type:
Kiãøu Âäúi säú Daûng xuáút
d säú nguyãn int (decimal)
i “ “
u “ unsigned int (decimal)
o “ int (octal)
x “ hexadecimal (a, b, c, d, e, f)
X “ Hexadecimal (A, B, C, D, E, F)

f säú thæûc float, double (dáúu . ténh)


e “ float, double (biãùu diãùn khoa hoüc) (e)
E “ float, double (biãùu diãùn khoa hoüc) (E)
g “ biãøu diãùn khoa hoüc hoàûc dáúu . tháûp phán
tuìy theo daûng naìo ngàõn nháút (e)
G “ biãøu diãùn khoa hoüc hoàûc dáúu . tháûp phán
tuìy theo daûng naìo ngàõn nháút (E)
c kyï tæû char
s chuäùi kyï tæû chuäùi kyï tæû
% %

Tråü giuïp cho baûn: Chæång trçnh sau âáy laì mäüt vê duû nhàòm in ra táút
caí caïc âënh daûng cuía printf()
#include <stdio.h>
#include <string.h>

#define I 555
#define R 5.5
int main(void)
{
int i,j,k,l;
char buf[7];
char *prefix = buf;
char tp[20];
printf("prefix 6d 6o 8x 10.2e "
"10.2f\n");
strcpy(prefix,"%");
for (i = 0; i < 2; i++)
{
for (j = 0; j < 2; j++)
for (k = 0; k < 2; k++)
for (l = 0; l < 2; l++)
{
if (i==0) strcat(prefix,"-");
if (j==0) strcat(prefix,"+");
Giaïo Trçnh Ngän Ngæî Láûp Trçnh C 25
Chæång 1, Nhæîng thaình pháön cå baín cuía C

if (k==0) strcat(prefix,"#");
if (l==0) strcat(prefix,"0");
printf("%5s |",prefix);
strcpy(tp,prefix);
strcat(tp,"6d |");
printf(tp,I);
strcpy(tp,prefix);
strcat(tp,"6o |");
printf(tp,I);
strcpy(tp,prefix);
strcat(tp,"8x |");
printf(tp,I);
strcpy(tp,prefix);
strcat(tp,"10.2e |");
printf(tp,R);
strcpy(tp,prefix);
strcat(tp,"10.2f |");
printf(tp,R);
printf(" \n");
strcpy(prefix,"%");
}
}
return 0;
}
1.13.2 NHÁÛP DÆÎ LIÃÛU VÅÏI HAÌM scanf()
Cuï phaïp cuía haìm scanf() nhæ sau:
int scanf( const char *format [,adds,...]);
Chuäùi format coï daûng: %[width][l,L]<type>
 adds coï daûng nhæ sau &<biãún>. Caïc âäúi säú naìy laì âëa chè caïc biãún
tæång æïng våïi chuäùi âënh daûng.
Toaïn tæí âëa chè: & âãø láúy âëa chè cuía mäüt biãún. Giaí sæí x laì biãún
thç &x âëa chè cuía biãún x âoï.
Khi duìng haìm scanf() ta cáön chuï yï mäüt âiãöu âoï laì viãûc laìm saûch bäü
âãûm, âãø thæûc hiãûn cäng viãûc naìy, ta coï thãø duìng haìm fflush(stdin)
hoàûc duìng kyï phaïp * trong chuäùi âënh daûng.
Mäüt âiãøm cáön læu yï næîa laì khäng nãn sæí duûng haìm scanf() âãø nháûp
chuäùi kyï tæû. Sau âáy laì mäüt vê duû minh hoüa cho caïc váún âãö trãn
#include <stdio.h>
#include <string.h>
void main()
{

Giaïo Trçnh Ngän Ngæî Láûp Trçnh C 26


Chæång 1, Nhæîng thaình pháön cå baín cuía C

char st [50];
gets(st); /* nháûp vaìo doìng TURBO C */
puts(st);
scanf("%s",st); /* nháûp vaìo doìng TURBO C */
puts(st);
scanf("%s",st); /* khäng dæìng laûi âãø nháûp */
puts(st);
}
TURBO C
TURBO C
TURBO C
TURBO
C
Chuï yï: Khi sæí duûng haìm printf() vaì scanf() thç phaíi duìng thãm cáu lãûnh
#include <stdio.h> åí âáöu chæång trçnh våïi C++.

1.13.3 NHÁÛP CHUÄÙI VÅÏI HAÌM gets()


Cuï phaïp cuía haìm gets() nhæ sau:
char *gets( char *s );
Trong âoï âäúi säú s laì con troí (kiãøu char) troí âãún vuìng nhåï chæïa chuäùi
kyï tæû nháûn âæåüc. Haìm gets() nháûn mäüt chuäùi kyï tæû tæì thiãút bë vaìo
chuáøn laì baìn phêm choï âãún khi gàûp ‘\n’ (nháún ENTER). Kyï tæû ‘\n’
khäng âæåüc âàût vaìo chuäùi, thay vaìo âoï laì kyï tæû kãút thuïc ‘\0’ vaì âàût
vaìo vuìng nhåï do s troí âãún.
Haìm traí vãö âëa chè chuäùi nháûn âæåüc.
Vê duû:
#include <string.h>
void main()
{
char ht [30];

printf(“\nHoü vaì tãn: ”);


gets(ht);
printf(“\nHoü vaì tãn laì %s.”, ht);
}

1.13.4 NHÁÛP KYÏ TÆÛ VÅÏI HAÌM getchar()

Giaïo Trçnh Ngän Ngæî Láûp Trçnh C 27


Chæång 1, Nhæîng thaình pháön cå baín cuía C

Cuï phaïp cuía haìm gets() nhæ sau:


int getchar( void );
Haìm getchar() nháûn mäüt kyï tæû tæì baìn phêm vaì traí vãö maìn hçnh kyï
tæû nháûn âæåüc.
Vê duû:
#include <string.h>
void main()
{
int ch;

printf(“\nNháûp mäüt kyï tæû: ”);


getchar(ch);
printf(“\nKyï tæû âoï laì %c.”, ch);
}

Chuï yï: Âãø traïnh laìm viãûc sai soït våïi gets() vaì getchar() chuïng ta nãn
laìm saûch bäü âãûm baìn phêm bàòng caïch duìng haìm fflush() nhæ sau:
fflush( stdin );
Vê duû:
#include <string.h>
void main()
{
int ht[30];
int tuoi;

printf(“\nNháûp tuäøi: ”);


scanf(“%d”,&tuoi);
printf(“\nNháûp hoü tãn: ”);
fflush(stdin);
gets(ht);
}

 Haìm getch()
Haìm getch() hoaût âäüng hoaìn toaìn giäúng nhæ getchar() chè khaïc åí hai
âiãøm: thæï nháút kyï tæû seî âæåüc nháûn ngay khäng chåì nháún ENTER.
Thæï hai, kyï tæû nháûp vaìo seî khäng âæåüc in ra maìn hçnh.
1.14 CÁU LÃÛNH TIÃÖN XÆÍ LYÏ

Giaïo Trçnh Ngän Ngæî Láûp Trçnh C 28


Chæång 1, Nhæîng thaình pháön cå baín cuía C

Caïc lãûnh tiãön xæí lyï cuía C âæåüc xem nhæ caïc chæång trçnh taïch biãût,
chuïng âæåüc thæûc hiãûn træåïc khi chæång trçnh âæåüc biãn dëch. Cáu lãûnh
tiãön xæí lyï coï ngæî phaïp vaì cuï phaïp hãút sæïc âån giaín. Táút caí caïc chè
thë tiãön xæí lyï âãöu bàõt âáöu bàòng dáúu #, vaì tiãúp theo sau laì caïc chè
thë (khäng coï dáúu tràõng). Khäng giäúng nhæ caïc cáu lãûnh cuía C, caïc chè
thë tiãön xæí lyï kãút thuïc bàòng dáúu xuäúng doìng chæï khäng phaíi laì dáúu
cháúm pháøy.
Chè thë #include baïo cho trçnh biãn dëch âoüc mäüt source tæì mäüt file text
khaïc ngay khi file hiãûn thåìi âang biãn dëch. Lãûnh #include coï hai daûng:
#include <tãn_file> hoàûc #include “tãn_file”
caïc file sau #include goüi laì caïc file dáùn hæåïng (header file) vaì âãø thuáûn
tiãûn, pháön måí räüng cuía caïc file naìy luän laì .h. Muûc âêch duìng lãûnh
#include laì âãø C biãút caïc haìm sæí duûng trong chæång trçnh thuäüc vaìo
nhoïm naìo. Chàóng haûn caïc haìm printf() vaì scanf() thuäüc vaìo nhoïm
âæåüc dáùn båíi file coï tãn laì stdio.h (Standard I/O).
Cáön phán biãût giæîa hai daûng trãn cuía #include, våïi daûng 1, thç C hiãøu
âoï laì caïc file dáùn hæåïng cuía C vaì noï seî tçm trong thæ viãûn riãng cuía
noï. Våïi daûng 2, C hiãøu âoï laì file dáùn hæåïng cuía ngæåìi sæí duûng, C seî
tçm chuïng trong thæ muûc chæïa file nguäön, nãúu khäng coï thç måïi tçm
trong thæ muûc riãng cuía noï.
1.15. MÄÜT VAÌI VÊ DUÛ :
Vê duû 1 :
#include "stdio.h"
#include "conio.h"
main()
{
int a,b;
float c,d;
char st;
clrscr();
a=-10;
b=15;
c=1.2345;
d=6.789;
printf("\nNhap vao mot ky tu : ");
scanf("%c",&st);
printf("\nTong cua %d va %d la %d ",a,b,a+b);
printf("\nTong cua %f va %f la %f ",c,d,c+d);
printf("\nTong cua %5.2f va %5.2f la %5.2f ",c,d,c+d);
printf("\n Ky tu st la %c",st);
getch();
}

Giaïo Trçnh Ngän Ngæî Láûp Trçnh C 29


Chæång 1, Nhæîng thaình pháön cå baín cuía C

Vê duû 2 : Nháûp vaìo mäüt säú nguyãn hãû 10 vaì chuyãøn thaình säú hãû 8
vaì säú hãû 16
#include <stdio.h>
#include <conio.h>
main()
{
int i;
clrscr();
printf("\nNhap so nguyen he 10 ");
scanf("%d",&i);
printf("\n Chuyen sang he 8 la %o",i);
printf("\n Chuyen sang he 16 la %X",i);
getch();
}

Vê duû 3 : Tçm säú låïn nháút vaì nhoí nháút cuía 3 säú nguyãn.
#include <stdio.h>
#include <conio.h>
main()
{
float x,y,z,max,min;
clrscr();
printf("\nNhap vao 3 so ");
scanf("%f%f%f",&x,&y,&z);
max=(x>y)?x:y;
max=(max>z)?max:z;
min=(x>y)?y:x;
min=(min>z)?z:min;
printf("\nSo lon nhat la %f",max);
printf("\nSo nho nhat la %f",min);
printf("\nDay la 5 tieng chuong !\a\a\a\a\a");
getch();
}
Vê duû 4 :
#include <stdio.h>
#include <conio.h>
main()
{
long i,j,n;
clrscr();
printf("\nNhap vao mot so nguyen ");
scanf("%d",&i);
printf("\ncan dich may bit ");
scanf("%d",&n);
j=i>>n;

Giaïo Trçnh Ngän Ngæî Láûp Trçnh C 30


Chæång 1, Nhæîng thaình pháön cå baín cuía C

printf("\n So %d dich trai %d bit co gia tri o he


10 la %d",i,n,j);
printf("\n So %d dich phai %d bit co gia tri o he
10 la %d",i,n,j);
getch();
}

Giaïo Trçnh Ngän Ngæî Láûp Trçnh C 31


Chæång 1, Nhæîng thaình pháön cå baín cuía C

BAÌI TÁÛP
1. Khi in mäüt säú float hoàûc double våïi âënh daûng %f, coï bao nhiãu
chæî säú tháûp phán âæåüc printf() in ra. Haìm printf() laìm troìn hay càõt
giaï trë âi?
2. Viãút chæång trçnh våïi caïc khai baïo sau:
char c;
int j;
float x;
In ra âëa chè cuía mäùi biãún. Thäng qua caïc âëa chè âoï baûn coï nháûn
xeït gç vãö caïch maì trçnh biãn dëch cáúp phaït bäü nhåï cho biãún.
3. Viãút biãøu diãùn sang daûng baït phán, tháûp phán vaì tháûp luûc phán
cuía caïc säú nhë phán sau
a) 00010010
b) 01100101
c) 01101011
d) 10111011 (giaí sæí âáy laì kyï phaïp buì hai)
e) 00111111
f) 00000100 01100100
4. Viãút caïc khai baïo theo caïc låìi chè dáùn sau:
a) Mäüt säú nguyãn daìi, khäng dáúu.
b) Mäüt biãún dáúu pháøy âäüng âäü chênh xaïc keïp.
c) Mäüt con troí troí âãún mäüt char.
d) Mäüt char khåíi âäüng bàòng giaï trë ‘x’.
e) Mäüt haìm ngoaìi traí vãö mäüt säú nguyãn int khäng dáúu.
5. Cho daûng biãøu diãùn buì hai cuía caïc säú nguyãn sau âáy:
a) 1 b) -1
c) 255 d) 256
e) 511 f) 512
g) 513 h) 127
i) 128 j) -128
k) 0xFF l) 0x7F
6. Âàût caïc dáúu ngoàûc vaìo caïc biãøu thæïc sau âãø noï laì âuïng laì caïc
biãøu thæïc theo caïch maì trçnh biãn dëch C âaïnh giaï:
a) a = b * c == 2;
b) a = f(x) && a > 100;
c) a == b && x != y;

Giaïo Trçnh Ngän Ngæî Láûp Trçnh C 32


Chæång 1, Nhæîng thaình pháön cå baín cuía C

d) a = b += 2 + f(2)
e) a = s . f + x . y;
f) a = b >> 2 + 4;
g) a = b && a > z ? x = y : z;
h) a = * ++ * p;
i) a = b ^ c & d;
7. Chæång trçnh sau âáy seî cho kãút quaí nhæ thãú naìo trãn maìn hçnh
main()
{
short i = 0;
printf("%d\n", (i + 1) * (i = 1));
exit( 0 );
}
8. Chæång trçnh sau âáy seî cho kãút quaí nhæ thãú naìo trãn maìn hçnh.
Giaíi thêch.
main()
{
int j = 2;
printf("%d %d\n", j, j++);
printf("%d %d %d\n", j++, j, j++);
printf("%d %d\n", j++, j++*j++);
}
9. Chæång trçnh sau coï mäüt säú läùi. Haîy tçm vaì chæîa laûi
main( x )
{
scanf( "Coï bao nhiãu läùi trong chæång trçnh
naìy?, prob_count)
printf( Chæång trçnh naìy coï %d váún âãö\n,
prob_count);
10.Viãút chæång trçnh giaíi báút phæång trçnh báûc nháút ax + b  0
11. Viãút chæång trçnh giaíi báút phæång trçnh báûc hai ax2 + bx + c  0.
12. Viãút chæång trçnh giaíi tam giaïc ABC nãúu biãút goïc B, caûnh a vaì
goïc C (caïc goïc cho bàòng âäü). Sau âoï tênh diãûn têch vaì âæåìng cao
cuía tam giaïc ABC.

Giaïo Trçnh Ngän Ngæî Láûp Trçnh C 33

You might also like