wayground logo

Free Printable Worksheets

NEW

Font size

S
M
L
XL
Worksheets

Ôn tập HK 2 khối 8

Total questions: 80

Worksheet time: 40mins

Name
Class
Date
1.

Để hiển thị các số chẵn từ 0 đến 100, câu lệnh nào sau đây đúng?

a)

IF i mod 2 = 0 THEN writeln(i);

b)

FOR i:=0 TO 100 DO Writeln(i);

c)

FOR i:=0 TO 50 DO Writeln(i*2);

d)

FOR i:=0 TO 50 DO Writeln(ix2);

2.

Câu lệnh Pascal nào sau đây là hợp lệ?

a)

FOR i:=100 TO 1 DO writeln('Doan thi Diem');

b)

FOR i:=1.5 TO 10.5 DO writeln('Doan thi Diem');

c)

FOR i=1 TO 10 DO writeln('Doan thi Diem');

d)

FOR i:=1 TO 1 DO writeln('Doan thi Diem');

3.

Để tìm giá trị lớn nhất của 2 số a, b thì ta viết:

a)

Max:=a;If b>Max then Max:=b;

b)

If (a>b) then Max:=a;If (b>=a) then Max:=b;

c)

Max:=b;If a>Max then Max:=a;

d)

Tất cả đều đúng

4.

Chọn câu lệnh Pascal hợp lệ trong các câu sau:

a)

If x : = a + b then x : = x + 1;

b)

If a > b then max = a;

c)

If a > b then max : = a ; else max : = b;

d)

If 5 = 6 then x : = 100;

5.

Để khai báo biến mảng a gồm 10 phần tử, mỗi phần tử có kiểu dữ liệu là Real ta khai báo:

a)

Var a: array[10] of real;

b)

Var a: array[1:10]: of real;

c)

Var a: array[1;10] of real;

d)

Var a: array[1..10] of real;

6.

Cho đoạn chương trình sau:

 I:=1;

While i<=5 do

Begin tong:= tong + I; I:= I + 1; End;

a)

1

b)

15

c)

10

d)

20

7.

Em hiểu câu lệnh lặp theo nghĩa nào dưới đây?

a)

Một lệnh thay cho nhiều lệnh.

b)

Các câu lệnh được viết lặp đi lặp lai nhiều lần.

c)

Vì câu lệnh đã có tên là lệnh lặp

d)

Tất cả đều sai

8.

Phát biểu nào dưới đây về kiểu mảng một chiều là phù hợp?

a)

Là một tập hợp các số nguyên

b)

Độ dài tối đa của mảng là 255

c)

Là một dãy hữu hạn các phần tử cùng kiểu

d)

Mảng không thể chứa kí tự

9.

Để khai báo số phần tử của mảng trong PASCAL, người lập trình cần:

a)

Khai báo một hằng số là số phần tử của mảng

b)

Khai báo chỉ số bắt đầu và kết thúc của mảng

c)

Khai báo chỉ số kết thúc của mảng

d)

Không cần khai báo gì, hệ thống sẽ tự xác định

10.

Phát biểu nào dưới đây về chỉ số của mảng là phù hợp nhất?

a)

Dùng để quản lí kích thước của mảng

b)

Dùng để truy cập đến một phần tử bất kì trong mảng

c)

Dùng trong vòng lặp với mảng

d)

Dùng trong vòng lặp với mảng để quản lí kích thước của mảng

11.

Phát biểu nào sau đây về mảng là không chính xác?

a)

Chỉ số của mảng không nhất thiết bắt đầu từ 1

b)

Có thể xây dựng mảng nhiều chiều

c)

Xâu kí tự cũng có thể xem như là một loại mảng

d)

Độ dài tối đa của mảng là 255

12.

Phương án nào dưới đây là khai báo mảng hợp lệ?

a)

Var mang : ARRAY[0..10] OF INTEGER;

b)

Var mang : ARRAY[0..10] : INTEGER;

c)

A.   Var mang : INTEGER OF ARRAY[0..10];

d)

A.   Var mang : ARRAY(0..10) : INTEGER;

13.

Cho khai báo mảng như sau: Var a : array[0..10] of integer ;

