Tài liệu Chương 1: Tổng quan - Pdf 86

Chổồng I : Tọứng quan Trang 1
Chơng I.
TỉNG QUAN
I.
Giồùi thióỷu vóử ngọn ngổợ C:
I.1.

Lởch sổớ ngọn ngổợ C:

Ngọn ngổợ C õổồỹc Dennis Ritchie thióỳt kóỳ taỷi phoỡng thờ nghióỷm Bell nm 1972 vồùi muỷc
õờch vióỳt hóỷ õióửu haỡnh UNIX. Tuy nhión nhồỡ tờnh ổu vióỷt vaỡ linh õọỹng cuớa C nón C õaợ õổồỹc
giồùi tin hoỹc sổớ duỷng khừp nồi nhổ mọỹt ngọn ngổợ chờnh thọỳng. Do coù nhióửu phión baớn C cuớa
nhióửu nhaỡ saớn xuỏỳt phỏửn móửm nón nm 1983 ANSI (American National Standard Institute)
xỏy dổỷng tióu chuỏứn ANSI C. Tọứ chổùc ISO cuợng xỏy dổỷng chuỏứn cho C. Hai chuỏứn naỡy giọỳng
nhau vaỡ õổồỹc bióỳt õóỳn vồùi tón chung laỡ ANSI C.
I.2.
ặu õióứm cuớa ngọn ngổợ C:
Hióỷn nay coù rỏỳt nhióửu ngọn ngổợ lỏỷp trỗnh khaùc nhau nhổ PASCAL, JAVA, DELPHI,
BASIC, ... Mọựi ngọn ngổợ coù mọỹt sọỳ õióứm maỷnh rióng tuy nhión ngọn ngổợ C õổồỹc sổớ duỷng
rọỹng raợi nhồỡ nhổợng ổu õióứm sau:
C laỡ ngọn ngổợ maỷnh vaỡ móửm deớo (linh õọỹng). C coù thóứ õổồỹc sổớ duỷng õóứ vióỳt hóỷ
õióửu haỡnh, trỗnh bión dởch cuớa ngọn ngổợ khaùc, trỗnh õióửu khióứn, soaỷn thaớo vn baớn, õọử hoaỷ,
baớng tờnh, ...
Ngọn ngổợ C õổồỹc sổớ duỷng rọỹng raợi bồới caùc nhaỡ lỏỷp trỗnh chuyón nghióỷp vaỡ nhồỡ
coù chuỏứn ANSI C nón coù tờnh khaớ chuyóứn cao : chổồng trỗnh vióỳt cho maùy tờnh IBM-PC coù thóứ
õổồỹc bión dởch vaỡ chaỷy trón hóỷ thọỳng maùy tờnh khaùc nhổ VAX.
Chổồng trỗnh dởch coù hióỷu quaớ cao : õóỳn 80% tờnh nng cuớa chổồng trỗnh õoù
vióỳt trón maợ maùy. Ngọn ngổợ C coù thóứ sổớ duỷng khaù nhióửu chổồng trỗnh dởch vaỡ caùc thổ vióỷn tióỷn


Danh saùch lồùp
Tón cỏửn kióứm tra : Xuỏn
+ ỏửu ra :
Sọỳ ngổồỡi coù tón Xuỏn
+ Thuỏỷt toaùn :
Lỏỳy danh saùch lồùp
Lỏỳy tón cỏửn kióứm tra : Xuỏn
Xoùa bọỹ õóỳm vóử 0

Lỏửn lổồỹt õọỳi vồùi tổỡng tón trong danh saùch : So saùnh vồùi tón cỏửn kióứm tra,
nóỳu õuùng thỗ cọỹng 1 vaỡo bọỹ õóỳm
Thọng baùo giaù trở bọỹ õóỳm ( sọỳ sinh vión coù tón Xuỏn )
I.5.
Lổu õọử :

A
Thổỷc hióỷn cọng vióỷc A
A
Goỹi chổồng trỗnh con A Nhỏỷp xuỏỳt dổợ lióỷu
A
B
uùng
Sai
Begin
End
Tuỡy thuọỹc vaỡo traỷng thaùi õuùng
sai cuớa bióứu thổùc B maỡ reợ
nhaùnh thờch hồỹp
Bừt õỏửu vaỡ kóỳt thuùc mọỹt thuỏỷt toaùn


