







Preview text:
lOMoARcPSD|36477180
ÔN TẬP MÔN NGÔN NGỮ LẬP TRÌNH C 
Câu 1: Viết chương trình giải phương trình bậc hai: ax2 + bx + c = 0, với a, b, c là 
các hệ số thực nhập vào từ bàn phím. 
Câu 2: Viết chương trình nhập vào tổng thu nhập GDP của nước ta năm 2014 
(tính theo USD) và tốc độ tăng trưởng kinh tế bình quân nào đó. In ra màn hình thu 
nhập GDP của các năm theo dạng:    Năm  GDP    2014  100    2015  112.5    . . .  . . . 
cho đến năm có GDP >= 2 lần năm 2014 thì dừng. 
Câu 3 : Nhập vào một dãy n số bất kỳ từ bàn phím. Sau đó sắp xếp dãy số theo 
chiều tăng dần. In ra màn hình dãy số ban đầu và dãy số đã sắp xếp.  Câu 4: 
Viết chương trình giải hệ 2 phương trình bậc nhất ax + by = c   , với a, b, c, d, e, f, 
dx + ey = f
là các hệ số thực nhập vào từ bàn phím. Thông báo kết quả ra màn hình. 
Câu 5: Tính giá trị n giai thừa (n!), với n nhập vào từ bàn phím. In kết quả ra màn  hình. 
Câu 6: Viết chương trình tìm bội số chung nhỏ nhất của hai số nguyên dương  nhập vào từ bàn phím. 
Câu 7: Viết chương trình nhập vào ba số a, b, c. Sau đó kiểm tra xem ba số này có 
tạo thành cạnh của tam giác hay không. Nếu là tam giác thì kiểm tra xem đó là loại tam 
giác nào trong số các loại sau: vuông, cân, vuông cân, đều, tam giác thường. 
Câu 8: Nhập vào một dãy n số bất kỳ từ bàn phím. Tìm giá trị lớn nhất và nhỏ nhất 
của dãy số đó. In kết quả tìm được ra màn hình cùng vị trí của các giá trị max, min trong  dãy số. 
Câu 8b: Viết chương trình nhập một dãy số n bất kỳ từ bàn phím, in các phần tử là 
số nguyên tố cua mảng, in các phân tử là số chính phương của mảng, Đưa các số âm lên 
đầu dãy số 0 ơ giữa và số dương ơ cuối. 
 Vd: 3,6,7,-8,0,-5,-10,9→ -8,-5,-10,0,3,6,7,9 
Câu 9: Viết chương trình nhập vào ma trận thực Anxm . Sau đó tìm giá trị lớn nhất, 
giá trị nhỏ nhất của ma trận này. In ma trận cùng kết quả tìm được ra màn hình. Tính 
tổng các số nguyên tố trong ma trận. 
 Câu 10: Nhập vào 2 số là tháng và năm, kiểm tra xem tháng đó có bao nhiêu ngày. 
