Bài giảng ngôn ngữ lập trình C - Pdf 13

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
o0o

Tạ Tuấn Anh

Bài giảng điện tử môn học

NGÔN NGỮ LẬP TRÌNH C


MỤC LỤC TÀI LIỆU THAM KHẢO
Nhập môn Lập trình Ngôn ngữ C
Trần Việt Linh, Lê Đăng Hưng, Lê Đức Trung, Nguyễn Thanh Thuỷ
Nhà Xuất bản Khoa học Kỹ thuật, 2000

Ngôn ngữ Lập trình C
Quách Tuấn Ngọc
Nhà Xuất bản Giáo dục, 1998

Language C
Brian Kernighan, Denis Ritchie
Prentice Hall, 1988

Programmer en langage C
Claude Delannoy
Eyrolles, 1998
CHƯƠNG 1 - NHẬP MÔN LẬP TRÌNH C Mục đích của chương này là giới thiệu tổng quan về ngôn ngữ C bao gồm các kiến thức về lịch
sử, đặc điểm và vai trò của nó. Học viên được làm quen với các chương trình viết bằng C cũng
như cách dịch chúng để chạy.

Yêu cầu: Có một phiên bản cài đặt của trình biên dịch Turbo C hay một trình biên dịch khác để
chạy thử chương trình.

Thời lượng: 5 tiết

năng:
- Lập trình bậc cao: Giống như PASCAL, chương trình C sử dụng tập các câu lệnh điều
khiển như rẽ nhánh, lặp ở mức độ trừu tượng của lưu đồ giải thuật. Điều này cho phép
viết các giải thuật bằng ngôn ngữ C khá dễ dàng.
- Lập trình cấu trúc: Một chương trình C có thể được phân chia, cấu trúc thành các modul
nhỏ. Điều này giúp phát triển chương trình một cách hệ thống hơn và dễ bảo trì.
- Lập trình hệ thống: Không giống như PASCAL, ngôn ngữ C không dùng nhiều kiểu dữ
liệu trừu tượng. C cho phép các thao tác với bộ nhớ chương trình rất uyển chuyển. Một
người lập trình trên ngôn ngữ C có thể tự do tổ chức và lưu trữ dữ liệu trên bộ nhớ theo ý
mình. Tính năng này là vô cùng quan trọng khi cần phát triển các chương trình hệ thống
liên quan nhiều đến bộ nhớ máy tính. Ngoài ra ngôn ngữ C hỗ trợ phần lớn các phép xử lí
mà một hợp ngữ có thể làm.
- Tính khả chuyển: Một chương trình viết trên ngôn ngữ C có thể được dịch ra mã chương
trình trên nhiều dòng máy và hệ điều hành khác nhau bởi khả năng tương thích của các
câu lệnh trong chương trình. Ngoài ra C còn có bộ tiền xử lí tạo ra khả năng biên dịch
theo điều kiện để việc dịch chương trình thích ứng cho từng hệ thống khác nhau.
- Tính nhỏ gọn: Một chương trình viết trên C sau khi dịch có độ tối ưu về mã lệnh hơn bất
cứ một ngôn ngữ bậc cao nào khác. Chính vì vậy các chương trình được dịch từ ngôn ngữ
C thường có kích thước nhỏ gọn.

Với tất cả các tính năng trên, ngôn ngữ C là một ngôn ngữ cực kì hiệu quả và có sức diễn
cảm trong lập trình. Nó đã trở thành ngôn ngữ lập trình mà các nhà lập trình chuyên nghiệp ưa
chuộng trong nhiều lĩnh vực. Trong lĩnh vực lập trình hệ thống, có tới 90% chương trình được
viết bằng ngôn ngữ C. Ngoài ra nó còn được dùng để viết chương trình trong các lĩnh vực hiện
đại khác của Tin học về xử lí tín hiệu, số liệu, văn bản,
Ngôn ngữ C đã được viện tiêu chuẩn quốc gia Mỹ (ANSI) chuẩn hoá và công bố vào năm
1988 với tên gọi là ANSI C. Bên cạnh ngôn ngữ C người lập trình còn biết đến một ngôn ngữ lập
trình có tên tương tự là C++. Đây là một ngôn ngữ lập trình được mở rộng từ C để thêm khả năng
lập trình hướng đối tượng. Vì C++ là ngôn ngữ bao trùm lên C nên để học tốt C++ yêu cầu người
lập trình trước hêt phải nắm vững C.

