Bai giang ngon ngu lap trinh C -
(c) Nguyen Quang Huy 12/2000
1
Trêng®¹ihäcb¸chkhoahµnéi
Trêng®¹ihäcb¸chkhoahµnéi
Ng«n ng÷ lËp tr×nh
C
Ngêiso¹n:NguyÔnQuangHuy
12/2000
Bai giang ngon ngu lap trinh C -
(c) Nguyen Quang Huy 12/2000
2
Ch¬ng1
Ch¬ng1
C¬b¶nvÒng«nng÷c
C¬b¶nvÒng«nng÷c
Tæng quan vÒ ng«n ng÷ C
CÊu tróc chung cña mét ch ¬ng tr×nh C
C¸c thµnh phÇn c¬ b¶n cña ng«n ng÷
C¸c kiÓu d÷ liÖu c¬ b¶n
C¸c cÊu tróc lÖnh c¬ b¶n trong C
Vµo ra trong C
Bai giang ngon ngu lap trinh C -
(c) Nguyen Quang Huy 12/2000
3
PhÇn dÉn h íng biªn dÞch
PhÇn khai b¸o
PhÇn ch ¬ng tr×nh chÝnh
Bai giang ngon ngu lap trinh C -
(c) Nguyen Quang Huy 12/2000
5
Cácthànhphầncơbảncủangônngữ
Cácthànhphầncơbảncủangônngữ
Bộ chữ viết:
phân biệt chữ hoa và chữ th ờng
Tên:
quy tắc đặt tên
Từ khoá: asm, break, case, char, const, continue, if,
Các kiểu dữ liệu cơ bản
Các biến
Các hằng
Biểu thức
Bai giang ngon ngu lap trinh C -
(c) Nguyen Quang Huy 12/2000
6
C¸ckiÓud÷liÖuc¬b¶n
#define<tªn_h»ng><gi¸_trÞ>
VÝ dô:
#define MAX 100;
#define ECHO "DHBK Hanoi"
•
H»ng biÕn:
const<tªn_kiÓu><tªn_h»ng>=<gi¸_trÞ>;
VÝ dô:
const long MAX = 100L;
const char ECHO[30] = "DHBK Hanoi";
Bai giang ngon ngu lap trinh C -
(c) Nguyen Quang Huy 12/2000
9
Biểuthức(1/5)
Biểuthức(1/5)
Các phép toán số học: +, -, *, /, %, -
Các phép toán quan hệ: >, <, >=, <=, ==, !=
Các phép toán logic: &&, ||, !
Các phép toán thao tác bit: &, |, ^, <<, >>, ~
Thao tác số học
Thao tác logic
Phép toán tăng giảm: ++,
&<BiÕn>
VÝ dô:
int n;
scanf("%d",&n);
Bai giang ngon ngu lap trinh C -
(c) Nguyen Quang Huy 12/2000
12
BiÓuthøc(4/5)
BiÓuthøc(4/5)
•
ChuyÓn ®æi kiÓu tù ®éng:
char->int->long->float->double->longdouble
•
PhÐp to¸n chuyÓn ®æi kiÓu:
(<KiÓu>)<BiÓu_thøc>
VÝ dô:
int n = (int) 10.24;
•
Thø tù u tiªn cña c¸c to¸n tö:
Bai giang ngon ngu lap trinh C -
(c) Nguyen Quang Huy 12/2000
13
BiÓuthøc(5/5)
BiÓuthøc(5/5)
To¸n tö Thø tù kÕt hîp
(), [], -> Tr¸i sang ph¶i
~, ++, , (type) Ph¶i sang tr¸i
*, /, % Tr¸i sang ph¶i
+, - Tr¸i sang ph¶i
<<, >> Tr¸i sang ph¶i
hoÆc:
if (BiÓu thøc) <LÖnh 1>;
else <LÖnh 2>;
VÝ dô:
if (a<b) max=b;
else max=a;
Bai giang ngon ngu lap trinh C -
(c) Nguyen Quang Huy 12/2000
16
CÊutróc®iÒukiÖn(2/2)
CÊutróc®iÒukiÖn(2/2)
•
C©u lÖnh SWITCH :
switch (BiÓu_thøc_nguyªn){
case N1 : Lenh1;
case N2 : Lenh2;
[default : Lenh;]
}
VÝ dô:
switch (ch){
case 1 :
case 2 : printf("1 ou 2"); break;
case 3 : printf("3"); break;
default : printf("greater than 3");
}
Bai giang ngon ngu lap trinh C -
(c) Nguyen Quang Huy 12/2000
17
CÊutróclÆp(1/3)
CÊutróclÆp(3/3)
CÊutróclÆp(3/3)
•
C©u lÖnh DO WHILE :
do Lenh1;
while (<BiÓu thøc ®k>);
VÝ dô: TÝnh tÝch v« h íng cña hai vect¬ X,Y:
int X[MAXL], Y[MAXL], chiso=0;
tichvohuong = 0;
do {
tichvohuong += X[chiso]*Y[chiso];
} while (++chiso < MAXL);
Bai giang ngon ngu lap trinh C -
(c) Nguyen Quang Huy 12/2000
20
VµoratrongC(1/5)
VµoratrongC(1/5)
•
Vµo ra qua c¸c kªnh xuÊt/nhËp (I/O streams):
Gi¸ trÞ > Kªnh xuÊt > Khu«n d¹ng > ThiÕt bÞ ra
ThiÕt bÞ vµo > Kªnh vµo > Khu«n d¹ng > BiÕn
•
Th viÖn c¸c hµm vµo ra: stdio.h vµ conio.h
#include <stdio.h>
#include <conio.h>
•
Hµm printf() vµ scanf()
Bai giang ngon ngu lap trinh C -
(c) Nguyen Quang Huy 12/2000
21
%X int HÖ 16 kh«ng dÊu
%e, %E float, double DÊu chÊm ®éng
%f, %lf float, double DÊu phÈy tÜnh
%g. %G float, double DÊu phÈy tÜnh hoÆc ®éng
%c char Ký tù
%s char * X©u ký tù
Bai giang ngon ngu lap trinh C -
(c) Nguyen Quang Huy 12/2000
23
VàoratrongC(4/5)
VàoratrongC(4/5)
Hàm scanf():
scanf(<format>, {<address>, } );
<format>: xâu định dạng
< address>: địa chỉ của các tham số t ơng ứng
Ví dụ:
int n;
long l;
float f;
double d;
printf("Nhập các giá trị cho các biến n,l,f,d:");
scanf("%d%ld%f%lf", &n, &l, &f, &d);
Bai giang ngon ngu lap trinh C -
(c) Nguyen Quang Huy 12/2000
24
return 0;
}