Cạc kê tỉû khäng nhçn tháúy nhỉ khong tràõng, dáúu tab, k tỉû xúng dng.
• Kê tỉû gảch dỉåïi _
Âáy chè l táûp con ca Bng m ASCII
Ta khäng âỉåüc phẹp sỉí dủng cạc kê tỉû ngoi bäü kê tỉû trãn.
II.2.
Cạc tỉì khoạ (keyword):
Tỉì khoạ l tỉì dng riãng, khäng thãø âënh nghéa lải, mäùi tỉì khoạ cọ mäüt nghéa riãng.
Ta khäng âỉåüc sỉí dủng tỉì khoạ vo mủc âêch khạc nhỉ âàût tãn cho biãún, hàòng, mng; cáưn
phi viãút chênh xạc tỉì khoạ.
auto asm break case cdecl char const
continue default do double else enum extern
far float for goto huge if int
interrupt long near pascal register return short
signed sizeof static struct switch typedef Union
unsigned void volatile while
_cs _ds _es _ss
_AH _AL _AX _BH _BL _BX _CH
_CL _CX _DH _DL _DX _BP _DI
_SI _SP
Chổồng I : Tọứng quan Trang 4
II.3.
Tón vaỡ caùch õỷt tón:
Chổồng trỗnh sổớ duỷng rỏỳt nhióửu tón: tón bióỳn, tón hũng, tón haỡm,....
Caùc tón phaới õổồỹc khai baùo trổồùc khi sổớ duỷng
Caùch õỷt tón :
Tón laỡ daợy kờ tổỷ lióửn nhau gọửm caùc chổợ caùi thổồỡng vaỡ hoa, caùc chổợ sọỳ vaỡ dỏỳu

II.5.
Cỏu lóỷnh vaỡ dỏỳu chỏỳm cỏu:
Mọựi cỏu lóỷnh õổồỹc kóỳt thuùc bũng dỏỳu chỏỳm phỏứy ;
Nhổợng doỡng khọng phaới laỡ cỏu lóỷnh thỗ kóỳt thuùc khọng coù dỏỳu chỏỳm cỏu.
Caùc cỏu lóỷnh cuỡng nhoùm nón õỷt thúng cọỹt.
Mọựi cỏu lóỷnh nón vióỳt trón mọỹt doỡng (nóỳu coù thóứ )
Chổồng I : Tọứng quan Trang 5
Vờ duỷ :
#include <stdio.h> // khọng phaới laỡ lóỷnh
main()
{
int i,j;
i=0;
return 0; // ba doỡng trón laỡ 3 lóỷnh nón coù dỏỳu ;
}
III.
Cỏỳu truùc chung cuớa chổồng trỗnh :

Chổồng trỗnh C laỡ mọỹt tỏỷp hồỹp nhióửu haỡm trong õoù phaới coù 1 haỡm chờnh goỹi laỡ main().
Haỡm laỡ õoaỷn maợ lóỷnh õọỹc lỏỷp õổồỹc õỷt tón vaỡ thổỷc hióỷn mọỹt cọng vióỷc xaùc õởnh khi
õổồỹc goỹi õóỳn. Mọỹt haỡm coù thóứ goỹi õóỳn nhióửu haỡm khaùc.
Haỡm main() laỡ haỡm õổồỹc maùy tờnh thổỷc hióỷn trổồùc tión trong mọỹt chổồng trỗnh.
main()
{ ........ /* caùc cỏu lóỷnh*/
return 0;
}
/* khai baùo caùc haỡm*/
kióứu_dổợ_lióỷu tón_haỡm(tham_sọỳ)
{ ........ /* caùc cỏu lóỷnh */
return (giaù_trở_traớ_vóử);
}
Vờ duỷ :
#include <stdio.h> // chố thở tióửn xổớ lờ
void main() // haỡm main()
{
printf(\nChao cac ban !); // cỏu lóỷnh
}

Vờ duỷ : tờnh dióỷn tờch hỗnh chổợ nhỏỷt bióỳt chióửu daỡi vaỡ chióửu rọỹng coù sổớ duỷng haỡm
#include <stdio.h>
#include <conio.h>
int tich(int x,int y); // khai baùo nguyón mỏựu haỡm
main()
{
int x,y; // khai baùo bióỳn
printf(\nNhap chieu dai:);scanf(%d,&x); // haỡm õoỹc tổỡ baỡn phờm
printf(\nNhap chieu rong:);scanf(%d,&y);
printf(\nDien tich hinh chu nhat: %d,tich(x,y)); // haỡm in ra maỡn hỗnh
getch(); // õoỹc mọỹt kờ tổỷ õóứ chồỡ
return 0;
}
int tich(int x,int y) // õởnh nghộa haỡm


