wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Đề Pascal (ĐB)

Total questions: 68

Worksheet time: 34mins

Name
Class
Date
1.

Cho khai báo mảng như sau: Var a: array[1..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[9];

c)

a(10);

d)

a[11];

2.

Chọn cú pháp câu lệnh lặp đúng:

a)

FOR <biến đếm> = <giá trị đầu> TO <giá trị cuối>; DO <câu lệnh>;

b)

FOR <biến đếm> = <giá trị đầu> DOWNTO <giá trị cuối> 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> TO <giá trị đầu> DO <câu lệnh>;

3.

Hãy cho biết khai báo mảng sau có bao nhiêu phần tử:

Var hocsinh: array[19..39] of integer;

a)

20

b)

22

c)

19

d)

21

4.

Sau khi thực hiện đoạn chương trình sau, giá trị của biến tong bằng bao nhiêu:

tong := 0;

FOR i := 1 TO 3 DO tong := tong + i;

a)

6

b)

7

c)

5

d)

Đáp án khác

5.

Trong ngôn ngữ lập trình Pascal, để khai báo điểm trung bình môn Tin của CÁC HỌC SINH trong lớp (dãy điểm), ta sử dụng khai báo nào sau đây là hợp lý nhất?

a)

var DTB: array[1..50] of real;

b)

var DTB : real;

c)

var DTB : string;

d)

var DTB : array[1..50] of integer;

6.

Cú pháp khai báo mảng nào 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ố cuối>..<chỉ số đầu>] 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>] FOR <kiểu dữ liệu>;

7.

Kết quả của đoạn chương trình sau:

a : =1;

b: = 5;

while a<b DO

begin

write(a, ' ');

a:= a + 1;

end;

a)

1 2 3 4

b)

1 2 3 4 5

c)

2 3 4 5

d)

Đáp án khác

8.

Kết quả của đoạn chương trình sau:

a : =1;

b: = 5;

while a<b DO

write(a, ' ');

a:= a + 1;

a)

1 2 3 4

b)

1 2 3 4 5

c)

2 3 4 5

d)

Đáp án khác

9.

Kết quả của đoạn chương trình sau:

a : =1;

b: = 5;

while a<=b DO

begin

write(a, ' ');

a:= a + 1;

end;

a)

1 2 3 4

b)

1 2 3 4 5

c)

2 3 4 5

d)

Đáp án khác

10.

Kết quả của đoạn chương trình sau:

a : =1;

b: = 5;

while a<b DO

begin

a:= a + 1;

write(a, ' ');

end;

a)

1 2 3 4

b)

1 2 3 4 5

c)

2 3 4 5

d)

Đáp án khác

11.

Cho bài Toán tính tổng s=1+2+3+...+n. Để giải bài Toán trên ta có thể dùng:

a)

Cấu trúc lặp

b)

Cấu trúc rẽ nhánh

c)

Hàm Toán học sqrt()

d)

hàm Toán học sqr()

12.

Cho bài Toán xét một số là số chẵn hay số lẻ. Để giải bài Toán trên ta có thể dùng:

a)

Cấu trúc lặp

b)

Cấu trúc rẽ nhánh

c)

Hàm Toán học sqrt()

d)

hàm Toán học sqr()

13.

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

S:=1;

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

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

a)

24

b)

6

c)

9

d)

Đáp án khác

14.

Cách tính số vòng lặp (FOR...TO...DO):

a)

Số vòng lặp = giá trị đầu - giá trị cuối - 1

b)

Số vòng lặp = giá trị đầu - giá trị cuối + 1

c)

Số vòng lặp = giá trị cuối - giá trị đầu - 1

d)

Số vòng lặp = giá trị cuối - giá trị đầu + 1

15.

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

a)

Giặt đồ cho tới khi sạch

b)

Trong năm học, mỗi tuần đi nhà sách một lần

c)

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

d)

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

16.

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

a)

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

b)

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

c)

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

d)

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

17.

Đoạn chương trình sau có ý nghĩa gì:

