Thư viện tri thức trực tuyến
Kho tài liệu với 50,000+ tài liệu học thuật
© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Lập trình C
Nội dung xem thử
Mô tả chi tiết
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 nàm 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 nàm 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 vàn 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 nàng 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
êch
• C coï êt tæì khoaï nãn suïc têch vaì cä âoüng.
• C laì ngän ngæî coï cáúu truïc modul thäng qua viãûc sæí duûng caïc haìm.
I.3. Nhæåüc âiãøm cuía ngän ngæî C:
Tuy nhiãn C cuîng coï mäüt säú nhæåüc âiãøm sau :
• Ngän ngæî C coï cuï phaïp laû vaì khoï hoüc. Nhæîng ngæåìi âaî tæìng viãút ngän ngæî
khaïc coï thãø væåüt qua âæåüc khoï khàn naìy.
• Mäüt säú kê hiãûu coï yï nghéa khaïc nhau tuyì thuäüc vaìo ngæî caính sæí duûng.
• C quaï mãöm deío coï thãø laìm cho chæång trçnh coï veí báút äøn.
I.4. Thuáût toaïn (Algorithm):
Thuáût toaïn laì mäüt chuäùi caïc chè dáùn chênh xaïc âem âãún mäüt låìi giaíi cho mäüt baìi toaïn.
Khi xáy dæûng thuáût toaïn ta chuï yï noï phaíi thoaí maîn caïc âiãöu kiãûn sau :
+ Tênh khaí thi: thuáût toaïn phaíi thæûc hiãûn âæåüc khi xáy dæûng chæång trçnh âãø chaûy âæåüc
trãn maïy tênh.
Chæång I : Täøng quan
Trang 2
+ Säú bæåïc cáön thæûc hiãûn trong thuáût toaïn laì hæîu haûn âãø sau mäüt säú láön làûp nháút âënh ta
phaíi âæåüc nghiãûm cuía baìi toaïn
+ Tênh täúi æu: thäng thæåìng âäúi våïi mäüt baìi toaïn coï nhiãöu phæång phaïp giaíi khaïc nhau
ta phaíi choün ra trong säú âoï phæång phaïp giaíi täúi æu nháút vãö thåìi gian thæûc hiãûn, cho kãút quaí
chênh xaïc nháút, khäúi læåüng tênh toaïn êt nháút vaì âån giaín khi viãút chæång trçnh.
Vê duû :
+ Phaït biãøu baìi toaïn : Trong låïp coï bao nhiãu ngæåìi tãn Xuán ?
+ Âáöu vaìo :
• 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
Chæång I : Täøng quan
Trang 3
I.6. Caïc bæåïc cå baín khi viãút chæång trçnh C:
• Thiãút kãú chæång trçnh :
Xaïc âënh âáöu vaìo, âáöu ra cuía baìi toaïn
Xáy dæûng thuáût toaïn âãø giaíi quyãút baìi toaïn.
• Soaûn thaío :
Sæí duûng chæång trçnh soaûn thaío TURBO C hoàûc BORLAND C hoàûc C++, sau âoï læu
laûi file âoï våïi tãn laì *.c ( âäúi våïi C++ laì *.cpp )
• Dëch :
Chæång trçnh soaûn thaío cuîng laì trçnh biãn dëch.
Trçnh biãn dëch seî coï nhiãûm vuû dëch chæång trçnh nguäön sang maî maïy qua 2 gian
âoaûn: dëch ra táûp tin *.obj vaì liãn kãút caïc file *.obj laûi våïi nhau qua trçnh liãn kãút. Nãúu
coï läùi thç ta quay tråí laûi bæåïc soaûn thaío âãø sæîa chæîa.
• Chaûy chæång trçnh
Nãúu coï läùi thç ta phaíi kiãøm tra laûi thuáût toaïn, läùi logic, .... âãún khi cho kãút quaí âuïng.
II. Caïc pháön tæí cå baín cuía ngän ngæî C:
II.1. Bäü kê tæû cuía C:
Ngän ngæî C âæåüc xáy dæûng trãn bäü kê tæû sau :
• Caïc chæî caïi hoa A .. Z, caïc chæî caïi thæåìng a .. z
• Caïc chæî säú 0 .. 9
• Dáúu cháúm cáu : , ; . ?
• Caïc kê tæû âàûc biãût nhæ []{}!@#$%^&*()-=\+|...
• Caïc kê tæû khäng nhçn tháúy nhæ khoaíng tràõng, dáúu tab, kyï tæû xuäúng doìng.
• Kê tæû gaûch dæåïi _
Âáy chè laì táûp con cuía Baíng maî ASCII
Ta khäng âæåüc pheïp sæí duûng caïc kê tæû ngoaìi bäü kê tæû trãn.
II.2. Caïc tæì khoaï (keyword):
Tæì khoaï laì tæì duìng riãng, khäng thãø âënh nghéa laûi, mäùi tæì khoaï coï mäüt yï nghéa riãng.
Ta khäng âæåüc sæí duûng tæì khoaï vaìo muûc âêch khaïc nhæ âàût tãn cho biãún, hàòng, maíng; cáön
phaíi viãút chênh xaïc tæì khoaï.
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
gaûch dæåïi.
• Tãn khäng âæåüc chæïa caïc kê tæû âàûc biãût nhæ dáúu cháúm cáu, dáúu caïch ...
• Tãn khäng âæåüc bàõt âáöu bàòng chæî säú
• C phán biãût chæî hoa vaì chæî thæåìng : bien,Bien vaì BIEN laì caïc tãn khaïc nhau.
• Khäng âæåüc sæí duûng tæì khoïa âãø âàût tãn.
• Tãn coï thãø daìi tåïi 31 kê tæû, tuy nhiãn khäng nãn âàût tãn quaï daìi.
• Tãn biãún, tãn hàòng nãn phaín aïnh caïi maì noï læu træî
• Tãn haìm nãn phaín aïnh cäng viãûc maì noï laìm.
Vê duû : bien_dem, nghiem1, hoan_vi,... : âuïng.
1st, bien dem, registry laì caïc vê duû sai .
Chuï yï : + C coï phán biãût chæî hoa vaì chæî thæåìng
+ Táút caí caïc tæì khoaï vaì haìm chuáøn âãöu laì chæî thæåìng, caïc macro chuáøn âãöu laì
chæî hoa
II.4. Låìi chuï giaíi:
Låìi chuï giaíi trong chæång trçnh coï muûc âêch laìm cho ngæåìi âoüc dãù hiãøu, chæång trçnh
saïng suía, thuáûn låüi trong viãûc tçm kiãúm, sæîa chæîa, gåî räúi, ... nháút laì âäúi våïi chæång trçnh låïn,
phæïc taûp. Ta cáön coï thoïi quen sæí duûng caïc cáu chuï thêch. Khäng sæí duûng chuï thêch våïi nhæîng
lãûnh âaî quaï roî raìng.
Låìi chuï giaíi khäng coï taïc duûng taûo ra maî chæång trçnh. Trçnh biãn dëch seî boí qua táút
caí caïc cáu ghi chuï. Ta khäng sæí duûng caïc cáu chuï thêch läöng vaìo nhau
Låìi chuï giaíi åí báút kyì âáu trong chæång trçnh, âæåüc âàût giæîa càûp kê hiãûu /* vaì */ , chuï
giaíi coï thãø nàòm trãn nhiãöu doìng.
Vê duû : /* âáy laì haìm hoaïn vë
haìm naìy sæí duûng con troí */
Trong C++, sau mäùi doìng, låìi chuï giaíi coï thãø nàòm sau kê hiãûu //. Mäùi kê hiãûu // chè coï
taïc duûng trãn doìng âoï.
Vê duû : int dem=0; // dem laì biãún âãúm.
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.
void ham1(void)
{
......
}
void ham2(void)
{
......
}
main()
{
......
ham1();
......
ham2();
......
}
Chæång I : Täøng quan
Trang 6
Mäüt chæång trçnh C thæåìng coï cáúu truïc nhæ sau :
/* Caïc chè thë tiãön xæí lê */
#include ....
#define ...
typedef .... /* âënh nghéa caïc kiãøu dæî liãûu */
/* khai baïo nguyãn máùu caïc haìm*/
kiãøu_dæî_liãûu tãn_haìm(tham_säú);
khai baïo caïc biãún toaìn cuûc;
/* chæång trçnh chê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
{
return (x*y);
}
Chæång I : Täøng quan
Trang 7
Vê duû : tênh diãûn têch hçnh chæî nháût biãút chiãöu daìi vaì chiãöu räüng khäng duìng haìm
#include <stdio.h>
#include <conio.h>
main()
{
int x,y;
printf(“\nNhap chieu dai:”);scanf(“%d”,&x);
printf(“\nNhap chieu rong:”);scanf(“%d”,&y);
printf(“\nDien tich hinh chu nhat: %d”,x*y);
getch();
return 0;
}
IV. Baìi táûp:
1. Xáy dæûng thuáût toaïn vaì veî så âäö khäúi cuía caïc baìi toaïn sau:
a. Tênh n!
b. Tênh ∑=
n
i
i
1
c. Giaíi phæång trçnh ax + b = 0
d. Giaíi phæång trçnh ax2
+ bx + c = 0
e. Giaíi phæång trçnh ax3
+ bx2
+ cx + d = 0
f. Giaíi phæång trçnh ax4
+ bx3
+ cx2
+ 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 vaì hàòng
Trang 8
Ch−¬ng II. KIÃØU DÆÎ LIÃÛU, BIÃÚN VAÌ HÀÒNG
I. Kiãøu dæî liãûu:
Kiãøu dæî liãûu laì táûp håüp caïc giaï trë maì caïc biãún thuäüc kiãøu âoï coï thãø nháûn âæåüc.
Mäùi kiãøu dæî liãûu coï mäüt säú pheïp toaïn tæång æïng.
Caïc kiãøu dæî liãûu âæåüc phán loaûi nhæ sau :
II. Biãún vaì hàòng, caïc pheïp gaïn cå baín:
Biãún duìng âãø læu dæî liãûu coï thãø thay âäøi giaï trë âæåüc.
Hàòng duìng âãø læu dæî liãûu khäng thãø thay âäøi.
Biãún vaì hàòng laì vuìng nhåï læu træî dæî liãûu âæåüc âàût tãn cho dãù truy cáûp (khäng phaíi
duìng âëa chè) .
Træåïc khi sæí duûng biãún vaì hàòng ta cáön khai baïo træåïc.
II.1. Khai baïo vaì khåíi taûo biãún:
Khai baïo biãún : kiãøu_dæî_liãûu danh_saïch_caïc_tãn_biãún
Ta coï thãø khai baïo nhiãöu biãún cuìng kiãøu cuìng mäüt luïc, caïc biãún caïch nhau dáúu pháøy.
Vê duû : int dem, tam, x, y;
float tr_binh;
Khåíi taûo biãún : biãún = biãøu thæïc
Vê duû : int x ;
x = 10;
hoàûc : int x =10 ;
Ta cáön chuï yï x = y khäng phaíi laì x bàòng y maì laì gaïn giaï trë cuía y vaìo x.
Vê duû : int x,y;
y=x;
kiãøu säú nguyãn
kiãøu säú thæûc
kiãøu kê tæû
kiãøu logic
kiãøu cå såí
kiãøu vä hæåïng
tæû âënh nghéa
kiãøu liãût kã
kiãøu vä hæåïng
âån giaín
kiãøu dæî liãûu coï
cáúu truïc kiãøu file
kiãøu array
kiãøu struct
kiãøu con troí
Kiãøu
dæî
liãûu
Chæång II : Kiãøu dæî liãûu, biãún vaì hàòng
Trang 9
Ta nãn nhåï ràòng bäü nhåï maïy tênh khäng räùng khi maïy tênh laìm viãûc. Caïc khäúi nhåï cáúp
phaït cho biãún coï thãø âaî coï giaï trë træåïc âoï. Ta chæa khåíi taûo x nãn ta khäng biãút âæåüc giaï trë x.
II.2. Khai baïo vaì khåíi taûo hàòng:
Khai baïo hàòng : const kiãøu_dæî_liãûu tãn_hàòng = giaï trë hàòng
Vê duû : const int so_luong = 50 ;
const float sai_so = 0.5 ;
II.3. Pheïp gaïn:
Biãún nháûn giaï trë qua pheïp gaïn våïi dáúu bàòng : tãn_biãún = biãøu thæïc
Vê duû : a = 5; // gaïn cho a giaï trë laì 5
b = a - 4; // tênh giaï trë a - 4 räöi gaïn giaï trë âoï cho b
Pheïp gaïn keïp :
Vê duû : a = b = c = 7 ;
a = (b = 4 ) + ( c = 5 ) ;
Khi ta sæí duûng pheïp gaïn keïp, cáu lãûnh seî ngàõn hån tuy nhiãn khäng nãn laûm duûng.
III. Kiãøu säú nguyãn:
Caïc kiãøu säú nguyãn laì nhæîng táûp håüp con cuía táûp Z, khäng phaíi laì toaìn bäü táûp Z .
• Caïc kiãøu säú nguyãn cuía C våïi caïc daíi giaï trë khaïc nhau :
Kiãøu biãún Tæì khoaï Säú byte Daíi giaï trë
Character char 1 -128 ÷ 127
Integer int 2 -32768 ÷ 32767
Short integer short 2 -32768 ÷ 32767
Long integer long 4 -2147483648 ÷ 2147483647
Unsigned character unsigned char 1 0 ÷ 255
Unsigned integer unsigned int 2 0 ÷ 65535
Unsigned short integer unsigned short 2 0 ÷ 65535
Unsigned long integer unsigned long 4 0 ÷ 4294967295
Våïi táút caí caïc kiãøu, ta chè nãn gaïn cho biãún caïc giaï trë nàòm trong daíi giaï trë cuía kiãøu
âoï, nãúu khäng ta seî nháûn âæåüc kãút quaí khäng mong muäún màûc duì C khäng thäng baïo läùi.
Kiãøu int laì kiãøu thäng duûng nháút. Kiãøu char thæûc ra laì kiãøu kê tæû nhæng C cho pheïp sæí
duûng kiãøu char nhæ laì kiãøu nguyãn: trong biãøu thæïc säú hoüc thç char âæåüc hiãøu laì kiãøu nguyãn.
• Caïc pheïp tênh säú hoüc âäúi våïi säú nguyãn :
Pheïp toaïn Kê hiãûu Vê duû
Cäüng + x+y
Træì - x-y
Nhán * x*y
Chia láúy pháön nguyãn / x/y
Chia láúy pháön dæ % x%y
Tàng ++ x++ hoàûc ++x
Giaím -- x--hoàûc --x
Chæång II : Kiãøu dæî liãûu, biãún vaì hàòng
Trang 10
Vê duû : 10 % 3 =1 ; 5 / 3 = 1 ;
• Biãøu diãùn säú nguyãn dæåïi daûng Hexa ( hãû tháûp luûc phán) :
Hãû tháûp phán sæí duûng : 0 1 2 3 4 5 6 7 8 9
Hãû nhë phán sæí duûng : 0 1
Hãû tháûp luûc phán sæí duûng : 0 1 2 3 4 5 6 7 8 9 A B C D E F
Vê duû : säú 53 åí daûng nhë phán laì 110101, åí daûng Hexa laì 35.
Säú nguyãn âæåüc biãøu diãùn dæåïi daûng Hexa : 0xgiaï_trë_Hexa hoàûc 0Xgiaï_trë_Hexa
Vê duû : 0x12 (=18) ; 0X12 (=18)
Âäúi våïi säú hãû 8 ta viãút thãm säú 0 vaìo træåïc : 0giaï_trë_Oct
Vê duû : 0123 (=83)
• Biãøu diãùn säú ám trong maïy tênh:
Säú ám : Vê duû : int x= - 21 ;
21 : 0000 0000 0001 0101
Säú buì 1 : 1111 1111 1110 1010
Säú buì 2 : 1111 1111 1110 1011
• Hiãûn tæåüng traìn säú :
Hiãûn tæåüng naìy xaíy ra khi kãút quaí dæû kiãún cuía pheïp tênh säú hoüc væåüt ra khoíi daíi giaï trë
coï thãø biãùu diãùn âæåüc cuía kiãøu dæî liãûu âoï. Luïc âoï kãút quaí thæûc tãú seî laì kãút quaí sai.
Vê duû : 32767 + 1 seî coï kãút quaí -32768
Âãø khàõc phuûc ta chuyãøn sang sæí duûng caïc kiãøu dæî liãûu coï daíi giaï trë cho pheïp räüng hån
Chuïng ta nãn khai baïo våïi kiãøu dæî liãûu täúi æu âãø væìa coï kãút quaí mong muäún væìa tiãút
kiãûm bäü nhåï.
Nãúu chuïng ta âàût mäüt säú ám vaìo biãún khäng dáúu hoàûc âàût mäüt säú vaìo kiãøu dæî liãûu coï
daíi giaï trë nhoí hån säú âoï thç trçnh biãn dëch seî khäng baïo läùi nhæng ta seî coï kãút quaí khäng
mong muäún.
• Hàòng säú nguyãn coï kiãøu âënh træåïc :
Âäi khi chuïng ta muäún ghi caïc hàòng säú våïi kiãøu âënh træåïc mäüt caïch tæåìng minh âãø
âaím baío âäü chênh xaïc : ghi thãm 1 kê tæû vaìo cuäúi säú âoï
Vê duû : U : unsigned int
UL : unsigned long int
0x123L: hàòng säú nguyãn dæåïi daûng Hexa kiãøu long.
Vê duû : signed char ch= 0xFF;
int x= 0xFFFF;
unsigned int y= 0xFFFFu;
printf("\n The decimal of signed 0xFF is %d", ch); -1
printf("\n The decimal of signed 0xFFFF is %d", x); -1
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