Phương án nào dưới đây chỉ phần tử thứ 10 của mảng?

a)

a[10];

b)

a(10);

c)

a[9];

d)

a(9);

14.

Kiểu dữ liệu của biến đếm trong lệnh lặp For – do:

a)

Cùng kiểu với giá trị đầu và giá trị cuối

b)

Chỉ cần khác kiểu với giá trị đầu

c)

Cùng kiểu với các biến trong câu lệnh

d)

Không cần phải xác định kiểu dữ liệu

15.

Hoạt động nào sau đây lặp với số lần lặp biết trước?

a)

Giặt tới khi sạch

b)

Học bài cho tới khi thuộc bài

c)

Gọi điện tới khi có người nghe máy

d)

Ngày đánh răng 2 lần

16.

Cho các câu lệnh sau hãy chỉ ra câu lệnh đúng:

a)

for i:=1 to 10; do x:=x+1;

b)

for i:=1 to 10 do x:=x+1;

c)

for i:=10 to 1 do x:=x+1;

d)

for i =10 to 1 do x:=x+1;

17.

Đoạn chương trình sau giải bài toán nào?

For I:=1 to M do

If (I mod 3 = 0) and (I mod 5 = 0) then

T := T + I;

a)

Tổng các số chia hết cho 3 hoặc 5 trong phạm vi từ 1 đến M

b)

Tổng các số chia hết cho 3 và 5 trong phạm vi từ 1 đến M

c)

Tổng các số chia hết cho 3 trong phạm vi từ 1 đến M

d)

Tổng các số chia hết cho 5 trong phạm vi từ 1 đến M

18.

Xác định số vòng lặp cho bài toán: tính tổng các số nguyên từ 1 đến 100

a)

Tất cả đều sai

b)

1

c)

99

d)

100

19.

Sau khi thực hiện đoạn chương trình sau:

S:=10;

For i:=1 to 4 do S:=S+i;

Giá trị của biến S bằng bao nhiêu?

a)

20

b)

14

c)

10

d)

0

20.

Việc đầu tiên mà câu lệnh While ... do cần thực hiện là gì?

a)

Thực hiện < câu lệnh > sau từ khóa Do

b)

Kiểm tra giá trị của < điều kiện >

c)

Thực hiện câu lệnh sau từ khóa Then

d)

Kiểm tra < câu lệnh >

21.

Vòng lặp While – do kết thúc khi nào

a)

Khi một điều kiện cho trước không được thỏa mãn

b)

Khi đủ số vòng lặp

c)

Khi tìm được Output

d)

Khi một điều kiện cho trước được thỏa mãn

22.

Cho biết câu lệnh sau Do thực hiện mấy lần trong đoạn chương trình sau:

i := 5;

While i>=1 do i := i – 1;

a)

1 lần

b)

2 lần

c)

5 lần

d)

6 lần

23.

Hãy cho biết kết quả của đoạn chương trình dưới đây:

a:=10;While a < 11 do write (a);

a)

Trên màn hình xuất hiện một số 10

b)

Trên màn hình xuất hiện 10 chữ a

c)

Trên màn hình xuất hiện một số 11

d)

Chương trình bị lặp vô tận

24.

Hoạt động nào sau đây lặp với số lần lặp chưa biết trước

a)

Ngày tắm hai lần

b)

Học bài cho tới khi thuộc bài

c)

Mỗi tuần đi nhà sách một lần

d)

Ngày đánh răng 2 lần

25.

Pascal sử dụng câu lệnh lặp nào sau đây để lặp với số lần chưa biết trước:

a)

For…do

b)

While…do

c)

If..then

d)

If…then…else

26.

Hãy đưa ra kết quả trong đoạn lệnh:

x:=1; While x<=5 do write(‘Hoa hau’);

a)

x:=1

b)

X>=5

c)

Hoa hau

d)

Không có kết quả.

27.

Sau khi thực hiện đoạn chương trình sau:

S:=0; For i:=1 to 5 do S:=S+i;

Giá trị của biến S bằng bao nhiêu?

a)

0

b)

10

c)

15

d)

20

28.