FOR i:= 1 TO 10 DO

Readln(a[i]);

Write(a[8]);

a)

Nhập giá trị cho các phần tử của mảng, xuất ra màn hình số 8

b)

Yêu cầu người dùng nhập vào phần tử ở vị trí thứ 8 trong mảng

c)

Nhập vào số 8

d)

Nhập giá trị cho các phần tử của mảng, xuất ra màn hình giá trị phần tử ở vị trí thứ 8 trong mảng

18.

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 trong vòng lặp của mảng

c)

Dùng để truy cập đến một phần tử bất kỳ trong 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

19.

Ý nghĩa đoạn chương trình sau:

FOR i:= 1 TO d DO

If(i mod 2 = 0) then writeln(i);

a)

Tìm số nhỏ nhất từ 1 đến giá trị của biến a

b)

Xuất ra màn hình các số lẻ từ 1 đến giá trị của biến a

c)

Tìm số lớn nhất từ 1 đến giá trị của biến a

d)

Xuất ra màn hình các số chẵn từ 1 đến giá trị của biến a

20.

Kết quả của đoạn chương trình sau:

n := 7;

tong := 0;

while n>5 do

begin

tong := tong + n;

n := n - 1;

end;

write(tong);

a)

21

b)

Đáp án khác

c)

13

d)

26

21.

Ý nghĩa đoạn chương trình sau:

FOR i:=1 TO 10 DO

Writeln('co gang 10 dem nhe!');

a)

In ra màn hình 9 dòng chữ 'co gang 10 diem nhe!' (Kết quả không có dấu nháy đơn)

b)

In ra màn hình 10 dòng chữ 'co gang 10 diem nhe!' (Kết quả không có dấu nháy đơn)

c)

In ra màn hình 11 dòng chữ 'co gang 10 diem nhe!' (Kết quả không có dấu nháy đơn)

d)

In ra màn hình 8 dòng chữ 'co gang 10 diem nhe!' (Kết quả không có dấu nháy đơn)

22.

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

a)

FOR i:=0 TO 9 DO a := a+1;

b)

FOR i:=1 TO 10; DO a := a+1;

c)

FOR i:=10 TO 1 DO a := a+1;

d)

FOR i =10 TO 1 DO a := a+1;

23.

Với ngôn ngữ lập trình Pascal câu lệnh lặp FOR i:= 1 TO 10 DO x:=x+1, thì BIẾN ĐẾM i phải được khai báo là kiểu dữ liệu nào?

a)

String

b)

real

c)

Integer

d)

Char

24.

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...TO...DO

b)

If...then

c)

If...then...else

d)

WHILE...DO

25.

Cho biết kết quả của đoạn chương trình sau:

a := 10;

while (a>8) then write(a);

a)

Xuất ra một lần số 10

b)

Xuất ra mười lần số 10

c)

Đáp án khác

d)

Vòng lặp xuất ra số 10 vô hạn

26.

Cú pháp lệnh lặp với số lần chưa biết trước:

a)

While <điều kiện> TO <câu lệnh>;

b)

While <điều kiện> TO <câu lệnh 1> DO <câu lệnh 2>;

c)

While <điều kiện> DO <câu lệnh>;

d)

While <điều kiện> DO ;<câu lệnh>;

27.

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> trước DO

c)

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

d)

Kiểm tra <CÂU LỆNH> TRƯỚC TO

28.

Để nhập giá trị cho biến mảng M có chỉ số thứ k, ta sử dụng lệnh sau:

a)

Readln(M[k]);

b)

Readln(k[M]);

c)

Readln(k(M));

d)

Không có đáp án đúng

29.

Kết quả in ra màn hình của câu lệnh Writeln(‘5+20 = ‘, 20+5); là:

a)

5+20=25

b)

5+20=20+5

c)

20+5=25

d)

25 = 25

30.

Xác định đề bài của đoạn chương trình sau:

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

a)

Tìm giá trị nhỏ nhất của hai số a và b

b)