Để có thể thấy rõ hơn cấu trúc của một chương trình trong C, chúng ta tiếp tuc tìm hiểu
ngôn ngữ thông qua một ví dụ thứ hai. Ở ví dụ này chúng ta sẽ tạo một chương trình cho phép in
diện tích của một hình tròn tương ứng với một bán kính được người sử dụng nhập vào.

#include <stdio.h>
/* khai báo một hằng số PI */
#define PI 3.14
/* khai báo một hàm tạo công thức tính diện tích */
float dientich(float r)
{
return PI*r*r;
}
/* hàm chính của chương trình */
void main()
{
float r;
printf("Nhập bán kính r =");
scanf("%f", &r);
printf("Diện tích hình tròn là %f", dientich(r));
}

Chương trình này đã thể hiện một phần cấu trúc của một chương trình C sẽ được mô tả chi
tiết trong bài 3. Dưới đây là thuyết minh cho chương trình:
- Chú thích chương trình: Các dòng văn bản được đặt nằm trong bộ dấu /* */ đều là chú
thích cho một chương trình C.
- Khai báo hằng số: Dòng thứ hai trong chương trình có tác dụng khai báo một hằng số PI
có giá trị là 3.14.
- Hàm: Một chương trình C có thể được cấ
u trúc bằng nhiều hàm. Trong chương trình trên,
chúng ta đã khai báo một hàm để tính diện tích của một hình tròn với bán kính truyền vào


Bảng các từ khoá trong ngôn ngữ C
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

Tên: Trong chương trình người sử dụng cần tên để đặt cho biến, hàm, kiểu dữ liệu mới. Tên của
người sử dụng đòi hỏi phải là một chuỗi kí tự là các chữ cái, chữ số và gạch nối ‘_’. Tên phải bắt
đầu bằng một chữ cái hoặc gạch nối.

2. Cấu trúc cơ bản của chương trình
Trong bài 2 chúng ta đã thấy được cấu trúc cơ bản c
ủa chương trình C. Phần này sẽ trình
bày khái quát về các thành phần trong cấu trúc của chương trình.

a. Khai báo tiêu đề
Một tệp tiêu đề trong chương trình C chứa mô tả các hàm có thể được gọi trong chương
trình (xem mục 6.2 - Tệp tiêu đề). Khi cần gọi một hàm nào trong chương trình ta phải khai báo
tệp tiêu đề có mô tả tương ứng cho hàm. Chính vì vậy các hàm thư viện luôn được chỉ ra cùng
với các tệp tiêu đề tương ứng khi được trình bày.

b. Khai báo hằng, cấu trúc dữ liệu
Các hằng số trong chương trình C thường được định nghĩa bằng chỉ thị #define (xem bài 35


Bài 4 - Quá trình biên dịch
Tóm tắt nội dung:
Biên dịch một chương trình là quá trình dịch một chương trình viết dưới dạng văn bản như C
sang chương trình mã máy như tệp .exe trong DOS. Quá trình này có thể phải qua nhiều pha khác
nhau và có thể xảy ra lỗi tại mỗi pha.

Thời lượng: 1 tiết

Ngôn ngữ lập trình C là một ngôn ngữ dạng biên dịch. Chương trình được viết bằng C
muốn chạy được trên máy tính phải trải qua một quá trình biên dịch để chuyển đổi từ dạng mã
nguồn sang chương trình dạng mã thực hiện. Toàn bộ quá trình biên dịch ở trong ngôn ngữ được
minh hoạ trong hình 1. Quá trình này được chia làm hai giai đoạn chính: giai đoạn dịch và giai
đoạn liên kết. Ti?n x? lí
D?ch C
D?ch Assembly
Liên k?t
Mã assembly
Mã máyThu vi?n
Mã ngu?n
Chuong trình

Hình 1: Quá trình biên dich một chương trình C

1. Giai đoạn dịch (compiling)
Mục đích của giai đoạn này là chuyển đổi tất cả mã chương trình được viết dưới ngôn ngữ
C sang dạng mã máy. Ba công đoạn được thực hiện lần lượt là: tiền xử lí mã nguồn, dịch C sang


Thời lượng: 1 tiết

