11/24/2010
1
2.2Biến,kiudliuvàcác
toán ttoán hc
Ni dung
Biến
Hng
Các kiudliucơbntrongC
Biuthctoánhc
Mtshàm toán hctrongC
Toán tlogic toán ttrên bit
Độ ưutiênca các toán t
2.2Biến,hng,kiudliu
Biến(variable)đạilượnggiátrịthểthayđổitrong
chươngtrình.
Biếnphiđượckhaibáotrướckhisửdng.
Tênbiếnđượcđặt theo quy tcđịnh danh.
Quytcđặtđịnhdanh(identifier):
Gmcó:chữcái,chữsốdugchdưới“_”
Btđầucađịnhdanhphichữcáihocdugch
dưới,khôngđượcbtđầuđịnhdanhbngchữs.
Địnhdanhdongườilptrìnhđặtkhôngđượctrùngvi
từkhóa, các định danh khác.
2.2Biến,hng,kiudliu
Định danh hplệĐnh danh không hpl
wiggles
cat2
Hot_Tub
taxRate
_kcab
$Z]**
2cat
Hot-Tub
tax rate
don‘t
int
Ngôn ngCphân bitchhoa chthường !
sum,Sum,sUm,suM,SUm các tên biến khác nhau
11/24/2010
2
2.2Biến,hng,kiudliu
Độ dài tên biến không giihn,tuy nhiên ch 31 t
đầulàcóýnghĩa.
Khôngnên đặt tên biến quá dài
Nên đặt tên biếncóýnghĩa
VD.Biếncha thông tinvềđim thi nên đặtlàdiemThi
hocdiemThiTHDC thay chỉđt tên d, I, x …
DùngquytcCamel:vd,soSinhVien,diemThi
Dùngdugchni:vd,so_sinh_vien,diem_thi
2.2Biến,hng,kiudữliu
Cáct,sốhocxâutựđược
gimthng (constant)
Vd.5, 5.6, 'A',
"programming is fun\n"
Biuthctoánhngchỉgm
cáchngsốđượcgibiuthc
hng
VD.4+5-6.1
CáckiudữliucơbntrongC:int, float,
double, char
2.2Biến,hng,kiudliu2.2Biến,hng,kiudliu
Kiusnguyên cơbn:int
10,‐23,0 các hng snguyên
Mcđịnh trong Ccác hng snguyên biudinbng hcơ
s10.
Ngoài hcơs10,hng snguyên còn đượcbiudin
bng hcơs8(octal) hsơs16(hexa)
Hcơs8:btđầubng s0,vd 050,045
Hcơs16:btđầubng 0x,vd 0x5F,0xE5
Inradùng%d,%i,%o,%#o,%x,%#x
printf("%d%d%d\n",50,050,0x50);
Inra:504080
11/24/2010
3
2.2Biến,hng,kiudliu
Các kiusnguyên khác:char,short,long,longlong
Kích thướclưutr
Để chhng kiulong ta dùng thêm hiulhocLởsau
Type
Macintosh
MetrowerksCW
(Default) LinuxonaPC
IBMPC
WindowsXP
WindowsNT
ANSIC
Minimum
char 8 8 8 8
int 32 32 32 16
short 16 16 16 16
long 32 32 32 32
longlong 64 64 64 64
2.2Biến,hng,kiudliu
Snguyên duvàsnguyên không du:signed
unsigned
Mcđịnh các kiusnguyên signed
Khai báo snguyên không du:unsigned
unsigned int,unsignedlong,…
Để chra mthng snguyên không du,dùng u
hocUởcui
243U,34u,343454UL
2.2Biến,hng,kiudliu
Kiusthc:float
3.,125.8, –.0001 các hng sthc
3.5e+2,.12e3 các hng sthcdướidng pháp khoa
hc
Kích thướcbiudin:32bit
Inra sthc
%f dướidng duphytĩnh
%e dướidng pháp khoa hc
%g tựđiuchnh cho dnhìn
printf("%f%e%g",.00000012,5.12,50000.12);
2.2Biến,hng,kiudliu
Kiusthcmrng :double
Sdng 64bit
Độ chính xác gpđôi sovifloat
Để phân bit1hng sthclàfloatthì thêm hiuf
hocFởcui .34f45.56F
11/24/2010
4
2.2Biến,hng,kiudliu
Kiukýt:char
‘A’,‘v’,‘0’,‘\n’ các hng t
Inra bng %c
thdùng nhưmtgiátrnguyên (chính
ASCIIcakýtựđó)
printf("%c %d",'A','A');
2.2Biến,hng,kiudliu
Mtshng t hinghĩa
\a Audiblealert
\b Backspace
\f Formfeed
\n Newline
\r Carriagereturn
\t Horizontaltab
\v Verticaltab
\\ Backslash
\” Doublequote
\’ Singlequote
\?Questionmark
2.2Biến,hng,kiudliu
Type ConstantExamples Printf char
char 'a','\n' %c
shortint %hi,%hx,%ho
unsignedshortint %hi,%hx,%ho
int12,‐97,0xFFE0,0177%i,%x,%o
unsignedint 12u,100U,0XFFu %u,%x,%o
longint 12L,‐2001,0xffffL %li,%lx,%lo
unsignedlongint 12UL,100ul,0xffeeUL%lu,%lx,%lo
longlong int 0xe5e5e5e5LL,500ll %lli,%llx,%llo
unsignedlonglong
int
12ull,0xffeeULL %llu,%llx,%llo
float 12.34f,3.1e5f %f,%e,%g
double 12.34,3.1e5 %f,%e,%g
longdouble 12.341,3.1e5l %Lf,%Le,%Lg
2.2Biến,hng,kiudliu
/*Example2.2.1
*kichthuoc cac kieu dulieucoban*/
#include<stdio.h>
int main(void)
{
printf("Kieu int %dbytes.\n",sizeof(int));
printf("Kieu char%dbytes.\n",sizeof(char));
printf("Kieu long%i bytes.\n",sizeof(long));
printf("Kieu double%ubytes.\n",sizeof(double));
return0;
}
11/24/2010
5
2.2Biến,hng,kiudliu
Khai báo biến
Kiu_d_liutên_biến;
Kiu_d_liutên_biến=giá_tr_ban_đầu;
int a;
floatb,c,diem_thi;
doubleg,pi=3.1415,rad =3.14;
Khai báo hng dướidng biutượng (symbolicconstant)
#defineTÊN_HNGgiá_tr
constkiu_d_liuTÊN_HNG=giá_trị;
2.2Biến,hng,kiudliu
/*Example2.2.2*/
#include<stdio.h>
#definelai_xuat0.013
int main(void)
{
constintso_thang=12;
floattien_gui=10e6;
printf("Tienlai 1nam :%g\n",tien_gui*so_thang*lai_xuat);
return0;
}
Kiudữliulogic Boolean
Kiu_Bool:kiulogicchỉtừbnC99
KiulogictrongC:
Falsetươngứngvi0
Truetươngứngvigiátrị0
Kiu_Bool:đượcđịnhnghĩatrong<stdbool.h>
Haigiátrịtrue,false đượcđịnhnghĩa
thểdùng%iđểinrabiếnkiu_Bool
_Boolsam=true;
if(sam)printf("TRUE");
else printf("FALSE");
BiuthctrongC
Biuthctoánhc
Cácloitoánt
Độưutiêncacáctoánt
Thayđổiđộưutiêncatoánt