Tìm giá trị lớn nhất của hai số a và b

c)

Tìm giá trị tổng của hai số a và b

d)

Xét xem hai số có bằng nhau không

31.

Để 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.

32.

IF a>8 THEN b:=3 ELSE b:=5; Khi a nhận giá trị là 0 thì b nhận giá trị nào?

a)

0

b)

5

c)

8

d)

3

33.

Chương trình sau cho kết quả là gì?

Var a, b,: real; x,: integer ;

Begin readln(a, b);

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

Write(x);

End.

a)

Xuất ra màn hình số nhỏ nhất trong 2 số a, b đã nhập

b)

Xuất ra màn hình số lớn nhất trong 2 số a, b đã nhập

c)

Chương trình không thực hiện được do lỗi khai báo kiểu dữ liệu

d)

Đảo giá trị của 2 biến a, b cho nhau

34.

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;

35.

Tính tống S = 1 + 2 + 3 + … + n + … cho đến khi S>108. Điều kiện nào sau đây cho vòng lặp while – do là đúng:

a)

While S > = 108 do

b)

While S < 108 do

c)

While S < 1.0 E8 do

d)

While S > = E8 do

36.

Câu lệnh sau giải bài toán nào:

While M <> N do

If M > N then M:=M-N else N:=N-M;

a)

Tìm UCLN của M và N

b)

Tìm BCNN của M và N

c)

Tìm hiệu nhỏ nhất của M và N

d)

Tìm hiệu lớn nhất của M và N

37.

Đ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 những số chia hết cho 3 hoặc 5 trong khoanh vùng phạm vi từ 1 đến M

b)

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

c)

Tổng những số chia hết cho 3 trong khoanh vùng phạm vi từ 1 đến M

d)

Tổng những số chia hết cho 5 trong khoanh vùng phạm vi từ 1 đến M

38.

Cho chương trình viết bằng PASCAL sau đây : PROGRAM giaiPT; uses crt;

var A, B, C : real;

DELTA, X1, X2 : real;

BEGIN

write(‘ Nhap cac he so A, B, C : ’);

readln(A, B, C);

DELTA := B*B – 4*A*C;

if DELTA > 0 then

begin

X1 := ( – B – SQRT(DELTA) ) / (2*A);

X2 := – B / A – X1;

writeln(‘ X1 = ’, X1);

writeln(‘ X2 = ’, X2);

end;

readln

END.

Hãy chọn phát biểu sai trong các phát biểu sau đây:

a)

Đây là chương trình giải phương trình bậc hai nhưng không đưa ra thông báo gì khi chương trình có nghiệm kép;

b)

Đây là chương trình giải và thông báo nghiệm của một phương trình bậc hai nếu phương trình đó có nghiệm;

c)

Đây là chương trình giải phương trình bậc hai, nhưng không đưa ra thông báo

d)

Đây là chương trình giải phương trình bậc hai nhưng chưa xét hết các trường hợp;

39.

Trong các ngôn ngữ lập trình bậc cao thường có cấu trúc lặp để mô tả việc lặp đi lặp lại một số thao tác nào đó khi một điều kiện cho trước được thỏa mãn.

Để tổ chức việc lặp như vậy PASCAL dùng câu lệnh WHILE – DO có dạng: WHILE <điều kiện> DO <câu lệnh>;

Chọn phát biểu đúng trong các phát biểu dưới đây:

a)

Khi xác định được trước số lần lặp vẫn có thể dùng cấu trúc lặp WHILE – DO.

b)

Câu lệnh sau DO bao giờ cũng được thực hiện ít nhất một lần.

c)

Biểu thức điều kiện được tính và kiểm tra, nếu biểu thức đó sai thì câu lệnh sau DO được thực hiện.

d)

điều kiện trong cấu trúc lặp WHILE – DO có thể là một biểu thức kiểu nguyên hoặc kiểu kí tự.

40.

Cho hai dạng lặp FOR – DO trong PASCAL như sau :