1. Môi trường trợ giúp phát triển (IDE)
Để trợ giúp cho việc phát triển ứng dụng trên một ngôn ngữ một cách thuận tiện, các nhà sản xuất
cung cấp các tiện ích cho phép người sử dụng thao tác biên soạn chương trình, dịch hay gỡ rối
bằng các thao tác đơn giản qua phím nóng. Như vậy nhờ có IDE (Intergrated Development
Environment) mà lập trình viên không phải thực hiện các pha biên dịch bằng các câu lệnh phức
tạp mà chỉ cần đơn giản là nhấn một phím nóng. Quá trình sửa lỗi cũng rất thuận tiện do IDE
định vị giúp người lập trình vị trí lỗi của chương trình ngay trên màn hình soạn thảo. Một IDE
thường có ba thành phần cơ bản là:
- Công cụ soạn thảo giúp lập trình viên soạn thảo chương trình trên ngôn ngữ được hỗ trợ.
Trình soạn thảo này có thể thực hiện đổi màu các từ khoá trong chương trình để giúp
người lập trình quan sát chương trình một cách trực quan hơn.
- Công cụ biên dịch và chạy chương trình. Bằng một thao tác đơn giản lập trình viên có thể
yêu cầu biên dịch toàn bộ chương trình xong rồi chạy. Nếu chương trình có lỗi thì công cụ
này sẽ thông báo loại lỗi cùng với vị trí của lỗi trong chương trình đến người sử dụng.
Chính vì vậy việc tiến hành sửa lỗi chương trình trong IDE là rất đơn giản.
- Công cụ gỡ rối giúp lập trình viên có thể chạy lần bước một chương trình theo từng dòng
lệnh. Trong quá trình lần bước lập trình viên có thể quan sát sự thay đổi giá trị các biến
trong chương trình qua đó mà phát hiện ra lỗi.

2. Turbo C
Có rất nhiều trình IDE khác nhau cho ngôn ngữ C nhưng được phổ dụng nhất trong môi
trường DOS hoặc Windows là các phiên bản của Turbo C. Chúng ta có thể kể ra một số phiên
bản hay sử dụng là Turbo C chỉ hỗ trợ ngôn ngữ C và chạy trên nền DOS, Turbo C++ 3.0 hỗ trợ
C và C++ chạy trên DOS, các phiên bản từ 3.1 trở lên được đổi tên là Borland C++ và chạy trên
nền Windows.
Khi dịch một chương trình trên Turbo C cần chú ý thiết lập đúng đường dẫn tìm kiếm tệp
tiêu đề và thư viện. Ví dụ với phiên bản Turbo C++ để xác lập các đường dẫn thư mục này ta cần


Thời lượng: 12 tiết Mục 2 .1 - Biến, hằng số và biểu thức
Mục này giới thiệu cách khai báo biến trong chương trình với các kiểu dữ liệu. Người sử dụng có
thể tạo một biểu thức tính toán trên cơ sở các biến và hằng số của kiểu dữ liệu cơ bản. Để xuất và
nhập dữ liệu ta có thể sử dụng các hàm thư viện printf() và scanf() tương ứng.

Yêu cầu: Có khái niệm về biểu diễn dữ liệu trong máy tính

Thời lượng: 6 tiết Bài 6 - Các kiểu dữ liệu cơ bản
Tóm tắt nội dung:
Các kiểu dữ liệu cơ bản trong C được chia làm loại. Loại số nguyên bao gồm các kiểu char, int và
long. Loại số thực có hai kiểu float và double. Tất cả các loại dữ liệu khác đều được biểu diễn và
sử dụng trên hai loại dữ liệu cơ bản này.

Thời lượng: 1 tiết

1. Biến
Biến là một đơn vị bộ nhớ chứa dữ liệu của chương trình. Dữ liệu của biến có thể thay đổi
trong quá trình chương trình chạy. Mỗi biến chỉ có thể chứa một kiểu loại dữ liệu nhất định. Cách
khai báo biến trong chương trình C như sau:

<kiểu dữ liệu> <danh sách tên biến>;

Ví dụ:


Ví dụ:
int flag; /* tạo biến logic bằng int */
flag = TRUE; /* flag = 1 */

Cũng như dữ liệu kiểu logic, ngôn ngữ C cũng không tạo một kiểu dữ liệu đặc thù cho các
kí tự. Thực tế một kí tự được biểu diễn trong bộ nhớ máy tính là một số nguyên 1 byte. Việc ánh
xạ kí tự nào tương ứng với con số nào được qui ước trong bảng mã ASCII. Chính vì chỉ có một
byte bộ nhớ cho biểu diễn kí tự nên bảng mã ASCII chỉ có 256 kí tự mà thôi. Do vậy để có một
biến kí tự trong ngôn ngữ C ta dùng kiểu dữ liệu char.

