Bài tập Tin học - Thực hành lập trình C/C++ (Có lời giải)

docx 14 trang hoahoa 20/05/2024 300
Bạn đang xem tài liệu "Bài tập Tin học - Thực hành lập trình C/C++ (Có lời giải)", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • docxbai_tap_tin_hoc_thuc_hanh_lap_trinh_cc_co_loi_giai.docx

Nội dung text: Bài tập Tin học - Thực hành lập trình C/C++ (Có lời giải)

  1. Tài liệu thực hành lập trình C/C++ có lời giải Thực hành 1 Bài 1: (TH-CSLT-01). Vận tốc của phương tiện được tính bằng quãng đường đi được S trong một khoảng thời gian là T. Hãy thực hiện nhập giá trị cho S và T, sau đó hiển thị vận tốc của phương tiện với độ chính xác là 02 chữ số của phần thập phân. Lưu ý, quãng đường đi được có thể không nguyên, còn thời gian được qui định là nguyên. Tham khảo lời giải: Bài 2: (TH-CSLT-02): Viết chương trình nhập vào thông tin của một học sinh gồm: Mã học sinh, Họ tên, Ngày sinh, Lớp, Số buổi ăn bán trú. In ra màn hình các thông tin: Mã học sinh, Họ tên, Ngày sinh, Lớp, Số buổi ăn bán trú, Số tiền ăn bán trú (biết đơn giá là 25000đ/ 1 buổi ăn bán trú). Thông tin in ra theo 2 cách: các thông tin in hết trong một dòng hoặc mỗi thông tin in trên một dòng Tham khảo lời giải: mot-hoc-sinh-gom-ma-hoc-sinh-ho-ten-ngay-sinh-lop-so-buoi-an-ban-tru-in-ra- man-hinh-cac-thong-tin/ Bài 3: (TH-CSLT-03): Viết chương trình nhập vào một số nguyên dương N có 2 chữ số từ bàn phím, xuất ra màn hình tổng các chữ số của N. Ví dụ: Nhập N = 48, kết quả in ra màn hình là 4+8=12 Tham khảo lời giải: Bài 4: (TH-CSLT-06): Viết chương trình tính lương cho một người theo các yêu cầu sau: - Nhập tên của người được lĩnh lương. - Nhập tiền công 1 ngày, số ngày làm việc trong tháng, và số tiền đã tạm ứng. - Yêu cầu xuất ra màn hình như sau: Ong/Ba: ? So tien luong duoc huong: ? So tien da tam ung: ? So tien con duoc linh: ? Công thức tính tiền lương như sau: - Số tiền được hưởng = Tiền công 1 ngày * Số ngày làm việc - Số tiền còn lĩnh = Số tiền được hưởng - Số tiền tạm ứng
  2. Tham khảo: cac-yeu-cau-sau-nhap-ten-cua-nguoi-duoc-linh-luong-nhap-tien-cong-1-ngay/ Thực hành 2 Cấu trúc IF Bài 5 (TH-CSLT-03): Viết chương trình nhập vào một số nguyên N gồm ba chữ số. Xuất ra màn hình chữ số lớn nhất ở vị trí nào? Ví dụ: N=497. Chữ số lớn nhất nằm ở hàng chục (chữ số 9) Tham khảo: gom-ba-chu-so-chu-so-lon-nhat-o-vi-tri-nao/ Bài 6 (TH-CSLT-07): Nhập vào từ bàn phím toạ độ 2 điểm P, Q với P(xP, yP), Q(xQ,yQ) a. In ra màn hình phương trình đường thẳng đi qua 2 điểm PQ. b. Cho điểm I có toạ độ I(xI, yI). Hãy cho biết điểm I có thuộc đường thẳng đi qua 2 điểm PQ hay không? Gợi ý: Phương trình đường thẳng đi qua 2 điểm AB có dạng: Ax +By + C=0 Trong đó A= yQ-yP, B= xP-xQ, C=xQ*yP - xP* yQ Đặt F(xI,yI)= AxI+ ByI +C. Nếu F(xI, yI)= 0 thì I thuộc đường thẳng PQ Nếu F(xI, yI) != 0 thì I không thuộc đường thẳng PQ Tham khảo: Bài 7 (TH-CSLT-04): Năm nhuận là năm có tháng 2 gồm 29 ngày, để xét một năm có phải là năm nhuận không người ta kiểm tra bằng cách xem năm đó có chia hết cho 4 đồng thời không chia hết cho 100 hoặc năm đó chia hết cho 400 hay không? Hãy viết chương trình nhập vào một năm. Hiện ra màn hình thông báo năm đó có phải là năm nhuận hay không?
  3. Bài 8 (TH-CSLT-06): Viết chương trình nhập vào 3 số thực a, b, c. Kiểm tra chúng có thỏa mãn là 3 cạnh của tam giác hay không. Nếu là tam giác thì đó là tam giác gì thường, cân, đều, vuông, vuông cân, ? Tham khảo: tra-co-phai-tam-giac-thuong-can-deu-vuong/ Bài 9 (TH-CSLT-05): Viết chương trình nhập vào 3 số nguyên a, b, c. Tính và giá trị của f(x) theo công thức: ( ) = (a+c) /b 푛ế <> 0 (1) Hoặc ( ) = − 푛ế = 0 (2) Tham khảo: Bài 10 (TH-CSLT-01). Body Mass Index (BMI) là chỉ số cơ thể thường được các chuyên gia hoặc các bác sĩ sử dụng để xác định tình trạng cơ thể của một người nào đó. Họ có bị thiếu hoặc thừa cân hay không? Chỉ số BMI được tính như sau: BMI = trọng lượng cơ thể / (chiều cao * chiều cao) Trong đó trọng lượng cơ thể được tính theo kg (có thể sử dụng 1 chữ sử dụng 02 chữ số thập phân sau phần nguyên, ví dụ 1.65 m). Khi tính được BMI thì việc đánh giá sẽ được dựa trên bảng sau: STT BMI Kết luận 1 Ít hơn 18.5 Dưới chuẩn 2 Từ 18.5 đến 25 Chuẩn 3 Từ trên 25 dưới 30 Thừa cân 4 Từ 30 đến 40 Béo, cần giảm cân 5 Trên 40 Rất béo, cần giảm cân ngay Hãy viết chương trình: - Nhập trọng lượng và chiều cao, tính BMI. - Đưa ra các kết luận tương ứng dựa trên bảng đã cho. Tham khảo:
  4. Cấu trúc switch Bài 11: In ra màn hình tháng và số ngày của tháng trong năm m ứng với số được nhập vào. Viết chương trình nhập vào từ bàn phím số nguyên n thuộc vào đoạn [1 12] và số nguyên m. In ra màn hình tháng và số ngày của tháng trong năm m ứng với số được nhập vào. Trong đó: 1 tương ứng với “Tháng giêng có 31 ngày”, 2 tương ứng với tháng 2, , 12 tương ứng tháng 12. Nếu giá trị nhập vào không thuộc vào đoạn [1 12] thì thông báo “Không có tháng trong năm tương ứng với số bạn đã nhập” >>Tham khảo: nguyen-n-thuoc-vao-doan-1-12-va-so-nguyen-m-in-ra-man-hinh-thang-va-so- ngay-cua-thang-trong-nam/ Cấu trúc for Bài 13: Một số hoàn thiện(số hoàn hảo) là một số có tổng các ước của nó (không kể nó) bằng chính nó. Hãy nhập vào một số nguyên dương n và kiểm tra xem n có phải là số hoàn thiện không. Ví dụ: số 6 là số hoàn thiện vì tổng các ước số là 1+2+3=6 >>Tham khảo: xem-n-co-phai-la-so-hoan-thien-khong/ Bài 14: Viết chương trình nhập vào số nguyên dương n và tính tổng theo công thức S= 1+1/3+1/5+1/7+⋯+1/(2*n-1). >> Tham khảo:
  5. Bài 15: Số chính phương hay còn gọi là số hình vuông, là số tự nhiên có căn bậc 2 là một số nguyên. Hãy viết chương trình nhập vào các số nguyên đến khi gặp 0 thì dừng. Đưa ra các kết quả sau: số lượng số chính phương đã nhập (nếu không có số nào thì trả về “không có số chính phương nào được nhập”), trung bình cộng các số chính phương chẵn (nếu nó là một số chẵn). >>Tham khảo: chuong-trinh-nhap-vao-cac-so-nguyen-den-khi-gap-0-thi-dung/ Thực hành 3: Mảng một chiều Bài 17 (TH-CSLT-01). Hãy viết chương trình nhập vào một dãy số đến khi gặp số 0 thì dừng, sau đó tách các số chẵn và số lẻ ra 02 mảng khác nhau. Tính trung bình cộng các số chẵn dương và trung bình cộng các số lẻ âm. Ví dụ dãy số đầu vào: 1, 4, 5, 6, 7, 11, 21, 42, 23, 6, 9. Sẽ được tách thành 2 dãy: 1, 5, 7, 11, 21, 23, 9 và 4, 6, 42, 6. >>Tham khảo: nhau-tinh-trung-binh-cong-cac-so-chan-duong-va-trung-binh-cong-cac-so-le-am/ Bài 18 (TH-CSLT-07) Nhập vào từ bàn phím dãy số gồm n số nguyên (n>0) và thực hiện các yêu cầu sau đây a. Hiển thị dãy số ra màn hình b. Nhập vào từ bàn phím số nguyên x. Hãy cho biết x xuất hiện trong dãy số bao nhiêu lần và các vị trí xuất hiện của x c. Xoá các số có giá trị bằng 0 có trong dãy d. Sắp xếp các số nguyên tố về đầu dãy, các số không phải là số nguyên tố về cuối dãy e. Tính trung bình cộng các số chia hết cho 3 có trong dãy >> Tham khảo:
  6. Bài 19 (TH-CSLT-04): Số La Mã là một tập các ký hiệu: {‘I’,’V’,’X’,’L’,’C’,’D’,’M’} tương đương với các giá trị số ở chữ số Latinh gồm: {1,5,10,50,100,500,1000}. Hãy viết chương trình nhập vào một số nguyên dương N (N >>Tham khảo: Bài 20 (TH-CSLT-05): Thực hiện lần lượt các yêu cầu sau 1. Nhập một dãy không quá 100 phần tử là các số thực cho đến khi gặp số 0 thì dừng. 2. Hiện dãy vừa nhập. 3. Hiện Tổng của các phần tử không âm trong mảng và Trung bình cộng các phần tử âm. 4. Sắp xếp các phần tử trong dãy theo trật tự giảm dần của giá trị. Hiện dãy sau khi sắp xếp. 5. Giảm giá trị các phần tử ở vị trí chẵn trong dãy đi 10%. Hiện dãy sau khi thực hiện giảm giá trị. 6. Xoá các phần tử ở vị trí lẻ trong dãy(VD: vị trí 1, 3, 5, ). Hiện dãy sau khi xoá. >>Tham khảo: Bài 21 (TH-CSLT-02): Viết chương trình nhập vào mảng hai chiều các số thực. Áp dụng: - In lại mảng 2 chiều các phần tử dưới dạng bảng - In các phần tử tại hàng thứ k của mảng hai chiều (k>=0) - Tính tổng các phần tử của cột thứ k của mảng hai chiều (k>=0) - Thực hiện tìm kiếm phần tử có giá trị là x, cho biết vị trí tìm thấy đầu tiên của phần tử trong trường hợp tìm thấy - Cho biết hàng nào có tổng các phần tử lớn nhất trong mảng hai chiều >> Tham khảo:
  7. Bài 22 (TH-CSLT-04): Trò chơi cờ Ca rô được biểu diễn trên một Ma trận A n*m ô ( 0 >Tham khảo: Bài 23 (TH-CSLT-06): Viết chương trình thực hiện: a) Nhập ma trận vuông n hàng, n cột các số nguyên (n > Tham khảo:
  8. Bài 24 (TH-CSLT-05): Mảng răng cưa là mảng 2 chiều mà trong đó số phần tử mỗi hàng có thể không bằng nhau (ví dụ như trong Bảng A dưới đây) Viết chương trình thực hiện các yêu cầu sau: 1. Nhập 1 mảng răng cưa (tối đa 20 hàng, 20 cột) gồm các số nguyên khác 0 (mỗi hàng kết thúc việc nhập khi gặp số 0). Hiện mảng ra màn hình. 2. Hiện Trung bình cộng của từng hàng trong mảng. 3. Hiện mảng theo trật tự số phần tử mỗi hàng giảm dần. (*) 4. Cho phép người dùng thêm phần tử vào hàng k (k nhập từ bàn phím) với điều kiện không làm số phần tử của hàng k vượt quá số phần tử của hàng có nhiều phần tử nhất. Hiện lại mảng sau khi thêm phần tử. 5. Với mảng đã sắp xếp (ý (*)), thực hiện làm đầy mảng bằng cách lấy giá trị hiện có ở các ô không trống ở hàng trên cho các ô trống ở hàng dưới. Hiện mảng sau khi làm đầy (ví dụ sau khi làm đầy của bảng A cho như trong bảng B dưới đây) >>Tham khảo:
  9. Chuỗi ký tự Bài 25 (TH-CSLT-02): Viết chương trình nhập vào một chuỗi ký tự. Yêu cầu: - Cho biết các vị trí xuất hiện của ký tự x trong chuỗi ký tự vừa nhập. Với ký tự x được nhập từ bàn phím - Thay thế ký tự x trong chuỗi bằng ký tự y. Với ký tự x, y được nhập từ bàn phím >>Tham khảo: Bài 26 (TH-CSLT-03): Nhập vào một chuỗi bất kỳ, sau đó hỏi người dùng cần tách bắt đầu từ một chuỗi nào đó nhập vào từ bàn phím trong chuỗi trở về sau. Ví dụ: nhập chuỗi str1= “Khoa Công nghệ Thông tin, Viện Đại học Mở Hà Nội”. Người nhập muốn tách bắt đầu từ chữ “Viện” thì sẽ xuất ra chuỗi “Viện Đại học Mở Hà Nội” ra màn hình. >>Tham khảo: Bài 27 (TH-CSLT-05): Nhập vào 1 bài thơ gồm N câu thơ đặt trong các khổ thơ ngăn cách nhau bởi 1 dòng trống (N nhập từ bàn phím). Hiện bài thơ ra màn hình. 1. Nhập vào 1 số k (với điều kiện 1 >Tham khảo:
  10. Bài 28 (TH-CSLT-07): Nhập vào từ bàn phím một chuỗi ký tự và thực hiện các yêu cầu sau: a. Chuẩn hóa chuỗi ký tự (xóa các khoảng trắng thừa có trong chuỗi, giữa các từ chỉ giữ lại một ký tự trắng) b. Cho biết từ có độ dài lớn nhất có trong chuỗi và vị trí xuất hiện của chuỗi đó. c. Nhập vào từ bàn phím từ cần thay thế x và từ mới sẽ thay thế y. Thay thế tất cả các từ gốc x đang có trong chuỗi bằng từ mới y. d. Đảo ngược thứ tự các từ có trong chuỗi và in ra màn hình chuỗi sau khi đảo ngược. >> Tham khảo: Bài 29 (TH-CSLT-01): Trong toán học, các số nguyên a và b (hai số khác 0), được gọi là nguyên tố cùng nhau nếu ước số chung lớn nhất là 1. Ví dụ, 2 và 13 là nguyên tố cùng nhau vì ước số chung lớn nhất của chúng là 1. Hãy viết chương trình con xác định 02 số (a, b) (được nhập từ bàn phím) có phải là số nguyên cùng nhau hay không? Sau đó viết chương trình để thực hiện việc nhập các số, kiểm tra và đưa ra thông báo tương ứng (có phải là số nguyên tố cùng nhau hoặc không). Chú ý: cần viết thêm chương trình con xác định ước số chung lớn nhất để bổ trợ >>Tham khảo: Bài 30 (TH-CSLT-02): Viết hàm kiểm tra một số nguyên có phải là số nguyên tố hay không? Áp dụng tính tổng các số nguyên tố nhỏ hơn số n với n được nhập vào từ bàn phím >>Tham khảo: Bài 31 (TH-CSLT-03): Viết chương trình nhập 2 mảng một chiều A, B có n phần tử nguyên từ bản phím, tính mảng tổng C = A + B, in 3 mảng A, B, C ra màn hình. Trong đó: C[i] = A[i] + B[i] với i là phần tử bất kỳ tại vị trí mảng >>Tham khảo:
  11. Bài 32 (TH-CSLT-04): Thuật toán mã hóa Caesar được thực hiện bằng cách thay thế một ký tự bằng 1 ký tự khác cách nó k bước trong bảng chữ cái để tạo thành ký tự mới. Hãy viết hàm nhận 1 xâu s và bước dịch chuyển k (k>1), sau đó thực hiện phép mã hóa trên để thu được xâu ký tự mới (trong bảng mã ASCII).Viết hàm gọi hàm mã hóa trên. >>Tham khảo: Bài 33 (TH-CSLT-01). Viết các chương trình con thực hiện các công việc sau - Nhập danh sách các xe ô tô với các thông tin của từng ô tô như sau: tên xe, màu xe, số chỗ ngồi, năm sản xuất, giá thuê theo ngày. - Hiện danh sách vừa nhập ra màn hình theo khuôn dạng sau: STT Tên xe Màu xe Số chỗ ngồi Năm SX Giá cho thuê 1 Mazda Đỏ 5 2009 540000 2 - Tìm và hiển thị thông tin các xe có 5 chỗ ngồi với giá cho thuê theo ngày từ X đến Y. Danh sách hiển thị theo chiều giảm dần của giá cho thuê theo ngày. - Xoá bỏ các xe đã được sản xuất cách N (nhập từ bàn phím) năm so với năm hiện tại. - Tăng giá thêm 10% cho các xe sản xuất vào năm Y (nhập từ bàn phím) và có 5 chỗ ngồi. Chú ý: Sử dụng menu để việc gọi các chương trình con được thuận tiện. >>Tham khảo: Bài 35 (TH-CSLT-07): Nhập danh sách n khách hàng từ bàn phím. Mỗi khách hàng có các thông tin sau: Mã khách hàng, Họ và tên, Giới tính, Năm sinh, Số ngày ở, Giá phòng. Viết các hàm thực hiện các yêu cầu sau đây: - Hiển thị danh sách khách hàng - Hiển thị thông tin khách hàng có thời gian lưu trú lâu nhất - Tìm khách hàng theo mã khách hàng - Tính trung bình cộng thành tiền mà khách hàng phải trả, với thành tiền= số ngày ở * giá phòng - Sắp xếp danh sách khách hàng theo thứ tự tăng dần về năm sinh >>Tham khảo:
  12. Bài 37 (TH-CSLT-06): Để quản lý thuê bao điện thoại, với mỗi thuê bao người ta cần lưu Số thuê bao, Họ tên khách hàng, Cước phí phải trả, Ngày lập. Hãy viết chương trình thực hiện các yêu cầu sau: 1. Nhập danh sách thuê bao điện thoại cho đến khi nhập số thuê bao là "0" và lưu vào mảng 2. Hiện danh sách đã nhập dưới dạng bảng STT Số thuê bao Họ tên Cước phí Ngày lập 1 3. Sắp xếp danh sách giảm dần của tiền cước phí và hiện danh sách ra màn hình 4. Cho biết số thuê bao nào có tiền cước phí cao nhất 5. Thực hiện thêm mới một số thuê bao vào danh sách với vị trí thêm vào cuối danh sách, hiện danh sách sau khi thêm. 6. Thực hiện xóa các thuê bao có số tiền cước phí dưới 10.000 và hiện danh sách sau khi xóa >>Tham khảo:
  13. Bài 39 (TH-CSLT-01). Viết chương trình bao gồm các chương trình con sau: - Nhập một mảng số nguyên gồm n (n nhập từ bàn phím) phần tử. - Lưu một mảng vào tệp “songuyen.dat” (theo dạng nhị phân), nếu tệp chưa tồn tại thì tạo tệp mới, ngược lại, chèn toàn bộ mảng vào phần cuối tệp. - Đọc dữ liệu trong tệp ra một mảng số nguyên ra màn hình - Hiển thị một mảng số nguyên ra màn hình Viết đoạn chương trình thực hiện các công việc sau đây (sử dụng các chương trình con đã viết ở trên) một cách tuần tự: + Nhập một mảng số nguyên n phần tử A + Sắp xếp theo chiều giảm dần các giá trị trong A, lưu A vào tệp “A.dat” + Thực hiện tương tự như vậy và lưu vào tệp “B.dat” với mảng B gồm m phần tử. + Thực hiện đọc dữ liệu từ 02 tệp trên và ghép các dữ liệu đọc được vào tệp “C.dat”. Các dữ liệu trong tệp “C.dat” vẫn phải được đảm bảo theo trật tự giảm dần >>Tham khảo: Bài 40 (TH-CSLT-07): Nhập danh sách n tài xế từ bàn phím. Mỗi tài xế có các thông tin sau: Mã tài xế, Họ và tên, Giới tính, Năm sinh, Biển số xe, Lương. Viết các hàm thực hiện các yêu cầu sau đây: 1. Lưu danh sách tài xế vào file “Taixe.txt” 2. Đọc file “Taixe.txt” và hiển thị danh sách tài xế ra màn hình 3. Nhập từ bàn phím mã tài xế, chỉnh sửa lương của tài xế đó và cập nhật vào file. Đọc file “Taixe.txt” và hiển thị danh sách tài xế sau khi cập nhật ra màn hình 4. Sắp xếp danh sách tài xế theo Họ và tên và lưu vào file “Taixesx.txt” 5. Trích lọc thông tin của các tài xế có giới tính nữ và lưu vào file “Taixenu.txt” Lưu ý: Tổ chức các file dưới dạng file nhị phân. >>Tham khảo:
  14. Bài 41 (TH-CSLT-04): Viết các hàm sau: – Ghi liên tiếp 1 dãy các số nguyên liên tiếp vào tệp “DATA.INF” – Tính TBC các số âm có trong tệp “DATA.INF” – Chèn thêm 1 số x vào vị trí k trong tệp “DATA.INF” – Tìm vị trí phần tử lớn nhất trong tệp “DATA.INF” – Đọc nội dung tệp “DATA.INF” in ra màn hình. >>Tham khảo: Bài 42 (TH-CSLT-06): Tổ chức dữ liệu để quản lý danh mục các bộ phim, các thông tin liên quan đến bộ phim gồm: Tên phim, Đạo diễn, Hãng sản xuất, Năm sản xuất, Thể loại. Viết hàm thực hiện các công việc sau: 1. Nhập dữ liệu cho n bộ phim, và ghi vào tệp "PHIM.DAT". 2. Đọc dữ liệu từ tệp "PHIM.DAT" và in ra màn hình. 3. Nhập năm sản xuất, tìm và in ra danh sách các bộ phim có năm sản xuất thỏa mãn. 4. Sắp các bộ phim theo năm sản xuất giảm dần và ghi vào tệp "SAPTHEONAM.DAT" 5. Cho biết có bao nhiêu bộ phim do Hãng phim Giải phóng thực hiện. >>Tham khảo: *Tài liệu tham khảo: fithou