Dạng lặp tiến : FOR <biến đếm> := <giá trị đầu> TO <giá trị cuối> DO <câu lệnh> ;

Dạng lặp lùi : FOR <biến đếm> := <giá trị cuối> DOWNTO <giá trị đầu> DO <câu lệnh> ;

Chọn phát biểu đúng trong các phát biểu sau đây:

a)

Ở dạng lặp lùi câu lệnh sau DO được thực hiện tuần tự, với biến đếm lần lượt nhận giá trị từ giá trị đầu đến giá trị cuối.

b)

Ở dạng lặp tiến câu lệnh sau DO luôn được thực hiện ít nhất một lần.

c)

Biểu thức giá trị đầu và biểu thức giá trị cuối có thể thuộc kiểu số thực.

d)

Ở dạng lặp lùi câu lệnh sau DO có thể không được thực hiện lần nào, đó là trường hợp giá trị cuối nhỏ hơn giá trị đầu.

41.

Trong ngôn ngữ lập trình Pascal, về mặt cú pháp câu lệnh nào sau đây là đúng với cấu trúc lặp While có một lệnh con?

a)

While (a>5) and (a<17) do a := a – 1

b)

While (a>5) and (a<17) do ; a := a – 1 ;

c)

While (a>5) and (a<17) do a := a – 1

d)

While a>5 and a<17 do a := a – 1 ;

42.

Hãy chọn cách dùng sai. Muốn dùng biến X lưu giá trị nhỏ nhất trong các giá trị của hai biến A, B có thể dùng cấu trúc rẽ nhánh như sau:

a)

if A < B then X := A else X := B;

b)

X := B; if A < B then X := A;

c)

if A <= B then X := A else X := B;

d)

if A < B then X := A

43.

Tham chiếu đến phần tử thứ i của mảng D được xác định bởi:

a)

D[',i',]

b)

D['i']

c)

D[i]

d)

D(i)

44.

Biểu thức điều kiện để kiểm tra một phần tử thứ i của mảng A có nằm trong (-5;10)?

a)

(A[i] > -5) or (A[i] < 10)

b)

(A[i] < -5) and (A[i] >10 )

c)

(-5 < A[i] < 10)

d)

(A[i] > -5) and (A[i] < 10)

45.

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

M:=1;

for i:= 1 to 5 do M:= M*1;

write(M);

cho biết kết quả?

a)

15

b)

5

c)

0

d)

120

46.

Đoạn chương trình sau là gì:

for i:= 10 down 1 do write (i,' ');

a)

2 4 5 6 7 8

b)

1 2 3 4 5 6 7 8 9 10

c)

Câu lệnh sai

d)

10 9 8 7 6 5  4 3 2 1

47.

Đoạn chương trình sau là gì:

for i:= 10 downto 1 to write (i,' ');

a)

2 4 5 6 7 8

b)

1 2 3 4 5 6 7 8 9 10

c)

Câu lệnh sai

d)

10 9 8 7 6 5  4 3 2 1

48.

Đoạn chương trình sau là gì:

for i:= 1 do 10 to write (i,' ');

a)

2 4 5 6 7 8

b)

1 2 3 4 5 6 7 8 9 10

c)

Câu lệnh sai

d)

10 9 8 7 6 5  4 3 2 1

49.

Trong câu lệnh lặp: for n:= 1 to 10 do begin ... end;

Câu lệnh ghép được thực hiện bao nhiêu lần?

a)

10 lần

b)

5 lần

c)

1 lần

d)

Không đời nào

50.

Khai báo biến mảng: A : array[1..7] of real;. Sử dụng câu lệnh For i:= 1 to 5 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)

4

b)

5

c)

6

d)

7

51.

Giả sử biến mảng A có 5 phần tử và giá trị của các phần tử lần lượt là 1, 4, 7, 2, 6. Khi thực hiện câu lệnh sau:

tb:= 0;

For i:= 1 to 5 do tb := tb + A[i];

Giá trị của biến tb là bao nhiêu?

a)

20

b)

