Lưu các số trên bảng cửu chương b.. Lưu nhiệt độ các ngày trong tuần b.. Lưu tọa độ vị trí các điểm trên trái đất Câu 22: Lệnh nào sau đây để khai báo một mảng hai chiều là đúng nhất: a.
Trang 1TRƯỜNG THPT TRẦN KHAI NGUYÊN BỘ MÔN TIN HỌC
ĐỀ CƯƠNG ÔN TẬP KIỂM TRA GIỮA HKII NĂM HỌC 2009 – 2010
PHẦN I: CÂU HỎI TRẮC NGHỆM
MẢNG MỘT CHIỀU Câu 1: 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ự
Câu 2: Trong Pascal, để khai báo trực tiếp mảng một chiều ta thực hiện:
Var <tên biến mảng> : array[<chỉ số hàng>] of <kiểu phần tử>;
Var <tên biến mảng> : array[<kiểu chỉ số>] of <kiểu phần tử>;
Var <tên biến mảng> : array[<kiểu chỉ số>] of <số lượng phần tử>;
Var <tên kiểu mảng> : array[<kiểu chỉ số>] of <kiểu phần tử>;
Câu 3: Trong Pascal, để tham chiếu đến một phần tử của mảng ta dùng cặp dấu ngoặc nào? ( và ) [ và ] { và } < và >
Câu 4: Lệnh nào sau đây tham chiếu đến phần tử thứ 10 của mảng B:
B(10) B{10} B[10] B10
Câu 5: Để gán giá trị 15 cho phần tử thứ 8 của mảng B ta viết:
B(10):=15 B(10:=15) B[10:=15] B[10]:=15
Câu 6: Để nhập giá trị cho phần tử 15 của mảng A ta viết:
Readln(A{15}) Readln(A15) Readln(A[15]) ReadlnA[15]
Câu 7: Để xuất giá trị phần tử thứ 8 của mảng A, ta viết:
Write(A8) Write(A[8]) Write(A{8}) Write(A(8));
Câu 8: 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 9: Lệnh nào sau đây xuất ra 10 phần tử mảng A trên một dòng:
For i:=1 to 10 do Write(A[i]); For i:=1 to 10 do Writeln(A[i]);
For i:=1 to 10 do Write(A[10]); For i:=1 to 10 do Writeln(A[10]);
Câu 10: Lệnh nào sau đây nhập vào 10 phần tử mảng A:
For i:=1 to 10 do Readln(A[i]); For i:=1 to 10 do Readln(A{i});
For i:=1 to 10 do Readln(A[1]); For i:=1 to 10 do Readln(A[10]);
Câu 11: Để khai báo mảng tên A gồm 150 phần tử, các phần tử kiểu nguyên, ta khai báo:
Var A : Array[1…150] Of Byte; Var A : Array[1 150] Of Byte;
Var A : Array[1…150] Of Integer; Var A : Array[1 150] Of Integer;
Dữ kiện sau đây dùng cho các câu từ 12 đến 20
Cho mảng A có 10 phần tử nhận các giá giá trị lần lượt: 12, 4, -3, 5, 2, 1, 0, 7, 6, 8
Câu 12: Lệnh Write(A[5]), xuất ra màn hình:
2 1 5 không xuất gì cả
Trang 2Câu 13: Lệnh For i:=1 to 10 do if ( i mod 2 =0) do Write(A[i]:4); sẽ xuất ra màn hình:
a 12 4 -3 5 2 b 12 -3 2 0 7 8 c 12 4 2 6 8 d không xuất ra gì cả
Câu 14: Lệnh For i:=1 to 10 do if (A[i] mod 2 =0) do Write(A[i]:4); sẽ xuất ra màn hình:
a 12 4 -3 5 2 b 12 -3 2 0 7 8 c 12 4 2 6 8 d không xuất ra gì cả
Câu 15: Lệnh For i:=1 to 10 do if ( A[i] > 0) do Write(A[i]:4); sẽ xuất ra màn hình:
a 12, 4, -3, 5, 2, 1, 0, 7, 6, 8 b 12, 4, 5, 2, 1, 0, 7, 6, 8 c -3 d không xuất ra gì cả
Câu 16: Max:=A[1]; For i:=1 to 10 do if( Max < A[i]) then Max:=A[i]; Write(Max); sẽ xuất ra màn hình:
a 12 b 4 c -3 d 5
Câu 17: Min:=A[1]; For i:=1 to 10 do if( Min > A[i]) then Min:=A[i]; Write(Min); sẽ xuất ra màn hình:
a 12 b 4 c -3 d 5
Câu 18: k:= A[1] + A[3]; Write (k) sẽ xuất ra màn hình:
a 9 b 15 c 16 d không xuất ra gì cả
Câu 19: For i:=1 to 10 do if(A[i] mod 3 = 0) then Write(A[i]:4); sẽ xuất ra:
a 12 5 0 8 b 12 -3 6 c 12 -3 0 6 d không xuất ra gì cả
Câu 20: For i:=1 to 10 do if(A[i] mod 5 =0) then Write(A[i]:4); sẽ xuất ra:
a 12 2 8 b 12 -3 5 2 1 c 5 d 5 0
MẢNG HAI CHIỀU Câu 21: Ứng dụng nào sau đây không cần sử dụng mảng hai chiều:
a Lưu các số trên bảng cửu chương b Lưu nhiệt độ các ngày trong tuần
b Lưu tọa độ các điểm trên mặt phẳng d Lưu tọa độ vị trí các điểm trên trái đất
Câu 22: Lệnh nào sau đây để khai báo một mảng hai chiều là đúng nhất:
a var a: array[1 9,1 9] for integer; b var a: array[1 9;1 9] of integer;
c var a: array[1 9,1 9] of integer; d var a: array[1…9,1 9] of integer;
Câu 23: Cho đoạn lệnh sau:
Type MangNg = array[1 9,1 9] of integer;
Var a: MangN; Khai báo trên có nghĩa là:
a Mảng tên MangNg; b Mảng tên a có kiểu MangNg;
c Mảng tên MangNg có kiểu các phần tử là integer; d Mảng tên MangNg có 9 dòng và 9 cột
Câu 24: Khai báo sau đây sẽ được một mảng hai chiều có mấy dòng, mấy cột?
Var B: array[-100 200, 88 83] of integer;
a 101 dòng, 3 cột b 100 dòng, 3 cột c 100 dòng, 4 cột d 101 dòng, 4 cột
Câu 25: Để truy xuất (tham chiếu) đến phần tử ở dòng 4 cột 5 của một mảng hai chiều A ta dùng cách nào sau đây:
a A(4,5) b A[4;5] c A[4,5] d A[5,4]
Câu 26: Lệnh sau đây làm gì A[4,7]:=4*7;
a Gán cho phần tử ở dòng 4 cột 7 giá trị 4 b Gán cho phần tử dòng 4 cột 7 giá trị 11
c Gán cho phần tử dòng 7 cột 4 giá trị 28 d Gán cho phần tử dòng 4 cột 7 giá trị 28
Câu 27: để nhập giá trị cho phần tử ở dòng 5 cột 9 ta dùng lệnh nào sau đây:
a Readln(A[9,5]); b Readln(A<9,5>]); c Readln(A[5,9]); d Readln(A[5;9]);
Câu 28: để nhập giá trị cho các phần tử của mảng A có 6 dòng 4 cột ta dùng lệnh:
a for i:=1 to 6 do for j:=1 to 4 do Readln(A[i,j]); b for i:=1 to 6 do for j:=1 to 4 do Readln([i,j]);
c for i:=1 to 4 do for j:=1 to 6 do Readln(A[i,j]); d for i:=1 to 4 do for j:=1 to 6 do Readln([i,j]);
Câu 29: cho A là mảng 2 chiều, sau câu lệnh sau:
Trang 3For i:=1 to 3 do A[i,3]: =i*3;
Cột thứ 3 có các giá trị lần lược là:
a 1, 3, 5 b 3, 6, 9 c 2, 4, 6 d 1, 2, 3
Câu 30: Cho A là mảng 2 chiều, sau câu lệnh:
For i:=1 to 2 do For j:= 1 to 2 do A[i,j]:= i+j; Thì các phần tử mảng A có giá trị là:
a 2, 3, 3, 4 b 1, 2, 3, 4 c 1, 2, 2, 4 d 1, 3, 3, 4
Câu 31: Cho A là mảng 2 chiều, sau câu lệnh:
For i:=1 to 2 do For j:= 1 to 2 do A[i,j]:= i+j; Thì các phần tử mảng A có giá trị là:
a 2, 3, 3, 4 b 1, 2, 3, 4 c 1, 2, 2, 4 d 1, 3, 3, 4
Câu 32: Khai báo sau đây sẽ được một mảng hai chiều có mấy dòng, mấy cột?
Var B: array[-100 200, 83 88] of integer;
a 101 dòng, 3 cột b 100 dòng, 3 cột c 100 dòng, 4 cột d 101 dòng, 4 cột
Câu 33: Với B là màng 2 chiều có 2 dòng, 3 cột, các phần tử của B lần lượt là: 2, 4, 5 ,6 ,7, 3 Đoạn lệnh sau đưa
ra gì:
k:=5;
For i:=1 to 2 do For j:=1 to 3 do if (B[i,j] = k) then write(i, j);
a 1 3 b 2 3 c 3 1 d 3 2
Câu 34: Với B là màng 2 chiều có 2 dòng, 3 cột, các phần tử của B lần lượt là: 2, 4, 5 ,6 ,7, 3 Đoạn lệnh sau đưa
ra gì:
For i:=1 to 2 do For j:=1 to 3 do if (B[i,j] mod 2 = 0 ) then write(B[i, j]);
a 2 4 5 b 2 5 7 c 4 6 3 d 2 4 6
Câu 35: Với B là màng 2 chiều có 2 dòng, 3 cột, các phần tử của B lần lượt là: 2, 4, 5 ,6 ,7, 3 Đoạn lệnh sau đưa
ra gì:
For i:=1 to 2 do For j:=1 to 3 do if (B[i,j] mod 3 = 0 ) then write(B[i, j]);
a 2 4 5 b 2 5 7 c 6 3 d 2 4 6
KIỂU XÂU Câu 36: Xâu kí tự có các phép tóan:
a Phép cộng, trừ, nhân, chia b Phép cộng và trừ
c Chỉ có phép cộng d Phép ghép xâu và phép so
Câu 37: Xâu kí tự là:
a Mảng các kí tự b Dãy các kí tự trong bảng mã ASCII
c Tập hợp các chữ cái trong bảng chữ cái tiếng Anh;
d Tập hợp các chữ cái và chữ số trong bảng chữ cái tiếng Anh
Câu 38: Để xóa đi kí tự đầu tiên của xâu kí tự S ta viết:
a Delete (S,1,1); b Delete (S,I,1); {I là biến có giá trị bất kì}
c Delete (S,Length(S),1); d Delete (S,1,i); {i là biến có giá trị bất kì}
Câu 39: t := pos(‘mn’, ‘abmn mn’); t nhận giá tri
a 3 b 4 c 5 d 6
Câu 40: t2 := pos(‘ao’ , ‘abcd efg’); t2 nhận giá trị:
a 1 b 2 c 0 d 3
Câu 41: S1:=’Ngon ngu Pascal’; S2:=copy(S1, 10, 6); S2 có giá trị là:
a ‘Ngon’ b.’ngu’ c.’ pascal’ d ‘Ngon ngu’
Câu 42: S1:=’Ngon ngu Pascal’; Delete(S1, 5, 4); S1 có giá trị:
a ‘Ngon’ b ‘Ngon ngu’ c ‘Ngon Pascal’ d.’Pascal’
Câu 43: S1:=’Ngon ngu Pascal’; S2:=’lap trinh’; Insert(S2, S1,5); Giá trị S1 là:
Trang 4a ‘Ngon ngu lap trinh Pascal’ b ‘Ngon lap trinh ngu Pascal’
c ‘Ngonlap trinh ngu Pascal’ d ‘Ngon lap ngu trinh Pascal’
Câu 44: S1:=’Ngon ngu Pascal’; k:= length( S1); giá trị của k là:
a 13 b 14 c 15 d 16
Câu 45: S2:=’lap trinh’; S3:= ‘ ngon ngu’; Insert(S3, S2, 4); S2 có giá trị là:
a ‘lap trinh ngon ngu’ b ‘ ngon ngu lap trinh’ c ‘ngon lap trinh ngu’ d ‘ lap ngon trinh ngu’
Câu 46: Xâu kí tự không có kí tự nào cả gọi là:
a Xâu không b Xâu rỗng c Xâu trắng d Không phải là xâu kí tự
Câu 47: Phần tử đầu tiên của xâu kí tự mang chỉ số là:
a 1 b Do người lập trình khai báo c 0 d Không có chỉ số
Câu 48: Xâu kí tự có tối đa:
a 8 kí tự b 256 kí tự c 225 kí tự d 255 kí tự
Câu 49: St := ‘Cach Mang Thang Tam’; t : = Copy (St, 6,4) ; t nhận giá trị:
a ‘Mang’ b ‘ang ’ c ‘h Mang’ d ‘ Mang ’
Câu 50: Cho A:= ’chao ban’; B:=’chao anh’; C:= ’chao chi’; D:=’chao co’;
Trong 4 xâu A, B, C, D, Xâu nào lớn nhất:
a A b B c C d D
PHẦN II : CÂU HỎI TỰ LUẬN
Câu 1 : Viết cú pháp khai báo mảng 1 chiều bằng 2 cách trức tiếp và gián tiếp Nếu ý nghĩa các thành phần Cho một
ví dụ
Câu 2 : Viết cú pháp khai bào mảng 2 chiều bằng 2 cách trực tiếp và gián tiếp Nêu ý nghĩa các thành phần Cho một
ví dụ
Câu 3 : Viết cú pháp khai báo xâu Nêu ý nghĩa các thành phần Cho một ví dụ
Xác định yêu cầu, viết thuật toán và chương trình cho các bài toán sau đây :
Câu 4 : Nhập vào mảng A có n phần tử nguyên Xuất ra Max (phần tử lớn nhất của A)
Câu 5 : Nhập vào mảng A có n phần tử nguyên Xuất ra Min (phần tử nhỏ nhất của A)
Câu 6 : Nhập vào mảng A có n phần tử nguyên Tính và xuất ra tổng các phần tử chẵn
Câu 7 : Nhập vào mảng A có n phần tử nguyên Tính và xuất ra tổng các phần tử lẽ
Câu 8 : Nhập vào mảng A có n phần tử nguyên Đếm và xuất ra số phần tử dương
Câu 9 : Nhập vào mảng A có n phần tử nguyên Đếm và xuất ra số phần tử âm
Câu 10 : Nhập vào mảng A có n phần tử nguyên Nhập vào số nguyên k Xuất ra vị trí của k trong A, nếu không có phải xuất ra ‘k không nằm trong A’
Câu 11 : Nhập vào mảng A có n phần tử nguyên Sắp xếp A theo thứ tự tăng dần
Câu 12 : Nhập vào Nhiệt độ 7 ngày trong tuần Xuất ra nhiệt độ trung bình của 7 ngày