Download as pdf or txt
Download as pdf or txt
You are on page 1of 3

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN ĐỀ THI THỰC HÀNH – HỌC KỲ II

KHOA KHOA HỌC MÁY TÍNH Môn thi: Khoa học máy tính II
Thời gian làm bài: 100 phút.
MÃ ĐỀ 01

Câu 1:
Viết chương trình nhập vào ma trận vuông A gồm nxn phần tử đều là số nguyên . Kiểm tra xem ma trận A là
ma trận tam giác trên (tất cả các phần tử nằm dưới đường chéo đều có giá trị 0), ma trận tam giác dưới (tất
cả các phần tử nằm trên đường chéo đều có giá trị 0), hay là ma trận đường chéo (các phần tử trên hay dưới
đường chéo đều có giá trị 0).
Lưu ý: yêu cầu sử dụng con trỏ.
Dữ liệu vào:
Dòng đầu tiên là số nguyên n (2 ≤ n ≤ 2.105, |Aij| ≤ 1012, 1 ≤ i,j ≤ n). Với n là kich thước của ma
trận.
n dòng tiếp theo tương ứng với các dòng của ma trận A, các phần tử trên một dòng cách nhau bởi 1
dấu cách.
Dữ liệu ra:
Loại ma trận: “Ma tran tam giac duoi”, “Ma tran tam giac tren”, “Ma tran duong cheo”, “Khac”.
Loại “Khac” dành cho các ma trận không thuộc các dạng mô tả ở đề bài.
Ví dụ:
Input Output
3 Ma tran tam giac tren
4 5 7
0 9 10
0 0 15

Câu 2:
Viết chương trình nhập danh sách liên kết đơn với mỗi phần tử là một số nguyên, việc nhập kết thúc khi
giá trị nhập vào là 0. Thực hiện các yêu cầu sau:
- Yêu cầu 1: kiểm tra danh sách có theo thứ tự các phần tử chẵn đứng trước và các phần tử lẻ đứng
sau hay không.
- Yêu cầu 2: dời các phần tử lẻ lên đầu danh sách để thứ tự danh sách thành các phần tử lẻ đứng trước
và các phần tử chẵn đứng sau (giữ nguyên thứ tự của các phần tử trong các nhóm chẵn, lẻ như danh
sách ban đầu).
Dữ liệu vào:
Danh sách gồm các số nguyên dương x ( 1 ≤ x ≤ 106) cách nhau bởi khoảng trắng. Dãy số kết thúc
khi gặp số 0 (số 0 này không nằm trong danh sách).
Dữ liệu ra:
- Yêu cầu 1: Xuất ra “Danh sach theo thu tu yeu cau” nếu danh sách theo thứ tự như đề bài yêu cầu
hoặc danh sách toàn chẵn hoặc toàn lẻ. Ngược lại xuất ra “Danh sach khong theo thu tu yeu cau”.
Nếu danh sách ban đầu rỗng thì xuất ra “Danh sach rong”.
- Yêu cầu 2: Xuất ra danh sách sau khi đã thay đổi thứ tự theo yêu cầu, các phần tử cách nhau bởi dấu
cách. Nếu danh sách ban đầu rỗng thì xuất ra “Danh sach rong”.
Input Output
//Yêu cầu 1:
10 36 2 1 20 20 61 36 76 15 20 0 Danh sach khong theo thu tu yeu cau
//Yêu cầu 2:
10 36 2 1 20 20 61 36 76 15 20 0 1 61 15 10 36 2 20 20 36 76 20

Câu 3:
Cho danh sách A gồm n phần tử tóm tắt các hoạt động trên trình duyệt của người dùng có dạng sau:
[(“click”, a), (“click”, b), (“back”, NULL), …] . Trong đó “a”, “b”,… là các ký tự đại diện cho các đường
dẫn (link) trên trình duyệt, “click” và “back” đại diện tương ứng là hành động nhấp chuột vào một đường
dẫn trên trình duyệt và trở về trang trước đó. Sử dụng kiểu cấu trúc để lưu các hành động nêu trên và xây
dựng ngăn xếp (stack) cho nút back của trình duyệt. Viết chương trình xuất ra màn hình trạng thái của ngăn
xếp sau khi thực hiện danh sách các hành động nêu trên.
Lưu ý: nếu người dùng truy cập vào cùng đường dẫn với đường dẫn hiện tại thì không cập nhật ngăn xếp.
Dữ liệu vào:
Dãy các ký tự và số trong đó: (Giả sử luôn thỏa điều kiện nhập)
- Dòng đầu tiên: số lượng n phần tử trong danh sách.
- (n*2) dòng tiếp theo: trong đó cứ mỗi 2 dòng thể hiện 2 thông tin của một hành động trong
mảng:
o Dòng thứ 1: chuỗi mô tả hành động (“click”, “back”).
o Dòng thứ 2: ký tự đại diện cho link hoặc NULL.
Dữ liệu ra:
- Trong quá trình thực hiện chức năng pop(). Nếu ngăn xếp rỗng thì xuất ra “Stack rong”.
- Nếu ngăn xếp rỗng thì xuất ra “Stack rong”.
- Ngược lại xuất “Stack hien tai: ” và tất cả giá trị của các phần tử trong ngăn xếp cách nhau bởi
dấu xuống dòng. Mỗi phần tử trên dòng cách nhau bởi dấu cách.
Ví dụ:
Input Output
4 Stack hien tai:
click click a
a
click
b
click
c
back
NULL

Câu 4:
Cho 02 dãy số nguyên A1, A2, A3,…An và B1, B2, B3,…Bn gồm tương ứng n và m phần tử. Mỗi phần tử
thuộc hai dãy A và B có giá trị tuyệt đối không quá 1012. Tìm các phần tử trong dãy B không xuất hiện trong
dãy A.
Dữ liệu vào:
Dòng đầu tiên là hai số nguyên n và m (1 ≤ n, m ≤ 2.105, |Ai| ≤ 1012, 1 ≤ i ≤ n, |Bj| ≤ 1012, 1 ≤ i ≤
m). Với n, m tương ứng là số lượng phần tử của hai dãy A và B.
2 dòng tiếp theo tương ứng là các phần tử của dãy A và dãy B, các phần tử cách nhau bởi dấu cách.
Dữ liệu ra:
Xuất ra các phần tử của dãy B không xuất hiện trong A. Các phần tử cách nhau bởi dấu cách.
Ví dụ:
Input Output
35 9 10 20
457
7 9 10 20 4

Câu 5:
Viết chương trình tìm phần tử thứ 4 của danh sách liên kết đơn (tính từ cuối danh sách trở về trước). Mỗi
phần tử là một số nguyên. Chỉ dùng 1 lần duyệt duy nhất.

(------------- Hết ------------)

You might also like