In kết quả ra màn hình theo dạng: Tháng 3 năm 2014 có 31 ngày. 
Downloaded by Ng?c Di?p ??ng (ngocdiep10012000@gmail.com) lOMoARcPSD|36477180
Câu 11: Viết chương trình tạo ra một danh sách liên kết thuận để quản lý danh sách 
sinh viên. Cấu trúc sinh viên gồm các thành phần: Ho_ten, Tuoi, Diem_TB. Chương 
trình được tổ chức thành các chương trình con như sau: 
1) Tạo danh sách sinh viên 
2) Hiển thị danh sách ra màn hình theo dạng    DANH SACH SINH VIEN  STT  Ho ten  Tuoi  Diem TB    . . .  . . . 
3) Chèn thêm một sinh viên vào sau sinh viên nào đó (có tên nhập vào từ bàn  phím)  4) Xóa một sinh viên  5) Sửa một sinh viên 
Hàm main() hiển thị menu để chọn các chức năng bằng cách nhập số tương ứng  như sau  1. Tao danh sach sinh vien 
2. Hien thi danh sach sinh vien  3. Chen them sinh vien  4. Xóa một sinh viên  5. Sửa một sinh viên  6. Ket thuc 
Chức năng nào được chọn sẽ gọi thực hiện chương trình con tương ứng. 
Câu 12: Viết chương trình sử dụng kiểu nhập xuất nhị phân với tệp có tên là 
SO_LIEU.C. Số liệu bán hàng có cấu trúc gồm các thành phần: Ten_hang, Don_gia, 
So_luong, Thanh_tien (= So_luong * Don_gia). Chương trình được tổ chức thành các  chương trình con sau: 
1) Nhập số liệu bán hàng lên tệp SO_LIEU.C 
2) Bổ sung số liệu bán hàng (ít nhất 2 mặt hàng) vào cuối tệp SO_LIEU.C 
3) Hiện nội dung tệp lên màn hình theo dạng    SO LIEU BAN HANG  STT Ten Hang Don gia  So luong  Thanh tien   1 Sach  5  100  500   2 But  2  300  600        Tong tien  1100 
Downloaded by Ng?c Di?p ??ng (ngocdiep10012000@gmail.com) lOMoARcPSD|36477180
Hàm main() hiển thị menu để chọn các chức năng bằng cách nhập số tương ứng  như sau : 
1. Nhap so lieu ban hang len tep 
2. Ghi bo sung so lieu ban hang vao cuoi tep SO_LIEU.C 
3. Hien thi noi dung tep SO_LIEU.C  4. Ket thuc 
Chức năng nào được chọn sẽ gọi thực hiện chương trình con tương ứng. 
Câu 13: Viết chương trình đổi một số thập phân n>=0 nhập vào từ bàn phím sang 
các cơ số 2, 8, 16 bằng cách dùng cấu trúc dữ liệu STACK. Chương trình được tổ chức 
thành các chương trình con sau: 
1) Hàm push(): đẩy một phần tử vào ngăn xếp 
2) Hàm pop(): loại bỏ 1 phần tử khỏi ngăn xếp 
3) Hàm chuyen co so(): đổi một số thập phân n>=0 sang hệ cơ số bất kì 
4) Hàm hienketqua(): hiển thị kết quả ra màn hình 
Hàm main() hiển thị menu để chọn các chức năng bằng cách nhập số tương ứng  như sau 
1. Chuyen mot so nguyen dương sang he 2 
2. Chuyen mot so nguyen dương sang he 8 
3. Chuyen mot so nguyen dương sang he 16  4. Ket thuc 
Chức năng nào được chọn sẽ gọi chương trình con truyền tham số tương ứng. 
Câu 14: Viết chương trình nhập vào hai ma trận thực Anxp và Bpxm , sau đó  tính ma trận tích C 
nxm = Anxp Bpxm. Chương trình được tổ chức thành các chương  trình con sau: (30p)  1) Nhập 1 ma trận 
2) Tính tích 2 ma trận 
3) Hiển thị 1 ma trận lên màn hình 
Hàm main() hiển thị menu để chọn các chức năng bằng cách nhập số tương  ứng như sau  1. Nhap 2 ma tran  2. Tinh tich 2 ma tran  3. Hien thi 3 ma tran  4. Ket thuc 
Chức năng nào được chọn sẽ gọi thực hiện chương trình con tương ứng. 
Downloaded by Ng?c Di?p ??ng (ngocdiep10012000@gmail.com) lOMoARcPSD|36477180
Câu 15: Viết chương trình cộng hai ma trận Cnxm = Anxm + Bnxm . Trong đó dữ liệu 
về n, m và hai ma trận A, B được lưu trữ trên tệp ‘MA_TRAN.C’ theo dạng sau: Dòng 
đầu tiên ghi: n m; dòng tiếp theo ghi: Ma trận A; các dòng tiếp theo là các hàng của ma 
trận A; dòng tiếp theo ghi: Ma trận B; các dòng tiếp theo là các hàng của ma trận B. 
Chương trình được tổ chức thành các công việc và các chương trình con sau: 
1) Tạo tệp MA_TRAN.C theo cấu trúc như trên (giống như soạn thảo một chương  trình C)  2) Đọc tệp MA_TRAN.C 
3) Tính ma trận tổng C rồi ghi vào cuối tệp trên (sử dụng kiểu nhập xuất văn bản)  4) Mở tệp MA_TRAN.C 
Hàm main() hiển thị menu để chọn các chức năng bằng cách nhập số tương ứng như  sau  1. Doc tep MA_TRAN.C 
2. Ghi ma tran C bo sung vao cuoi tep tren  3. Ket thuc 
Câu 16: Viết chương trình nhập vào hai dãy số nguyên theo chiều tăng dần. 
Sau đó ghép các phần tử của hai dãy này để tạo thành dãy thứ ba vẫn theo chiều 
tăng dần mà không cần sắp xếp lại. Chương trình được tổ chức thành các chương  trình con sau: 
1) Nhập 1 dãy số theo chiều tăng dần 
2) Ghép 2 dãy số ( đã được sắp xếp theo chiều tăng dần)  3) In 1 dãy số 
Hàm main() hiển thị menu để chọn các chức năng bằng cách nhập số tương  ứng như sau 
1. Nhap 2 day số nguyen theo chieu tang dan  2. Ghep hai day  3. In 3 day so  4. Ket thuc  -5 -4 0 4 7  3 9 10  -5 -4 0 3 4 7 9 10 
Chức năng nào được chọn sẽ gọi thực hiện chương trình con tương ứng. 
Câu 17: Viết chương trình nhập vào các hệ số của hai đa thức: P=anxn + an-1xn-1 + . 
. . + a1x + a0 ; Q=bmxm + bm-1xm-1 + . . . + b1x + b0 , nhập giá trị x; tính hệ số của đa thức 
Downloaded by Ng?c Di?p ??ng (ngocdiep10012000@gmail.com) lOMoARcPSD|36477180
tổng T = P + Q; rồi in ra hệ số của ba đa thức, in ra giá trị của ba đa thức. Chương trình 
được tổ chức thành các chương trình con sau: 
1) Nhập hệ số của 1 đa thức 
2) In hệ số của 1 đa thức 
3) Tính giá trị của 1 đa thức và in ra màn hình 
4) Tính hệ số của đa thức tổng ( 
Hàm main() hiển thị menu để chọn các chức năng bằng cách nhập số tương ứng như  sau 
1. Nhap he so cua 2 da thuc P, Q  2. Tinh he so cua da thuc T 
3. In he so cua 3 da thuc P, Q, T 
4. In gia tri cua 3 da thuc P, Q, T  5. Ket thuc 
Chức năng nào được chọn sẽ gọi thực hiện chương trình con tương ứng. 
Câu 18: Viết chương trình nhập vào số nguyên dương n. Sau đó in ra màn hình 
ma trận xoáy Anxn , theo dạng sau:   1   2 3     8 9 4     7 6 5 với n=3 
Chương trình được tổ chức thành các chương trình con sau:  1) Nhập n 
2) Tính các phần tử của ma trận xoáy 
3) Hiển thị ma trận xoáy lên màn hình 
Hàm main() hiển thị menu để chọn các chức năng bằng cách nhập số tương ứng như  sau  1. Nhap n  2. Tinh ma tran xoay  3. Hiên thi ma tran xoay  4. Ket thuc 
Chức năng nào được chọn sẽ gọi thực hiện chương trình con tương ứng.     
Downloaded by Ng?c Di?p ??ng (ngocdiep10012000@gmail.com) lOMoARcPSD|36477180
LẬP TRÌNH CẤU TRÚC - DSLK 
Bài 1: Xây dựng chương trình C quản lý sinh viên bằng mảng như sau: 
Cấu trúc sinh viên gồm các trường: 
- Masv: Mã sinh viên - kiểu chuỗi có tối đa 3 ký tự 
- Hoten: Họ tên – Kiểu mảng ký tự 
- Tuoi: Tuổi – Kiểu số 
- Lop: Lớp – Kiểu mảng ký tự 
Thực hiện các chức năng theo menu: 
1. Chọn 1 để nhập danh sách sinh viên 
2. Chọn 2 để hiển thị danh sách sinh viên 
3. Chọn 3 để tìm kiếm sinh viên theo tên 
4. Chọn 4 để sắp xếp danh sách sinh viên theo chiều tăng dần của mã sinh viên 
5. Chọn 5 để tìm kiếm sinh viên theo mã sinh viên  6. Chọn 6 để kết thúc 
Câu hỏi *: Cải tiến chương trình tối ưu bộ nhớ bằng cách sử dụng danh sách liên  kết đơn. 
Bài 2: Xây dựng chương trình C thực hiện các yêu cầu sau: 
Hàm main() thực hiện các công việc sau: 
1. Chọn 1 để nhập ma trận vuông cấp n 
2. Chọn 2 để in các phần tử trên đường chéo chính 
3. Chọn 3 để tìm phần tử lớn nhất của ma trận 
4. Chọn 4 để tìm phần tử nhỏ nhất của ma trận 
5. Chọn 5 để sắp xếp các phần tử tăng dần theo hàng 
6. Chọn 6 để sắp xếp các phần tử tăng dần theo cột 
7. Chọn 7 để tìm phần tử lớn nhất thứ 2 trong ma trận 
8. Chọn 8 để tính tổng các số nguyên tố trong ma trận 
Khi người dùng chọn 2 thì chương trình in các phần tử trên đường chéo chính 
theo dạng như sau (giả sử ma trận 3x3)  1    *    *  *    10    *  *    *    9 
Khi người dùng chọn số khác: thông báo chọn không hợp lệ, yêu cầu xóa màn 
hình và hiển thị lại menu trên. (Lệnh xóa màn hình là system("cls"). Khi dùng phải 
khai báo thư viện windows.h). 
Câu hỏi *: Cải tiến chương trình để tối ưu hiệu năng 
Bài 3: Xây dựng chương trình C quản lý như sau: 
Mã sách: Kiểu số nguyên 
Tên sách: Kiểu mảng ký tự. Tối đa 100 ký tự 
Downloaded by Ng?c Di?p ??ng (ngocdiep10012000@gmail.com) lOMoARcPSD|36477180
Tác giả: Kiểu mảng ký tự. Tối đa 100 ký tự 
MaNXB: Lưu mã số nhà xuất bản, kiểu int 
Hàm main() thực hiện các công việc sau: 
1. Chọn 1 để tạo danh mục sách 
2. Chọn 2 để Hiển thị danh sách tất cả các sách 
3. Chọn 3 để hiển thị sách của cùng một nhà xuất bản 
4. Chọn 4 để tìm kiếm thông tin sách theo mã sách 
5. Chọn 5 để Sắp xếp các quyển sách theo chiều tăng của mã sách 
6. Chọn 6 để Thoát khỏi chương trình 
Nếu chọn số khác: Thông báo chọn không hợp lệ, xóa màn hình và hiển thị  menu 
Bài 4: Xây dựng chương trình C như sau: 
Hàm main() thực hiện các công việc sau:  Hiển thị menu như sau: 
1. Chọn 1 để Tính tổng hàm ((x-5)*(x-5)) từ 1 đến n 
2. Chọn 2 để Tính tổng hàm cos(x)2 từ 1 đến n 
3. Chọn 3 để Tính tổng hàm sin(x)2 từ 1 đến n  4. Chọn 4 để Kết thúc 
Khi người dùng chọn 1 thì thực hiện chức năng: nhập vào số nguyên n. Tính 
tổng S=(1-5)*(1-5)+2*2+3*3+…+n*n. 
Khi người dùng chọn 2 thì thực hiện chức năng: nhập vào số nguyên n. Tính  tổng  S=cos(1)2+cos(2)2+…+cos(n)2 
Khi người dùng chọn 3 thì thực hiện chức năng: nhập vào số nguyên n. Tính tổng  S=sin(1)2+sin(2)2+…+sin(n)2 
Câu hỏi *: Cải tiến chương trình sử dụng hàm con trỏ để đại diện cho 3 hàm có dùng  định dạng ở trên. 
=======BỔ SUNG THỰC HÀNH========== 
BT1 - Viết chương trình tính căn bâc n của Y, với Y= [(b+c)/m] 
 trong đó b,c,m (m khác 0) nhập từ bàn phím  BT2- PT bặc 2   ax2+bx+c=0 