c. Giaới phổồng trỗnh ax + b = 0
d. Giaới phổồng trỗnh ax
2
+ bx + c = 0
e. Giaới phổồng trỗnh ax
3
+ bx
2
+ cx + d = 0
f. Giaới phổồng trỗnh ax
4
+ bx
3
+ cx
2
+ dx + e = 0
2. Tờnh chu vi, dióỷn tờch cuớa hỗnh troỡn bióỳt baùn kờnh r = 3 cm.
3. ổa ra maỡn hỗnh doỡng chổợ : Mọn hoỹc ngọn ngổợ lỏỷp trỗnh C .
Chỉång II : Kiãøu dỉỵ liãûu, biãún v hàòng Trang 8
Ch−¬ng II. KIÃØU DỈỴ LIÃÛU, BIÃÚN V HÀỊNG
I.
Kiãøu dỉỵ liãûu:
Kiãøu dỉỵ liãûu l táûp håüp cạc giạ trë m cạc biãún thüc kiãøu âọ cọ thãø nháûn âỉåüc.
Mäùi kiãøu dỉỵ liãûu cọ mäüt säú phẹp toạn tỉång ỉïng.
Cạc kiãøu dỉỵ liãûu âỉåüc phán loải nhỉ sau :


kiãøu dỉỵ liãûu cọ
cáúu trục
kiãøu file
kiãøu array
kiãøu struct
kiãøu con tr
Kiãøu
dỉỵ
liãûu

Chỉång II : Kiãøu dỉỵ liãûu, biãún v hàòng Trang 9
Ta nãn nhåï ràòng bäü nhåï mạy tênh khäng räùng khi mạy tênh lm viãûc. Cạc khäúi nhåï cáúp
phạt cho biãún cọ thãø â cọ giạ trë trỉåïc âọ. Ta chỉa khåíi tảo x nãn ta khäng biãút âỉåüc giạ trë x.
II.2.
Khai bạo v khåíi tảo hàòng:
Khai bạo hàòng :
const kiãøu_dỉỵ_liãûu tãn_hàòng = giạ trë hàòng

Vê dủ : const int so_luong = 50 ;
const float sai_so = 0.5 ;
II.3.
Phẹp gạn:
Biãún nháûn giạ trë qua phẹp gạn våïi dáúu bàòng : tãn_biãún = biãøu thỉïc
Vê dủ : a = 5; // gạn cho a giạ trë l 5
b = a - 4; // tênh giạ trë a - 4 räưi gạn giạ trë âọ cho b
Phẹp gạn kẹp :
Vê dủ : a = b = c = 7 ;

0
÷
4294967295
Våïi táút c cạc kiãøu, ta chè nãn gạn cho biãún cạc giạ trë nàòm trong di giạ trë ca kiãøu
âọ, nãúu khäng ta s nháûn âỉåüc kãút qu khäng mong mún màûc d C khäng thäng bạo läùi.
Kiãøu int l kiãøu thäng dủng nháút. Kiãøu char thỉûc ra l kiãøu kê tỉû nhỉng C cho phẹp sỉí
dủng kiãøu char nhỉ l kiãøu ngun: trong biãøu thỉïc säú hc thç char âỉåüc hiãøu l kiãøu ngun.

Cạc phẹp tênh säú hc âäúi våïi säú ngun :
Phẹp toạn Kê hiãûu Vê dủ
Cäüng + x+y
Trỉì - x-y
Nhán * x*y
Chia láúy pháưn ngun / x/y
Chia láúy pháưn dỉ % x%y
Tàng ++ x++ hồûc ++x
Gim -- x--hồûc --x
Chỉång II : Kiãøu dỉỵ liãûu, biãún v hàòng Trang 10
Vê dủ : 10 % 3 =1 ; 5 / 3 = 1 ;

Biãøu diãùn säú ngun dỉåïi dảng Hexa ( hãû tháûp lủc phán) :
Hãû tháûp phán sỉí dủng : 0 1 2 3 4 5 6 7 8 9
Hãû nhë phán sỉí dủng : 0 1
Hãû tháûp lủc phán sỉí dủng : 0 1 2 3 4 5 6 7 8 9 A B C D E F
Vê dủ : säú 53 åí dảng nhë phán l 110101, åí dảng Hexa l 35.
Säú ngun âỉåüc biãøu diãùn dỉåïi dảng Hexa : 0xgiạ_trë_Hexa hồûc 0Xgiạ_trë_Hexa
Vê dủ : 0x12 (=18) ; 0X12 (=18)

