Đề thi cuối kỳ 20221 môn C Programming Introduction – ICT | Môn C Programming Introduction – ICT| Trường Đại học Bách Khoa Hà Nội
Một giải bóng đá có hai bảng thi đấu, gọi là Bảng 1 và Bảng 2. Hai bảng có số đội bằng nhau, số đội trong mỗi bảng không quá 5. Kết thúc vòng loại, các đội trong mỗi bảng được xếp loại theo điểm số từ cao xuống thấp (giả sử trong mỗi bảng không có hai đội nào cùng điểm). Hai trận bán kết (BK) sẽ diễn ra giữa đội đứng đầu mỗi bảng với đội đứng thứ hai của bảng còn lại. Trận chung kết (CK) sẽ diễn ra giữa hai đội thắng trận hai trận bán kết. Mỗi bảng đấu là một mảng gồm các phần tử là các bản ghi lưu thông tin các đội trong bảng theo cấu trúc như sau:
Môn: C Programming Introduction – ICT
Trường: Đại học Bách Khoa Hà Nội
Thông tin:
Tác giả:
Preview text:
Trường CNTT - TT Thi cuối kỳ 20221
Đại học Bách khoa Hà Nội
C Programming Intro – IT3220
Họ và tên:............................................................ Thời gian: 75 phút
MSSV:.................................................................. Ngày 28/2/2023 Đề bài
Một giải bóng đá có hai bảng thi đấu, gọi là Bảng 1 và Bảng 2. Hai bảng có số đội bằng
nhau, số đội trong mỗi bảng không quá 5. Kết thúc vòng loại, các đội trong mỗi bảng
được xếp loại theo điểm số từ cao xuống thấp (giả sử trong mỗi bảng không có hai đội
nào cùng điểm). Hai trận bán kết (BK) sẽ diễn ra giữa đội đứng đầu mỗi bảng với đội
đứng thứ hai của bảng còn lại. Trận chung kết (CK) sẽ diễn ra giữa hai đội thắng trận
hai trận bán kết. Mỗi bảng đấu là một mảng gồm các phần tử là các bản ghi lưu thông
tin các đội trong bảng theo cấu trúc như sau: typedef struct {
char team[20]; // tên đội (không chứa dấu cách)
int point; // điểm số
int dif; // hiệu số bàn thắng – thua }
Hãy viết chương trình dưới dạng menu (1.5đ) thực hiện các chức năng sau:
1. Enter (2.5đ): Nhập số đội của một bảng (Yêu cầu nhập lại cho đến khi giá trị hợp lệ,
tức là giá trị là số nguyên dương nằm trong [1,5]) . Nhập thông tin cho mỗi đội trong
mỗi bảng. Mỗi đội trên một dòng, gồm tên đội, điểm số và hiệu số cách nhau bởi dấu cách.
2. Print (2đ): In ra thông tin mỗi bảng đấu, mỗi dòng là một đội gồm các thông tin
team, point, và dif cách nhau bởi khoảng tab. VD: Bang 1 A 4 2 B 3 1 C 2 -1 Bang 2 D 4 2 E 3 1 F 2 -1
3. Sort (1.5đ): Sắp xếp mỗi bảng đấu theo điểm số giảm dần. Kết quả sẽ được kiểm tra ở chức năng Print.
4. Champion (2đ): Người dùng nhập kết quả trận bán kết 1 (BK1) giữa đội nhất Bảng 1
và đội nhì Bảng 2, trận bán kết 2 (BK2) giữa đội nhất Bảng 2 và đội nhì Bảng 1, và trận
CK giữa đội thắng trận BK1 và trận BK2. Thông tin được nhập dưới dạng ba cặp số
nguyên theo thứ tự như trên cách nhau bởi một dấu cách. Ví dụ 1 2 3 4 2 1 nghĩa là tỉ
số trận BK1 là 1-2, trận BK2 là 3-4 và trận CK là 2-1.
Hãy in thông tin các trận BK, CK và đội vô địch (champion) theo định dạng như trong ví dụ: BK1: A E BK2: D B CK: E B CHAMPION: E
5. Exit (0.5đ): Thoát khỏi chương trình
Lưu ý: Với chức năng 2. Print nếu không viết thành hàm sẽ bị trừ 0.25đ. - Hết - T/m nhóm chuyên môn TEST CASE
Menu: 1.5đ, Menu phải hiện lời nhắc lựa chọn của người dùng ví dụ Your choice: Nếu
thiếu -0.25đ. Nếu chọn một số không phải 1-5 thì phải thực hiện lời nhắc (vd :sai lựa chọn) (thiếu - 0.25đ) Exit: 0.5đ
Câu 1: Enter: 2.5đ
Nhập số đội bằng 0 hoặc 6 -> yêu cầu nhập lại (sai trừ 0.5đ)
Nhập số đội = 3, lần lượt nhập thông tin cho 2 bảng Bang 1 A 3 0 B 6 2 C 0 -2 Bang 2 D 2 0 E 4 1 F 1 -1
Câu 2: (2đ) (trừ 0.25đ nếu không viết theo hàm) Bang 1 A 3 0 B 6 2 C 0 -2 Bang 2 D 2 0 E 4 1 F 1 -1
Câu 3: (1.5đ) (kết quả in ra sau khi sắp xếp) Bang 1 B 6 2 A 3 0 C 0 -2 Bang 2 E 4 1 D 2 0 F 1 -1 Câu 4: (2đ) 1 2 3 2 3 2 BK1: B D (0.5đ) BK2: E A (0.5đ) CK: D E (0.5đ) CHAMPION: D (0.5đ)