Em hãy cho biết đâu là câu lệnh nhập giá trị cho mảng A gồm 10 phần tử

a)

For i:= 2 to 10 do readln(A[i]);

b)

For i:= 1 to 10 do readln(B[i]);

c)

For i:= 1 to 10 do readln(A[i]);

d)

For i:= 1 to 10 do readln(A);

29.

Em hãy cho biết ý nghĩa của khai báo sau:

Var m : array[1..30] of integer;

a)

Khai báo mảng n có 50 phần tử kiểu số thực.

b)

Khai báo mảng m có 30 phần tử kiểu số thực.

c)

Khai báo mảng m có 30 phần tử kiểu số nguyên.

d)

Khai báo mảng n có 30 phần tử kiểu số nguyên.

30.

Khai báo nào đúng trong các khai báo sau:

a)

Var diem : aray[1..20] of real;

b)

Var diem : aray[1...20] of real;

c)

Var diem : aray[20...1] of real;

d)

A.   Var diem : aray[1.5...20.5] of real;

31.

Khai báo biến mảng: Var A : array[1..10] of real;.

Sử dụng câu lệnh For i:= 1 to 7 do readln(A[i]); để gán giá trị cho các phần tử trong biến A từ bàn phím, ta sẽ nhập được bao nhiêu giá trị?

a)

7

b)

8

c)

9

d)

10

32.

Var X: array[1..50] of integer; Em hãy cho biết số phần tử của mảng?

a)

1 phần tử

b)

51 phần tử

c)

50 phần tử

d)

49 phần tử

33.

Đoạn chương trình sau khai báo mấy biến mảng?

Var DiemToan, DiemVan: array[1..100] of real;

a)

1

b)

2

c)

3

d)

4

34.

Khai báo mảng A gồm 30 phần tử bắt đầu từ phần tử thứ 3, là các số nguyên thì ta khai báo gì:

a)

A: Array [1..30] of integer;

b)

A: Array [3..32] of integer;

c)

A: Array [3...33] of integer;

d)

Array [33] of integer;

35.

Cho biết ý nghĩa của câu lệnh sau: For i:=1 to 10 do Readln(a[i]);

a)

In giá trị cho biến i

b)

In dãy số trong mảng a

c)

Nhập giá trị cho biến i

d)

Nhập dãy số cho mảng a

36.

Để nhập một giá trị vào phần tử a[3] của mảng a thì ta viết là:

a)

Readln(a);

b)

Readln(a[3]);

c)

Readln(a[i]);

d)

Readln(a(3));

37.

Trong các cách khai báo biến mảng sau đây, cách khai báo nào là hợp lệ:

a)

Var a: array[1,100] of integer;

b)

Var a: array[1..100] of integer;

c)

Var a: array[1.5..100.5] of integer;

d)

Var a: array[1.5,100.5] of integer;

38.

Cách xác định số phần tử của dãy số?

a)

Chỉ số đầu – chỉ số cuối

b)

Chỉ số cuối – chỉ số đầu

c)

Chỉ số đầu – chỉ số cuối + 1

d)

Chỉ số cuối – chỉ số đầu + 1

39.

Đoạn chương trình sau dùng để làm gì?

TC:=0;

for i:=1 to n do

if a[i] mod 2= 0 then TC:=TC+a[i]

a)

Tính tổng các số từ 1 đến n

b)

Tính tổng các số trong dãy số

c)

Tính tổng các số chẳn trong dãy n số vừa nhập.

d)

In ra các số chẳn.

40.

Cú pháp khai báo biến mảng sau đây là đúng?

a)

Var <Tên mảng>:array[<chỉ số đầu>...<chỉ số cuối>] of <Kiểu dữ liệu>;

b)

Var <Tên mảng>:array[<chỉ số đầu>..<chỉ số cuối>] of <Kiểu dữ liệu>

c)

Var <Tên mảng>:array[<chỉ số cuối>..<chỉ số đầu>] of <Kiểu dữ liệu>;

d)

Var <Tên mảng>:array[<chỉ số đầu>..<chỉ số cuối>] of <Kiểu dữ liệu>;

41.

Số phần tử trong khai báo dưới đây là bao nhiêu?