printf("\n The decimal of unsigned 0xFFFFu is %u", y); 65535
printf("\n The hex of decimal 12 is %#X ", 12); 0XC
printf("\n The hex of decimal -12 is %#X ", -12); 0XFFF4
Chỉång II : Kiãøu dỉỵ liãûu, biãún v hàòng Trang 11
IV.
Kiãøu säú thỉûc:
• Cạc kiãøu säú thỉûc ca C :
Kiãøu biãún Tỉì khoạ Säú byte
Di giạ trë
Säú thỉûc cọ âäü chênh xạc âån float 4
1.2E-38 ÷ 3.4E38
Säú thỉûc cọ âäü chênh xạc kẹp double 8 2.2E-308 ÷ 1.8E308
Säú thỉûc cọ âäü chênh xạc kẹp âäü di låïn long double 10
3.4E-4932 ÷ 3.4E4932

Biãøu diãùn säú thỉûc åí dảng tháûp phán :
Vê dủ : 3.14 ; 2.718281828
Biãøu diãùn säú thỉûc åí dảng khoa hc :
Vê dủ : 6.023e23=6.023E23 (= 6.023 * 10
23
)
Trong vê dủ trãn, pháưn âënh trë l 6.023, pháưn m l 23
Pháưn âënh trë v pháưn m cọ thãø cọ dáúu âi km, chụng âỉåüc viãút liãưn nhau khäng cọ
dáúu ngàn cạch. Vê dủ : -12.23e-23
Pháưn ngun hay pháưn tháûp phán cọ thãø khäng cọ nhỉng dáúu cháúm khäng thãø thiãúu.
Vê dủ : 3. .14
Ta âãø : 3 l säú ngun nhỉng 3. l säú thỉûc.

Toaùn tổớ Pheùp toaùn logic Yẽ nghộa
&& AND Pheùp vaỡ
|| OR Pheùp hoỷc
! NOT Pheùp phuớ õởnh
Caùc pheùp toaùn quan hóỷ :
Kờ hióỷu Yẽ nghộa
!= so saùnh khaùc nhau
== so saùnh bũng nhau
>= so saùnh lồùn hồn hoỷc bũng
<= so saùnh nhoớ hồn hoỷc bũng
> so saùnh lồùn hồn
< so saùnh nhoớ hồn
VI.
Kióứu kờ tổỷ (character):
Mọựi giaù trở kióứu char chióỳm 1 byte vaỡ õổồỹc bióứu dióựn thọng qua baớng maợ ASCII.
Caùc kióứu kờ tổỷ trong C :
Kióứu bióỳn Tổỡ khoaù Sọỳ byte Daới giaù trở
Kióứu coù dỏỳu char ( signed char) 1
-128

127
Kióứu khọng dỏỳu unsigned char 1
0 ữ 255

Phỏn loaỷi :
Caùc kờ tổỷ vn baớn coù maợ tổỡ 32 õóỳn 126, coù thóứ õổa ra maỡn hỗnh vaỡ maùy in. Caùc
kờ tổỷ naỡy gọửm caùc kờ tổỷ ! # $ % & , caùc con sọỳ, caùc chổợ caùi thổồỡng vaỡ hoa, ...

Caùc kờ tổỷ õióửu khióứn coù maợ tổỡ 0 õóỳn 31, noùi chung caùc kờ tổỷ naỡy khọng thóứ õổa
ra maỡn hỗnh. Mọỹt sọỳ kờ tổỷ õióửu khióứn :

Mọỹt sọỳ haỡm xổớ lờ kờ tổỷ : (õổồỹc cung cỏỳp trong thổ vióỷn ctype.h)
Haỡm Taùc duỷng
int toascii(int c) chuyóứn c thaỡnh maợ ASCII
int tolower(int c) chuyóứn c thaỡnh chổợ thổồỡng
int toupper(int c) chuyóứn c thaỡnh chổợ hoa
Vờ duỷ : Nhỏỷp chổợ thổồỡng tổỡ baỡn phờm vaỡ chuyóứn thaỡnh chổợ hoa:
#include <stdio.h>
#include <conio.h>
#include <ctype.h>
main()
{
int chu_thuong,chu_hoa;
chu_thuong=getchar();
chu_hoa=toupper(chu_thuong);
putchar(chu_hoa);
getch();
return 0;
}

