Trường THPT Trần Khai Nguyên – Bộ Môn Tin Học - Khối 11
Đề Cương Ôn Tập Kiểm Tra Học Kỳ I Năm Học 2011 – 2012
I. Trắc nghiệm
(Lưu ý: Phần trắc nghiệm các em kèm theo phần trắc nghiệm đã ôn thi giữa HKI)
1. Cấu trúc rẽ nhánh
Câu 1: Câu lệnh if nào sau đây đúng:
if (a= 5) then a:= d+1 else a:= d+2; if (a= 5) then a:= d+1 else a:= d+2.
if (a= 5) then a:= d+1; else a:= d+2; if (a= 5) then a= d+1 else a= d+2;
Câu 2: Cho đoạn chương trình sau:
Var S, i : Integer;
Begin
i := 1; S:= 40;
if ( i > 5 ) then S:= 5 * 3 + ( 5 - i ) * 2
else
if ( i > 2 ) then S:= 5 * i
else S:= 0;
End.
Sau khi chạy chương trình giá trị của S là:
15 19 40 0
Câu 3: Câu lệnh if nào sau đây đúng cú pháp:
if <điều kiện> then < câu lệnh> if <điều kiện>; then < câu lệnh>;
if <điều kiện> ;then < câu lệnh>. if <điều kiện> then < câu lệnh>;
Câu 4: Cho N là một biến kiểu nguyên, chọn câu đúng cú pháp:
If N < 10 then write (' Nho hon 10 ') ; else write (' Lon hon 10 ');
If N < 10 then write (' Nho hon 10 ') else write (' Lon hon 10 ');
If N < 10 Write (' Nho hon 10 ') else then write (' Lon hon 10 ');
If N < 10 then N := 10 else N > 20 then write (' N > 20 ');
Câu 5: Lệnh nào sau đây in ra màn hình số lớn hơn trong 2 số A, B
If A < B then writeln(A) else writeln(B); If A > B then write(B) else write(A);
If A > B then Readln(A) else Readln(B); If A > B then write(A) else write(B);
Câu 6: Trong ngôn ngữ lập trình Pascal về mặt cú pháp cách viết câu lệnh ghép nào sau đây đúng:
d. For <Biến đếm>=<Giá trị đầu> do <Giá trị cuối> to <Câu lệnh>;
Câu 10: Cú pháp nào sau đây đúng cho vòng lặp For..do dạng lùi:
a. For <Biến đếm>:=<Giá trị cuôi> to <Giá trị đầu> do <Câu lệnh>;
b. For <Biến đếm>:=<Giá trị cuối> downto <Giá trị đầu> do <Câu lệnh>;
c. For <Biến đếm>=<Giá trị cuối> downto <Giá trị đầu> do <Câu lệnh>;
d. For <Biến đếm>:=<Giá trị đầu> downto <Giá trị cuối> do <Câu lệnh>;
Câu 11: Cú pháp nào sau đây đúng cho câu lệnh While..do
a. While <điều kiện> : do <câu lệnh>; b. While <điều kiện>:=<câu lệnh>;
c. While(điều kiện) do <câu lệnh); d. While <điều kiện> do <câu lệnh>;
Câu 12: Cho câu lệnh For i:= 5 to 10 do write(‘Chao ban’); Câu ‘Chao ban’ xuất ra mấy lần:
a. 9 b. 5 c. 6 d. 10
Câu 13: Cho đoạn lệnh
For i:=1 to 10 do k:=i; Write(k:4); Hỏi giá trị xuất ra màn hình là:
a. 1 b. 10 c. 1 2 3 4 5 6 7 8 9 10 d.1 10
Câu 14. Cho đoạn lệnh
For i :=1 to 10 do Begin k:=i; write(k:4) end; Hỏi kết quả xuất ra màn hình là:
a. 1 b. 10 c. 1 2 3 4 5 6 7 8 9 10 d.1 10
Câu 15. Cho đoạn lệnh
For i:= 10 downto 1 do if (i mod 3 =0) then write(i:4); Kết quả xuất ra màn hình là:
a. 10 1 b. 10 8 6 4 2 c. 9 6 3 d. 3 6 9
Câu 16: Cho đoạn lệnh
K:=10; While (K>5) do K:=K-1; Write(K); Kết quả xuất ra màn hình là:
a. 10 9 8 7 6 5 b. 10 5 c. 5 d. 4
Câu 17: Cho đoạn lệnh
K:=10; While (K>5) do K:=K-2; Write(K); Kết quả xuất ra màn hình là:
a. 10 9 8 7 6 5 b. 10 5 c. 5 d. 4
3. Mảng Một chiều
Câu 18: Phát biểu nào dưới đây về mảng là phù hợp?
Độ dài tối đa của mảng là 255 Là một tập hợp các số nguyên
Dãy hữu hạn các phần tử cùng kiểu Mảng không thể chứa kí tự
Var A : ArrInt;
(Ghi chú: Khai báo này sử dụng trong câu 26 đến câu 35)
Câu 26: Chọn câu lệnh: Xuất ra màn hình giá trị của phần tử thứ i của mảng A
Readln(A[i]); Write(A[i]); Readln(‘A[i]’); Write(‘A[i]’);
Câu 27: Chọn câu lệnh: Nhập từ bàn phím giá trị cho phần tử thứ i của mảng A
Readln(A[i]); Write(A[i]); Readln(‘A[i]’); Write(‘A[i]’);
Câu 28: Chọn câu lệnh: Gán giá trị 35 cho phần tử thứ i của mảng A
Readln(A[i]) := 35; A[i] := 35; A(i) := 35; A[35] := i;
Câu 29: Dưới đây là các lệnh gán, hãy chọn lệnh gán hợp lệ?
A[1] := 14.5; A[2] := 14/5; A[3] := 14 + 5; A[4] := 14,5;
Câu 30: Dưới đây là các lệnh gán, hãy chọn lệnh gán hợp lệ?
A[1] := 14 mod 5; A[2] := 14 div 5; A[3] := 14 - 5; Cả A, B và C đều hợp lệ
Câu 31: Cho đoạn chương trình:
T:=0;
For i:=1 To 10 Do
If A[i] mod 2 <> 0 Then T:=T+A[i];
Đoạn chương trình trên tính gì?
Tính tổng các phần tử có giá trị lẻ của mảng A Tính tổng các phần tử có giá trị chẵn của mảng A
Tính tổng các phần tử của mảng Tính tổng các chỉ số của mảng A
Câu 32: Cho đoạn chương trình:
Max:=A[1];
For i:=2 To 6 Do
If A[i]>Max Then
Begin
Max:=A[i];
csMax:=i;
End;
Giả sử mảng A nhận các giá trị: 15; 7; 21; -56; 27; 19 thì giá trị của Max và csMax sau khi thực hiện đoạn chương
trình trên là:
Max=15; csMax=1 Max=21; csMax=3 Max=-56; csMax=4 Max=27; csMax=5
d. Tính tổng các phần tử dương
e. Tính tống các phần tử bội 5
Câu 3: Viết chương trình nhập vào mảng A có n phần tử. Thực hiện các yêu cầu sau đây:
a. Tìm phần tử lớn nhất ( Max) của A
b. Tìm phần tử nhỏ nhất (Min) của A
c. Tìm phần tử Chẵn lớn nhất
d. Tìm phần tử lẻ nhỏ nhất
e. Tìm phần tử âm nhỏ nhất
Câu 4: Viết chương trình nhập vào mảng A có n phần tử, nhập vào một số nguyên k, tìm các vị trí mà k xuất hiện
trong A. Nếu không có thì báo là không tìm thấy.
Câu 5: Viết Các cú pháp sau và nêu ý nghĩa các thành phần trong từng cú pháp, mỗi cú pháp cho một ví dụ mình
họa.
a. Cú pháp For..do dạng tiến và dạng lùi.
b. Cú Pháp While..do.
c. Cú pháp khai báo mảng một chiều trực tiếp và gián tiếp.
Hướng dẫn:
Phần 1: Trắc nghiệm (Lưu ý: Phần trắc nghiệm các em kèm theo phần trắc nghiệm đã ôn thi giữa HKI)
1a 11d 21b 31a
2a 12c 22c 32d
3d 13b 23c 33a
4b 14c 24b 34d
5d 15c 25b 35c
6d 16c 26b
7b 17d 27a
8c 18c 28b
9a 19d 29c
10a 20b 30d
Phần 2. Tự Luận
Câu 1: Dạng này là đếm số phần tử có cùng tính chất. Các em cho vòng lặp duyệt từ đầu đến cuối mảng. Mỗi khi gặp
một phần tử nào có tính chất đó thì tăng giá trị của biến đếm lên một.
Các bước khác làm bình thường, Tại B4 viết là:
For i:=1 to n do S:=S+A[i];
Câu b. Tính tổng các phần từ chẵn:
*Xác định bài toán:
+Input: n, mảng A (Số Nguyên)
+Output: S (Tổng các phần tử của A)
*Thuật Toán:
B1. Nhập n
B2: Cho I chạy từ 1 đến n làm: Nhập A[i]
B3: S 0 {Khởi gán cho S giá trị đầu là 0}
B4: Cho I chạy từ 1 đến n làm:
Nếu (A[i] chia hết cho 2 ) thì SS+A[i]
B5: Xuất S
*Chương trình:
Các bước khác làm bình thường, tại B4 viết
For i:=1 to n do If (A[i] mod 2 = 0) then S:=S+A[i];
Các câu còn lại làm tương tự câu b. Chỉ cần đổi điều kiện ở bước 4.