Professional Documents
Culture Documents
Biên
www.hutech.edu.vn
*1.2020.CMP1016*
này, xin -mai :
tailieuhoctap@hutech.edu.vn
I
M CL C
M C L C ...................................................................................................................I
NG D N .......................................................................................................... IV
BÀI 1: KI N TH NV MÁY TÍNH .................................................................... 1
............................................................................................ 1
1.1.1 Máy tính là gì? ................................................................................................ 1
1.1.2 ..................................................................................... 2
1.1.3 .......................................................................................... 2
1.1.4 ................................................................ 3
........................................... 3
1.2.1 .......................................................................... 3
1.2.2 ..................................................................................... 5
1.3 ......................................................................................... 5
1.3.1 y thông minh ......................................................... 5
1.3.2 ...................................................................................................... 6
1.3.3 .................................................................................................... 15
1.3.4 ....................................................................................... 19
1.3.5 ...................................................................... 21
CÂU H I ÔN T P .................................................................................................... 25
N L P TRÌNH MÁY TÍNH ....................................................................... 27
.................................................................. 27
..................................................................................................... 28
2.2.1 t ...................................................................................... 28
2.2.2 ........................................................................... 29
2.2.3 ......................................................................... 30
2.2.4 ...................................................... 31
.................................................................................................. 37
2.4 anguage) ........................................... 38
2.4.1 ............................................................................. 38
2.4.2 ............................................................ 39
2.4.3 ............................................................ 43
CÂU H I ÔN T P .................................................................................................... 45
BÀI 3: GI I THI U V NGÔN NG L P TRÌNH C ........................................................ 49
............................................................. 49
3.1.1 .......................................................................... 49
3.1.2 .......................................................................................... 50
3.1.3 ..................................................................................... 50
-C ........................................................................................ 52
II
3.3 .............................................................. 53
CÂU H I ÔN T P .................................................................................................... 56
BÀI T P NÂNG CAO................................................................................................ 59
BÀI 4: KI U D LI U VÀ BI U TH C TRONG C .......................................................... 60
................................................................ 60
4.1.1 .....................................................................60
4.1.2 .......................................................................................61
4.1.3 ...................................................................................62
4.1.4 ............................................................................................62
4.1.5 .............................................................................................................65
.................................................................................. 67
4.2.1 ...................................................................................67
4.2.2 .....................................................................................68
4. ...................................... 69
4.3.1 ........................................................................................69
4.3.2 .....................................................................................69
4.3.3 Phép gán (l .......................................................................................70
4.3.4 .....................................................................72
4.3.5 ....................................................................................74
4.3.6 ......................................................................................75
4.3.7 .........................................................................................76
4.3.8 Các phép toán thao tác trên bit ........................................................................77
4.3.9 ....................................................................................78
4.3.10 .....................................................................................79
........................................................................................ 80
4.4.1 ...........................................80
4.4.2 ...................................82
.................................................................... 85
4.5.1 ....................................................................................85
4.5.2 ............................................................................86
4.5.3 .......................................................................87
4.5.4 C ...................................88
4.5.5 ...............................................................89
4.5.6 .......................................................................90
CÂU H I ÔN T P .................................................................................................... 91
BÀI 5: CÁC TOÁN T U KHI N ............................................................................. 96
.............................................................. 96
5.1.1 .........................................................................................96
5.1.2 .......................................................................................................96
5.2 ...................................................................... 98
5.2.1 ..........................................................................................98
III
5.2.2 ............................................................................... 102
5.3 C ................................................................................................ 104
5.3.1 ............................................................................................ 104
5.3.2 ........................................................................................ 107
5.3.3 Vòng ...................................................................................... 109
5.3.4 .................................................................................... 110
............................................................................... 111
5.4.1 .................................................................................................. 111
5.4.2 ..............................................................................................112
CÂU H I ÔN T P .................................................................................................. 113
.................................................................................... 114
.............................................................................. 114
............................................................................................... 115
......................................................................................... 116
6.3.1 ....................................................................................... 116
6.3.2 ............................................................................................... 117
6.3.3 ...................................................................... 118
6.4 hàm................................................................................ 119
...................................... 124
6.5.1 ............................................................................................... 124
6.5.2 ................................................................................................. 124
CÂU H I ÔN T P .................................................................................................. 125
BÀI 7: M NG- CHU I KÝ T .................................................................................... 126
7. ..................................................................................................... 126
.......................................................................................... 127
7.2.1 Khai báo ..................................................................................................... 127
7.2.2 ............................................................... 128
7.2.3 .................................................................. 129
7.2.4 ................................................................... 130
7.2.5 .......................................................... 130
................................................ 132
7.3.1 ...................................................................................... 132
7.3.2 ......................................................................... 133
7.3.3 ...................................................... 134
CÂU H I ÔN T P .................................................................................................. 142
BÀI 8: KI U D LI U CÓ C U TRÚC ......................................................................... 147
..................................................................................................... 147
.................................................................... 148
.............................................. 150
................................ 150
8.4.1 ................................................................................................ 150
IV
8.4.2 ................................................................................................. 151
............................................................................................ 151
CÂU H I ÔN T P .................................................................................................. 154
TÀI LI U THAM KH O .......................................................................................... 160
NG D N
MÔ T MÔN H C
Môn ngôn ng l p trình C cung c p cho sinh viên nh ng ki n th c n v máy
tính, v l p trình thông qua ngôn ng l p trình C. Môn h c này là n n t ti p thu
h u h t các môn h c khác trong ch o. M t khác, n m v ng môn này
phát tri gi i các bài toán và các ng d ng
.
- quan
- u trong C.
- h
N I DUNG MÔN H C
- Bài 1 KI N TH N V M Y T NH
- Bài 2 N M Y T NH
V
- Bài 3
- Bài 4 KI U D LI U V BI U TH C TRONG C
- Bài 5 C C TO N T U KHI N
- Bài 7 M NG
YÊU C U MÔN H C
t v logic và ki n th c toán h n.
C
h c t t môn này, i h c c n ôn t p các bài h c, tr l i các câu h i và
bài t p c bài m n bài
h c.
m 2 ph n
BÀI 1: KI N TH NV
MÁY TÍNH
- máy tính
1.1 M T S KHÁI NI M
1.1.1 Máy tính là gì?
báo
h, theo
Hình 1.1: Máy tính
n
tr u
2 BÀI 1:
- Thông tin ý,
- (information system) là
chúng nên thông tin có ý )
N
Processing (Out put)
(Input)
1.1.3
BIT (BInary digiT)
ó 1
d ot
Byte B 8 bits
KiloByte KB 210 B
MegaByte MB 210 KB
GigaByte GB 210 MB
TetraByte TB 210 GB
Petabyte PB 210 TB
Exabyte EB 210 PB
Zettabyte ZB 210 EB
BÀI 1: 3
Yottabyte YB 210 ZB
Brontobyte BB 210 YB
Geopbyte GeB 210 BB
thông tin:
- X l c
-
là b.
- (b là guyên, b ) mang
0 là (b-1).
bn.
tro ,
1.2.1.1 H m th p phân
1.2.1.2 H m nh phân
i 2
BInary digiT
6, 7.
1.2.1.4 H m th p l c phân
16 ký
A, B, C, D, E, F 15 tron
phân.
: Qui
0 0000 00 0
1 0001 01 1
2 0010 02 2
3 0011 03 3
4 0100 04 4
5 0101 05 5
6 0110 06 6
7 0111 07 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
BÀI 1: 5
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F
1.2.2.1 it b 10
b
b ó.
Ví 1.1: 1(2)
1.2.2.2 it b
b (b
cho b
b
6(10) =110(2)
hân lo c
6 BÀI 1:
phù ong tú
và .
1.3.2 Ph n c ng
- ut).
BÀI 1: 7
(Input) i
CU (Control Unit) ALU
(Arithmetic Logic Unit) (Output)
+ RAM)
ng máy tính
n bo
mà h khác trong máy tính
1. tâm (CPU)
tâm
phép tính. CPU có 3 b
L ra các tín
áy
B a, ...), các
phép tính logic (AND, OR, NOT, XOR) và các phép tính q
nhau,...)
tin
trong máy tính. Ngoài t
t chip duy n ng
5.
là th trình má
a. m ROM và RAM
b. ài:
- ng (Ha
-
âm thanh v
trong các g ng (multime
- Card),
US n 8GB và
- - RPM
00 RPM.
1.
- Bàn phím
a 104 phím có các tác
ác nhau (hình 1.7).
- và các
hím PgUp (lên trang màn hình), PgDn
g trang màn hình), Insert
-
Scr
- phím t
(
- ng không chú ý và v
,
BÀI 1: 11
i có 2
là và uang
c
wheel) và (3) Nút nh
thêm nh í khác nhau trên thâ
12 BÀI 1:
-
video và
t
- Webcam
n
và máy tính xách tay c
Máy quét
Webcam
(Scanner) (Joystick)
2.
- Màn hình
Thông tin g pháp
- Máy in
BÀI 1: 13
in laser tr ho u.
- g thay
cho màn hình trong minar, báo cáo,
Hình 1.10:
3.
t
có
Modem port
USB ports FireWire port
or RJ-11 port
DVI port
Monitor Speaker Ethernet
Parallel port port S-video port Microphone port
port
t c công
14 BÀI 1:
nhanh
C song song
Hình 1.12
-Speed
iây).
t l i giây),
2.0. (hình 1.13)
Hình 1.13: C à
óng, c y
BÀI 1: 15
g: ( Ethernet và modem,
Interne
Hình 1.14: C à k n m
1.3.3 Ph n m m
1.3.3.1 Khái ni m ph n m m
máy t
máy
húng
16 BÀI 1:
t
trình trên màn
ác ng d n. Nó
ình
giao ti Ph
trìn hành (operating system) và các c
(utility programs)
1.
ành
chính: Microsoft Windows, Mac OS, and Linux.
- ft Windows
chí
ft Windows,
3.0, Windows 95, Windows 98, Windows ME và Windows Vista, Windows 7,
Windows 8, Windows 10.
- S
, vì
. Tron
2.
ng trì ao
ng các
ích
1. Ph
các tài
khác crosoft
chóng
2.
t quan t
n
3.
n d
4. P
à slide
show, nó có trên
át cho
5. Ph
- à phát
BÀI 1: 19
mi hí.
- các h
- g ký
dõi ng g
t
i gian d
t các c bán
v nó vào a mình.
6. mã
trình ch h
Tuy nhiên, v
n hìn Linux.
1.3.4 Hi u n y tính
Nhìn chung,
T
, v.v. i các CP
20 BÀI 1:
g cache L2
(shared 128 KB, L2 là 256-512KB) giúp cho t
1.3.4.2 ng và t c b nh RAM:
D trong
l
du
chu
n
tính. khôn
BÀI 1: 21
1.3.4.4 T h a:
N i 3-D ho d
an máy tính. Card
khác.
M g máy máy
a.
u cách. Có ha chính: M
(peer to peer - - - server).
p
T trên ao t
nút khác
hàng là là khá
tài ng ó
nh
này hu server
hòng l
cáp, switch, router và các thành p
n i nhánh
Hình 1
Internet
n t
n
24 BÀI 1:
. Inte hàn
s
ntranet anh ng
ch
tranet
sername ( n) và Password (m
u intranet
theo nhóm và h
g extranet: ranet l
m soát
anet là
ng int các doanh
BÀI 1: 25
CÂU H I ÔN T P
M u
- L trong máy
tính.
- t n,
phân.
- áy vi tính.
Câu 4:
Câu 6:
Câu 7:
Câu 10:
Câu 11:
Câu 13: P ng
26 BÀI 1:
Câu 14:
Câu 15: n
th n:
a. 12 b. 13 c. 10 d. 14
a.
b.
c.
d.
Câu 17:
Câu 18: Nh
b. Loa (speaker) d.
- Khái
- bi .
2.1 T BÀ
Gi s c n vi t gi c 2 có d ng ax2+bx + c = 0,
hay vi t m t c m tra xem m t s t nhiên có ph i là s nguyên
t hay không? Công vi u tiên là chúng ta ph i hi u và bi t cách gi i bài toán b ng
l i gi ng c a gi c bài toán trên b ng máy tính
(l p trình cho máy tính gi i) thì chúng ta c n ph i th c hi n qua các :
2. V x lý d c.
Bài toán
Thu t gi i
Ngôn ng l p trình
Máy tính
2.2 GI I THU T
2.2.1 Khái ni m gi i thu t
Gi i thu t là m t h th ng ch t ch và rõ ràng các quy t c nh nh m t dãy
các thao tác trên nh ng d li u vào sao cho sau m t s h u h n b c th c hi n các
t c k t qu c a bài toán.
- ình C.
- ào h
-
4,
BÀI 2: 29
- y
- -
2.2.2 a gi i thu t
Vi a qu n áo c n gi t thì khá .
Khái ni m gi i thu t hay thu t gi i mà nhi u khi còn c g i là thu t toán dùng
ch h th gi i quy t v .
M t thu t gi i t t là thu t gi i ph i b o m:
2. nh: Các thao tác máy tính ph i th c hi c và các máy tính khác
nhau th c hi n cùng m c c a cùng m t gi i thu t ph i cho cùng m t k t qu .
- .
Ví d 5: Ta có gi i thu t gi i ph c 1 ax + b = 0
-
a khác không thì làm
- N
- -b/a
2. Mã gi (pseudocode)
Các ký hi ng s d v
L a ch n m t công vi th c hi vào m u ki ts
d
BÀI 2: 33
C u trúc 1: N u u ki c hi n <công vi c>.
Sai
Sai
34 BÀI 2:
C u trúc 2: N u ki c hi n <công vi cl u
ki n sai) thì th c hi n <công vi c 2>
b 0
- : là lo
- ng trì
trìn
i n
c 1: nh p s n
- Có và k
Dung ng x là bit) vi
char 8 -
unsigned 8 255
signed char 8 -
int 16 -32,76
unsigned int 16
signed int 16
short int 16 - 27
unsigned short int 16 535
signed short int 16
long int 32 -2,147,483,648 2,147,483,647
signed long int 32 ng nt
unsigned long int 32
float 32
double 64
long double 128
38 BÀI 2: Y TÍNH
Ki u d li u ph c h p ct gi i quy t m t
bài toán, m t v n nà u d li b n không gi i quy c (chúng ta
s nghiên c u nó nh ng ph n sau).
c
riên ú pháp u trúc
ô pt.
- -level) - ow-level)
BÀI 2: 39
- p trình Khai báo (Declarative) - -
- (General-purpose) - -specific)
- bject-oriented) - Concurrent)
- Ngôn ng - -
Chú ý:
trình.
ng n
c ngôn
trang web nà u
- C
- C#
- C++
- D
BÀI 2: 41
- Java
- Swift
- Tcl
- Visual Basic
- AIML
- C
- C#
- C++
- Prolog
- Python
- DBASE
- FoxPro
- MySQL
- SQL
- Visual FoxPro
42 BÀI 2:
- C
- C#
- C++
- DarkBASIC
- Java
- Assembly
- C
- HDML
- HTML
- Java
- JavaScript
- Perl
- PHP
BÀI 2: 43
- Python
- XML
t cách l
gian
sau:
- AutoHotkey
- awk
- bash
- Batch file
- Perl
- Python
- Tcl
t là vào GitHub -
10
cái tên hàng dành cho ngôn trình 2014
2018.
44 BÀI 2:
JavaScript, Java,
Python, PHP, C++, C#, TypeScript, Shell, C và Ruby.
BÀI 2: 45
CÂU H I ÔN T P
M u
n nh:
Input (d li u nh p).
Output (d li u xu t).
Câu 2: Hãy làm quen và li t kê các ch trên thanh toolbar c a Dev C/ Cfree
ng d n:
Câu 4: Gi i và bi n lu c nh t ax + b = 0.
ng d n:
- a, b
a, b.
- a = 0 và a 0.
b=0 ???
b!=0 ????
BÀI 2: 47
Câu 5: Gi i và bi n lu c 2: ax2 + bx + c = 0.
ng d n:
- a, b, c a, b, c.
ng d n
- n
- S
T c là:
48 BÀI 2:
c ng 1 vào bi n S -> S =1
c ng 2 vào bi n S -> S = S +2
c ng 3 v tr vào bi n S -> S =S +3
Ví d :
3.1.2 ch
n chuy n t
ph ng m i m t ngôn ng c u có m
trình d ch riên l i thì có hai cách d ch: Thông d ch và biên d ch
t b n quy Ngôn ng
l p trình c ph bi n r n nay.
c thi t k nh m l ng c a h u hành
Unix nh m m tr cho các công vi c l p trình ph c t sau, v i
nh ng nhu c u phát tri n ngày m t c a công vi c l p trình, ã t qua khuôn
kh c a phòng thí nghi m Bell và nhanh chóng h i nh p vào th gi i l r i
các công ty l p trình s d ng m t cách r n xu t ph n
m m l a ra các phiên b n h tr cho vi c l p trình b ng ngôn ng C và
chu c khai sinh t
Nh n c a ngôn ng C
3. : C có b ti n x lý và m i n chu n vô
cùng phong phú nên khi chuy n t máy tính này sang
trình vi t b ng C v
3.2 NG DEV-C
Dev-C là ph n m h c l p trình C. Ngoài ra còn ph n m m khác có th
s d ng là Turbo C, Borland C, m i nh ng
h c Pascal (vì cùng h ); tuy nhiên o di n Console
không thân thi n cho l m v ng th i s g p tr c tr c v i nh ng nh ng h u hành
64- -C++ h tr các ch n th
trình, d ch, th ên b c s d ng -C 5.11.
M Dev-C
Ch y Dev- ng gi ng n ch ng
Windows, màn hình s xu t hi n c a s Dev-
BÀI 3: 53
Dòng trên cùng g i là thanh menu (menu bar). M i m c trên thanh menu l i có
th có nhi u m c con n m trong m t menu kéo xu ng.
So n th trình m i
- oa th
- Ph .CPP
Ví d : bai_tap.cpp
Th c hi
3.3 M T S GI N
Ví d 1 Vi nh xu t chu Xin chào b
int main()
{
printf(" Xin chao ban !");
printf(" Xin chao ban!\n");
printf(" Chao ban !\n Toi ten la Hoa ");
printf(" Chao ban !\t Toi ten la Hoa !\n ");
return 0;
}
54 BÀI 3: HC
C-free: F5
Dev-C: F11
Ví d 2: Vi c hi n:
- n
#include<stdio.h>
int main()
{
//câu a
int a;
guyen: a);
printf
//câu b
float b;
//câu c
char z;
fflush(stdin); //xoá b nh m
s
Ki tu da nh
BÀI 3: 55
//câu d
int x, y, z;
printf("Moi nhap hai so nguyen de cong: ");
scanf("%d%d", &x, &y);
z = x + y;
printf("Tong hai so la %d\n", z);
//ho c printf("Tong hai so la %d\n", x+y);
v i phép hi u, tích, th u d li u k t qu c a
phép chia */
return 0;
}
Ví d 3: Vi p và m t s nguyên, cho bi t nó là s âm hay s
.
CÂU H I ÔN T P
M u
nh:
Input (d li u nh p).
Output (d li u xu t).
int main()
printf("Hello, World!");
printf("Hello, World!\n");
printf("Hello, \nWorld!\n");
printf("Hello, \tWorld!\n");
return 0;
- C-free: F5
- Dev-C: F11
*******************************************
THIEP MOI
Ho Le Thu
*******************************************
- \t (tab), \ \
Câu 3: Vi th c hi n:
- a màn hình
- và xu
a màn hình.
ng d n:
- Cá
- Cách 2: = ;
Câu 5: Vi c hi n:
ng d n:
- a, b
- max max.
- a và b
- max
- a, b, c và max
- a max = a.
- b, c max max
max au: hì m >max thì max=c.
- max.
BÀI 3: 59
BÀI T P NÂNG CAO
Câu 6: Nh p vào 3 s a, b, c. Gi s r ng 3 s v a nh p th a mãn
u ki dài ba c nh c a m t tam giác. Tính chu vi và di n tích c a tam giác
theo công th c:
- Chu vi CV = a+b+c.
- sqrt(p*(p-a)*(p-b)*(p-
màn hình.
ng d n:
- a, b, c a, b, c unsigned int.
- th
a, b, c a+b>c và a+c>b và b+c>a.
- sqrt(x)
<math.h>.
ng d n:
- m.
60 BÀI 4:
BÀI 4: KI U D LI U VÀ BI U TH C
TRONG C
- Câ
- rình h
4.1 KI U D LI U N, BI N, H NG
4.1.1 Các ký t dùng trong ngôn ng C
M i ngôn ng l c xây d ng t m t t p ký t này
c ghép v t o thành các t ; các t c liên k t l i theo m t qui
t t o thành m t câu l nh. M m nhi u câu l nh và
c di t theo m t thu gi i quy t m t bài toán c th
- b, c..., z.
- 1, 2..., 9.
- ch hay g.
Ví d typedef.
#define TRUE 1
#define FALSE 0
Chú ý:
-
62 BÀI 4:
4.1.3 Các ki u d li n
Ki u d li u Mi n giá tr (Domain)
unsigned char T 0 n 255 ( 256 ký t trong b ng mã ASCII)
Char T - 128 n 127
Ki u s nguyên
Ki u d li u Kích c Mi n giá tr (Domain)
char 1 byte - n 127 ho n 255
unsigned char 1 byte 0 n 255
signed char 1 byte - n 127
int 2 bytes - n 32,767
unsigned int 2 bytes 0 n 65,535
long 4 bytes -2,147,483,648 n 2,147,483,647
unsigned long 4 bytes 0 n 4,294,967,295
Ki u s th c: Ki u s th th c hay các s có d u ch m th p
phân g m có 3 ki u sau:
4.1.4 H ng (Constant)
Ví d :
H ng s th c
S th c bao g m các giá tr ki c th hi n theo 2
cách sau:
- Cách 1 n):
-3.726 275.0
- Cách 2 n là: ph
này các
Ví d :
H ng s nguyên
H ng s nguyên (2 byte) h th p phân:
Ví d : 564L -27456l
- Chú ý:
Cách vi s t n 7.
Cách vi
ci là các ký t t n 9, và t A n F (ho c t n f)
H ng ký t
H ng ký t là m t ký t riêng bi c vi t trong c p d i m t
ký t ng v i m t giá tr trong b ng mã ASCII. H ng ký t c xem
tr s nguyên.
Ví d
H ng chu i ký t
Ví d - -
Chú ý:
Ví d i vi \ c
thì ph i vi t \ \ c
BÀI 4: 65
4.1.5 Bi n
int main()
66 BÀI 4:
Ví d 1:
#include <stdio.h>
#include<conio.h>
int bienngoai; /*khai bao bien ngoai*/
int main ()
{
int j, i; /*khai bao bien ben trong chuong trinh chinh*/ clrscr(); / * l nh xóa
màn hình */
i=1; j=2;
bienngoai=3;
printf ("\n Gia tri cua i la: %d ", i);
printf ("\n Gia tri cua bienngoai la %d ", bienngoai);
return 0;
}
Ví d 2:
#include <stdio.h>
#include<conio.h>
int main ()
{
int i, j; /*Bien ben trong*/
i=4;
j=5;
printf("\n Gia tri cua i la %d",i);
printf("\n Gia tri cua j la %d",j);
if(j>i)
BÀI 4: 67
{
int hieu = j-i; / * bi n bên trong */
u s c a j tr
}
else
{
int hieu = i j; /* bi n bên trong */
u s c a i tr ieu);
}
return 0;
}
Bi u th c &x tr v a ch c a bi n x.
Ví d 2: Cá
Bien_dem
X
68 BÀI 4:
_a1
Delta
pt_bac_2
5Bien b u b ng ký s 5
n! s d ng ký t ch m than !
del ta s d ng ký t tr ng
Chú ý:
- phân tên AB
tên ab, tên Delta delta.
*/
Ví d :
Phép toán
+ Phép c ng
- Phép tr
* Phép nhân
/ Phép chia
% L y ph
- í : -3
2. Các phép t
ngôi
Ví d : int main ()
{
int x, y;
x = 5; //Gán giá tr 5 cho bi n x
y = 2*x; //Gán giá tr 2*x = 2*5 =10 cho bi n y
return 0;
}
Nguyên t c khi dùng l nh gán thì ki u c a bi n và ki u c a bi u th c ph i gi ng
nhau, g i là có s a các ki u d li u. Ch ng h n ví d sau cho th y
m ts ki u:
int main()
{
int x, y;
x = 10; //Gán h ng s 10 cho bi n x
ki u chu i ký t return 0;
BÀI 4: 71
}
Khi biên d ng trình này, C s báo l i " " t c là
C không th t ng chuy i ki u t char * (chu i ký t ) sang int.
Chú ý:
-
ó.
Ví d :
int x, y;
Ví d :
int i=5;
y *= x+1;
- cho
0).
Phép toán
> L
>= L n ng
< Nh
<= Nh ng
== B ng nhau
!= Khác nhau
Ví d :
a.
b.
A B !A A&&B A||B
Sai
(khác 0) (khác 0) (b ng 0) (b ng 1) (b ng 1)
Sai Sai Sai
(khác 0) (b ng 0) (b ng 0) (b ng 0) (b ng 1)
Sai Sai
(b ng 0) (khác 0) (b ng 1) (b ng 0) (b ng 1)
Sai Sai Sai Sai
(b ng 0) (b ng 0) (b ng 1) (b ng 0) (b ng 0)
5 && 8 có giá tr 1
! 12.5 có giá tr 0
!(9 < 2) có giá tr 1
('A' == 'B') || (7 > 3) có giá tr 1
('A' > 'Y') && (6 >= 1) có giá tr 0
1. !, - (s âm)
2. *, /, %
3. +, -
74 BÀI 4:
5. ==, !=
6. &&, ||
Ví d :
float x;
int n=5;
Phép ép ki m t ngôi.
Ví d :
Khi 2 toán h ng trong m t phép toán có ki u giá tr khác nhau thì ki u giá tr th p
ct i sang ki u giá tr c khi th c hi n phép toán. K t
qu c a phép toán là m t giá tr có ki u giá tr cao nh t.
Ví d : Ki c i thành ki u long.
11/2 có giá tr 5
Ví d :
int n;
4.3.6 m
Phép
Ví d 1:
int n, i=3;
n = i++;
-
c
76 BÀI 4:
Ví d 2:
int n, i=3;
n = ++i;
/* giá tr c a bi , sa c a bi c gán
cho bi n n; sau khi th c hi n câu l nh thì n=4 và i=4 */
Ví d 1:
int n, i=2;
n = i--;
Ví d 2:
int n, i=2;
n = --i;
Chú ý mm ch cs d ng v i bi n, mà không
s d c v i h ng.
4.3.7 Bi u th u ki n
Bi u th u ki n có d ng:
-
<bieu thuc 1> g
BÀI 4: 77
-
2> và <bieu thuc 3>.
Ví d :
int a;
float b;
Ki u giá tr c a bi u th u ki n là float.
thao tác trên t ng bit c a m t s nguyên ta có th dùng các phép toán sau:
PHÉP TOÁN
& Phép và theo bit (AND)
| Phép ho c theo bit (OR)
^ Phép ho c lo i tr theo bit (XOR)
<< Phép d ch trái theo bit
>> Phép d ch ph i theo bit
~ Phép l y ph n bù theo bit
Ví d
Chú ý:
- i: P
logic.
Ví d :
~0x5b1c = 0xa4e3
int k=0xffe0;
k << 2 = 0xff80
k << 3 = 0xd8e0
Ví d : m = &count
t vào bi a ch b nh c a bi n count.
BÀI 4: 79
Ch ng h n, bi n count v trí b nh 2000, gi s count có giá tr là 100. Sau câu
l nh trên m s nh n giá tr 2000.
Ví d : q = *m
Ví d : x = (y=3, y+1);
CÁC VÍ D :
Ví d 1:
Ví d 2:
a. a=3* x++ + 8;
Ví d 3:
4.4 NH P XU T D LI U
4.4.1 L nh nh p giá tr t bàn phím cho bi n (hàm scanf)
Gi i thích:
nh d ng nh ki u d li u, cách bi u di r ng, s ch s
th p phân...
M ts nh d ng khi nh p ki u s nguyên, s th c, ký t .
nh d ng
%d Nh p s nguyên ki u 2 byte
%f Nh p s th c
%c Nh p m t ký t
%ld Nh p s nguyên ki u 4 byte
%s Nh p chu i ký t
Ví d :
char*/
ý:
-
hay ký h
.
- thì
hàm gets().
Ví d :
Khai báo bi n:
int biennguyen;
float bienthuc;
char bienchar;
nguyen,
&bienthuc,&bienchar) ;
82 BÀI 4:
Cú pháp: nh d u th c);
Gi i thích:
M ts nh d i v i s nguyên, s th c, ký t .
nh d ng
%d Xu t s nguyên
%[.s ch s th p phân] f Xu t s th c có <s ch s th p phân>.
%o Xu t s nguyên h bát phân
%x Xu t s nguyên h th p l c phân
%c Xu t m t ký t
%s Xu t chu i ký t
%e ho c %E ho c %g ho c %G Xu t s nguyên d ng khoa h c
%p Xu a ch c a bi n con tr
Ví d :
include<stdio.h>
int main()
float bien_thuc=123.456703;
uyen =%d\
cua bien thuc =%f\
BÀI 4: 83
\n Sau khi lam tron=
bien_thuc);
return 0;
K t qu in
N nh:
\nKy tu co ma ASCII %d la
K t qu ta nh c thêm:
\ float)i);
K t qu in ra màn hình:
Ký t Giá tr Ký t
u khi n th p l c phân c hi n th
\a 0x07 BEL Phát ra ti ng chuông
Di chuy n con tr sang trái 1 ký t và
\b 0x08 BS
xóa ký t bên trái (backspace)
\f 0x0C FF Sang trang
\n 0x0A LF Xu ng dòng
\r 0x0D CR Tr v u dòng
\t 0x09 HT Tab theo c t (gi ng gõ phím Tab)
\\ 0x5C \ D u\
\ 0x2C D
\ 0x22 D
\? 0x3F ? D u ch m h i (?)
Ký t có mã ACSII trong h bát phân
\ddd Ddd
là s ddd
Ký t có mã ACSII trong h th p l c
xHHH oxHHH
phân là HHH
Ví d
#include <stdio.h>
#include<conio.h>
int main ()
{
printf("\n Tieng Beep \a");
printf("\n Doi con tro sang trai 1 ky tu\b"); printf("\n Dau Tab \tva dau
backslash \\"); printf("\n Dau nhay don \' va dau nhay kep \""); printf("\n Dau
cham hoi \?");
printf("\n Ky tu co ma bat phan 101 la \101");
printf("\n Ky tu co ma thap luc phan 41 la \x041");
printf("\n Dong hien tai, xin go enter");
getch();
printf("\rVe dau dong");
return 0;
BÀI 4: 85
}
K t qu c khi gõ phím Enter:
4.5 C U TRÚC M
4.5.1 Ti n x lý và biên d ch
Trong C, vi c d ch (translation) m t t p tin ngu c ti n hành trên hai c
hoà c l p v i nhau:
c ti n x g ng v i vi c c p nh n c
ngu n, ch y u d a trên vi c di n gi i các mã l nh r c bi t g i là các ch th d n
ng c a b ti n x lý (destination directive of preprocessor);
- include
- define
#include<stdio.h>
#define SIZE 25
4.5.2 C u trúc m
C u trúc có th
n này b t bu c ph i có
<Ki u d li u tr v > main()
{
Các khai báo c c b trong hàm main: Các khai báo này ch t n t i trong hàm
mà thôi, có th là khai báo bi n hay khai báo ki u.
Các câu l nh ngh a hàm main return
<k t qu tr v >; // Hàm ph i tr v k t qu
t các hàm
<Ki u d li u tr v > Tên hàm (các tham s )
{
Các khai báo c c b trong hàm.
Các câu l
hàm return <k t qu tr v >;
}
6. graphics.h: T h a. G m initgraph(),
Cú pháp:
hay ng d
N ng d i ch rõ tên m c và
t p vi n.
Ví d : #include \\TC\\
ng h p t n n c hi n hành thì ta ch c
tên t n
Ví d :
#include <stdio.h>
#include <conio.h>
Cú pháp:
Ví d :
#define pi 3.14
<Ki u k t qu tr v is )
Ví d :
long giaithua (int n); //Hàm tính giai th a c a s nguyên double x_mu_y (float
x, float y); /*Hàm tính x
4.5.5 C u trúc m n
n
#include<tên t n>
ng (không b t bu c)
chính
90 BÀI 4:
int main()
{
Khai báo bi n n u có (ch t n t i trong hàm);
Các câu l a hàm main; return 0;
}
4.5.6 M n
Ví d 1: Vi p vào m t s th r c a bi u
th c (x*x - 5*x + 4) và xu t k t qu ra màn hình.
#include "stdio.h"
int main()
float x, y;
printf("\nNhap x = ");
scanf("%f ",&x);
y= x*x-5*x+4;
#include "stdio.h"
int main()
char ChuoiKyTu[50];
gets(ChuoiKyTu);
BÀI 4: 91
printf("Chuoi da nhap: %s",ChuoiKyTu);
CÂU H I ÔN T P
Câu 1: Cho bi t ch sai c trình sau:
int main()
{
n=22;
printf("%d",n);
}
Câu 2: Cho bi t ch sai c
int main()
{
float x;
scanf("%f",x);
}
Câu 3: Hãy cho bi t các bi u th hay sai; N u t giá
tr c a bi u th
37/(5*2)
37/5/2
37(5/2)
37%(5%2)
37%5%2
37-5-2
(37-5)2
37/(5*2)
92 BÀI 4:
Câu 4: Gi s m=5, n=2. Hãy cho bi t giá tr c a m và n sau khi th c thi m i câu
l nh sau:
m *= n++;
m += --n;
Câu 5: Li t kê t t c cs c as ng N.
Ví d : Nh p n=6
K t qu : c s c a 6 là: 1 2 3 6
ng d n
6 % 1 ==0 - cc a6
6 % 2 ==0 - cc a6
6 % 3 ==0 - cc a6
6 % 4 !=0 - cc a6
6 % 5 !=0 - cc a6
6 % 6 ==0 - cc a6
Câu 6: cc am ts
Ví d : n=6
K t qu : S c s c a 6 là: 4
ng d n
6 % 1 ==0 - cc a6- m +1
6 % 2 ==0 - cc a6- m +1
6 % 3 ==0 - cc a6- m +1
6 % 5 !=0 - cc a6
6 % 6 ==0 - cc a6- m +1
Câu 7: V tính t cs c as
Ví d n =6 t c s=1+2+3+6
ng d n
6 % 1 ==0 - c c a 6 -> S +1
6 % 2 ==0 - c c a 6 -> S +2
6 % 3 ==0 - c c a 6 -> S +3
6 % 5 !=0 - cc a6
6 % 6 ==0 - c c a 6 -> S +6
a. In ra mã Ascii c a ký t
b. In ra ký t k ti p c a nó.
- C
5.1.2 Phân lo i
Có 3 lo i l nh: l h i l nh và l nh có c u trúc.
-
các câu
- các }.
Ví d : kh i l nh
{
float x;
printf("\nNhap x=");
scanf("%f",&x);
}
BÀI 5: 97
Ví d 1:
{
l nh;
{
int a, b; /*bi n a, b trong kh i l nh th nh t*/
l nh;
}
nh;
{
int a, b; /*bi n a, b trong kh i l nh th nh;
}
}
Ví d 2:
{
int a, b; /*bi n a, b trong kh i l
l nh;
{
int a, b; /*bi n a, b bên trong kh i l nh con*/
}
}
98 BÀI 5:
- u trúc
ú pháp:
if (<Bi u th u ki n>)
{
<Công vi c>
}
cú pháp:
Sai
BÀI 5: 99
Gi i thích:
Ki m tra Bi u th u ki c.
N u ki c hi n câu l nh ho c kh i l nh li u ki n.
N u ki n sai thì b qua l nh ho c kh i l nh li u ki n (nh ng l nh và
kh i l nh sau c th c hi ng vì nó không ph thu u ki n
sau if).
#include <stdio.h>
#include <conio.h>
int main ()
float a;
if (a !=0)
return 0;
Cú pháp:
if (<Bi u th u ki n>)
<Công vi c 1>
else
<Công vi c 2 >
100 BÀI 5:
Gi i thích:
u tiên Bi u th u ki n c ki c.
N u ki c hi n công vi c 1.
if (a*b<0)
else
a,b);
return 0;
}
Ví d :
if (n > 0)
if (a > b)
z = a;
else z = b;
m cu i c a m t kh i l i th ng c t.
Ví d :
if (n > 0)
if (a > b)
z = a;
else
z = b;
Cú pháp:
- uyên.
- Các <giá tr
khác nhau.
-
1>, <giá 2 < n>
- u th
default K
#include <stdio.h>
#include<conio.h>
int main ()
{
int songuyen, phandu;
printf("\n Nhap vao so nguyen "); scanf("%d",&songuyen);
phandu=(songuyen % 2);
switch(phandu)
{
case 0: printf("%d la so chan ",songuyen);
break;
case 1: printf("%d la so le ",songuyen);
break;
}
return 0;
}
104 BÀI 5:
5.3 CÁC L NH L P
C u trúc vòng l p cho phép l p l i nhi u l n 1 công vi c c th hi n b ng 1 câu
l nh hay 1 kh i l n khi th u ki n c th .
Cú pháp:
S ho ng c a toán t for:
thì má
Chú ý:
-
chu trình.
- <bie
- Các <bieu th
return.
- <bieu thuc
(;).
sau cùng
- ác.
-
106 BÀI 5:
#include <stdio.h>
#include<conio.h>
int main ()
{
int i;
printf("\n Day so tu 1 den 10:");
for (i=1; i<=10; i++)
printf("%d ",i);
return 0;
}
Ví d 2: Vi p vào m t s nguyên n. Tính t ng c a các s
nguyên t nn
S=0, i=1
S
i<=
S S=S+i
KT i=i+1
BÀI 5: 107
#include< stdio.h>
int main()
int n;
p vào 1 s t
long s=0;
s= s+i;
ng là s= %ld
return 0;
Cú pháp:
while (Bi u th u ki n)
<Công vi c>
}
108 BÀI 5:
S ho ng c a toán t while:
c 2:
#include< stdio.h>
int main()
int n;
BÀI 5: 109
long s=0;
int i=1;
while(i<=n)
s=s+i; i++;
prin
return 0;
Ví d 2: Vi nh t n, sao cho
1+2+ >10000. Xu t ra màn hình t c và s n.
#include "stdio.h"
int main()
s += ++n;
5.3.3 Vòng l
Vòng l p gi l p l i m t công vi c
u ki
110 BÀI 5:
Cú pháp:
do{
<Công vi c>
}while (<Bi u th u ki n>);
S ho ng c a toán t
-
while.
do {
p vào s ph n t
-
BÀI 5: 111
- Vòng
-
.
Cú pháp: break;
Ví d :
#include "stdio.h"
int main()
int i;
{ if (i == 5)
break;
printf("%d ",i);
5.4.2 L nh continue
Cú pháp: continue
- for,
- Ð ile, do while;
).
Ví d :
#include "stdio.h"
int main()
int i;
if (i%2 == 0) continue;
printf("%d ",i);
Ví d : nh p 1234 1 + 2 + 3 + 4 = 10 in ra 10.
Câu 4: Vi ng sau:
n, V i n nh p t bàn phím.
Ví d : S c
95
11 im t
31 t
Ví d : S c
105 M
101 M m t
110 M t im t
131 M t
145 M
114 BÀI 6:
BÀI 6: C
- trong C.
- Cá trong C.
M s d ng b t c
}
BÀI 6: 115
Ví d 2 nh p vào 2 s nguyên a,b
#include <stdio.h>
#include <conio.h>
int main()
int a, b, c;
scanf("%d%d%d",&a,&b,&c);
6.2 N
Hàm i n là nh s n trong m n
s d n thì ph nt c khi s d ng b ng l nh
n.h>
M ts ng dùng:
3. math.h: n ch a các hàm tính toán g m các hàm abs(), sqrt(), log().
6. graphics.h: n ch h a. G m initgraph(),
line(), circle(),
6.3 HÀ I DÙNG
i dùng là nh ng hàm i l p trình t t o ra nh ng nhu c u
x lý c a mình.
<Ki u k t qu > Tên hàm ([<ki u t_ s > <tham s >] [,<ki u t s ><tham s >]
{
[Khai báo bi n c c b và các câu l nh th c hi n hàm] [return [<Bi u th c>];]
}
Gi i thích:
- :
hàm
.
- : không
,
BÀI 6: 117
- Bên trong thân hàm ( {}) là các khai báo cùng các câu
hai báo
và các khai báo nà ong hàm mà thôi.
- return
qua tên hàm.
Cú pháp:
- N u hàm có k t qu tr v , ta b t bu c ph i s d ng câu l tr v k t
qu cho hàm.
6.3.2 S d ng hàm
M nh c th c thi tr khi ta có m t l i g i
nh
int ktnt(int n)
if (n<2) return 0;
if (n==2) return 1;
return 0;
return 1;
int main()
unsigned int a;
if (nt== 1)
a);
else
return 0;
- àm có t .
BÀI 6: 119
- hà
- thoát
ày.
là
goài
th
bê
# include<stdio.h>
void change(int num)
{
num = num + 1;
}
int main()
{
int x = 100;
printf("Truoc khi goi phuong thuc x = %d \n", x);
change(x); // truyen tham tri vao phuong thuc
printf("Sau khi goi phuong thuc x = %d \n", x);
return 0;
}
120 BÀI 6:
K t qu
change(), m bên t
#include<stdio.h>
*num = *num + 1;
int main()
int x = 100;
return 0;
num = num + 1;
int main()
int x = 100;
return 0;
#include <stdio.h>
#include <conio.h>
int i;
for(i=1;
\
122 BÀI 6:
int main()
InKT(c);
return 0;
- ng giá tr
chúng k
th
Ví d 4 :
#include <stdio.h>
#include <conio.h>
int t;
b=t;
int main()
int a, b;
scanf("%d%d",&a,&b);
K t qu th c hi
6.5 T M V C C A BI N: BI N TOÀN C C, BI N
C CB
6.5.1 Bi n toàn c c
Là bi n c khai báo trình chính, chúng t n t i trong su t th i gian
ch y c n toàn c c ng toàn b
trình chính l
6.5.2 Bi n c c b
Là bi n c khai báo trong m rình con . Chúng c hình thành khi
c g i, và s t bi n m t thúc.
BÀI 6: 125
CÂU H I ÔN T P
Vi i d ng hàm. R i g i th c hi n chúng trong hàm main
Câu 3: Vi c nh t ax + b = 0 v i a, b nh p t bàn
phím.
- Cách
- u
7.1 KHÁI NI M
M ng là m t t p h p các ph n t c nh có cùng m t ki u d li u, g i là ki u
ph n t . Ki u ph n t có th là có các ki u b t k : ký t , s , chu i ký t
khi ta s d ng ki u m làm ki u ph n t cho m t m ng h p này
ta g i là m ng c a m ng hay m ng nhi u chi u).
M ng là ki u d li c s d ng r ng xuyên. Ch ng h i ta c n
qu n lý m t danh sách h và tên c a kho ng 100 sinh viên trong m t l p. Nh n th y
r ng m i h ta c n 1 bi n ki u chu y 100 h và tên thì c n
khai báo 100 bi n ki u chu i. N
các thao tác trên các h tên s r t dài dòng và r c r i. Vì th , ki u d li u m ng giúp
ng h p này; ch c n khai báo 1 bi n, bi n này có th
i 100 bi n ki u chu i ký t ng mà các ph n t c a nó là chu i ký
t các t khóa c a ngôn ng l n m t
m chúng.
c c a m ng là s ph n t c am c này ph c bi t ngay
khi khai báo m ng.
-
.
-
i nó là kíc
Ví d :
Khai bá
Cú pháp:
Ch s c a ph n t m ng là m t bi u th c mà giá tr là ki u s nguyên.
Ch s c a m ng có th là m t h ng, m t bi n hay m t bi u th is .
float t=10.0;
int i=1;
t= a [4];
x[5]=9.31
Hình nh m ng a g m n ph n t nh
Nh p d li u cho các ph n t
a [0] = 7 0]);
a [1] = 3
a [2] = 9
...................................................
a [n-1] = 2 -1]);
Nh p t ng ph n t c a m ng
Hình nh m ng a g m n ph n t nh
Xu t d li u cho t ng ph n t
a [0] = 7
a [1] = 3
a [3] = 4
...................................................
a [n-1] = 2 -1]);
Xu t t ng ph n t c a m ng
c m ng a
BÀI 7: - 131
Hình nh m ng a g m n ph n t trong b nh
S = a[0] + a[1] - 1]
Gi i thu t:
um n cu i m ng
S= S + a[i];
long s =0 ;
s=s+ a[i];
return s;
Hình nh m ng a g m n ph n t nh
Gi i thu t:
um n cu i m ng
if (a[i] < 0)
return a[i];
if (a[i] < 0)
return a[i];
Chú ý: Chu c khai báo là m t m ng các ký t nên các thao tác trên m ng có
th áp d i v i chu i ký t .
A XA HOI CHU N
char \
ten[5] \
L i khi t o m t chu i
char
char b[4];
char
{ }
nf
134 BÀI 7: -
Ví d : scanf
i v i hàm scanf khi g p phím space, tab, new line, Enter thì d ng, cho nên ch
dùng nh p chu i không có kho ng tr ng.
Ví d printf
Ví d printf \
gets (Hoten);
G p Enter thì d ng, ph i khai báo hàm xóa b c khi dùng hàm
gets: fflush (stdin) hay flushall ().
Ví d :
#include "stdio.h"
BÀI 7: - 135
#include "string.h"
void main()
{
char s1[50], s2[50];
printf("\nNhap chuoi 1: "); gets(s1);
printf("Nhap chuoi 2: "); gets(s2);
strcat(s1,s2);
printf("Xuat chuoi 1: %s",s1);
printf("\nXuat chuoi 2: %s",s2);
}
3. Hàm strchr: Tìm l n xu t hi u tiên c a ký t trong chu i.
Ví d :
#include "stdio.h"
#include "string.h"
void main()
{
char s[50], ch, *p;
printf("\nNhap chuoi: ");
gets(s);
printf("Nhap ky tu: ");
ch=getche();
p=strchr(s,ch);
if (p != NULL) printf("\nchi so cua ky tu: %d",(int)(p-s));
else printf("\nKhong tim thay!");
}
136 BÀI 7: -
- hàm tr
K t qu tr v ng t n t qu tr v c a hàm strcmp()
Ví d :
#include "stdio.h"
#include "string.h"
void main()
{
char s[50];
strcpy(s,"Truong Dai hoc Ky thuat");
printf("\nXuat chuoi: %s",s);
}
7. Hàm strncpy (): Sao chép m t ph n chu i
Hàm này cho phép chép n ký t u tiên c a chu i ngu n sang chu
Ghi chú:
Ví d : Vi t d l y ra m t ph n c a chu i g c
b u t chu i hoc
#include<conio.h>
#include<stdio.h>
#include<string.h>
int main()
{
char Chuoi[255], *s ;
printf("Nhap chuoi: ");gets(Chuoi);
print
getch();
return 0;
}
138 BÀI 7: -
#include <stdio.h>
#include <string.h>
void main()
#include<conio.h>
#include<stdio.h>
#include<string.h>
void main()
{
clrscr() ;
char newstr [35];
cha i h c Công Ngh
for (int i = 0; i<strlen(str); i++)
newstr[i] = str[i];
\
getch ();
}
BÀI 7: - 139
11. i m t ký t ng thành ký t hoa - Hàm toupper()
chuy i m t ký t ng thành
ký t hoa.
#include<conio.h>
#include<stdio.h>
#include<string.h>
int main()
{
char Chuoi[255],*s;
printf("Nhap chuoi: "); gets(Chuoi);
s=strupr(Chuoi) ;
;
getch();
return 0;
}
13. i chu i ch hoa thành chu i ch ng - Hàm strlwr()
Cú pháp:
long atol(const char *s): chuy n chu i thành s nguyên dài float
Ví d :
#include <string.h>
void main()
{
char s[80], *p ;
printf("Nhap chuoi: ");
gets(s);
p = strtok(s," ");
while(p)
{
p = strtok(NULL," ");
if (p) pr \n
}
}
BÀI 7: - 141
16. c chu i: char* strrev(char *s)
Ví d :
#include<stdio.h>
#include<string.h>
int main()
return 0;
CÂU H I ÔN T P
Câu 1: Vi t hàm nh p vào m t m ng m t chi u các s nguyên g m n ph n t
(0<n<=100).
H ng d n
#include <conio.h>
#include <stdio.h>
#define MAX 100
/*----------------------------------
*Hàm nh p sô ng ph n t cho m ng
*/
void NhapSL(int &n)
{
do{
phan tu 0<sl<1
sc &n);
}while (n<=0 || n>100);
}
/*------------------------------------
[i]);
}
}
/*------------------------------------
BÀI 7: - 143
Câu 2: Vi t hàm nh p vào m t m ng m t chi u các s th c g m n ph n t
(0<n<=100).
ng d n
#include <conio.h>
#include <stdio.h>
#define MAX 100
/*----------------------------------
*Hàm nh p sô ng ph n t cho m ng
*/
void NhapSL(int &n)
{
do{
ng d n
ng d n
H ng d n
ng d n
{
int max = a [ 0];
for(int i=1; i<n ; i++)
if (max < a[i])
max = a[i];
return max;
}
Câu 15: m s ph n t ch n có trong m ng
Câu 25: S p x p m n
146 BÀI 7: -
Câu 27: o c m ng
ng d n
Câu 30: m s ký t i
BÀI 8: KI U D LI U CÓ C U TRÚC
- úc;
- ng
8.1 KHÁI NI M
Ki u c u trúc (Structure) là m t ki u d li i dùng t u
d li u bao g m nhi u thành ph n, m i thành ph n có m t ki u d li u khác nhau,
m i thành ph c g i là m ng (field).
Hình nh c a ki u c u tr c minh h a:
1 2 3 4 5
uc ng
Còn ki u m ng có d ng
0 1 2 3 4 5 6
<Ki ng 1>;
<Ki ng n>;
};
Struct NgayThang
int ngay;
int thang;
int nam;
};
struct DiemThi
};
char masv[8];
char holot[30];
char ten[10];
Date ngaysinh;
char noisinh[50];
char diachi[50];
} SV;
printf("%s", x.ten);
int tu;
int mau;
};
8.4 NH P, XU T D LI U CHO KI U D LI U CÓ
C U TRÚC
8.4.1 Nh p d li u
nh p d li u cho bi n ki u c u trúc, ta ph i nh p cho t ng thành ph n c a câu
trúc.
printf("Nhap tu so:");
scanf("%d",&x.tu);
do{
BÀI 8: 151
printf("Nhap mau so khac 0:");
scanf("%d",&x.mau);
8.4.2 Xu t d li u
Ví d : Xu t d li u cho m t phân s :
8.5 M NG C U TRÚC
Bài toán minh ho : Vi t ch
2. Xu t ra dãy phân s v a nh p.
5. m s ph n t l n nh t có trong dãy.
0 1 2 3 4 5 6 7 8
a[ ] 9/1 6/2 1/2 5/3 1/7 1/3 1/2 8/2 3/2
152 BÀI 8:
a[1] = 6/2
PS a [i]
a[2] = 1/2
a[i].mau
.............
a[8] = 3/2
Nh p m ng phân s
nhapphanso(a[i]);
Xu t m ng phân s
xuatphanso(a[i]);
L p ch ng nào a b
BÀI 8: 153
N u a>b thì a=a-b;
return a;
PS Tong2ps(PS x, PS y)
tong.mau=..?;
RutGon(tong);
return tong;
int SoSanh(PS x, PS y)
}
154 BÀI 8:
CÂU H I ÔN T P
Câu 1: Vi t hàm Nh p vào m t phân s
ng d n
ng d n
Cách 1
void nhapdayps( PS a[ ] , int n )
{
for(int i = 0 ; i<n ; i++ )
{
printf
;
au );
}
}
Cách 2
ng d n
void xuat1phanso(PS x)
{
printf("phan so :%d/%d",x.tu,x.mau);
}
Câu 4: Vi t hàm xu t m t dãy phân s
ng d n
Câu 7: Vi t hàm nh p d li u cho m t sinh viên, thông tin v m t sinh viên g m có:
3. u int. M r ng dd/mm/yy).
4. Gi i tính (Nam ho c N ).
5. L p (chu i 7 ký t u c, 1 ký t ti p là b c h c (D:
i h ng), 2 ký t ti p là ngành h c (TH: Tin H c, KT: K Toán, QT:
nt n t ...).
156 BÀI 8:
ng d n
struct sinhvien
{ char ten[11];
char mssv [11];
char lop [8];
char gioitinh;
int ntns;
float toan, ly, tin, DTB;
};
typedef struct sinhvien sv;
// vi t hàm nh p 1 sinh viên
Cách 1
{ flushall();
printf("nhap ten sinh vien :"); gets (a. ten);
printf("nhap ma so sinh vien :"); gets(a. mssv);
printf("nhap lop :"); scanf &a. lop );
ng d n
void xuat1sv(sv a)
printf(
else
p oan) ;
158 BÀI 8:
printf("d
ng d n
{ int flag = 0;
if ( strcmp(a[i].ten, x )==0 )
xuat1sv (a[i]);
flag = 1;
if (flag == 0)
v can tim
ng d n
{ if (a[i].DTB > 5)
BÀI 8: 159
dem++;
return dem;
Câu 13: Xu t danh sách sinh viên thu c ngành công ngh thông tin.
Câu 14: Xu t danh sách sinh viên N thu c ngành công ngh thông tin.
ng d n
sv tam;
if(a[i].DTB>a[j].DTB)
tam = a[i];
a[i] = a[j];
a[j] = tam;
}
160
TÀI LI U THAM KH O
1. Ph t, K thu t L p trình C- n và nâng cao, NXB KH & KT - 2003.
4. Nguy n T n Tr n Minh Khang, Bài gi ngK Thu t L p trình, Khoa Công Ngh
i h c Khoa h c T nhiên
8. Brain W. Kernighan & Dennis Ritchie, The C Programming Language, Prentice Hall
Publisher, 1988.
10. Nguy n Thúy Loan Thiên Trang, Giáo trình KTLT khoa CNTT- HUTECH