Bài tập thực hành ngôn ngữ C
Nguyễn Trần Thi Văn
Bài tập thực hành số 1 (Các khái niệm cơ bản -Nhập xuất dữ liệu)
1. Làm quen với trình soạn thảo mã nguồn của Turbo C 3.0 (hay Borland C 3.1)
Hướng dẫn:
● Trình soạn thảo mã nguồn của C gần như hoàn toàn tương tự với trình soạn thảo
của Pascal 7.0, do đó các bạn có thể làm quen dễ dàng.
● Tập tin chạy \TC30\BIN\TC.EXE (hoặc \BORLANDC\BIN\BC.EXE)
● Các thao tác Edit trên màn hình soạn thảo hoàn toàn tương tự như của Pascal.
2. Nhập vào và chạy thử các ví dụ mẫu trong phần lý thuyết:
a. Chương trình Hello World
b. Chương trình tính chu vi và diện tích hình tròn.
c. Chương trình minh họa các tiền xử lý (#include và #define), …
Hướng dẫn:
● Biên dịch chương trình > Menu COMPILE > Make (Phím nóng F9).
● Chạy chương trình > Menu RUN > Run (Ctrl-F9). Lưu ý là chương trình chỉ
chạy được khi không có lỗi biên dịch (biên dịch thành công).
● Xem kết quả > Menu WINDOW > User Screen (Alt-F5).
3. Viết chương trình in ra màn hình các hình vẽ như sau:
a. *
***
*****
*******
b. *******
*******
*******
*******
c. *
***
*****
*******
3. Hình vuông
4. Hình chữ nhật
Bạn chọn hình nào?_
Với hình tam giác, nhập vào độ dài 3 cạnh; hình tròn nhập bán kính, hình vuông nhập 1
cạnh; hình chữ nhật nhập 2 cạnh. In ra màn hình chu vi và diện tích của hình đó.
9. Viết chương trình tính tiền điện, với qui định về giá như sau:
a. 100 kwh đầu tiên giá 600đ/kwh
b. 50 kwh tiếp theo giá 900đ/kwh
c. 100 kwh kế tiếp giá 1200đ/kwh
d. từ kwh thứ 250 trở đi, giá 1500đ/kwh
Nhập vào số KWH tiêu thu trong tháng, tính và in ra số tiền phải trả.
10. Viết chương trình trò chơi đoán số.
a. Người đoán, máy trả lời.
b. Máy đoán, người trả lời.
Lưu ý: Các bài có dấu (*) là bài tập bắt buộc.
Page 2/9
Page 2/9
Bài tập thực hành ngôn ngữ C
Nguyễn Trần Thi Văn
Bài tập thực hành số 2 (các cấu trúc điều khiển)
1. (*)Cho số nguyên n nhập từ bàn phím. Kiểm tra xem n có phải là số nguyên tố hay
không?
Hướng dẫn:
● Một số được gọi là số nguyên tố nếu nó chỉ chia hết cho 1 và chính nó.
● Nếu một số n không chia hết cho bất kì số nào trong khoảng từ 2 cho đến+1 thì n
là số nguyên tố.
2. (*)Viết chương trình liệt kê tất cả các số nguyên tố nhỏ hơn hay bằng một số n cho
trước.
3. (*)Viết chương trình tìm Ước số chung lớn nhất (USCLN) và Bội số chung nhỏ nhất
(BSCNN) của 2 số nguyên dương a, b nhập từ bàn phím.
Page 3/9
Page 3/9
Bài tập thực hành ngôn ngữ C
Nguyễn Trần Thi Văn
f. *
* *
* *
* * * *
g. * * * *
* *
* *
* * * *
h. *
* *
* *
* * * *
i. *
* *
* *
* *
*
j. *
* *
* *
* *
*
7. Viết chương trình tìm tất cả các ước số của một số nguyên cho trước nhập từ bàn phím.
8. Viết chương trình cho một dòng chữ chạy ngang màn hình.
Bài tập thực hành số 3 (mảng và chuỗi)
Page 5/9
Page 5/9
Bài tập thực hành ngôn ngữ C
Nguyễn Trần Thi Văn
Bài tập thực hành số 3a (mảng và chuỗi - phần bổ sung)
1. Cho mảng A gồm n phần tử. Viết chương trình tìm số lớn thứ hai trong mảng. Lưu ý, chỉ
duyệt qua mảng một lần (dùng một vòng lặp).\
2. Viết chương trình nhập vào một mảng, trong quá trình nhập, mảng được sắp xếp thứ tự
luôn (tăng / giảm dần).
3. Cho ma trận vuông A[20][20], có kích thước N. Viết chương trình:
a. tính tổng trên các dòng, các cột, trên đường chéo chính, đường chéo phụ.
b. Sắp xếp ma trận sao cho các phần tử trên đường chéo chính dần.
c. Sắp xếp ma trận sao cho các phần tử trên đường chéo phụ giảm dần.
d. Tìm và in ra tất cả các vị trí xuất hiện của số lớn nhất trong ma trận.
4. Viết chương trình đổi chữ cái đầu tiên của mỗi từ trong một chuỗi thành chữ hoa.
5. (*)Cho một mảng số nguyên A gồm n phần tử. Tìm mảng con không giảm (run) dài nhất
trong A.
Ví dụ: Cho mảng : 5 8 7 8 9 6 12 20 30 18 (n = 10) thì mảng con không giảm dài
nhất sẽ là: 6 12 20 30 (gồm 4 phần tử)
Hướng dẫn:
● Dùng 2 biến: startIndex để lưu vị trí bắt đầu của mảng con trong mảng chính,
maxLength lưu chiều dài mảng con.
● Dùng vòng lặp duyệt mảng, sử dụng 2 biến tạm lưu vị trí và chiều dài của run
hiện thời, so sánh và cập nhật startIndex và maxLength nếu cần thiết.
6. (*)Cho mảng A gồm n số nguyên tạo ngẫu nhiên. Tạo mảng B gồm các phần tử là số
chẵn có trong A.
7. Cho ma trận vuông A[20][20], có kích thước N. Viết chương trình thực hiện sắp xếp lại
ma trận tăng dần theo dòng và cột, tức là:
A[0][0] < A[0][1] < … < A[0][N-1] < A[1][0] < … < A[N-1][N-1]
Ví dụ:
a. Số chính phương là số mà căn bậc 2 của nó là một số nguyên, vd: 4, 9, 16, 25
b. Prototype:
int MangTang(int a[], int n, int tang);
/***********************
a : mang can kiem tra
n : so phan tu cua mang
tang: dùng để kiểm tra tăng hay giảm, nếu muốn kiểm tra xem mảng có tăng không,
truyền tang = 1, ngược lại, để kiểm tra giảm, truyền trị 0.
neu mang co thu tu (tang/giam), ham tra ve tri 1
nguoc lai tra ve 0.
***********************/
2. Xây dựng các hàm tính toán:
a. Tìm ước số chung lớn nhất của 2 số nguyên dương a, b.
b. Tìm bội số chung nhỏ nhất của 2 số nguyên dương a, b.
c. Tìm số lớn nhất (nhỏ nhất) trong mảng số nguyên a, có n phần tử.
d. Hàm tính n! (n giai thừa), không dùng đệ quy.
e. Tính tổ hợp chập k của n C(k, n)
f. Tính chỉnh hợp chập k của n A(k, n)
Page 7/9
Page 7/9
Bài tập thực hành ngôn ngữ C
Nguyễn Trần Thi Văn
Hướng dẫn:
a. Prototype:
unsigned int USCLN( unsigned a, unsigned b);
/********************************************
a, b : 2 so can tim uoc chung
Ham tra ve mot so nguyen duong la UCLN cua 2 so a, b.
*********************************************/
b. Tương tự a
g. Đưa thêm các hàm đã làm trong bài tập trước vào thư viện hàm này – hàm strWord
(đếm số từ trong chuỗi), hàm strWordInverse (đảo ngược thứ tự các từ trong chuỗi),
hàm strTrim (cắt bỏ các khoảng trắng thừa)
5. Viết hàm đổi số nguyên dương n từ hệ 10 sang hệ k (k từ 2 đến 16, tiêu biểu là 2, 8 và 16).
Kết quả được in ra màn hình
Page 8/9
Page 8/9
Bài tập thực hành ngôn ngữ C
Nguyễn Trần Thi Văn
6. Xây dựng các hàm:
a. Viết hàm kiểm tra xem một chuỗi nhập vào có phải là chuỗi biểu diễn một số hệ k hay
không. VD: chuỗi biểu diễn số nhị phân chỉ gồm các kí tự là ‘0’ và ‘1’, chuỗi biểu diễn
số hệ 16 chỉ gồm chữ số (0 9) và các chữ cái a f hay A F.
b. Viết hàm đổi ngược một chuỗi biểu diễn số hệ k (k = 2, 8 hay 16) sang số hệ 10 (có sử
dụng hàm trong câu a để kiểm tra chuỗi hợp lệ).
Page 9/9
Page 9/9