Ví dụ:
char c;
c = ‘A’; /* thực chất c = 65 do ‘A’ có mã ASCII là 65 */

Như vậy chúng ta có thể thấy kiểu dữ liệu cơ bản của C chỉ bao gồm hai loại số nguyên và
số thực. Tất các các loại dữ liệu khác đều được quy về cách biểu diễn số. BÀI TẬP
Câu 1: Viết khai báo biến cho các loại dữ liệu sau:
a) Hệ số a, b, c của một phương trình bậc 2 bất kì
b) Điểm kiểm tra của một môn học
c) Số dân của một đất nước
d) Số nhà của một phố
e) Chữ cái đầu tiên của một tên người
f) Tổng số vụ tai nạn giao thông tăng/giảm so với năm trước
g) Giới tính của một người

Câu 2: Chỉ ra các khai báo biến sai trong những khai báo sau đây:


c. Hằng kí tự
Dạng kí tự: 'A'
Dạng mã ASCII: '\65'

Ngoài ra một số kí tự đặc biệt khác được viết theo quy ước:

Hằng Giá trị
‘\\’ kí tự \
‘\'’ kí tự '
‘\"’ kí tự "
‘\0’ kí tự NULL (mã 0)
‘\n’ kí tự xuống dòng (mã 13)
‘\t’ kí tự tab (mã 9)
‘\a’ kí tự rung chuông (mã 7)

d. Hằng xâu
Một xâu trong ngôn C là một mảng các kí tự có kí tự NULL đánh dấu kết thúc xâu. Hằng
xâu phải được biểu diễn trong cặp dấu nháy kép (ví dụ, "DHBKHN").

2. Khai báo biến có khởi tạo giá trị
<kiểu dữ liệu> <tên biến> = <hằng số>;

Ví dụ:
int a = 1234, b = 0xFFFF;
char ch = ‘A’;
float f = 1234E-3;

3. Biến hằng số
Một biến hằng số chỉ nhận một giá trị ban đầu và không bị thay đổi trong suốt quá trình

d) const int a = b = 100;
e) const int a = 100, b = 100; Bài 8 - Nhập xuất dữ liệu
Tóm tắt nội dung:
Để in dữ liệu chúng ta dùng hàm printf(), còn để nhập dữ liệu thì dùng hàm scanf(). Hai hàm này
sử dụng các định dạng để chỉ ra loại dữ liệu dùng trong việc xuất và nhập.

Thời lượng: 1 tiết

Các hàm vào ra chuẩn của C được khai báo nguyên mẫu trong tệp tiêu đề <stdio.h> có hai
hàm cơ bản là printf() và scanf().

1. Xuất dữ liệu bằng printf()
Dạng thức chung:

printf (<chuỗi định dạng> [, <danh sách giá trị>]);

Ví dụ 1: in xâu
printf("Hello"); /* in xâu không có xuống dòng */
printf("Hello\n"); /* in xâu có xuống dòng */

Ví dụ 2: in giá trị biến
int n = 5;
printf ("n = %d", n);

Chuỗi định dạng là chuỗi cần được in ra màn hình trong đó có thêm các định dạng dữ liệu
tại mỗi chỗ cần in giá trị của một biến hay một biểu thức. Việc in ra màn hình thế nào hoàn toàn
quyết định bởi xâu định dạng này. Trong ví dụ 2 giá trị của biến nguyên n muốn được in sau

Trong định dạng in dữ liệu chúng ta có thể thêm vào các thuộc tính chỉ ra số ô chữ dùng để
in dữ liệu. Khi đó dữ liệu in ra sẽ được căn sang trái số ô mà nó dành ra để in dữ liệu. Ví dụ %5d
là in số thập phân tại 5 ô trắng, hay %5.2f là in số thực với 5 ô trong đó 2 ô cho phần thực.

Ví dụ:
int i = 6;
float f = 3.237;
printf("123456789\n");
printf("i=%3d", i);
printf("f=%5.2f", f);
/* Kết quả in:
123456789
i= 6
f= 3.24
*/

2. Nhập dữ liệu bằng scanf()
Dạng thức chung:

scanf(<chuỗi định dạng>, <danh sách địa chỉ biến>);

