Professional Documents
Culture Documents
ĐỀ CƯƠNG ÔN TẬP KHỐI 11-không chuyên (môn Tin học)
ĐỀ CƯƠNG ÔN TẬP KHỐI 11-không chuyên (môn Tin học)
—---
#1 (0,25đ) Câu 3: Trong bộ nhớ, dung lượng mảng một chiều được tính bằng?
A. Độ dài kiểu dữ liệu x chiều cao kiểu dữ liệu
B. Kích thước x chiều cao kiểu dữ liệu
C. Kích thước x độ dài kiểu dữ liệu
D. Kích thước x chiều dài kiểu dữ liệu
3 câu hiểu
#2 (0,5đ) Câu 1: Với mảng số thực, ta coi một ô nhớ chưa vừa đúng bao nhiêu số
thực ?
A. Hai
B. Ba
C. Một
D. Bốn
#2 (0,5đ) Câu 2: Mảng có kích thước n thì các phần tử mảng được đánh chỉ số tuần
tự từ ?
A. 0 đến n – 2
B. 0 đến n - 3
C. 0 đến n – 1
D. 0 đến n - 4
#2 (0,5đ) Câu 3: Các hàm có thể dùng cho kiểu mảng cũng như kiểu danh sách là?
A. Max,min
B. max,min,sum
C. min,sum
D. max,sum
#3 (0,5đ) Câu 2: Phương thức nào sau đây dùng để thêm phần tử vào list trong
python?
A. abs()
B. link()
C. append()
D. add()
TỰ LUẬN: (3 câu)
Câu 1: Thời gian thực hiện hằng số là gì?
Một câu lệnh máy, một thuật toán, một chương trình được coi là có thời gian
thực hiện hằng số nếu thời gian thực hiện đều không vượt quá một hằng số cho
trước, không phụ thuộc kích thước dữ liệu đầu vào
Câu 2: Trong Python kiểu danh sách có những lợi thế gì so với kiểu mảng?
Kiểu danh sách linh hoạt hơn nhiều và có thêm một số hàm (phương thức) mà
kiểu mảng không áp dụng được
Câu 3: Để sử dụng một số hàm gộp và hàm phân tích thống kê, ta cần khai báo
mô đun statistics ở đầu chương trình theo cú pháp như thế nào?
from statistics import *
BÀI 2 TIN 11
Câu 2: khai báo mảng hai chiều cung cấp những thông tin gì? (NB)
A. Tên biến mảng
B. Kiểu dữ liệu
C. Kích thước
D. Tất cả đáp án trên đều đúng
Câu 5: thời gian thực hiện các phép toán trên tất cả các phần tử của mảng
2 chiều sẽ phụ thuộc vào đâu? (TH)
A. Độ dài của cột (m)
B. Kiểu dữ liệu của phần tử
C. Độ dài của hàng (n) và cột (m)
D. Độ dài của hàng (n)
Câu 6: Cách khai báo mảng 2 chiều nào dưới đây là đúng trong Python? (TH)
A. array = [1, 2, 3, 4]
B. array = [[1, 2], [3, 4]]
C. array = (1, 2, 3, 4)
D. array = {1, 2, 3, 4}
Câu 7: Làm thế nào để tạo một mảng hai chiều có kích thước x hàng và y cột
trong Python? (VD)
A. array = [[0] * x] * y
B. array = [[0] * y] * x
C. array = [[0] * y for _ in range(x)]
D. array = [[0] * x for _ in range(y)]
Câu 8: Làm thế nào để thay đổi giá trị của một phần tử trong mảng hai chiều?
(VD)
A. array[chỉ số hàng][chỉ số cột] = giá trị
B. array[chỉ số cột][chỉ số hàng] := giá trị
C. array[giá trị][chỉ số hàng][chỉ số cột]
D. array[giá trị]=[chỉ số hàng][chỉ số cột]
Câu 10: Theo em, chương trình sau giải bài toán gì? (VDC)
diem = [[7.5, 6.5, 5.0],
[5.0, 9.0, 4.5],
[8.5, 8.0, 8.0],
[4.5, 5.5, 7.0]]
i=2
diemHS = diem[i]
mon = ['Toán', 'Văn', 'Tin']
hoten = 'Học sinh ' + str(i + 1)
dmax = max(diemHS)
dmin = min(diemHS)
dtrungbinh = sum(diemHS) / len(diemHS)
print(hoten)
print('Điểm cao nhất:', dmax)
print('Điểm thấp nhất:', dmin)
print('Điểm trung bình các môn: ', dtrungbinh)
A. in ra tên học sinh có chỉ số 2 kèm điểm cao nhất, điểm thấp nhất, điểm trung
bình các môn.
B. in ra tên học sinh có chỉ số 3 kèm điểm cao nhất, điểm thấp nhất, điểm trung
bình các môn.
C. in ra tên học sinh có chỉ số 1 kèm điểm cao nhất, điểm thấp nhất, điểm trung
bình các môn.
D. in ra tên học sinh có chỉ số 5 kèm điểm cao nhất, điểm thấp nhất, điểm trung
bình các môn.
3 CÂU TỰ LUẬN
Câu 11: Để mô tả mảng 2 chiều, ngoài kiểu mảng (array trong thư viện numpy)
ta còn có thể sử dụng kiểu dữ liệu nào để mô tả? (NB)
TL : Kiểu danh sách
Câu 12: Thời gian thực hiện tuyến tính là gì? (TH)
TL: Một câu lệnh máy, một thuật toán, một chương trình được coi là có thời gian thực
hiện tuyến tính nếu số thao tác để hoàn thành nó tỉ lệ thuận (nhân thêm hằng số) với
kích
thước dữ liệu đầu vào.
Câu 13: Viết chương trình tạo một ma trận có 5 dòng, 4 cột, gán giá trị trực tiếp
trong chương trình. Trên mỗi dòng của ma trận: Hãy in ra số lớn nhất, số nhỏ
nhất, trung bình cộng của dòng đó. Sau cùng in ra tổng tất cả các phần tử của ma
trận (VDC)
TL: Cách 1: dùng list
# Tạo ma trận dưới dạng danh sách
matran = [
[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12],
[13, 14, 15, 16],
[17, 18, 19, 20]
]
# In ma trận
print("Ma trận:")
for dong in matran:
print(dong)
# In số lớn nhất, số nhỏ nhất, trung bình cộng của mỗi dòng
for i, dong in enumerate(matran):
max_dong = max(dong)
min_dong = min(dong)
trung_binh_dong = sum(dong) / len(dong)
print("Dòng ",i+1," Số lớn nhất: ",max_dong," Số nhỏ
nhất: ",min_dong," Trung bình cộng: ",trung_binh_dong)
# Tính tổng tất cả các phần tử của ma trận
tong_phan_tu = sum(sum(dong) for dong in matran)
print("Tổng tất cả các phần tử của ma trận: ",tong_phan_tu)
Câu 2. Cho a là danh sách các số gồm n phần tử. Hãy dùng lát cắt tạo danh sách b là
nữa cuối của a:
A. b = a[n//2:]
B. b = a[n//2:]
C. b = a[::n//2]
D. b = a[n//2::]
Câu 3. Cho a là danh sách các số gồm n phần tử. Hãy dùng lát cắt tạo danh sách b là
các phần tử có chỉ số chẵn của a:
A. a[0:n:2] hoặc b =a[::2]
B. a[0:n:1]
C. a[1:n:2]
D. a[::1]
II. Hiểu:
Câu 4. Hãy cho biết kết quả của đoạn chương trình sau:
a=[0, 3, 11, 2024, 16]
print(a[1:4])
A. 15
B. 6
C. 11
D. 8
A. mở tệp DAYSO.OUT, sau đó ghi giá trị của biến n và mảng a vào tệp
DAYSO.OUT.
B. mở tệp DAYSO.OUT, sau đó đọc dữ liệu được ghi trong tệp vào bộ nhớ trong.
C. Nhập dữ liệu vào từ bàn phím vào các biến n và a.
D. mở tệp DAYSO.OUT, sau đó nhập dữ liệu từ bàn phím vào cho các biến n và a.
Câu 2. Cho a là mảng hai chiều gồm n hàng và n cột. Viết lệnh tạo danh sách b
gồm các cột cóchỉ số chẵn của a.
Đáp án:
a=[[1,2,3],[4,5,6],[7,8,9],[10,11,12]]
b=a[::2]
print("Các hàng có chỉ số chẳn của a",b)
Hiểu: Viết đoạn chương trình thực hiện việc mở tệp SO.OUT và ghi các số
nguyên từ 1 đến 10 vào tệp SO.OUT.
Đáp án:
import sys
f=open("SO.OUT","w")
sys.stdout=f
for i in range(1,11):
print(i,end=' ')
f.close()
Vận dụng.
Cho tệp DAYSO.INP có cấu trúc như sau:
+ Dòng đầu ghi số nguyên dương n
+ Dòng 2 ghi n số nguyên a1, a2, ..., an cách nhau dấu cách
Viết chương trình đọc dữ liệu từ tệp DAYSO.INP và xuất kết quả ra màn hình tổng
các số nguyên a1+a2+...+an
Ví dụ:
DAYSO.INP Kết quả ra màn hình
5
12345
15
Đáp án:
fi=open("DAYSO.INP","r")
n=int(fi.readline())
a=list(map(int,fi.readline().split()))
tong=0
n=len(a)
for i in range(n):
tong+=a[i]
print(tong)