Var hocsinh : array[12..80] of integer;

a)

80

b)

70

c)

69

d)

68

42.

Khai báo mảng nào là đúng trong các khai báo sau đây:

a)

var tuoi : array[1..15] of integer;

b)

var tuoi : array[1.5..10.5] of integer;

c)

var tuoi : aray[1..15] of real;

d)

var tuoi : array[1 … 15 ] of integer;

43.

Cú pháp khai báo dãy số nào sau đây đúng nhất?

a)

Var < tên dãy số > : array [ < chỉ số cuối > .. < chỉ số đầu >] of < kiểu dữ liệu >;

b)

Var < tên dãy số > : array [ < chỉ số đầu > .. < chỉ số cuối > ] of < kiểu dữ liệu >;

c)

Var < tên dãy số > : array [ < chỉ số cuối > : < chỉ số đầu > ] of < kiểu dữ liệu >;

d)

Var < tên dãy số > : array [ < chỉ số đầu > .. < chỉ số cuối >] for < kiểu dữ liệu >;

44.

Các cách nhập dữ liệu cho biến mảng sau, cách nhập nào không hợp lệ?

a)

readln(B[1]);

b)

readln(dientich[i]);

c)

readln(B5);

d)

read(dayso[9]);

45.

Cách khai báo biến mảng sau đây là đúng?

a)

Var X: Array[3.. 4.8] of Integer;

b)

Var X: Array[10 .. 1] of Integer;

c)

Var X: Array[4 .. 10] of Real;

d)

Var X: Array[10 , 13] of Real;

46.

Phát biểu nào dưới đây về chỉ số của mảng là phù hợp nhất?

a)

Dùng để truy cập đến một phần tử bất kì trong mảng

b)

Dùng để quản lí kích thước của mảng

c)

Dùng trong vòng lặp với mảng

d)

Dùng trong vòng lặp với mảng để quản lí kích thước của mảng

47.

Chọn câu phát biểu đúng về kiểu dữ liệu số của mảng?

a)

Có thể dùng tất cả các kiểu dữ liệu để làm kiểu dữ liệu của mảng

b)

Kiểu dữ liệu của mảng chỉ có thể là kiểu số nguyên, số thực, kiểu logic, kiểu ký tự

c)

Kiểu dữ liệu của mảng là kiểu của các phần tử của mảng, là Integer hoặc Real

d)

Kiểu dữ liệu của mảng phải được định nghĩa trước thông qua từ khóa VAR

48.

Cho khai báo mảng như sau: Var a : array[0..30] of integer ;

Để in giá trị phần tử thứ 20 của mảng một chiều A ra màn hình ta viết:

a)

Write(A[19]);

b)

Write(A(19));

c)

Readln(A[20]);

d)

Write([20]);

49.

Trong các cách nhập dữ liệu cho biến mảng bên dưới, cách nhập nào không hợp lệ?

a)

readln(chieucao5);

b)

readln(chieucao[i]);

c)

readln(B[1]);

d)

read(dayso[9]);

50.

Cú pháp để truy cập đến giá trị phần tử trong mảng là:

a)

< tên mảng >.[chỉ số]

b)

< tên mảng >=[chỉ số]

c)

< tên mảng > { chỉ số }

d)

< tên mảng >[chỉ số]

51.

Ưu điểm sử dụng biến mảng là gì?

a)

Lưu nhiều dữ liệu liên quan đến nhau bằng 1 biến duy nhất

b)

Giúp cho việc xử lí các dữ liệu ấy đơn giản hơn

c)

Cả hai đều đúng

d)

Cả hai đều sai

52.

Lần lượt thực hiện đoạn lệnh: a[1]:=2; a[2]:=3; t:=a[1]+a[2]+1; Giá trị của t là:

a)

t = 1

b)

t = 2

c)

t = 6

d)

t = 8

53.

Câu lệnh nào sau đây là câu lệnh nhập cho phần tử thứ 10 của biến mảng A?

a)

Readln(A[10])

b)

Readln(A[k]);

c)

Readln(A10);

d)

Readln(A[10]);

54.

Việc truy cập ở đây tới phần tử bất kì của mảng bao gồm các hành động nào?