18

c)

21

d)

22

52.

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

tong:= 20;

While tong>= 10 do

tong:=tong - 1;

Sau khi đoạn chương trình trên được thực hiện, giá trị của tổng bằng bao nhiêu:

a)

19

b)

9

c)

21

d)

10

53.

Sau khi đoạn chương trình sau được thực hiện, giá trị của biến S bằng bao nhiêu:

S:= 0;

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

a)

5

b)

10

c)

15

d)

20

54.

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

n:= 1; T:= 50;

While n>20 do

begin

n:=n+5;

T:=T - n

end;

Hãy cho biết giá trị của biến T bằng bao nhiêu?

a)

14

b)

17

c)

16

d)

50

55.

Sau khi đoạn chương trình sau được thực hiện, giá trị của biến S bằng bao nhiêu:

S:= 0;

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

a)

5

b)

10

c)

15

d)

20

56.

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

n:= 25; T:= 50;

While n>20 do

begin

n:=n+5;

T:=T - n

end;

Hãy cho biết giá trị của biến T bằng bao nhiêu?

a)

14

b)

17

c)

16

d)

50

e)

Lặp vô hạn

57.

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 lại nhiều lần.

c)

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

d)

Cả a, b, c đều sai.

58.

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

n:=1;

While n<10 do

Begin

n:=n+1;

Writeln(‘ xin chao’);

end;

Khi thực hiện chương trình câu “ xin chao” được viết ra màn hình mấy lần?

a)

0

b)

10

c)

9

d)

Vòng lặp vô tận

59.

Cho đoạn chương trình: j := 0; k := 2;

For i := 1 to 5 do j := j + 2; k := k + j;

Sau khi thực hiện đoạn chương trình trên, giá trị của biến k bằng bao nhiêu?

a)

12

b)

22

c)

32

d)

42

60.

Sau khi đoạn chương trình sau được thực hiện, giá trị của biến S bằng bao nhiêu:

S:= 10;

for i:= 1 to 2 do S:= S - i;

a)

5

b)

10

c)

15

d)

7

61.

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

a)

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

b)

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

c)

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

d)

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

62.

Trong câu lệnh lặp:

For i := 1 to 10 do j:= j + 2; write( j );

Khi kết thúc câu lệnh lặp trên, câu lệnh write( j ); được thực hiện bao nhiêu lần?

a)

10 lần

b)

1 lần

c)

5 lần

d)

Không thực hiện

63.

Cho đoạn chương trình: J:= 0; For i:= 1 to 5 do J:= J + i; Sau khi thực hiện đoạn chương trình trên, giá trị của biến j bằng bao nhiêu?

a)

12

b)

22

c)

15

d)

42

64.

Trong Pascal, câu lệnh nTrong Pascal, câu lệnh nào sau đây là đúng?ào sau đây là đúng?

a)

S:=1;

b)

S:=2; While S<10 do write(S);

c)

n:=2 while n<5 do write(‘A’);

d)

Cả A và B.

65.

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

J:= 0;

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

Sau khi thực hiện đoạn chương trình trên, giá trị của biến j bằng bao nhiêu?

a)

2

b)

3

c)

4

d)

5

66.

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

n:=1; T:=14;

While n>20 do

begin

n:=n+5;

T:=T – n;

end;

Hãy cho biết giá trị của biến T bằng bao nhiêu?

a)

14

b)

15

c)

16

d)

17

67.

Trong câu lệnh khai báo biến mảng, phát biểu nào sau đây đúng:

a)

Chỉ số đầu và chỉ số cuối là 2 số nguyên.

b)

Chỉ số đầu nhỏ hơn chỉ số cuối.

c)

Kiểu dữ liệu có thể là integer hoặc real.

d)

Cả ba ý trên.

68.

Cho biết giá trị của biến x và y sau khi thực hiện đoạn chương trình sau:

X:= 0; Y:= 3;

For i:= 1 to 4 do

X:= X + Y;

a)

11

b)

12

c)

13

d)

14