Ví dụ:
float f;
int a, b, c;
printf ("f = ");
scanf ("%f", &f); /* nhập số thực cho f */
printf ("a, b, c: ");
scanf ("%d%d%d", &a, &b, &c); /* nhập số nguyên cho 3 biến a, b, c */

Tham số truyền vào cho hàm nhập dữ liệu có một chuỗi định dạng bao gồm các mã định

#include <conio.h>
void main()
{
int x;
clrscr();
printf("Mot so thap phan: ");
scanf("%d", &x); /* nhập số thập phân vào biến x */
printf("So hexa cua no la %x", x); /* in số hexa của nó */
getch(); /* dừng màn hình xem kết quả */
} BÀI TẬP
Câu 1: Tìm các câu lệnh xuất dữ liệu sai cho các biến sau:
int a, b;
float x, y;
a) scanf("%d%d", &a);
b) scanf("%d%d", &a, &b);
c) scanf("%d%f", &a, &b);
d) scanf("%f", &x);
e) scanf("%f%f", &x, y);
f) printf("x=", x);
g) printf("x=%f", x);
h) printf("a=%d, b=%d", &a, &b);
i) printf("a=%d, b=%d", a);

Câu 2: Viết chương trình cho phép người sử dụng nhập vào một kí tự bất kì và thực hiện in ra mã
ASCII tương ứng của nó.

Câu 3: Viết chương trình in ra màn hình một trang giới thiệu về bản thân bạn như tên, năm sinh,

nguyên thì kết quả của biểu thức sẽ là một số nguyên. Trường hợp có một toán hạng là số
thực thì
kết quả biểu thức là số thực.

Ví dụ:
int i = 5;
float f;
/* chia cho một số nguyên */
f = i/2; /* f = 2 vì kết quả của biểu thức chỉ là một số nguyên */
/* chia cho một số thực */
f = i/2.0; /* f = 2.5 vì kết quả của biểu thức là một số thực */

Thứ tự ưu tiên của các toán tử số học trong một biểu thức theo trật tự truyền thống. Ví dụ
3+5*2 sẽ cho ta kết quả là 13.

2. Nhóm toán tử so sánh
Toán tử Ý nghĩa Ví dụ
== So sánh bằng a==5
!= So sánh khác a !=5
< So sánh nhỏ hơn a<5
<= So sánh nhỏ hơn hoặc bằng a<=5
> So sánh lớn hơn a>5
>= So sánh lớn hơn hoặc bằng a>=5

Các toán tử so sánh cũng có thể áp dụng cho các toán hạng là biến, hằng số hoặc là một
biểu thức con. Kết quả của biểu thức so sánh luôn trả về kết quả là 1 thể hiện phép so sánh đúng
hoặc 0 thể hiện phép so sánh sai. Ví dụ 3<5 cho kết quả là 1 còn 3>5 cho kết quả là 0.

3. Nhóm toán tử quan hệ logic
Toán tử Ý nghĩa Ví dụ

Khi một biểu thức gán được sử dụng như một câu lệnh thì được gọi là lệnh gán. Biểu thức gán
cũng trả về giá trị của biến sau khi gán. Chính vì lí do này mà ta có thể tạo nhiều phép gán liên
tiếp trong một biểu thức. Sau đây là một vị dụ minh hoạ.

int a, b, c;
a = 5; /* biểu thức gán được sử dụng làm lệnh gán */
b = c = 2; /* tương đương b=(c=2); */

Cần chú ý sự nhầm lẫn trong việc sử dụng toán tử gán (=) và toán tử so sánh (==). Xét ví dụ
dưới đây:

int a = 5;
int b = a == 5; /* tương đương b=(a==5) và khi đó b có giá trị 1 */
int c = a = 5; /* tương đương c=(a=5) và khi đó c có giá trị 5 */

Ngoài ra chúng ta còn có một số phép gán đi kèm một phép tính số học. Bảng dưới đây
trình bày một số toán tử gán loại này.

Toán tử Ý nghĩa Ví dụ Biểu thức tương đương
+= tự cộng a+=5 a=a+5
-= tự trừ a-=5 a=a-5
*= tự nhân a*=5 a=a*5
/= tự chia a/=5 a=a/5
%= tự chia dư a%=5 a=a%5
&= tự và bit a&=5 a=a&5
|= tự hoặc bit a|=5 a=a|5
^= tự xor bit a^=5 a=a^5
>>= tự dịch bit phải a>>=5 a=a>>5
<<= tự dịch bit trái a<<=5 a=a<<5