a)

Gán giá trị

b)

Đọc giá trị

c)

Thực hiện tính toán

d)

Tất cả đều đúng

55.

Khi khai báo 1 biến có kiểu dữ liệu là kiểu mảng, biến đó được gọi là:

a)

kiểu dữ liệu

b)

giá trị mảng

c)

biến mảng

d)

dãy số

56.

Cách khai báo biến mảng sau đây là đúng?

a)

Var X: Array[3.. 4.8] of Integer;

b)

Var X: Array[10 .. 1] of Integer;

c)

Var X: Array[4 .. 10] of Real;

d)

Var X: Array[10 , 13] of Real;

57.

Phương án nào dưới đây là khai báo mảng hợp lệ?

a)

Var mang : ARRAY[0..10] OF INTEGER;

b)

Var mang : ARRAY[0..10] : INTEGER;

c)

Var mang : INTEGER OF ARRAY[0..10];

d)

Var mang : ARRAY(0..10) : INTEGER;

58.

Quá trình nhập dữ liệu mảng 1 chiều A, để các phần tử hiển thị như trong cửa sổ chương trình ta viết lệnh như sau:

a)

For i:= 1 to n do Begin Write(“Phan tu thu ”,i ); Readln(A[i]); End;

b)

For i:= 1 to n do Begin Readln('Phan tu thu ',i ); Readln(A[i]); End;

c)

For i:= 1 to n do Begin Write('Phan tu thu ',i ); Readln(A[i]); End;

d)

For i:= 1 to n do Begin Write('Phan tu thu ',i ); Write(A[i]); End;

59.

Cho đoạn chương trình sau thực hiện việc nào trong các việc sau (A là mảng số có N phần tử)? S:=0; For i:=1 to n do s:=s+A[i];

a)

Tính tổng các phần tử của mảng A

b)

In ra màn hình mảng A

c)

Đếm số phần tử của mảng A

d)

Không thực hiện việc cả

60.

Cho khai báo sau: Var 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:=0 to 16 do write(a[k]);

c)

For k:=15 downto 0 do write(a[k]);

d)

For k:=1 to 15 do write(a[k]);

61.

Cho đoạn chương trình sau thực hiện việc nào trong các việc sau (A là mảng số có N phần tử)? S:=0; For i:=1 to n do If A[i] > 0 then S:=S+A[i];

a)

Tính tổng các phần tử có giá trị chẳn của mảng A

b)

Tính tổng các phần tử có giá trị không âm của mảng A

c)

Tính tổng các phần tử của mảng A

d)

Tính tổng các phần tử có giá trị dương của mảng A

62.

Chương trình sau sẽ in ra màn hình công việc gì? For i:=1 to n do If a[i] mod 2 <> 0 then Write(a[i]);

a)

In ra các giá trị các phần tử chẵn của mảng a

b)

In ra các giá trị các phần tử lẻ của mảng a

c)

In ra tất cả giá trị các phần tử của mảng a

d)

In ra tổng giá trị các phần tử của mảng a

63.

Đoạn lệnh nào dưới đây thực hiện công việc in giá trị các phần tử có chỉ số chẵn lên màn hình?

a)

For i:= 1 to n do If A[i] mod 2 = 0 then write(A[i]);

b)

For i:= 1 to n do If A[i] < 0 then write(A[i]);

c)

For i:= 1 to n do If i mod 2 = 0 then write(A[i]);

d)

For i:= 1 to n do If i mod 2 <> 0 then write(A[i]);

64.

Cho đoạn chương trình sau thực hiện việc nào trong các việc sau (A là mảng số có N phần tử)? For i:= 1 to n do If A[i] = 10 then Dem := Dem + 1;

a)

Đếm số lần xuất hiện phần tử có giá trị bằng 10;

b)

Đếm số lần xuất hiện phần tử có chỉ số bằng 10;

c)

In ra tổng các giá trị các phần tử có giá trị bằng 10;

d)

In ra các phần tử có giá trị bằng 10;

65.

Khai báo biến mảng 1 chiều, các phần tử có kiểu số thực, khai báo nào sau đây là đúng?

a)