BT3- Dùng cấu trúc Switch... case 
 Nhập vào tháng, năm: In ra màn hình tháng đó có bao nhiêu ngày 
BT4- Dùng cấu trúc if ... else... 
 Nhập vào 3 cạnh của một tam giác 
Downloaded by Ng?c Di?p ??ng (ngocdiep10012000@gmail.com) lOMoARcPSD|36477180
 Viêt ct kiểm tra tính hợp lệ của tam giác; thông báo ra mà hình đó là tam giác  đều, 
cân, vuông, thường , hoặc không là tam giác 
BT5- Áp dụng vòng lặp 
 Nhập vào số nguyên n, tính n! 
BT6- Tính giá trị biểu thức 
 e= 1+x1/1!+x2/2! +...+xn/n! (n nhập từ bàn phím, n>3) 
BT7- Tính giá trị biểu thức 
 S= 1+x1/1!-x3/3! + x5/5!...+ xn/n! (x,n nhập từ bàn phím) 
BT 8 Viết chương trình giải pt bậc 2, ax2+bx+c = 0; tham số a,b,c truyền vào trong hàm. 
Gợi ý: Sử dụng hàm BAC_HAI(...); Lời gọi trong hàm main()   
BT 9 a) Ap dụng hàm, nhập vào dãy số., hiển thị dãy ra màn hình 
 b) Xây dựng hàm sắp xếp dãy số theo tăng dần với tham số T- săp sắp theo tăng dần, G-