Vờ duỷ : Chuyóứn mọỹt sọỳ thaỡnh maợ ASCII
#include <stdio.h>
#include <conio.h>
#include <ctype.h>
main()
{
int number,result;
number=511;
result=toascii(number);
printf(\n%d %d %c\n, number, result, result);
getch();

Cạc kiãøu dỉỵ liãûu tỉû âënh nghéa:
VIII.1.

Kiãøu liãût kã :
Khi mún âënh nghéa 1 kiãøu dỉỵ liãûu bàòng cạch liãût kã táút c cạc tãn, cạc giạ trë m ta
mún cọ, ta sỉí dủng tỉì khọa enum nhỉ sau :
enum tãn_kiãøu {pt1,pt2,.... } biãún_1,biãún_2;
enum tãn_kiãøu {pt1,pt2,.... };
enum {pt1,pt2,.... } biãún_1,biãún_2;
enum {pt1,pt2,.... };
Vê dủ :
enum colors {BLUE,GREEN,RED};
enum colors color ;
color = RED ;
Dy cạc pháưn tỉí âỉåüc liãût kã tỉång ỉïng våïi dy säú tỉû nhiãn bàõt âáưu tỉì 0.
Vê dủ : theo vê dủ trãn :
printf(“%d%d”,BLUE,RED);
s cọ kãút qu l 02.
Âãø pháưn tỉí bàõt âáưu cọ giạ trë khạc 0, ta âënh nghéa nhỉ sau :
T O I \0
Chổồng II : Kióứu dổợ lióỷu, bióỳn vaỡ hũng Trang 15
enum thu {hai=2,ba,tu,nam,sau,bay,cn};
VIII.2.
Kióứu typedef:
Tổỡ khoùa typedef khọng taỷo ra kióứu dổợ lióỷu mồùi maỡ noù õỷt tón mồùi cho kióứu dổợ lióỷu õaợ
tọửn taỷi.
Mỏựu : typedef tón_kióứu_cuợ tón_kióứu_mồùi

5. Bióứu dióựn caùc sọỳ sau dổồùi daỷng khoa hoỹc :
1234567890; -123.456; -0.00123 ( 1.23456789E9 ; -1.23456E2 ; -1.23E-3 )
6. ọỳi vồùi caùc dổợ lióỷu sau, ta duỡng kióứu dổợ lióỷu naỡo cho hồỹp lyù :
Ngaỡy, thaùng, nm sinh ; õióứm trung bỗnh mọn hoỹc
7. Vióỳt chổồng trỗnh nhỏỷp sọỳ giỏy, xuỏỳt ra dổồùi daỷng giồỡ : phuùt : giỏy
8. Vióỳt chổồng trỗnh nhỏỷp giồỡ : phuùt : giỏy, xuỏỳt ra sọỳ giỏy.
9. Vióỳt chổồng trỗnh nhỏỷp giồỡ1 : phuùt1 : giỏy1 vaỡ giồỡ2 : phuùt2 : giỏy2, xuỏỳt ra tọứng.
10. Tờnh :
(4<5) || (5<4)
!(4-4) && (2+3)
11. Nóỳu ta gaùn mọỹt sọỳ coù dỏỳu chỏỳm thỏỷp phỏn vaỡo sọỳ nguyón thỗ sao ?
TL: giaù trở õổồỹc gaùn vaỡo seợ bở cừt mỏỳt phỏửn thỏỷp phỏn .vờ duỷ : 3.14 thỗ chố coỡn laỷi 3.
12. Sọỳ nguyón ỏm laỡ TRUE hay FALSE ?
Chỉång III : Cáu lãûnh, biãøu thỉïc v toạn tỉí Trang 16
Ch−¬ng III.
CÁU LÃÛNH, BIÃØU THỈÏC, V TOẠN TỈÍ
I.
Cáu lãûnh:
Cáu lãûnh l 1 chè thë hon chènh, ra lãûnh cho mạy tênh thỉûc hiãûn cäng viãûc no âọ. Cạc
cáu lãûnh kãút thục båíi dáúu cháúm pháøy, thỉåìng âỉåüc viãút trãn 1 dng âãø chỉång trçnh r rng.
Trçnh biãn dëch s b qua cạc kê tỉû khäng nhçn tháúy nhỉ tab, enter, spacebar, vç váûy 2
cáu lãûnh sau âáy l tỉång âỉång våïi nhau :
x=y+z;
v x = y + z ;
Khong tràõng chè cọ nghéa trong xáu kê tỉû nhỉ “Dai hoc Da Nang”
Våïi xáu kê tỉû âãø cọ thãø viãút trãn cạc dng khạc nhau thç ta phi dng kê tỉû \ .
Vê dủ : int x,\


Trang 17
IV.
Toạn tỉí:
Toạn tỉí l mäüt kê hiãûu nhàòm thỉûc hiãûn cạc tênh toạn trãn 1 hay nhiãưu säú hảng.
IV.1.
Phẹp tênh theo bit:
Khäng ạp dủng cho kiãøu float v double
Toạn tỉí nghéa
& phẹp AND theo tỉìng bit
| phẹp OR theo tỉìng bit
^ phẹp XOR theo tỉìng bit
~ phẹp âo tỉìng bit
Vê dủ : 3 = 0000 0000 0000 0011
~3 = 1111 1111 1111 1100
Ta cáưn phi phán biãût giỉỵa cạc toạn tỉí & v && :
3 & 4 = 0, 3 && 4 = 1.
Tỉång tỉû nhỉ váûy våïi cạc toạn tỉí | v || :
3 | 4 = 7, 3 || 4 = 1.
Ta dng cạc phẹp tênh theo bit âãø xoạ hồûc láûp cạc bit trong cạc säú nhë phán.
Vê dủ : âãø láûp bit thỉï 0 v bit thỉï 3 ca säú ngun x, ta dng lãûnh x = x | 0x9;
âãø xoạ bit thỉï 1 v bit thỉï 2 ca säú ngun x, ta dng lãûnh x = x & 0xF9;
• Phẹp dëch säú hc >> v << :
I<<M : dëch säú ngun I sang trại âi M bit, tỉång âỉång våïi I*2
M
.
I>>M : dëch säú ngun I sang phi âi M bit, tỉång âỉång våïi I/2
M
.
Vê dủ : âãø tênh I*20 ta viãút (I<<4) + (I<<2) vç 20 = 2

Trang 18
IV.2.
Phẹp gạn måí räüng :
x+=y <=> x=x+y
x-=y <=> x=x-y
x*=y <=> x=x*y
x/=y <=> x=x/y
x%=y <=> x=x%y
x>>=y <=> x=x>>y
x<<=y <=> x=x<<y
x&=y <=> x=x&y
x|=y <=> x=x|y
x^=y <=> x=x^y
Chụ : a = a*b+c; khäng tỉång âỉång våïi a*=b+c;
Vç a*=b+c; tỉång âỉång våïi a=a*(b+c);
Viãûc dng phẹp gạn måí räüng cọ thãø gáy khọ hiãøu nhỉng nhiãưu bäü biãn dëch tảo ra m
hiãûu qu hån nãúu ta dng nọ.
IV.3.
Phẹp tàng / gim giạ trë 1 âån vë (dng våïi cạc biãún):
i=i+1 <=> i++ hồûc ++i
i=i-1 <=> i-- hồûc --i
Sỉû khạc nhau giỉỵa 2 lãûnh gạn a= ++i v a= i++ :
++i : tàng i lãn 1 âån vë, sau âọ måïi gạn.
i++ : gạn trỉåïc, sau âọ måïi tàng i lãn 1 âån vë.
Vê dủ : x=0;a=x++; // a=x; x++; : a=0, x=1;
x=0;a=++x; // x++; a=x; : a=1,x=1;
IV.4.
Toạn tỉí quan hãû :
Toạn tỉí nghéa
== toạn hảng 1 cọ bàòng toạn hảng 2 khäng ?

Thỉï tỉû ỉu tiãn giỉỵa cạc phẹp toạn:
Toạn tỉí Chiãưu tênh toạn
() [] ->
L → R
- ++ -- ! ~ sizeof() &(âëa chè) *(con tr) toạn tỉí ẹp kiãøu : toạn tỉí 1 ngäi
R
→ L

* / %
L → R
+ -
L
→ R

<< >>
L → R
< <= >= >
L
→ R

== !=
L → R
&
L
→ R

^
L → R
|
L

Trang 20
Viãûc chuøn âäøi kiãøu giạ trë xy ra tỉû âäüng khi trong biãøu thỉïc cọ cạc toạn hảng khạc
kiãøu. Viãûc chuøn âäøi kiãøu giạ trë cng xy ra khi gạn giạ trë kiãøu ny cho biãún (hồûc pháưn tỉí
mng) kiãøu kia, khi truưn giạ trë cạc âäúi säú cho cạc tham säú, trong cáu lãûnh return.
int → long → float → double → long double.
Khi chuøn âäøi theo chiãưu ngỉåüc lải thç s bë máút mạt thäng tin, cọ thãø cọ cnh bạo
nhỉng khäng cọ läùi.
Vê dủ: int n;
long p;
float x,s;
s=n*p+x;
âáưu tiãn khi tênh n*p, n âỉåüc âäøi thnh kiãøu long. Têch cọ kiãøu long nãn khi tênh täøng,
têch âỉåüc chuøn thnh kiãøu float. Täøng cọ kiãøu float s âỉåüc gạn cho s.
VI.2.
Sỉû ỉu tiãn cho kiãøu säú :
Cạc phẹp tênh säú hc khäng âënh nghéa cho kiãøu char v short. C tỉû âäüng hiãûu chènh
kiãøu char v kiãøu short thnh kiãøu int.
VI.3.
Chuøn âäøi âäúi våïi kiãøu kê tỉû char:
Kiãøu kê tỉû char khi åí trong biãøu thỉïc säú hc s âỉåüc chuøn âäøi thnh kiãøu int dỉûa vo
bng m ASCII.
Vê dủ : char ch;
ch = ‘A’ + 1; // ‘A’=65 nãn ‘A’+1=66 tỉì âọ ch=’B’
VII.
Cäú chuøn âäøi kiãøu giạ trë:
Âãø nháûn âỉåüc kãút qu mong mún âäi khi ta phi chuøn âäøi kiãøu ca giạ trë.
Vê dủ :
#include <stdio.h>
#include <conio.h>
main()

double log(double d) tr lải hm loga cå säú e
double log10(double d) tr lải hm loga cå säú 10
double pow(double d1, double d2) tr lải giạ trë d1 m d2
double floor(double d) tr lải hm càõt trn säú
double ceil(double d) tr lải hm lm trn säú
double fmod(double d1, double d2) tr lải hm pháưn dỉ ca phẹp chia d1/d2
double sqrt(double d) tr lải hm càn báûc hai
void srand(double d) khåíi tảo bäü säú ngáùu nhiãn
Vê dủ :
floor(3.2) = 3. floor(3.7) = 3.
ceil(3.2) = 4. ceil(3.7) = 4.
Âãø lm trn cạc säú thỉûc tỉì 2.5 âãún cáûn 3.5 thnh 3 ta dng floor(i+0.5)
IX.
Bi táûp :
1. Gi sỉí ta cọ :
float x,y;
x=(int)3.4;
y=(int)3.8;
Tênh x,y. (3,3)
2. Gi sỉí ta cọ :
int x=3,y=5;
x=y++;
y=++x;
Tênh x,y. ( 6,6)
3. float x,y;
x=14/5;
y=(float)14/5;
Tênh x,y. ( 2.000 , 2.8 )
4. Tênh 10101 | 11001, 10101 & 11001
Chổồng III : Cỏu lóỷnh, bióứu thổùc vaỡ toaùn tổớ

0 n nóỳu0
0 n nóỳu
1
1
)(nsign
Lồỡi giaới: Caùch 1: sign = n > 0 ? 1 : 0 ;
sign = n < 0 ? -1: sign ;
Caùch 2: sign = n > 0 ? 1 : ( n == 0 ? 0 : -1 ) ;
Hoỷc sign = n > 0 ? 1 : ( n < 0 ? -1 : 0 ) ;
Chỉång IV : Nháûp xút dỉỵ liãûu Trang 23
Ch−¬ng IV. NHÁÛP XÚT DỈỴ LIÃÛU
I.
Hm printf() :
Hm printf() nàòm trong stdio.h. Hm ny cọ kh nàng chuøn dảng, tảo khn v âỉa
cạc kiãøu dỉỵ liãûu ra mn hçnh.
I.1.
Dảng :
int printf(“xáu âënh dảng”, dy cạc biãøu thỉïc )
Vê dủ :
printf(“%d %d %c”,1,2,’c’);
ÅÍ vê dủ trãn ta tháúy cọ sỉû tỉång ỉïng 1-1 v âụng trçnh tỉû giỉỵa cạc m âënh dảng trong
xáu âënh dảng v dy cạc biãøu thỉïc.
I.2.
Xáu âënh dảng :
Trang 24
Trỉåìng ra fw Dáúu - Kãút qu
-2035 8 cọ -2035
-2035 08 cọ -2035
-2035 8 khäng -2035
-2035 08 khäng -0002035
“abcdef” 08 cọ abcdef
“abcdef” 08 khäng abcdef
“abcdef” 8 khäng abcdef

fw : l dy säú ngun xạc âënh âäü räüng täúi thiãøu dnh cho trỉåìng ra :
- Khi fw låïn hån âäü di thỉûc tãú ca trỉåìng ra thç cạc vë trê dỉ thỉìa s âỉåüc láúp
âáưy båíi cạc khong tràõng hồûc cạc säú 0 ty thüc vo sỉû cọ màût ca säú 0. Näüi dung trỉåìng ra
âỉåüc âáøy sang bãn trại hay phi ty thüc vo sỉû cọ màût ca dáúu trỉì.
- Khi khäng cọ fw hồûc fw låïn hån âäü di thỉûc tãú ca trỉåìng ra thç âäü räüng dnh
cho trỉåìng s bàòng âäü di thỉûc tãú ca trỉåìng ra.
Vê dủ : âãø âỉa ra dng 123^^^^^^000123123^^^ ta viãút nhỉ sau :
printf(“%-9d%06d%-6d”,123,123,123);

.pp : pp l säú ngun cọ chỉïc nàng :
- Âäúi våïi säú ngun thç in ra êt nháút pp chỉỵ säú (nãúu thiãúu thç chn cạc säú 0). Âäúi
våïi pháưn tháûp phán, nãúu khäng cọ pp thç âäü chênh xạc màûc âënh l 6. Nãúu pp låïn hån âäü di
thỉûc ca trỉåìng ra thç nọ chn cạc säú 0 vo, nãúu nh hån thç nọ s càõt båït.
- Âäúi våïi xáu kê tỉû : Nãúu pp nh hån âäü di xáu thç chè cọ pp kê tỉû âáưu tiãn ca
xáu âỉåüc âỉa ra. Nãúu khäng cọ pp hồûc pp låïn hån âäü di xáu thç ton bäü xáu âỉåüc âỉa ra.
Vê dủ : printf(“%-10.2f”,-123.456); s cho kãút qu -123.46^^^
Tải vë trê fw v .pp ta cọ thãø âàût dáúu *, khi âọ chụng âỉåüc xạc âënh båíi biãøu thỉïc tỉång
ỉïng: Vê dủ : int n=8;

m=8
Mäüt säú läùi hay màõc phi :
- M âënh dảng khäng ph håüp våïi kiãøu ca biãøu thỉïc.
- Säú m âënh dảng khäng tỉång ỉïng våïi säú biãøu thỉïc.
II.
Hm scanf() :
II.1.

Máùu :
int scanf(“xáu âënh dảng”, dy âëa chè cạc biãún)
Vê dủ : int x,y;
scanf(“%d%d”,&x,&y);
Dng vo : l dy kê tỉû liãn tiãúp nháûp tỉì thiãút bë vo, cúi dng vo l kê tỉû \n.
Trong dng vo cọ cạc khong tràõng, dáúu tab, ... cạc thnh pháưn ny l dáúu phán cạch
giỉỵa cạc trỉåìng vo.
ÅÍ âáy cọ sỉû tỉång ỉïng 1-1 v âụng trçnh tỉû giỉỵa cạc m âënh dảng trong xáu âënh dảng
v dy cạc âëa chè cạc biãún.
Xáu âënh dảng : %[*][dd]]kêtỉûâënhdảng
• Dáúu * : Trỉåìng vo váùn âc bçnh thỉåìng nhỉng khäng âỉåüc lỉu vo bäü nhåï. Vç
váûy s khäng cọ âäúi tỉång ỉïng.
• dd : dy säú xạc âënh âäü di trỉåìng vo.
- Nãúu dd vàõng màût hồûc dd låïn hån âäü di ca trỉåìng vo thç ton bäü trỉåìng
vo âỉåüc âc v ghi vo vng nhåï tỉång ỉïng.
- Nãúu dd nh hån âäü di ca trỉåìng vo thç chè cọ pháưn âáưu ca trỉåìng vo cọ
kêch cåỵ dd âỉåüc âc v ghi vo vng nhåï tỉång ỉïng, pháưn cn lải âỉåüc xem xẹt sau.
Vê dủ :
int a;
float x,y;
char ch[10],ct[10];
scanf("%f%5f%3d%3s%s",&x,&y,&a,ch,ct);


Nhờ tải bản gốc
Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status