CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự do – Hạnh phúc
ĐÁP ÁN ĐỀ THI TỐT NGHIỆP CAO ĐẲNG NGHỀ KHÓA 3 (2009-2012) NGHỀ: LẬP TRÌNH MÁY TÍNH MÔN THI: LÝ THUYẾT CHUYÊN MÔN NGHỀ Mã đề thi: DA LTMT - LT33
Hình thức thi: Viết tự luận
Thời gian: 150 phút (không kể thời gian giao đề thi)
ĐÁP ÁN
Câu 1: (2.5 điểm)
Nội dung Điểm
TT a v× 1.5 điểm
b Không thuộc v×
1 điểm
Câu 2: (3 điểm)
Cho dãy khóa K: 32 43 18 80 60 59 93 70 55
Minh họa quá trình tìm kiếm X1 = 80; X2 = 81 theo phương pháp
tìm kiếm nhị phân.
TT Nội dung Điểm
Cho dãy khóa K:
32 43 18 80 60 59 93 70 55
3 điểm Minh họa quá trình tìm kiếm X1 = 80; X2 = 81 theo
phương pháp tìm kiếm nhị phân.
1 điểm Dãy khóa K:
32 43 18 80 60 59 93 70 55
Để có thể tìm kiếm được theo phương pháp tìm
kiếm nhị phân, dãy tìm kiếm phải là dãy có thứ tự. Ta
có thể sắp xếp dãy K theo thứ tự tăng dần:
Trang: 1/ 4
18 32 43 55 59 60 70 80 93
* Minh họa quá trình tìm kiếm X1 = 80 theo phương
pháp tìm kiếm nhị phân:
+ Khởi đầu: L = 1; R = 9.
- m = (L + R) div 2 = (1 + 9) div 2 = 5
- So sánh K[m] = K[5] = 59 < X1 nên tiếp
tục tìm kiếm X1 trong dãy con có:
L = 6; R = 9
+ Với L = 6; R = 9
- m = (L + R) div 2 = (6 + 9) div 2 = 7 1 điểm
- So sánh K[m] = K[7] = 70 < X1 nên tiếp
tục tìm kiếm X1 trong dãy con có:
L = 8; R = 9
+ Với L = 8; R = 9
- m = (L + R) div 2 = (8 + 9) div 2 = 8
- So sánh K[m] = K[8] = 80 = X1 nên quá
trình tìm kiếm dừng lại vì đã tìm thấy X1 tại vị trí thứ
8 trong dãy K. * Minh họa quá trình tìm kiếm X2 = 81 theo phương 1 điểm
pháp tìm kiếm nhị phân:
+ Khởi đầu: L = 1; R = 9.
- m = (L + R) div 2 = (1 + 9) div 2 = 5
- So sánh K[m] = K[5] = 59 < X2 nên tiếp
tục tìm kiếm X2 trong dãy con có:
L = 6; R = 9
+ Với L = 6; R = 9
- m = (L + R) div 2 = (6 + 9) div 2 = 7
- So sánh K[m] = K[7] = 70 < X2 nên tiếp
tục tìm kiếm X2 trong dãy con có:
L = 8; R = 9
+ Với L = 8; R = 9
Trang: 2/ 4
- m = (L + R) div 2 = (8 + 9) div 2 = 8
- So sánh K[m] = K[8] = 80 < X2 nên tiếp
tục tìm kiếm X2 trong dãy con có:
L = 9; R = 9
+ Với L = 9; R = 9
- m = (L + R) div 2 = (9 + 9) div 2 = 9
- So sánh K[m] = K[9] = 80 > X2 nên tiếp
tục tìm kiếm X2 trong dãy con có:
L = 9; R = 8 + Với L = 9; R = 8 ta thấy L > R nên quá trình
tìm kiếm dừng lại mà không tìm thấy X2 trong dãy
khóa K
Câu 3: (1.5 điểm)
Cho biết kết quả hiển thị ra màn hình của đoạn chương trình sau:
Lập bảng để giải thích từng dòng lệnh
#include
Value1 =10, value2 =20
Điểm 0.5 điểm 1 điểm Lệnh
int value1 = 5, value2 = 15; Giá trị của các biến Khai báo 2 biến value1
Trang: 3/ 4
và value2 kiểu int và
gán giá trị cho 2 biển.
Value1 =5,value2 =15 khai con trỏ p1,p2 kiểu int *p1, *p2;
int Cho con trỏ p1 trỏ tới
p1 = &value1; p2 = &value2; địa chỉ của value1 và
con trỏ p2 trỏ tới
value2 Gán giá trị của ô nhớ *p1 = 10;
con trỏ p1 đang trỏ tới
bằng 10=> value1 =10 Giá trị trỏ bỏi p2 gán *p2 = *p1
= giá trị trỏ bởi p1
Lúc này value1 = 10,
value 2 =10 Phép gán 2 con trỏ, lúc p1 = p2;
này p1 cũng trỏ tới
value2 giá trị trỏ bới p1 sẽ *p1 = 20;
được gán là 20=>
value2 =20 In tr màn hình value 1=
10/ value2 = 20
cout << "value1==" << value1 << "/ value2==" << value2; return 0;
Trang: 4/ 4