Lập trình C - Câu hỏi và bài tập tham khảo thêm
A02. Nhập sốtựnhiên n rồi tính các tổng sau:
S=tổng các sốtựnhiên không lớn hơn n, S1=tổng các sốtựnhiên lẻkhông lớn hơn n,
S2=tổng các sốtựnhiên chẵn không lớn hơn n.
A03. Nhập sốtựnhiên n rồi tính tổng các sốtựnhiên không lớn hơn n và chia hết cho 7.
A04. Nhập sốtựnhiên n rồi tính tổng các sốtựnhiên không lớn hơn n và không chia hết cho 7.
A05. Ba sốdương a,b,c là độdài các cạnh của một tam giác nếu tổng của 2 sốbất kỳlớn hơn số
còn lại. Nhập 3 sốa,b,c và kiểm tra xem chúng có thểlà độdài của các cạnh của một tam
giác hay không.
đầu tiên của mỗi dòng sẽ là phần tử bé nhất của dòng đó). C16 N hập số liệu cho ma trận A kiểu mxn có các phần tử là các số thực. Tìm phần tử bé nhất của ma trận và đếm xem có bao nhiêu phần tử bằng phần tử bé nhất. C17. N hập số liệu cho ma trận A kiểu mxn có các phần tử là các số thực. Hãy liệt kê trên màn hình tất cả các phần tử của ma trận nhưng theo thứ tự tăng dần. C18. Biết rằng lãi suất gửi tiết kiệm kỳ hạn 1 năm là 0,9%. Hãy nhập vào số tiền gửi của một người và tính số tiền của người đó sau N năm (N nhập từ bàn phím), biết rằng sau một năm thì tiền lãi sẽ được nhập vào gốc. C19. Lập chương trình tính cước cho một cuộc gọi điện thoại nội tỉnh. Biết : Thời gian bắt đầu, thời gian kết thúc cuộc gọi tính theo giờ, phút và được nhập từ màn phím. Cước dịch vụ điện thoại: 500đ / phút. C20. Hãy viết hàm tính tổng các chữ số của một số nguyên bất kỳ. Ví dụ: Số 8545604 có tổng các chữ số là: 8+5+4+5+6+0+4= 32 Loại bài mức D D01. Viết hàm double emu(float x, float c) trả về giá trị ex được tính bởi công thức: ex = 1+ !1 x + !2 2x + ... + !n xn tổng được tính với n đủ lớn sao cho bất đẳng thức | !n xn | ≤ c thỏa mãn. N hập một số thực a rồi sử dụng hàm trên để tính ax theo công thức ax = exlna (bài này yêu cầu viết hàm ngoài hàm main()) 3 D02. Lập bảng theo công thức truy hồi sau: knC = = 1 0nC n nC = + knC k nC 1− 1 1 − − k nC Tam giác trên có dòng thứ n (bắt đầu từ n=0) chứa n+1 phần tử (k=0,1,...,n) là các hệ số của nhị thức (a+b)n và được gọi là tam giác Pascal. D03. Cho 2 chuỗi s1 và s2. Hãy tìm xem chuỗi s1 có chứa chuỗi s2 không và chỉ rõ vị trí bắt đầu và vị trí kết thúc của chuỗi s2 trong chuỗi s1 nếu tìm thấy. D04. Cho một chuỗi gồm nhiều từ. Hãy nhập một từ sau đó thực hiện tìm từ đó trong chuỗi và xóa từ này nếu tìm thấy. D05. N hập số liệu cho dãy số thực a0 , a1 ,..., an-1 . Tìm 2 số lớn nhất khác nhau và vị trí của chúng trong dãy trên (nếu có hai số cùng giá trị thì lấy chỉ số nhỏ hơn). Thí dụ trong dãy 1,5,3,4,5 thì 2 phần tử lớn nhất là 5 và 4 và ở các vị trí 1 và 3. D06. Lập chương trình tính tiền điện cho khách hàng giá điện tính theo KW như sau: W =w1+w2+w3+w4 Điện tiệu thụ (KW) Giá (đồng) w1 0-100 500 / KW w2 101-150 550/ KW w3 151 – 200 600 / KW w4 > 200 650/ KW D07. Xây dựng chương trình quản lý sinh viên bằng mảng tĩnh, sử dụng cấu trúc sau: struct SV {char ten[25]; float toan, ly, tb;}; N hập danh sách cho n sinh viên (n là số tự nhiên được nhập vào), chỉ nhập ten và toan, ly. Tính giá trị trường tb =(toan+ly)/2, sau đó sắp xếp lại danh sách theo điểm trung bình tăng dần. Cho hiện kết quả trước và sau khi sắp xếp. D08. N hập các hệ số ai (i=0,1,2,...,m) của đa thức P(x) bậc m (ai là hệ số của xi ) và nhập các hệ số bj (j=0,1,2,...,n) của đa thức Q(x) bậc n (bj là hệ số của xj ). In ra các hệ số của đa thức tổng. D09. N hập ma trận chữ nhật các số thực có cấp mxn. Tìm phần tử lớn nhất của mỗi hàng. In mỗi phần tử tìm được trên một dòng (thông tin in ra càng đầy đủ càng tốt). D10. N hập số liệu cho ma trận A có kiểu mxn. Sau đó tìm ma trận chuyển vị B có kiểu nxm thỏa mãn bij = aji. Tính ma trận tích C có kiểu mxm của 2 ma trận A và B. D11. N hập số liệu cho ma trận A kiểu mxn có các phần tử là các số thực và một số thực x. Hãy đếm xem số thực x xuất hiện bao nhiêu lần trong ma trận và tại các vị trí nào. Thí dụ kết quả có thể có dạng: Số lần xuất hiện của 2.15 là 3 tại các vị trí (2,4), (3,1), (3,5). D12. N hập số liệu cho 2 dãy số thực a0 , a1 ,..., am-1 và b0 , b1 ,..., bn-1. Giả sử cả 2 dãy này đã được sắp theo thứ tự tăng dần. Hãy tận dụng tính sắp xếp của 2 dãy và tạo dãy c0 , c1 ,..., cm+n- 1 là hợp của 2 dãy trên, sao cho dãy ci cũng có thứ tự tăng dần . (Gợi ý: So sánh và loại dần từng cặp phần tử của 2 dãy). D13. N hập số liệu cho ma trận A kiểu mxn có các phần tử là các số thực. Lần lượt xét các phần tử của dòng thứ nhất, tiếp đến dòng thứ 2 và cứ như thế cho đến phần tử cuối cùng. N ghĩa là ta xét các phần tử a11, a12 ,..., a1n, a21, a22,..., am1, am2,..., amn. Tìm xem trong cách duyệt các phần tử như trên có 2 phần tử liên tiếp nào bằng nhau không. N ếu có hãy chỉ rõ vị trí của cặp phần tử đầu tiên thoả mãn tính chất này. (Gợi ý: chuyển sang mảng một chiều với chỉ số k=i*m+j, sau đó từ chỉ số k xác định các chỉ số i,j). D14. Xây dựng các thao tác sau cho hai số phức: 1. Tạo lập 2 số phức. 2. Tổng, hiệu, thương 2 số phức. D15. N hập số liệu cho dãy số thực a0 , a1 ,..., an-1 và số thực x. Kiểm tra xem dãy a được sắp xếp tăng dần chưa, nếu dãy đã sắp xếp thì thực hiện tìm kiếm nhị phân xem x có xuất hiện trong dãy không và nếu có thì chỉ ra vị trí đầu tiên xuất hiện x. 4 5 Loại bài mức E E01. Khi ta soạn thảo văn bản, đôi khi thay vì một dấu cách ta lại gõ liền mấy dấu cách, hoặc gõ thêm dấu cách thừa ở hai đầu chuỗi. Giả sử chuỗi ST có chứa một số dấu cách thừa như vậy. Hãy viết chương trình để loại bỏ những dấu cách thừa ở trong và hai đầu văn bản. N ghĩa là sau khi chạy chương trình thì không còn trường hợp 2 hoặc nhiều dấu cách liền nhau bên trong chuỗi và ở hai đầu chuỗi không còn dấu cách nữa, ví dụ chuỗi “ Trần Hưng Đạo “ sẽ được chuyển thành “Trần Hưng Đạo“. E02. Viết chương trình chuyển một chuỗi thành dạng proper, nghĩa là ký tự sau dấu cách là ký tự in hoa. Thí dụ "N guyễn Văn Tùng" là chuỗi dạng proper. E03. N hập một chuỗi. Hãy xác định vị trí của từ có độ dài lớn nhất trong chuỗi (từ được hiểu là chuỗi không chứa dấu cách). E04. Tìm ma trận nghịch đảo của ma trận vuông cấp n bằng phương pháp khử Gauss-Jordan. E05. N hập số liệu cho 2 dãy số thực a0 , a1 ,..., am-1 và b0 , b1 ,..., bn-1. Hãy tạo dãy c0 , c1 ,..., ck-1 là phần chung của 2 dãy trên, nghĩa là các phần tử ci có mặt trong cả 2 dãy a và b. (Gợi ý: Cố định một dãy, xét từng phần tử của dãy kia). E06. N hập số liệu cho 2 dãy số thực a0 , a1 ,..., am-1 và b0 , b1 ,..., bn-1. Hãy tạo dãy c0 , c1 ,..., ck-1 sao cho các phần tử ci có mặt trong dãy a nhưng không xuất hiện trong dãy b. (Gợi ý: Cố định một dãy, xét từng phần tử của dãy kia). E07. N hập số liệu cho dãy số thực a0 , a1 ,..., an-1 . Hãy liệt kê các phần tử xuất hiện trong dãy đúng một lần. E08. N hập số liệu cho dãy số thực a0 , a1 ,..., an-1. Hãy liệt kê các phần tử xuất hiện trong dãy đúng 2 lần. E09. Xây dựng chương trình quản lý sinh viên lưu trên tệp nhị phân, sử dụng cấu trúc sau: struct SV {char ten[25]; float toan, ly, tb;}; N hập danh sách cho n sinh viên (n là số tự nhiên được nhập vào), chỉ nhập ten và toan, ly. Tính giá trị trường tb =(toan+ly)/2, sau đó sắp xếp lại danh sách theo điểm trung bình tăng dần. Cho hiện kết quả trước và sau khi sắp xếp. E10. Xây dựng chương trình quản lý sinh viên bằng mảng động, sử dụng cấu trúc sau: struct SV {char ten[25]; float toan, ly, tb;}; N hập danh sách cho n sinh viên (n là số tự nhiên được nhập vào), chỉ nhập ten và toan, ly. Tính giá trị trường tb =(toan+ly)/2, sau đó sắp xếp lại danh sách theo tên và điểm trung bình tăng dần (trong những người cùng tên thì người có điểm trung bình thấp hơn sẽ đứng trước). Cho hiện kết quả trước và sau khi sắp xếp. E11. Xây dựng chương trình quản lý sinh viên bằng mảng động, sử dụng cấu trúc sau: struct SV {char ten[25]; float toan, ly, tb; char XepLoai[20]}; N hập danh sách cho n sinh viên (n là số tự nhiên được nhập vào), chỉ nhập ten và toan, ly. Tính giá trị trường tb =(toan+ly)/2, sau đó tính giá trị trường xếp loại theo cách sau: XepLoai=”kem” nếu tb<5, = “Trung binh” nếu 5≤tb<7, = “Kha” nếu 7≤tb<8 và = “Gioi” nếu 8≤tb. sắp xếp lại danh sách theo trường XepLoai. E12. N hập số liệu cho dãy số thực a0 , a1 ,..., an-1 . In ra màn hình tần suất (số lần xuất hiện) của các phần tử. E13. N hập số n và dãy các số thực a0 , a1 ,..., an-1. Không đổi chỗ các phần tử và không dùng thêm mảng số thực nào khác (có thể dùng mảng số nguyên nếu cần) hãy cho hiện trên màn hình dãy trên theo thứ tự tăng dần. E14.Tạo tệp tep1.dat và nhập m số nguyên, tệp tep2.dat và nhập n số nguyên. Hãy viết chương trình tạo tep3.dat chứa các số nguyên trong 2 tệp tep1.dat và tep2.dat E15.Viết chương trình tạo một tệp văn bản tep1.txt và nhập một số dòng văn bản sau đó đếm số lần xuất hiện của mỗi ký tự từ A đến Z chứa trong tệp văn bản này. 6 Đầu chương trình có câu hỏi là " Có phân biệt chữ hoa và chữ thường không?", các lệnh sau đó sẽ tuỳ thuộc vào câu trả lời có hoặc không. E16.Trong khi mở file mới để ghi, nếu trên đĩa có sẵn file cùng tên thì file trên đĩa sẽ bị xóa. Hãy viết chương trình tạo tệp tep1.dat chứa các số nguyên và kiểm tra sao cho nếu tồn tại file cùng tên thì đặt câu hỏi có muốn ghi đè lên không. E17.Xây dựng chương trình quản lý học sinh. Mỗi học sinh quản lý các thông tin sau: Họ tên, N ăm sinh, Điểm trung bình. Với các chức những sau: - N hập số liệu, mỗi lần có thể nhập m học sinh, m>0 - Xem danh sách: trên màn hình hoặc in ra máy in. - Tìm kiếm :theo tên, theo năm sinh, theo tên và năm sinh. - Sắp xếp: theo tên, theo điểm trung bình. - Xóa khi biết tên a. Cài đặt bằng mảng động b. Cài đặt bằng danh sách liên kết thuận c. Cài đặt trên tệp nhị phân E18. Đếm số ký tự trong một tệp văn bản. E19. Đếm tần số xuất hiện của các ký tự trong một tệp văn bản. E20. Đếm số câu (kết thúc bằng dấu chấm) trong một tệp văn bản. E21. Đếm số dòng trong một tệp văn bản. E22. Dùng hàm main có đối viết chương trình nối 2 tệp văn bản. E23. Viết chương trình hiện nội dung một tệp văn bản lên màn hình. Khi tệp có nhiều hơn 24 dòng thì dừng lại chờ nhấn phím mới hiện tiếp. Viết dưới dạng trực tiếp hoặc dùng hàm main() có đối. E24. Cho một file văn bản chỉ chứa các ký tự 'a', 'b', 'c',.. 'A', 'B', 'C'... Hãy chuyển đổi tất cả các chữ thường thành chữ hoa. N ghĩa là sau khi chạy chương trình chuyển đổi file này chỉ chứa các chữ in hoa.
File đính kèm:
- Lập trình C - Câu hỏi và bài tập tham khảo thêm.pdf