Đề cương ôn tập môn "Khoa học máy tính"
Đề cương ôn tập môn "Khoa học máy tính" với nội dung "Ôn tập môn ngôn ngữ lập trình C" bao gồm câu hỏi tự luận giúp sinh viên củng cố kiến thức và đạt điểm cao trong bài thi kết thúc học phần.
Môn: Khoa học máy tính (8480101)
Trường: Học viện kỹ thuật quân sự
Thông tin:
Tác giả:
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)