



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đ)