Phần I: Phần trắc nghiệm
Câu 1: Điền vào dấu (…): Mảng một chiều là một dãy hữu hạn các phần tử có cùng (…)
A. Thông tin B. Dữ liệu C. Kiểu D. Giá trị
Câu 2: Cấu trúc lặp thường có mấy dạng?
A. 3 B. 4 C. 2 D. 1
Câu 3: Để tính S=1+22+32+…+n2 cho đến khi S>1000 em sẽ sử dụng lệnh lặp nào?
A. While – do B. If – Then C. For – do D. Cả ba đều đúng.
Câu 4: Khai báo sau đây thì mảng có tối đa bao nhiêu phần tử? Var a:array [0..10] of byte;
A. 8 B. 9 C. 11 D. 10
Câu 5: Để lưu trữ dãy số thực A1, A2, … A50 thì khai báo nào sau đây là đúng?
A. Var A:=array[1..50] of real; B. Var A:array[1..50] of word;
C. Var A:array[1..30] of extended; D. Var A:array[1..50] of Real;
Câu 6: Cho đoạn lệnh: S:= 0; For i:=1 to 10 do S:=S+i; kết quả S sau khi thực hiện là bao nhiêu?
A. 10 B. 55 C. 1 D. 50
Câu 7: Trong câu lệnh while: While <điều kiện> do <câu lệnh>; khi nào kết thúc lặp?
A. Điều kiện đúng B. Điều kiện sai C. Cả A và B đúng D. Cả A và B sai.
Câu 8: Cho lệnh lặp: While (abs(x) >= 5) do write(x); lệnh write(x) được lặp lại bao nhiêu lần?
A. Lặp vô hạn B. 5 lần C. 6 lần. D. Chưa biết
Câu 9: Lệnh lặp nào sau đây là đúng.
A. For i:=1 two 10 do S:=S+i; B. For i:=1 to 10 do S:=S+i;
C. For i=1 to 10 do S:=S+i; D. For i:=1 to -10 do S:=S+i;
Câu 10: Có Var A:Array[1..100] of byte; Để tham chiếu đến phần tử 5 của mảng, ta viết thế nào?
A. A<5> B. A(5) C. A{5} D. A[5]
Câu 11: Cho dãy số gồm 4 số thực, 5 số nguyên. Em có thể khai báo một mảng một chiều gồm 9 phần tử kiểu nguyên để lưu trữ dãy số hay không?
A. Có B. Đáp án khác. C. Vừa có vừa không D. Không
Câu 12: S:=0; For i:=1 to N do if T[i] mod 2 = 0 then S:=S+T[i]; Đoạn lệnh trên thực hiện công việc gì?
A. Tìm tổng giá trị các phần tử của mảng T B. Tìm tổng giá trị các số chẵn trong mảng T
C. Tìm tổng giá trị các số lẻ trong mảng T D. Cả A, B, C đều đúng.
Câu 13: Khi chạy chương trình :
Var A:array[1..10] of integer;
i, S : integer;
Begin A[1]:= 3; A[2]:= -1; A[3]:= -4;
S:= 0;
For i:=1 to 3 do If A[i] > 0 then S:=S+A[i];
Write(S);
End.
Kết quả in ra giá trị của S là:
A. 2 B. 3 C. 4 D. -5
Câu 14: Hãy cho biết kết quả đưa ra màn hình của chương trình sau:
Var x, i: byte;
BEGIN X:=0; i:=0; While i<17 do begin x:= x+i; i:=i+2; end; writeln(‘x= ’, x); END.
A. x= 72 B. x= 90 C. x= 91 D. 56
Câu 15: Cho khai báo Var A: array[1..10] of integer; Để nhập giá trị cho phần tử thứ 3 của mảng thực hiện câu lệnh nào?
A.Read(A<3>); B. Writeln(A[3]); C. Write(‘A[3]’); D. Readln(A[3]);
Câu 16: Các khai báo sau, khai báo nào là đúng?
A. Var A:array[1....n] of byte; B. Var A = array[1..10] of real;
C. Var A:array[-10. .10] of boolean; D. Var A : array[‘a’..’z’] of read;
Câu 17: Cho khai báo Var S:Array[1..5] of byte; S có thể lưu trữ dãy số nào sau đây.
A. 300 3 5 4 5 B. 1 3 6 C. 1 -2 3 2 D. 1 5 3 2 4 3
Câu 18: Cho khai báo sau: Var A, B : array[1..20] of integer; Giả sử giá trị A[i] và B[i] (i nhận giá trị từ 1 đến 20) đã được xác định. Xét đoạn chương trình:
d:=0; for i:=1 to 20 do If A[i] <> B[i] then d:=d+1; writeln(d);
Đoạn chương trình trên thực hiện công việc gì?
A. Đếm số phần tử của A khác các phần tử của B B. Đếm số phần tử khác nhau của A và B
C. Đếm số cặp phần tử tương ứng khác nhau của A và B D. Tất cả đều sai
Câu 19: Cho khai báo a : array[0..16] of integer ;
Câu lệnh nào dưới đây sẽ in ra tất cả các phần tử của mảng trên ?
A. for k := 1 to 16 do write(a[k]); B. for k := 16 downto 0 do write(a[k]);
B. for k:= 0 to 15 do write(a[k]); D. for k := 16 down to 0 write(a[k]);
Câu 20: Var a : array[0..50] of real ;
k := 0 ; for i := 1 to 50 do if a[i] > a[k] then k := i ;
Đoạn chương trình trên thực hiện công việc gì dưới đây ?
A.Tìm phần tử nhỏ nhất trong mảng; B. Tìm phần tử lớn nhất trong mảng;
C.Tìm chỉ số của phần tử lớn nhất trong mảng; D. Tìm chỉ số của phần tử nhỏ nhất trong mảng;
Câu 21: Var m : array[0..10] of integer ;
Phương án nào dưới đây chỉ phần tử thứ 10 của mảng ?
A. m[10] B. m(10) C. m(9) D. m[9]
Câu 1: B
Câu 2: C
Câu 3: D
Câu 4: C
Câu 21: D