BÀI TẬP TỰ LUYỆN
1. Viết chương trình nhập vào 1 dãy số nguyên (tối đa 50 phần tử). Hãy thực hiện:
a. In ra dãy vừa nhập.
b. In ra tổng bình phương các số âm trong mãng.
c. In ra màn hình mãng sau khi đã sắp xếp tăng dần, giảm dần
2. Số chính phương:
a. Số chính phương là bình phương của một số nguyên
ví dụ 2^2 =4; 3^2 = 9. Viết chương trình nhập vào từ bàn phím 1 số nguyên n, Kiểm tra xem nó có phải là số chính phương hay không và xuất ra màn hình?
b. Tương tự câu a. Hãy lập trình in ra màn hình các số chính phương trong mảng 1 chiều
3. Viết chương trình nhập vào 2 số a, b (1<a<b<10000).
Thông báo ra màn hình số lượng các số chẵn, số lượng các số lẻ trong khoảng từ a đến b.
Hướng dẫn: Sử dụng vòng lặp for chạy từ a ->b . Nếu là số chẵn thì biến demc tăng lên 1 ngược lại thì biến đeml tăng lên 1. Cuối cung xuất ra màn hình các biến đếm trên.
b. Tương tự câu trên. Hãy viết chương trình nhập vào 1 số nguyên n. Kiểm tra số đó có bao nhiêu ước chẵn và bao nhiêu ước lẻ.
4. Cho 1 dãy số gồm n phần tử n<=15. Giá trị từng phần tử là số thực. Thực hiện các chương trình sau:
a) Nhập từ bàn phím số phần tử và giá trị từng phần tử
b) Tính tổng các phần tử âm của dãy
c) Tính tổng và trung bình cộng của các phần tử chẵn của dãy
d) Tìm phần tử có giá trị lớn nhất của dãy
e) Tìm phần tử có giá trị nhỏ nhất
f) Sắp xếp dãy theo chiều giảm dần về giá trị của từng phần tử
g) In các kết quả trên ra màn hình
h) Nhập vào 1 số x. In ra màn hình “tìm thấy” hay “không tìm thấy” nó trong mảng
Lưu ý: Kiểm tra dữ liệu nhập vào
5. Viết chương trình nhập vào một chuỗi kí tự, sau đó nhập vào một kí tự bất kì và đếm số lần xuất hiện của nó trong chuỗi đã nhập. Thông báo ra màn hình?
6. Viết ct nhập vào 1 xâu kí tự . Hãy biến đổi xâu đã cho bằng cách thay đổi trong đó :
a. Tất cả các dấu ! bằng dấu chấm .
b. Mỗi một nhóm các dấu chấm liền nhau bằng một dấu chấm.
7. Viết chương trình nhập vào 1 xâu đưa ra màn hình:
a. Xâu đó là xâu chữ in
b. Xâu đã loại bỏ kí tự trắng
c. Xâu đảo ngược
8. Viết ct nhập vào xâu có cả chữ và số, rồi cho xuất ra có bao nhiêu kí tự chữ và bao nhiêu kí tự số.
9. Số chính phương là một số nguyên có căn bậc hai là một số nguyên (ví dụ: 9 là số chính phương vì =3). Viết chương nhập vào 1 mảng số nguyên gồm n phần tử (0<n<50), đếm và tính tổng các số chính phương có trong dãy số nguyên dương gồm N phần tử A1, A2, …, AN.
Dữ liệu vào: Nhập từ bàn phím.
Kết quả ra: Xuất ra màn hình gồm 3 dòng:
- Dòng 1 ghi các số chính phương của dãy giữ nguyên thứ tự xuất hiện (mỗi số cách nhau một dấu cách).
- Dòng 2 ghi số lượng số chính phương trong dãy.
- Dòng 3 ghi tổng của các số chính phương trong dãy.
10. Viết chương trình kiểm tra số n được nhập vào từ bàn phím có phải là số nguyên tố hay không. Xuất kết quả ra màn hình.
11. Viết chương trình giải phương trình bậc 2 : ax^2 +bx+c=0.
Sử dụng Function và Procedure để giải
12. Giải bài toán cổ:
"Vừa gà vừa chó
Bó lại cho tròn
Ba mươi sáu con
Một trăm chân chẵn".
In kết quả ra màn hình số gà và số chó?
13. Viết chương trình nhập vào 1 số nguyên. Cho biết số đó có mấy chữ số và tính tổng của chúng.
14. Viết chương trình đọc vào file input.txt ở ổ đĩa D:\ có thông tin sau:
Dòng 1: 5
Dòng 2: 6 8 3 9 2
Xử lí file và ghi kết quả vào file D:\output.txt có bao nhiêu số chẵn và số lẻ
15. Viết chương trình đọc vào file input.txt ở ổ đĩa D:\ chứa 1 số nguyên n. Kiểm tra nó có phải là số nguyên tố không, ghi kết quả vào file d:\output.txt
16. Viết chương trình đọc vào 1 file ở ổ đĩa "D:\input.inp" có cấu trúc sau:
- Dòng 1: Số nguyên 6
- Dòng 2: Dãy số tương ứng là 5 8 4 20 9 12
Em hãy xử lý file trên và ghi vào file "D:\Output.out" thông tin sau:
- Dòng 1: Dãy số đã được sắp xếp tăng dần
- Dòng 2: Dãy số đã được sắp xếp giảm dần
- Dòng 3: Tổng các số trong dãy
17. Viết chương trình thực hiện 1 trò chơi đoán số từ 0 đến 9.
Nhập vào 1 số a là số cần đoán và xóa sạch màn hình để người chơi không biết số vừa nhập, tiếp theo cho người chơi nhập 2 lần nếu có ít nhất 1 số bằng với số a thì thông báo là "Bạn đã thắng!" ngược lại thông báo "Bạn đã thua!". Thông báo lỗi nếu nhập ngoài khoảng từ 0 đến 9.
18. Viết chương trình nhập vào từ bàn phím 1 số nguyên n và ghi số n vào file 'D:\input.inp'. Xử lý file trên và xuất kết quả vào file 'D:\output.out' theo mẫu sau:
vd: n=1234
Output:
* Tong cac chu so cua 1234: 10
* 1234 co 4 chu so
* 1234 co so dao la: 4321
* 1234 Ma hoa nhi phan la: 01001011001
19. Viết chương trình nhập vào tuổi cha và tuổi con. Xuất ra màn hình sau bao nhiêu năm thì tuổi cha gấp 2 lần tuổi con.
20. Viết chương trình nhập vào 1 xâu ký tự, sau đó cho người dùng chọn vị trí xóa và số ký tự cần xóa. Sau đó in ra màn hình xâu sau khi xóa.
21. Số siêu nguyên tố:
Tại Vương quốc Byte xinh đẹp, mỗi người luôn chọn cho mình một con số, theo họ số nguyên tố là số mang lại sự may mắn và ai tìm được một số siêu nguyên tố còn may mắn hơn nữa. Số siêu nguyên tố là một số nguyên tố mà khi bỏ 1 số tùy ý các chữ số bên phải của nó thì phần còn lại vẫn là 1 số nguyên tố. Số 2333 là 1 số siêu nguyên tố vì 2333 là một số nguyên tố và 233, 23, 2 cũng là các số nguyên tố.
Dữ liệu vào: SNT.INP Chứa một số nguyên dương n (n ≤ 109)
Dữ liệu ra: SNT.OUT Nếu N là siêu nguyên tố ghi giá trị 1, ngược lại ghi giá trị 0
22. Viết chương trình nhập vào 1 xâu kí tự:
a. đếm xem 1 xâu s có bao nhiêu kí tự c (không kể in hoa hay thường)
b. đếm xem xâu s có bao nhiêu từ (một từ được định nghĩa là một tập các kí tự không chứa dấu cách)
23. Viết chương trình in ra màn hình dãy số Fibonaci với n số nhập từ bàn phím. Biết dãy số Fibonaci là dãy số mà F(1)=0, F(2)=1, F(n)=F(n-1)+F(n-2).
24. Viết chương trình tạo trò chơi "bao - búa - kéo" đơn giản. Người chơi với máy.
25. Nhập vào 1 số tự nhiên n và nhập vào m, sau đó tính tổng m các số tận cùng của n.
vd: n = 3657 m =3 tổng = 7+5+6=18.
26. Viết chương trình nhập vào 1 xâu ký tự từ bàn phím. Kiểm tra xâu vừa nhập có đối xứng không.
- Xâu đối xứng là xâu mà đọc từ trái sang phải giống với khi đọc từ phải sang trái.
- VD: 123454321 LÀ xâu đối xứng
27. Nhập một dãy số nguyên có n phần tử (0< n <= 100)
a. Sắp xếp dãy vừa nhập theo thứ tự tăng dần, in ra màn hình dãy đã sắp thứ tự
b. Tìm trên dãy đã sắp xếp có phần tử x hay không, nếu tìm thấy thì x ở vị trí nào?. với x được nhập từ bàn phím.
28. Viết chương trình nhập từ bàn phím 2 số nguyên a,b. In ra màn hình bội chung nhỏ nhất của 2 số trên.
29. Viết chương trình nhập vào 1 mảng số nguyên gồm n phần tử (0<n<=20). In ra màn hình phần tử lớn nhất và vị trí của phần tử đó.
30. Viết chương trình nhập vào 1 mảng số nguyên gồm n phần tử (0<n<=100). Nhập vào vị trí k cần xóa và xóa phần tử đó. In ra hình hình danh sách sau khi xóa.
31. Viết chương trình nhập vào 1 mảng số nguyên gồm n phần tử (0<n<=100). Nhập vào phần tử x và vị trí cần chèn. In ra hình hình danh sách sau khi chèn phần tử.
32. Số nguyên dương n gọi là số song tố khi n là số nguyên tố và tổng chữ số của nó cũng là số nguyên tố.
a. Nhập số nguyên n. Hãy cho biết n có phải là số song tố hay không?
b. In ra các số song tố bé hơn hoặc bằng n.
c. In ra các cặp số nguyên tố lẻ liên tiếp nhỏ hơn hoặc bằng n.
33. Viết chương trình rút gọn phân số.
- Dữ liệu vào: Nhập từ bàn phím
- Dữ liệu ra: In ra màn hình phân số tối giản
34. Palindrome hay còn gọi là xâu đối xứng, xâu đối gương là tên gọi của những xâu kí tự mà khi viết từ phải qua trái hay từ trái qua phải thì xâu đó không thay đổi.
VD: MADAM, IOI,... Kiểm tra xem một xâu có phải là Palindrome hay không?
+ Dữ liệu vào từ file INPUT.INP chứa 1 xâu bất kì
+ Dữ liệu ra: ghi vào file OUTPUT.OUT : 0 nếu không đối xứng. 1 nếu đối xứng
35. Dãy Fibonaci có dạng F(n)=F(n-1)+F(n-2);
Nhập từ bàn phím số tự nhiên n.
Xuất ra dãy số Fibonaci từ gồm n phần tử và tổng của chúng.
Sau đó ghi vào file Fabonaci.OUT tổng của dãy số trên.
VD:N=8
Xuất ra màn hình 1, 1, 2, 3, 5, 8,13,21
Tổng là: 54
36. Hãy viết chương trình thực hiện các yêu cầu sau:
- Nhập số nguyên dương N
- Nhập N số nguyên, lưu vào mảng một chiều A.
- Tìm số âm có giá trị lớn nhất trong mảng (nếu có).
37. Viết chương trình nhận thông tin của tệp. Input.txt có cấu trúc sau:
- Dòng 1: số nguyên n
- Dòng 2: n số nguyên
Yêu cầu: Xử lý file trên và in ra màn hình đồng thời ghi vào file Output.txt thông tin sau:
- Dòng 1: Sắp xếp tăng dần
- Dòng 2: Các số chính phương trong mảng
- Dòng 3: Tổng các số chính phương đó
38. Viết chương trình nhận thông tin của tệp Input.txt có cấu trúc sau:
- Dòng 1: số nguyên n
- Dòng 2: n số nguyên
Yêu cầu: Xử lý file trên và in ra màn hình đồng thời ghi vào file Output.txt thông tin sau:
- Dòng 1: Sắp xếp giảm dần
- Dòng 2: Các số nguyên tố trong mảng
- Dòng 3: Tổng các số nguyên tố chia hết cho 3
39. Trường THCS Trần Phán phát động kế hoạch nhỏ thu gom giấy vụn bán lấy tiền tiếp sức học sinh nghèo đến trường.
- Cho tệp INPUT.INP có cấu trúc sau: số kg giấy vụn của các lớp cách nhau 1 dấu cách.
- Hãy tính tổng số lượng giấy thu được và thành tiền (biết 1kg giấy 2000đ) ghi vào file Output.out như sau:
+ Dòng 1: Tổng số giấy vụn thu được
+ Dòng 2: Số tiền thu được
40. Cho tệp dulieu.txt và ketqua.txt.
Tệp dulieu.txt chứa 1 dãy số nguyên, mỗi số cách nhau 1 dấu cách. Hãy đọc file trên và ghi vào file ketqua.txt số lượng các số dương chẵn và tổng của chúng.
------------------------------------------------------|
| INPUT | OUTPUT |
|-----------------------------------------------------|
| 1 2 -3 4 5 | 6.0 |
|Co 2 so duong chan
| Tong la: 6
41. Viết chương trình nhập vào 1 mảng số nguyên gồm n phần tử (0<n<50). In ra màn hình phần tử lớn thứ nhất và phần tử lớn thứ 2.
42. Hai số A và B được xem là số hữu nghị nếu như "tổng ước" số này bằng số kia và ngược lại . Viết chương trình nhập vào 2 số a b và kiểm tra xem chúng có phải số hữu nghị hay không?
43. Viết chương trình nhập vào 1 mảng số nguyên gồm n phần tử. Kiểm tra xem dãy vừa nhập có đối xứng không và xuất kết quả ra màn hình. Tính tổng của dãy số. vd: 1 2 3 4 3 2 1 . -->Đối xứng. Tổng 16
44. Viết chương trình kiểm tra xem 1 số có là số hoàn hảo không?
- Liệt kê tất cả số hoàn hảo từ 1..2000 và đếm xem có bao nhiêu số
45. Nhập vào 1 mãng số thực n (2<n<20)
- Tình trung bình công của tất cả số dương trong mảng
- Kiểm tra xem trong mảng có bao nhiu số có giá trị trùng với giá trị của tbc nói trên
46. Viết chương trình nhập vào từ bàn phím 1 số nguyên n. Kiểm tra số đó có phải là số siêu nguyên tố không. Sau đó ghi kết quả vào file output.out. "Có" hoặc "Không".
47. Viết chương trình nhập từ bàn phím số nguyên thứ 1. Ghi vào file f1.txt. Nhập số nguyên thứ 2. Ghi vào file f2.txt. Lập trình tạo file f3.txt chứa nội dung file 1 và file 2.
48. Viết chương trình nhập từ bàn phím 1 mảng số nguyên gồm n phần tử (0<n<30). Ghi vào file data.txt nội dung sau:
- Dòng 1: Các số chính phương chia hết cho 2.
- Dòng 2: Tổng của chúng.
49. Viết chương trình nhập vào từ bàn phím 1 số nguyên n. in ra màn hình các số nguyên tố từ 1 đến n và tổng của chúng.
50. Viết chương trình in ra màn hình 6 số FIBONACI đầu tiên và tích của chúng. Dãy FIBONACI có dạng F(n) =F(n-1)+F(n-2)
51. Viết chương trình in ra màn hình 6 số ngẫu nhiên. sau đó thực hiện: in ra màn hình:
- Sắp xếp dãy giảm dần
- Số lớn thứ 2 trong dãy
- Các số là số chính phương
52. Cho tệp DULIEU.IN gồm 10 phần tử số nguyên. Hãy viết chương trình tính trung bình cộng tất cả các phần tử chẵn và in kết quả vào tệp DULIEU.OUT
53. Nhập vào một xâu st và đếm xem nó có bao nhiêu từ. Từ là một dãy các kí tự, cách nhau bởi dấu cách?
54. Viết chương trình đọc vào file DULIEU.INP chứa 1 số nguyên bất kì (nhiều hơn 3 chữ số). Em hãy tính tổng 2 chữ số cuối và ghi vào file OUTPUT.OUT
55. Viết chương trình tìm các số trong khoảng 0 đến 999 bằng tổng lập phưong các chữ số của nó. Vdụ: như số 153 vì 153=1^3+5^3+3^3
56. Viết chương trình biện luận phương trình bậc 2 sau: x^2 + (m-2)x + 1 =0 với tham số m.
57. Viết chương trình nhập vào một chuỗi gồm các ký tự ‘a ..z’ và ‘A..Z’ và ‘0..9’ nhập liên tục không có khoảng trắng và xen kẻ nhau giữa các số và chữ có độ dài L (4 ký tự <L<40 ký tự). Sau đó thực hiện heo các yêu cầu sau:
a/ Là chữ số:
- Xuất các chữ số có trong chuỗi theo thứ tự vừa nhập
- Cho biết số vừa xuất ra là số chẳn hay số lẽ.
- Tính tổng các chữ số vừa nhập.
b/ Là kí tự:
- Xuất các kí tự có trong chuỗi theo thứ tự vừa nhập
- Viết hoa các kí tự này
VD: Nhập vào chuỗi: ab2314ZS23Z34c
a/ La so:
- Cac chu so co trong chuoi la: 23142334
- So 23142334 la so chan
- Tong cac chu so co trong chuoi: 22
b/ La ki tu:
- Cac ki tu co trong chuoi la: abZSZc
- Viet hoa cac kit u: ABZSZC
58. Viết chương trình để thực hiện phép nhân 2 số a và b (a và b nhập từ bàn phím). không thực hiện toán tử * (nhân)
59. Viết chương trình nhập vào 1 dãy số nguyên dương gồm có n phần tử (n < 30). Thực hiện lần lượt các công việc sau:
+ Sắp xếp dãy số trên theo thứ tự giảm dần và in kết quả ra màn hình.
+ Tìm UCLN của tất cả các phần tử trong dãy trên.
Ví dụ: Nhập n=5, dãy số: 6, 21, 12, 15, 9
+ Dãy số sau khi sắp xếp giảm dần là: 21 15 12 9 6
+ Ươc chung lớn nhất của dãy số trên là: 3
60. Viết chương trình nhập từ bàn phím vào số nguyên dương n và dãy A gồm n số nguyên dương (a1, a2,...,an) và thực hiện các công việc sau:
a) Tính tổng các số chẵn có trong dãy.
b) In ra phần tử có giá trị tuyệt đối lớn nhất trong dãy, là số thứ mấy trong dãy.
c) In ra màn hình dãy số A sau khi sắp xếp giảm dần.
61. Viết chương trình lập một sổ tay điện tử cho phép người dùng nhập vào họ tên, số điện thoại, địa chỉ . với mỗi phần tử là kiểu bản ghi. Sau dó nhập họ tên của 1 người cho biết số điện thoại và địa chỉ tương ứng.
62. Viết chương trình nhập danh sách gồm n nhân viên trong công ty. Thông tin kiểu bản ghi gồm: họ tên, lương cơ bản, hệ số lương, phụ cấp, thực lãnh (thực lãnh =lương cơ bản*hệ số lương+phụ cấp).
a. In ra danh sách vừa nhập và ghi vào file output.out.
b. Sắp xếp danh sách theo số tiền thực lãnh từ thấp đến cao.
63. Nhập vào 2 số nguyên m,n kiểm tra xem chúng có phải là số nguyên tố tương đương không?
Hai số gọi là nguyên tố tương đương nếu chúng có cùng các ước số nguyên tố. Ví dụ 15 và 75 là các số nguyên tố tương đương. Bởi vì 15=3*5 trong khi 75=3*5^2, có cùng ước số nguyên tố là 3 và 5. Tương tự 12=2^2*3 và 18=2*3^2 là hai số nguyên tố tương dương vì có cùng hai ước số nguyên tố là 2 và 3. Tuy nhiên 12 và 60 ko nguyên tố tương đương vì 12=2^2*3 và 60=2^2*3*5, 60 có ước số nguyên tố 5 trong khi 12 không có.
64. Viết chương trình nhập từ bàn phím 1 xâu kí tự bao gồm cả số và chữ. In ra màn hình:
- Dòng 1: Các số sau khi tách khỏi chữ
- Dòng 2: Sắp sắp các chữ số đó tăng dần
Ví dụ:
- Nhập chuỗi: bao45dinh23van97
- Cac chu so: 452397
- Sap xep tang: 234579
65. Viết chương trình nhập vào 1 mảng số nguyên gồm n phần tử (1<=n<=20). Nếu không thỏa điều kiện thì thông báo nhập lại. In ra màn hình các kết quả:
1. Các số hoàn hảo từ 1 đến n
2. Các số hoàn hảo trong dãy
3. In ra các phần tử của mảng chia 3 dư 1, chia 7 dư 2
4. In ra các số có 3 chữ số, tổng chữ số bằng 20, chia 7 dư 2.
66. Viết chương trình nhập vào 2 phân số với a/b lớn hơn c/d và không âm. Hãy tính các phép toán cộng, trừ, nhân, chia và xuất ra màn hình.
67. Cho dãy N số tự nhiên a1, a2, ..., an. Độ cao của một số tự nhiên là tổng các chữ số của số đó. Ví dụ số 2014 có độ cao là 7 (vì 2+0+1+4=7).
Yêu cầu: Tìm số có độ cao lớn nhất trong dãy A
Dữ liệu vào: Từ tệp văn bản DOCAO.INP gồm:
Dòng 1 ghi số nguyên N (1<= N <=1000);
Dòng 2 ghi các số nguyên ai (i lần lượt từ 1 đến N, 0<= ai <= 10^6), các số cách nhau ít nhất một dấu cách.
Kết quả: Ghi ra tệp văn bản DOCAO.OUT gồm:
Dòng 1 ghi số có độ cao cao nhất.
Ví dụ:
DOCAO.INP DOCAO.OUT
4 99
1019 12 99 20000
68. Viết chương trình kiểm tra 1 số có phải là số fibonaci hay không? Đếm và in ra màn hình dãy Fibonaci từ 1 đến n với n được nhập từ bàn phím.
69. Ta biết rằng 1 số nguyên dương N luôn có thể phân tích được thành tích các thừa số nguyên tố. Nhập vào số nguyên dương N va phân tích thành tích các thừa số nguyên tố.
VD: 16=2*2*2*2
15=3*5
12=2*2*3
70. Giải bài toán cổ:
Trăm trâu trăm cỏ
Trâu đứng ăn năm
Trâu nằm ăn ba
Lụ khụ trâu già
Ba con một bó
Hỏi có bao nhiêu trâu đứng , trâu nằm , trâu già ?
Gợi ý:
Trâu đứng ăn 5 => số cỏ ăn là 5 bó => số trâu đứng <=20.
Trâu nằm ăn 3 => số cỏ ăn được là 3 bó => số trâu nằm <=33
Trâu già = 100 – số trâu đứng – số trâu nằm.
71. Tạo một dãy số gồm n (3 < n < 20) số nguyên nhận các giá trị ngẫu nhiên từ 1 đến 99. Xuất dãy và xuất ra vị trí các số nguyên tố của dãy.
Dữ liệu vào: Số nguyên n có giới hạn theo đề.
Kết quả ra: Mảng a ngẫu nhiên và vị trí các số nguyên tố trong mảng.
72. Gọi abcd là một số có 4 chữ số. Hãy lập chương trình tìm tất cả các số có 4 chữ số thỏa mãn biểu thức: abcd=(ab + cd)^2
Ví dụ: số 2025=(20 + 25)^2.
Thuật toán:
- Kiểm tra tất cả các số có bốn chữ số theo 2 cách sau;
- Tách lấy hai số đầu, hai số sau của số có bốn chữ số để kiểm tra.
- Kiểm tra các trường hợp có thể của mỗi chữ số.