1
BÀI TẬP PHẦN LẬP TRÌNH CƠ BẢN
1. Viết chương trình cho phép nhập vào các hệ số a, b c và giải phương
trình bậc hai a*x2+b*x+c = 0.
2. Viết chương trình cho phép nhập vào các hệ số a1, b1, c1, a2, b2, c2 và giải
hệ bậc nhất sau:
a1* x + b1* y = c1
a2* x + b2* y = c2
3. Viết chương trình cho phép nhập vào ba số thực a, b, c kiểm tra xem
chúng có phải là số đo các cạnh ca: 1) một tam giác; 2) một tam giác vuông;
3) một tam giác cân; 4) một tam giác đều hay không? In kết quả ra màn hình.
4. Viết chương trình trong đó n sẵn toạ độ m O và bán nh r của mt
nh tròn, nhập vào toạ độ của điểm M bất từ bàn phím, y cho biết v
trí tương đối của M so với đường tròn: ở trong, trên hay ngoài đường tròn?
5. Viết chương trình cho phép nhập vào hai số a, b và một ký tự k, nếu k
một trong bn tự biểu din phép toán ‘+’, -‘, ‘*’, ‘/’ thì thực hin phép
cộng, trừ, nhân, chia của a và b và in kết quả ra màn hình.
6. Tên ca năm âm lịch được cấu tạo từ hai thành phần can chi, d
năm 2010 ơng ng với năm âm lịch Canh Dần trong đó Canh can
Dần là chi. Có tất cả 10 can là Giáp, Ất, Bính, Đinh, Mậu, Kỷ, Canh, Tân, Nhâm,
Quý 12 chi là , Sửu, Dần, Mão, Thìn, Tỵ, Ngọ, Mùi, Thân, Dậu, Tuất, Hợi.
Viết chương trình cho phép nhập vào một năm ơng lịch (ví d2015)
hãy đưa ra n âm lịch ơng ng của năm đó biết rằng phần can và chi được
ly ln lượt xoay vòng (hết cuối chuyển về đầu) theo thứ tự kể trên.
7. Gi sử biết ngày đầu của một tháng (nào đó) là ngày thứ my trong tun,
hãy viết chương trình cho phép nhập vào ny bất k của tháng đó cho
biết đó ny thứ my trong tuần. d nếu ny 1 (của tháng nào đó)
Thứ 2 thì ngày 5 (của tháng đó) là Thứ 6.
8. Viết chương trình cho phép nhập vào tháng/năm, y cho biết số ngày
của tháng/năm đó trong năm. Biết rằng các tháng 1, 3, 5, 7, 8, 10, 12 31
ny; các tháng 4, 6, 9, 11 30 ny; tháng 2 năm thưng 28 ngày, năm
nhun 29 ny. Những năm không chia hết cho 4 hoặc những năm chẵn
2
thế kỷ nng không chia hết cho 400 là năm thường, ví dcác năm 1996,
2000 là năm nhun; các năm 1900 hay 2002 không nhun.
9. (*) Giả sử biết ngày đầu tn của một năm (nào đó) là ny thứ mấy trong
tun, hãy viết chương tnh cho phép nhập vào ngày, tháng, năm (của năm đó)
và cho biết đó là ngày thứ my trong tun.d, ny 1/1/2014 là ngày Th
4 thì ny 3/6/2014 là ny Thứ 3.
10. (*) Viết chương trình cho phép nhập vào ngày/tháng/năm bắt đầu
ny/tháng/năm kết thúc, nh in ra số ny nh từ ny/tháng/năm bt
đầu đến ny/tháng/năm kết thúc. d nếu ny bắt đầu là 1/1/1970
ny kết thúc là 15/6/2014 thì số ny tính được là 16236.
11. (*) Viết chương trình cho phép nhập vào ny/tháng/năm bắt đầu một
số nguyên n, tính và in ra màn nh ngày/tháng/năm mi ny sau ngày bắt
đầu n ngày. dụ ngày bắt đầu là 1/1/1970 n = 16236 thì ny mi
15/6/2014.
12. (*) Viết chương trình cho phép nhập vào ny của tháng (nào đó), y
chuyn ngày đó thành dạng chữ và in kết qu ra màn nh. dnếu nhập
vào ngày = 6 thì dạng chữ “ny u”, nếu nhập vào ngày = 31 tdạng
chữ là “ngày ba mươi mốt”.
13. (*) Viết chương trình cho phép nhập vào tháng của năm (nào đó), y
chuyn tháng đó thành dạng chữ in kết quả ra màn nh. dnếu nhập
vào tháng = 3 tdạng chữ “tháng ba”, nếu nhập vào tháng = 11 tdạng
chữ là “tháng mười một”.
14. (*) Viết chương trình cho phép nhập vào năm (nào đó) nhỏ hơn 2100, y
chuyn năm đó thành dạng chữ và in kết qura màn nh. d nếu nhập
vào năm = 1989 thì dạng chữ là “năm một nghìn chín trăm tám mươi cn”.
15. (**) Viết chương trình cho phép nhập vào các giá tr ngày, tháng, năm
dạng số; y thực hin việc chuyển các gtr ngày, tháng, năm đó thành
dạng chữ. d nếu nhập vào ngày = 24, tháng = 6, năm = 2014 thì dạng
chữ của các giá trị đó “Ngày hai mươi tháng sáu năm hai nghìn không
trăm mười bốn”.
16. (*) Viết chương trình cho phép chuyển một số tiền nguyên (dạng số) về
dạng chữ của số tiền đó và in kết quả ra mànnh, ví d với số tin 125050
3
thì dạng chữ của nó là Một trăm hai mươi lăm nghìn không trăm năm mươi
đồng”.
17. (**) Viết chương trình cho phép chuyển một số tiền (dạng số) có độ cnh
xác sau dấu phảy 2 chữ số về dạng chữ của số tiền đó và in kết qu ra màn
nh, dvới stin 125050,35 thì dạng chữ của nó Một trăm hai
mươi lăm nghìn không trăm năm mươi phảy ba mươi lăm đồng”.
18. Viết chương trình cho phép m in ra màn nh các nghim nguyên ơng
của hệ phương trình sau:
X + Y + Z = 100
5X + 3Y + Z/3 = 100
19. Viết chương trình cho phép nhập vào số nguyên ơng n, hãy m tất c
các b3 số nguyên dương a, b, c sao cho a2+b2 = c2 vi ab c n in các
kết quả đó ra nnh.
20. Viết chương trình cho phép in ra màn hình n số Fibonacci với n được nhập
từ bàn phím. Số Fibonacci thứ k, hiệu Fk, được định nghĩa n sau: Fk = Fk-1
+ Fk-2, vi F0 = 0, F1 = 1.
21. Viết chương trình cho phép in ra màn nh tất cả các số nguyên tố nh
n n, vi nmột số nguyên dương được nhập từ bàn phím.
22. Gi stiền gửi tiết kiệm được tính với lãi sut là m% mỗi tháng, sau n tháng
thì tiền lãi đưc cng vào gc. Viết chương trình cho phép tính in ra màn hình
s tiền lãi đưc sau K tháng gửi tiết kiệm với số tiền gốc ban đầu là T. c giá
trị m, n, K, T được nhập từ bàn phím.
23. Viết chương trình cho phép nhập vào hai số nguyên dương a và b, tính
in ra ước số chung lớn nhất (USCLN) và bi số chung nhỏ nhất (BSCNN) của
hai số đó.
24. Gi TongN (tổng N) ca một số nguyên ơng tổng các chữ số của số
nguyên đó, dTongN(3205) = 3+2+0+5 = 10. Viết chương trình cho phép
nhập vào một số nguyên, tính là in ra TongN của số nguyên đó.
25. (*) Nếu giá tr TongN (i tập 24) ca một số nguyên dương có nhiều n
một chữ số thì người ta tiếp tc nh TongN ca giá trđó và lặp lại cho đến
khi giá tr nh được cuối cùng chỉ còn một chữ số, giá trị cuối cùng đó gọi
tổng triệt để ca số nguyên. d vi số nguyên 3205 ta có
4
TongN(3205)=3+2+0+5 = 10, vì 10 2 ch số nên nh tiếp TongN(10) =
1+0 = 1, nvy tổng triệt để ca 3205 là 1. Viết chương trình cho phép nhập
vào một số nguyên, tính và in ra tổng triệt để ca số nguyên đó.
BÀI TẬP PHẦN MỘT SỐ CẤU TRÚC DỮ LIỆU CƠ BN
1. Cho dãy n số nguyên A1, ..., An, đếm số phần tử giá tr x xuất hin
trong dãy.
2. Cho dãy n số nguyên A1, ..., An, m phần tử lớn nhất và đếm xem phần
tử đó xuất hiện bao nhiêu lần trong dãy.
3. Cho y n số nguyên A1, ..., An, m in ra y đại diện của nó. y
đại din y chứa các giá trkhông lặp lại ca y ban đầu, dvới y
{1, 2, 3, 2, 4} thì dãy đại diện là {1, 2, 3, 4}.
4. (*) Cho dãy n số nguyên A1, ..., An, tìm in ra dãy con liên tiếp kng
gim có nhiều phần tử nhất. dvới y {6, 1, 5, 2, 7, 6, 8, 6, 4, 8, 9} thì
dãy con liên tiếp không gimnhiu phần tử nhất là {4, 8, 9}.
5. Cho dãy n số nguyên A1, ..., An, sắp xếp theo thứ tự ng dần và in kết
quả ra màn hình.
6. Cho hai ma trận A[m,n], B[m,n], tính in ra mànnh ma trn tng.
7. Cho hai ma trận A[m,n], B[n,m], tính in ra mànnh ma trn tích.
8. Cho ma trận vuông A[n,n] tính định thức của ma trận A, det(A).
9. Cho ma trận vuông A[n,n], nếu định thức của ma trận A, det(A)0 thì m
và in ra ma trn nghch đảo A-1 ca ma trận A.
10. (*) Gii hệ phương trình tuyến tính bằng phương pháp khử Gauss.
11. Sử dụng dữ liu dạng con trỏ thực hiện các bài tập từ 1 đến 10.
12. (*) Viết chương trình cho phép nhập vào một u tự đếm xem u ký
tự đó bao nhiêu tự (không kể tự trống), và bao nhiêu từ (từ được
hiu là chui các tự trong bng chữ cái nằm giữa hai dấu trống trong u).
Ví dụu “Ky thuat lap trinh” có 15 ký tự (không kể dấu trống) và có 4 từ.
13. (*) Viết chương trình cho phép nhập vào một xâu ký tự họ tên người Việt,
5
chun hóa u vào sao cho: giữa hai từ chchứa một dấu trống, chữ cái đầu
tất cả các từ được viết hoa các chữ i khác được viết thưng, kng có
dấu trống ở đầu và cuiu.
14. (*) Xâu họ n người Việt gồm từ đầu Họ, từ cui là n các t
giữa Họ và Tên phần Đệm. Viết chương trình cho phép tách in các phần
Họ, Đệm, Tên ca xâu họ tên người Việt trên các dòng khác nhau.
15. Viết chương trình cho phép nhập vào một u tự, kiểm tra xem có từ
nào bị viết sai chính tả hay không, một từ được hiu là sai chính tả nếu không
chứa một phụ âm nào.
16. (*) Viết chương trình cho phép nhập vào một u tự chuẩn hóa u
vào sao cho: các dấu ngắt câu (dấu phảy, dấu chấm, dấu chấm phảy, dấu hỏi,
dấu chấm tham) nh lin vi từ trước nó, sau dấu ngắt u chduy nhất
một dấu trống nn cách từ kế tiếp, đầu và cuối xâu không chứa dấu trng.
17. Viết chương trình cho phép nhập vào một u và một số nguyên n, in
ra màn nh u tự vào trên nhiu ng vi mi ng không có nhiu hơn
n ký tự.
18. (**) Viết chương trình cho phép nhập vào một u và một số nguyên
n, in ra màn nh xâu ký tự vào trên nhiu dòng vi mi dòng không có nhiều
n n tự tuy nhiên việc ngắt ng chỉ được thực hiện vị trí dấu trống
(không được ngắt giữa một từ).
19. (*) Viết chương trình tạo ng chữ “Ky thuat lap trinh - Khoa CNTT”
chạy từ trái qua phải trên màn nh trên một ng cố định hoặc trên các ng
khác nhau mỗi ln bắt đầu ở cạnh bên phải.
20. Hãy mô tả phân số kiu bn ghi, viết chương trình cho phép thực hin các
phép toán cộng, trừ, nn, chia hai phân số.
21. Hãy mô tả số phức kiểu bản ghi, viết chương trình cho phép thực hiện các
phép toán cộng và nn hai số phức.
22. Hãy tả tọa độ điểm trên mặt phảng kiểu bn ghi, viết chương tnh
cho phép nhập vào tọa đcác đim ca một tam giác, nh din tích của tam
giác đó.
23. Hãy tả tọa độ đim trên mặt phảng kiu bn ghi, ng mng để lưu