int a, b, max;
/* tính max của a, b bằng biểu thức điều kiện */
max = a>b ? a: b;

8. Ép kiểu
Khi thực hiện gán giá trị của một biểu thức vào biến thì yêu cầu kiểu dữ liệu của giá trị biểu
thức phải cùng kiểu với biến. Tuy nhiên C cũng cho phép tự chuyển kiểu của giá trị biểu thức
sang phù hợp với kiểu của biến trong trường hợp phép chuyển này là không mất thông tin (ví dụ
từ int sang float). Trong trường hợp phép chuyển kiểu mà bị mất thông tin thì nó không thể thực
hiện được tự động. Khi đó ta cần phải có một phép ép kiểu bắt buộc theo định dạng dưới đây.

(<kiểu mới>) <biểu thức>

Ví dụ:
int a, b;
float f;
f =5/2; /* đúng vì kết quả phép chia là số nguyên 2 tự chuyển thành 2.0 */
a=5/2.0; /* sai vì kết quả là số thực 2.5 không thể tự chuyển về int */
b=(int)(5/2.0); /* đúng vì số thực 2.5 bị ép kiểu về số nguyên 2 */

Như vậy phép chuyển kiểu tự động chỉ thực hiện được khi nó không bị mất mát thông tin.
Sơ đồ sau đây là thể hiện việc chuyển kiểu tự động có thể thực hiện trên các kiểu dữ liệu cơ bản.
char >int >long >float >double

9. Thứ tư ưu tiên của các toán tử
Một biểu thức có thể là sự kết hợp của nhiều toán tử trong các nhóm với nhau. Khi đó cần
có một trật tự xác định được thứ tự thực hiện của các toán tử trong biểu thức. Sau đây là quy tắc
thứ tự ưu tiên của các toán tử được sắp xếp phân theo nhóm. Trong trường hợp có nhiều toán tử
trong nhóm thì trật tự kết hợp được quy ước từ phải sang trái hay ngược lại là phụ thuộc vào mỗi
nhóm.

i) (q-2)&&(n-10)
j) x*(q==2)
k) x*(q=5)

Câu 2: Hãy cho biết giá trị của z sau mỗi phép tính
int x=2;
float y=9.2;
float z;
a) z=7/x;
b) z=5.0/x;
c) z= x + (int)y;
d) z= x>=y||y>x
e) z=y/x+3;

Câu 3: Viết chương trình cho phép nhập vào hai cạnh của một hình chữ nhật rồi in ra chu vi và
diện tích của nó.

Câu 4: Viết chương trình cho phép nhập vào hai số bất kì rồi in ra màn hình tổng, tích và bình
phương của nó. Bài 10 - Các hàm toán học
Tóm tắt nội dung:
Để tạo các phép tính phức tạp trong chương trình chúng ta có thể sử các hàm toán học trong thư
viện. Các hàm này được khai báo trong tệp tiêu đề <math.h>.

Thời lượng: 1 tiết

Để thực hiện tính toán các công thức toán học phức tạp chúng ta cần phải sử dụng các hàm
toán học của thư viện. Muốn sử dụng chúng cần phải khai báo tệp tiêu đề <math.h> trong chương

Hàm Ý nghĩa
int abs(int n) |n|
long labs(long n) |n|
int rand() lấy một số int ngẫu nhiên
BÀI TẬP
Câu 1: Viết chương trình quay sổ xố cho giải đặc biệt là một số ngẫu nhiên có 9 chữ số.

Câu 2: Viết chương trình cho đọc một góc theo độ rồi in ra màn hình sin, cos và tan của góc đó. Mục 2.2 - Các cấu trúc lệnh điều khiển
Cũng như các ngôn ngữ lập trình bậc cao khác, C có các cấu trúc lệnh điều khiển để tạo ra các rẽ
nhánh giải thuật và các vòng lặp. Trong mục này học viên sẽ được tìm hiểu các câu lệnh if,
switch, for, while và do while.

Yêu cầu: Có kiến thức về lưu đồ giải thuật

Thời lượng: 3 tiết Bài 11 - Cấu trúc lệnh rẽ nhánh
Tóm tắt nội dung:
Để tạo ra hai nhánh đúng/sai trong lưu đồ giải thuật ta dùng câu lệnh điều kiện if trong C. Trong
trường hợp cần có một cấu trúc đa nhánh ta dùng lệnh switch.

Thời lượng: 1 tiết


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

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