sắp xếp theo giảm dần; hiển thị dãy số ra màn hình 
 c) Xây dựng hàm nguyên tố tham số a, kiểm tra a là số nguyên tố hay không. Đếm xem 
trong dãy có bao nhiêu số nguyên tố        BT 10 
a) Xây dựng hàm NHAP, dể nhập ma trận, các tham số truyền từ hàm 
b) Xây dựng hàm XUAT, dể in ma trận ra màn hình, các tham số truyền từ hàm 
c) Xây dựng hàm tính TỔNG 2 ma trận; tham số A,B,C (A,B là hai ma trận C là ma trận  TỔNG) 
d) Xây dựng hàm tính TÍCH 2 ma trận; tham số A,B,C (A,B là hai ma trận C là ma trận  TÍCH)  BT 11 
 - Lập danh sách gồm 80 sinh viên 
Mỗi sinh viên gồm các thông tin sau: STT, Hoten, NămSinh, Giới_tính, Ngành_học, 
Tên _trường_PTTH (đã tốt nghiệp), Điểm TB 
Yêu cầu: Sử dụng hàm (chương trình con) 
a) Viết hàm nhập dữ liệu cho cấu trúc nêu trên 
b) Viết hàm hiển thị dữ liệu ra màn hình (dạng cấu trúc)   STT Họ Ten.... 
c) Viết hàm sắp xêp tăng dần dạ theo tên aphabel 
 (Hiển thị danh sách sau khi sắp xếp -> gọi hàm SAP_XEP) 
d) Đưa ra danh sách những sinh viên có ĐIỂM_TB >=8.0   
Downloaded by Ng?c Di?p ??ng (ngocdiep10012000@gmail.com)