Var r :  Array [1..20] of real;

b)

Var r : Array [1..50] of integer;

c)

Var r = Array [1..100] of real;

d)

Var r := Array [1..150] of real;

66.

Có khai báo biến mảng 1 chiều như sau:

Var t : Array [1..100] of real;

Khi muốn dùng đến phần tử thứ 20 của mảng t thì cách nào sau đây là đúng?

a)

t[i:=20]

b)

t(20)

c)

t[20]

d)

Array[t]

67.

Khai báo biến mảng 1 chiều, phần tử là kiểu số nguyên, khai báo nào sau đây là đúng?

a)

Var r :  Array [1..1] of integer;

b)

Var r : Array [1..2] of interger;

c)

Var MANGNGUYEN = Array [1..3] of integer;

d)

Var MANGNGUYEN: Array [1..4] of real;

68.

Khi khai báo  biến:

Var s: string [10];

Muốn dùng tới ký tự thứ 5 của xâu theo cách nào sau đây là đúng?

a)

s5

b)

string[5]

c)

s(5)

d)

s[5]

69.

Cho đoạn lệnh sau:

S:=0;

for i:= 1 to N do S:=S+1;

Nếu N= 5 thì S=?

a)

S= 5

b)

S= 10

c)

S= 12

d)

S= 6

70.

Tìm giá trị S khi thực hiện đoạn chương trình sau đây

S:=0;

For i:=1 to 5 do S:= S+i;

a)

S=10.

b)

S= 1.

c)

S=0.

d)

S=15.

71.

Trong Pascal, câu lệnh nào sau đây được viết đúng?

a)

for i := 10 to 1 do writeln(‘A’);

b)

for i= 1 to 10 writeln(‘A’);

c)

for i to 10 do writeln(‘A’);

d)

for i := 1 to 10 do writeln(‘A’);

72.

Vòng lặp sau cho kết quả S bằng bao nhiêu:

S := 1; For i := 1 to 3 do S := S * 2;

a)

S =10

b)

S =8

c)

S =6

d)

S =12

73.

Xét đoạn chương trình sau.

for i:=1 to 10 do

if (i mod 3 = 0) or (i mod 5 = 0) then write( i : 2);

a)

3 5 7 9 10

b)

1 3 5 7 9

c)

2 4 6 8 10

d)

3 5 6 9 10

74.

Cho đoạn lệnh sau:

S:=0;

for i:= 1 to N do S:=S+1;

Nếu N= 5 thì S=?

a)

S=5

b)

S=10

c)

S=9

d)

S=6

75.

Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau thực hiện công việc gì ?

T := 0 ;

For i := 1 to N do

If (i mod 3 = 0) and (i mod 5 = 0) then T := T + i ;

a)

Tính tổng các số chia hết cho 3 hoặc 5 trong phạm vi từ 1 đến N;

b)

Tính tổng các ước thực sự của N;

c)

Tính tổng các số chia hết cho cả 3 và 5 trong phạm vi từ 1 đến N;

d)

Tìm một ước số của số N;

76.

Đoạn chương trình sau đưa ra màn hình kết quả gì ?

For i := 10 to 1 do write(i, ‘ ’);

a)

10 9 8 7 6 5 4 3 2 1

b)

Không đưa ra kết quả gì

c)

10 9 8 7 6 5 4 3 2 1

d)

1 2 3 4 5 6 7 8 9 10

77.

Cú pháp lệnh lặp For – do dạng tiến:

a)

for <biến đếm> = <Giá trị cuối> down <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ị đầu> to <Giá trị cuối> do <câu lệnh>;

d)

for <biến đếm> = <Giá trị cuối> downto <Giá trị đầu> do <câu lệnh>;

78.

Cho đoạn lệnh sau:

S:=0;

for i:= 1 to N do S:=S+3;

Nếu N= 5 thì S=?

a)

S=5

b)

S=15

c)

10

d)

25

79.

Max:=a[1];  For i:=2 to N do

          If A[i] > max then max :=A[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;

80.

Khai báo mảng dưới đây có bao nhiêu phần tử?

Var a : array[15..50] of real ;

a)

15

b)

50

c)

35

d)

36