wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

NGAN HANG CAU HOI GIUA KI 2 TIN HOC 11

Total questions: 113

Worksheet time: 2hrs 34mins

Name
Class
Date
1.

Cú pháp lệnh lặp For – do dạng lùi:

a)

for < biến đếm> = < Giá trị cuối >downto < 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 >down < 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>;

2.

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

a)

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

d)

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

3.

Trong vòng lặp For – do dạng tiến. Giá trị của biến đếm

a)

Tự động giảm đi 1

b)

Tự động điều chỉnh

c)

Chỉ tăng khi có câu lệnh thay đổi giá trị

d)

Được giữ nguyên

4.

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

5.

Trong lệnh lặp For – do: (chọn phương án đúng nhất)

a)

Giá trị đầu phải nhỏ hơn giá trị cuối

b)

Giá trị đầu phải nhỏ hơn hoặc bằng giá trị cuối

c)

Giá trị đầu phải lớn hơn giá trị cuối

d)

Giá trị đầu phải bằng giá trị cuối

6.

Lệnh lặp For – do được sử dụng khi: (chọn phương án đúng nhất)

a)

Lặp với số lần biết trước

b)

Lặp với số lần chưa biết trước

c)

Lặp với số lần có thể biết trước

d)

Lặp với số lần không bao giờ biết trước

7.

Cấu trúc lặp với số lần chưa biết trước:

a)

while <điều kiện> do <câu lệnh>;

b)

for <điều kiện> do <câu lệnh>;

c)

while <câu lệnh> do <điều kiện>;

d)

while not <điều kiện> do <câu lệnh>

8.

Có thể dùng câu lệnh While – do thay cho câu lệnh For – do được không?

a)

Không thể thay thế

b)

Chỉ thay thế được khi vòng lặp đó chưa biết trước số lần lặp.

c)

Luôn thay thế được

d)

Tỉ lệ thay thế được là 50%

9.

Trong câu lệnh While – do, điều kiện là: (Chọn phương án đúng nhất)

a)

Biểu thức logic

b)

Biểu thức quan hệ

c)

Biểu thức số học

d)

Hằng đẳng thức

10.

Trong vòng lặp While – do, câu lệnh được thực hiện khi:

a)

Điều kiện còn đúng

b)

Điều kiện sai

c)

Điều kiện không xác định

d)

Không cần điều kiện

11.

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

a)

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

b)

Khi đủ số vòng lặp

c)

Khi tìm được Output

d)

Tất cả các phương án

12.

Mọi quá trình tính toán đều có thể mô tả và thực hiện dựa trên cấu trúc cơ bản là:

a)

Cấu trúc tuần tự

b)

Cấu trúc rẽ nhánh

c)

Cấu trúc lặp

d)

Cả ba cấu trúC

13.

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

a)

While S>=108do

b)

While S < 108 do

c)

While S < 1.0E8 do

d)

While S >= E8 do

14.

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

15.

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

            While not (1/(a+N) < 0.0001) do

                        Begin

                                    N:=N+1;

                                    S:=S+ 1.0/(a+N);

                        End;

a)

Tính tổng các số nhỏ hơn 0,0001

b)

Tính tổng các số lớn hơn 0,0001

c)

Tính tổng  cho đến khi 1/(A+N)>0,0001

d)

Tính tổng cho đến khi 1/(A+N)<0,0001

16.

Đ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

17.

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

            S:=1.0/a;

            For n:=100 downto 1 do

                        S:= S + 1.0/(a+N);

a)

Tính tổng

b)

Tính tổng

c)

Tính tổng s=1/a+1/(a+1)+1/(a+2)++1/(a+100)s=1/a+1/(a+1)+1/(a+2)+⋯+1/(a+100)

d)

Tính tổng

18.

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 tiến câu lệnh sau DO luôn được thực hiện ít nhất một lần.

b)

Ở 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.

c)

Ở 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

d)

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.

19.

Để 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 sai trong các phát biểu dưới đây :

a)

Điều kiện là biểu thức cho giá trị logic

b)

Về mặt cú pháp, những biểu thức có thể điền vào điều kiện trong cấu trúc WHILE – DO cũng có thể điền vào điều kiện trong cấu trúc rẽ nhánh IF – THEN

c)

Không cần có lệnh thay đổi điều kiện trong mỗi câu lệnh sau DO trong cấu trúc lặp này, vì giá trị của biểu thức điều kiện được tự động điều chỉnh sau mỗi lần thực hiện câu lệnh lặp

d)

Nếu không có lệnh nào thay đổi điều kiện trong mỗi câu lệnh sau DO thì có thể gặp hiện tượng lặp vô hạn khi thực hiện chương trình, nghĩa là lặp không dừng được

20.

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

a)

Để mô tả việc lặp đi lặp lại một số thao tác (hoặc câu lệnh) trong một thuật toán ta có thể dùng cấu trúc lặp

b)

Tùy từng trường hợp cụ thể (khi mô tả một thuật toán), khi thì ta biết trước số lần lặp, khi thì ta không cần hoặc không xác định được trước số lần lặp các thao tác nào đó.

c)

Có thể dùng cấu trúc lặp để thay cho cấu trúc rẽ nhánh trong mô tả thuật toán.

d)

Không thể mô tả được mọi thuật toán bằng ngôn ngữ lập trình bậc cao nếu không dùng cấu trúc lặp

21.

Chương trình sau giải bài toán gì:

Var M, N, I : integer;

BEGIN

            clrscr;

            M := 0 ;

            N := 0 ;

            For I := 1 TO 10000 do

                Begin

                        if  (  (I mod 3) = 0 )  then M := M + 1 ;

                        if  (  (I mod 3) = 0 ) and ( (I mod 5) = 0 ) then N := N + 1 ;

                End;

            writeln( M,‘     ’, N );

            readln

END.

a)

Đây là chương trình đếm số các số nguyên trong khoảng từ 1 đến 10000 là bội số của 3

b)

Đây là chương trình đếm và thông báo ra màn hình rằng trong khoảng từ 1 đến 10000 có bao nhiêu số nguyên là bội số của 3 và có bao nhiêu số là bội số chung của 3 và 5

c)

Đây là chương trình đếm số các số nguyên nhỏ hơn 10000 và chia hết cho 3

d)

Đây là chương trình đếm số các số nguyên trong khoảng từ 1 đến 10000 là bội số của 3 và 5

22.

Đoạn chương trình sau thực hiện công việc gì ?

i := 0 ;                        while i <> 0 do write(i, ‘ ’) ;

a)

Đưa ra màn hình 10 chữ số 0

b)

Không đưa ra thông tin gì;

c)

Lặp vô hạn việc đưa ra màn hình số 0

d)

Đưa ra màn hình một chữ số 0

23.

Đoạn chương trình sau cho kết quả trên màn hình là gì với i là biến số nguyên:

For i := 1 to 100 do if i mod 9 = 0 then write(i, ‘ ’);

a)

1 2 3 4 5 6 … 100

b)

91827364554637281

c)

9 18 27 36 45 54 63 72 81 90 99

d)

9  9  9  9  9  9  9  9  9  9

24.

Hãy cho biết đoạn chương trình sau làm công việc gì ?

I := 0 ; T := 0 ;

While I < 10000 do

                        Begin

                                    T := T + I ;

                                    I := I + 2 ;

                        End ;

a)

Tính tổng các số tự nhiên nhỏ hơn hoặc bằng 10000

b)

Tính tổng các số tự nhiên chẵn nhỏ hơn 10000

c)

Tính tổng các số tự nhiên chẵn nhỏ hơn hoặc bằng 10000

d)

Tính tổng các số tự nhiên nhỏ hơn hoặc 10000

25.

Đoạn chương trình sau làm công việc gì? (Chọn phương án đúng nhất)

            While a < (b+25)   do                      readln(a,b);

a)

Lặp lại việc nhập a,b cho đến khi a < b+25

b)

Lặp lại việc nhập a,b cho đến khi a> b+25

c)

Lặp lại việc nhập a,b cho đến khi a ≥ b+ 25

d)

Lặp lại việc nhập a,b cho đến khi a ≤ b+25

26.

Đoạn chương trình sau làm công việc gì? (Chọn phương án đúng nhất)

            While a <> 2*b   do

Begin    a:=a+1;     b:=b+1;      

End;

a)

Trong khi a ≠ 2b thì lặp lại việc tăng a, b, n lên 1 đơn vị

b)

Lặp lại việc tăng a, b lên 1 đơn vị cho đến khi a ≠ 2b

c)

.Lặp lại việc tăng a, b lên 1 đơn vị cho đến khi a = 2b

d)

Lặp lại việc tăng a, b lên 1 đơn vị cho đến khi a > 2b

27.

Đề giải bài toán ta dùng lệnh lặp nào dưới đây:

a=(n=1)1001/na=\sum_(^{ }n=1)^100▒1/n

a)

For i:=1 to n do a:=a+1/n;

b)

For n:=1 to 100 do a:=a+ 1/n;

c)

For n:=100 to 1 do a:=a+1/n

d)

For i:=1 to 100 do a:=a+1/n;

28.

: Cho chương trình sau: Màn hình cho kết quả gì khi nhập a = 5000 và b = 10000.

a)

3     13720.0

b)

1     10000.0

c)

2      5000.0

d)

3 10000.0

29.

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ự

30.

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

31.

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

32.

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

33.

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

34.

Thế nào là khai báo biến mảng gián tiếp?

a)

Khai báo mảng của các bản ghi

b)

Khai báo mảng xâu kí tự

c)

Khai báo mảng hai chiều

d)

Khai báo thông qua kiểu mảng đã có

35.

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;

36.

Cho khai báo mảng và đoạn chương trình như sau:

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 chỉ số của phần tử lớn nhất trong mảng

b)

Tìm chỉ số của phần tử nhỏ nhất trong mảng

c)

Tìm phần tử lớn nhất trong mảng;

d)

Tìm phần tử nhỏ nhất trong mảng;

37.

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(9);

c)

a[9];

d)

a(10);

38.

Mảng là kiểu dữ liệu biểu diễn một dãy các phần tử thuận tiện cho:

a)

chèn thêm phần tử

b)

xóa một phần tử

c)

truy cập đến phần tử bất kì

d)

chèn thêm phần tử và xóa phần tử

39.

Khẳng định nào đúng về mảng 1 chiều?

a)

Mảng một chiều là dãy vô hạn các phần tử cùng kiểu.

b)

Mảng được đặt tên và mỗi phần tử của mảng có một chỉ số.

c)

Mảng một chiều là dãy hữu hạn các phần tử khác kiểu.

d)

Số lượng phần tử của mảng không được xác định

40.

Các phần tử của mảng có thể có những kiểu dữ liệu nào?

a)

Kiểu số nguyên.  

b)

Kiểu số thực

c)

Các kiểu dữ liệu chuẩn.

d)

Kiểu kí tự và logic

41.

Hãy chọn khai báo đúng trong các khai báo trực tiếp sau:

a)

Var 2A:array[1..20] of integer;    

b)

Var A:array[1-20] of integer;

c)

Var A:array[1..20] of integer;

d)

Var A:array(1..20) of integer;

42.

Hãy chọn khai báo sai trong các khai báo gián tiếp sau:

a)

Type A:array[-5..5] of real; var B= A;

b)

Type A=array[-5..5] of real; var B: A;

c)

Type mang=array[1..20] of real; var C: mang;

d)

Type C= array [1..250] of integer; var A: C;

43.

Hãy chọn cú pháp khai báo đúng trong các khai báo sau:

a)

Var <tên mảng > :< Kiểu dữ liệu>;

b)

Var < tên biến mảng >: [ kiểu chỉ số ] of < kiểu phần tử>;

c)

Var < tên biến mảng >: array [ kiểu chỉ số ]< kiểu phần tử>;

d)

Var < tên biến mảng >: array [ kiểu chỉ số ] of < kiểu phần tử>;

44.

Khi nào sử dụng đến kiểu dữ liệu mảng?

a)

Khi cần sử dụng một phần tử rời rạc

b)

Khi cần sử dụng để lưu trữ cho tương lai.

c)

Khi cần sử dụng các phần tử khác nhau nhưng  khác kiểu.

d)

Khi cần sử dụng các phần tử có cùng kiểu.

45.

Cú pháp khai báo trực tiếp biến mảng 1 chiều:

a)

<$> Var <tên biến mảng>: array (chỉ số đầu … chỉ số cuối) of <kiểu phần tử>;

b)

Var <tên biến mảng>: array [chỉ số đầu … chỉ số cuối] of <kiểu phần tử>;

c)

Var <tên biến mảng>: array [chỉ số đầu .. chỉ số cuối] of <kiểu phần tử>;

d)

Var <tên biến mảng>: array [kiểu chỉ số] of <kiểu dữ liệu>;

46.

Phát biểu nào sau đây đúng nhất:

a)

Kiểu chỉ số thường là một đoạn số nguyên liên tục

b)

Kiểu chỉ số phải là đoạn số nguyên

c)

Kiểu chỉ số có thể là đoạn số thực

d)

Kiểu chỉ số thuộc kiểu gì cũng được

47.

Phát biểu nào sau đây đúng nhất:

a)

Kiểu phần tử là kiểu dữ liệu của các phần tử trong mảng

b)

Kiểu phần tử cùng kiểu với kiểu chỉ số

c)

Kiểu phần tử phải là kiểu số

d)

Kiểu phần tử là kiểu của chỉ số đầu và chỉ số cuối

48.

Phát biểu nào sau đây là sai:

a)

Mảng một chiều là dãy hữu hạn các phần tử cùng kiểu

b)

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

c)

Cần xác định kiểu phần tử của mảng

d)

Phần tử trong mảng có thể có nhiều hơn 1 chỉ số

49.

Đâu không là yếu tố cần xác định khi xây dựng mảng 1 chiều:

a)

Tên kiểu mảng, số lượng phần tử

b)

Cách tham chiếu đến phần tử

c)

Cách khai báo biến mảng, kiểu dữ liệu của các phần tử

d)

Kiểu dữ liệu của chỉ số

50.

Để khai báo số phần tử của mảng 1 chiều, 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

51.

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;

52.

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;

53.

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

a)

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

b)

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

c)

mang : ARRAY[0..10] OF INTERGER;

d)

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

54.

Câu lệnh dùng để nhập giá trị cho phần tử trong mảng

a)

readln(<Tên mảng>[<Chỉ số đầu>]);

b)

readln(<Tên mảng>[<Chỉ số cuối>]);

c)

readln(<Tên mảng>[<Biến đếm>]);

d)

readln(<Tên mảng>[<Kiểu chỉ số>]);

55.

Với khai báo biến mảng    Var a:array [1..50] of real; các phần tử trong mảng có thể nhận giá trị nào trong các giá trị sau?

a)

1.0E3

b)

1.0D2

c)

1.0A1

d)

1.0C1

56.

Cho dãy số nguyên a gồm các phần tử: 2  3  4  5  1  6  3. Tham chiếu đến giá trị của phần tử thứ 3 ta viết?

a)

4

b)

a[4]

c)

a[3]

d)

3

57.

Cho khai báo mảng so như sau: Var so:array[1..51-2] of byte; mảng so chứa tối da bao nhiêu phần tử?

a)

49

b)

50

c)

51

d)

Khai báo sai

58.

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

For j:=n downto 2 do

            Fori:=1 to j – 1 do               If a[i] <= a[i+i] then

            Begin

            T:=a[i];          A[i]:=a[i+1];             A[i+1] :=t;

            End;

a)

Sắp xếp dãy a thành dãy không tăng

b)

Sắp xếp dãy a thành dãy không giảm

c)

Sắp xếp dãy a thành dãy tăng

d)

Sắp xếp dãy a thành dãy giảm

59.

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

M:=a[1];       

Fori:=2 to n do

If a[i]<M then M:=M else M:=a[i];

a)

Tìm số lớn nhất của dãy số

b)

Tìm số nhỏ nhất của dãy số

c)

So sánh các số trong dãy với số đầu tiên

d)

Đáp án khác

60.

Trong ngôn ngữ lập trình Pascal câu lệnh nào sau đây là đúng cú pháp?

a)

For i:=1 to n do; if a[i] mod 2 = 0 then writeln(a[i], ‘la so le’);

b)

For i:=1 to n do if a[i] mod 2 = 0 then writeln(a[i] ‘la so le’);

c)

<$> For i:=1 to n do if a[i] mod 2 = 0 then writeln(‘a[i], ‘la so le’);

d)

For i:=1 to n do if a[i] mod 2 = 0 then writeln(a[i], 'la so le’);

61.

Trong ngôn ngữ lập trình Pascal <NB>lệnh nào sau đây là sai cú pháp?

a)

For i:=10 downto 1 do if a[i] div 2 = 0 then write(a[i] = 1);

b)

For i:=10 downto 1 do if a[i] div 2 = 0 then write(a[i], ‘= 1’);

c)

For i:=10 downto 1 do if a[i] div 2 = 0 then write(a[i] = 0);

d)

For i:=10 downto 1 do if a[i] div 2 = 0 then write(a[i], ‘≥ 1’);

62.

Cho khai báo biến mảng sau:

Var a:array[0..16] of byte;

<NB>lệnh nào sau đây in ra tất cả các phần tử của mảng.

a)

For i:=1 to 16 do write(a[i]);

b)

For i:= 0 to 15 do write(a[i]);

c)

For i:=16 downto 0 do write(a[i]);

d)

For i:=16 downto 1 do write(a[i]);

63.

Cho khai báo biến mảng sau:

Var a:array[0..16] of byte;

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

a)

a[9]

b)

a[10]

c)

a[11]

d)

a(10)

64.

Đoạn chương trình sau khi thực hiện cho kết quả gì?       

Var a:array[1..3] of byte; i:byte;       

  Begin               

For i:=1 to 3 do a[i]:=i;                      For i:=1 to 3 do                      If a[i] mod 2 = 0 then Write(a[i]);                End.

a)

1

b)

2

c)

3

d)

1 2 3

65.

Cho chương trình sau:

var f:array[0..50] of word;    i:byte;

Begin

f[0]:=0;     f[1]:=1;

     for i:=2 to 10 do

     begin    f[i]:=f[i-1]+f[i-2];

              write(f[i]:4);                 end;

End

Phần tư a[6] có giá trị là:

a)

6

b)

7

c)

8

d)

9

66.

Sau khi chạy chương trình dưới, giá trị của f là bao nhiêu:

Var a:array[1..100] of byte;     i,f,d:byte;

begin

     for i:=1 to 100 do  a[i]:=i;

d:=a[2]-a[1];

     for i:=2 to 100 do     if a[i]=a[i-1]+d then f:=1 else f:=0;

     write(f);

readln      End.

a)

0

b)

1

c)

100 số 1

d)

100 số 0

67.

Sau khi chạy chương trình dưới, giá trị của f là bao nhiêu:

var a:array[1..100] of byte;    i,f,d:byte;

begin

     for i:=1 to 10 do a[i]:=2*i+1;

d:=a[2]-a[1];

     for i:=2 to 10 do     if a[i]+d=a[i+1] then f:=1 else f:=0;

     write(f);

end

a)

0

b)

1

c)

10 số 0

d)

10 số 1

68.

Chương trình sau thực hiện giải bài toán gì?

a)

Đếm số lượng số nguyên tố trong dãy

b)

Đếm số lượng số chẵn trong dãy

c)

Đếm số lượng số hỗn hợp trong dãy

d)

Đáp án khác

69.

Chương trình sau giải bài toán gì:

k:=5-1;

for i:=1 to n do if a[i] mod k = 0 then s:=s+a[i];

a)

Tính tổng các phần tử chẵn trong mảng

b)

Tính tổng các phần tử trong mảng là bội của 5

c)

Tính tổng các phần tử trong mảng là bội của k

d)

Tính tổng các phần tử lẻ trong mảng

70.

> Cho đoạn chương trình giải bài toán tìm phần tử có giá trị lớn nhất trong mảng và chỉ số của phần tử tìm được như sau:

j:=1;

For i:=2 to n do if a[i] > a[j] then j:=i;

Write(‘gia trị lớn nhat la’,a[j], ‘chi so:’,j);

Giải thích nào dưới đây cho đoạn chương trình trên là hợp lí

a)

Đưa ra tất cả các phần tử lớn nhất và chỉ số của nó

b)

Nếu có nhiều phần tử cùng có giá trị lớn nhất thì đưa ra phần tử có chỉ số nhỏ nhất

c)

Nếu có nhiều phần tử cùng có giá trị lớn nhất thì đưa ra phần tử có chỉ số lớn nhất

d)

Đưa ra 1 giá trị lớn nhất và tất cả các chỉ số

71.

Cho đoạn chương trình giải bài toán tìm phần tử có giá trị lớn nhất trong mảng và chỉ số của phần tử tìm được như sau:

j:=1;

For i:=2 to n do if a[i] > a[j] then j:=i;

Write(‘gia trị lớn nhat la’,a[j], ‘chi so:’,j);

Giải thích nào dưới đây cho đoạn chương trình trên là hợp lí

a)

Đưa ra tất cả các phần tử lớn nhất và chỉ số của nó

b)

Nếu có nhiều phần tử cùng có giá trị lớn nhất thì đưa ra phần tử có chỉ số nhỏ nhất

c)

Nếu có nhiều phần tử cùng có giá trị lớn nhất thì đưa ra phần tử có chỉ số lớn nhất

d)

Đưa ra 1 giá trị lớn nhất và tất cả các chỉ số

72.

mảng b trong đoạn chương trình dưới đây là:

var a,b:array[1..100] of byte;

j:=1;

for i:=1 to n do     if a[i] mod 5 = 0 then

     begin     b[j]:=a[i];

                        j:=j+1;     end;

a)

Bao gồm các phần tử của mảng a                 

b)

Bao gồm các phần tử trong mảng a

c)

Bao gồm các phần tử chia hết cho 5

d)

Bao gồm các phần tử chia hết cho 5 trong mảng a

73.

Cho chương trình sau:

var ds:array[1..20] of byte;    a,b c i:byte;

begin

for i:=1 to 10 do ds[i]:=i;

a:=ds[10];      b:=ds[9];        i:=1;

while i<=10 do

begin

c:=ds[i];       if (a+b>c) and (a+c>b) and (b+c>a) then

     begin

writeln('bo 3 so ',a:4,b:4,c:4,' lap thanh tam giac');

a:=ds[i+1];          b:=ds[i+2];          i:=i+3;

     end;

i:=i+1;

end;

readln             End.

Chương trình trên có bao nhiêu bộ số lập thành tam giác?

a)

1

b)

2

c)

3

d)

4

74.

Các bộ số lập thành tam giác ở chương trình trên:

<$>

<$>

<$>

<$>

a)

Là các số giống nhau

b)

Các số trong bộ được lặp lại ít nhất 2 lần

c)

Các bộ là khác nhau

d)

Các bộ có thể trùng nhau

75.

 Giá trị của bộ đầu tiên trong chương trình trên là:

a)

7 8 10

b)

3 4 5

c)

10 9 2

d)

3 4 6

76.
Độ dài tối đa của xâu kí tự trong Pascal là:
a)
255
b)
0
c)
256
d)
Không giới hạn
77.
Xâu kí tự có độ dài bằng 0 gọi là:
a)
Không tồn tại
b)
Xâu rỗng
c)
Chứa kí tự 0
d)
Xâu ngắn
78.
Kí tự đầu tiên trong xâu được đánh số là:
a)
0
b)
1
c)
Do người lập trình đặt
d)
Không quy định
79.
Cú pháp khai báo biến xâu là:
a)
Var <tên biến>:string[độ dài lớn nhất của xâu];
b)
Var tên biến :string[độ dài lớn nhất của xâu];
c)
Var <tên biến>:string(độ dài lớn nhất của xâu);
d)
Var <tên biến>:string(độ dài lớn nhất của xâu);
80.
Để khai báo biến xâu ta sử dụng tên dành riêng:
a)
Array
b)
String
c)
Type
d)
Const
81.
Thủ tục Delete(a,b,c) có nghĩa là:
a)
Xóa c kí tự của biến xâu a bắt đầu từ vị trí b
b)
Xóa a kí tự của biến xâu b bắt đầu từ vị trí c
c)
Xóa a kí tự của biến xâu b bắt đầu từ vị trí c
d)
Xóa c kí tự của biến xâu b bắt đầu từ vị trí a
e)
Xóa a kí tự của biến xâu c bắt đầu từ vị trí b
82.
Hàm Copy(a,b,c) có nghĩa là:
a)
Tạo xâu gồm a kí tự liên tiếp bắt đầu từ vị trí b của xâu c
b)
Tạo xâu gồm b kí tự liên tiếp bắt đầu từ vị trí c của xâu a
c)
Tạo xâu gồm c kí tự liên tiếp bắt đầu từ vị trí a của xâu b
d)
Tạo xâu gồm c kí tự liên tiếp bắt đầu từ vị trí b của xâu a
83.
Thủ tục Insert(a,b,c) có nghĩa là:
a)
Chèn xâu c vào xâu b bắt đầu ở vị trí a
b)
Chèn xâu a vào xâu c bắt đầu ở vị trí b
c)
Chèn xâu a vào xâu b bắt đầu ở vị trí c
d)
Chèn xâu b vào xâu a bắt đầu ở vị trí c
84.
Tham chiếu đến phần tử của xâu được xác định bởi:
a)
Tên biến xâu và chỉ số đặt trong cặp ngoặc ( và )
b)
Tên biến xâu và chỉ số đặt trong cặp ngoặc [ và ]
c)
Tên biến xâu và chỉ số đặt trong cặp ngoặc { và }
d)
Tên biến xâu và chỉ số đặt trong cặp ngoặc “ và ”
85.
Độ dài tối đa của xâu kí tự trong Pascal là:
a)
255
b)
0
c)
256
d)
Không giới hạn
86.
Xâu kí tự có độ dài bằng 0 gọi là:
a)
Không tồn tại
b)
Xâu rỗng
c)
Chứa kí tự 0
d)
Xâu ngắn
87.
Kí tự đầu tiên trong xâu được đánh số là:
a)
0
b)
1
c)
Do người lập trình đặt
d)
Không quy định
88.
Cú pháp khai báo biến xâu là:
a)
Var <tên biến>:string[độ dài lớn nhất của xâu];
b)
Var tên biến :string[độ dài lớn nhất của xâu];
c)
Var <tên biến>:string(độ dài lớn nhất của xâu);
d)
Var <tên biến>:string(độ dài lớn nhất của xâu);
89.
Để khai báo biến xâu ta sử dụng tên dành riêng:
a)
Array
b)
String
c)
Type
d)
Const
90.
Thủ tục Delete(a,b,c) có nghĩa là:
a)
Xóa c kí tự của biến xâu a bắt đầu từ vị trí b
b)
Xóa a kí tự của biến xâu b bắt đầu từ vị trí c
c)
Xóa a kí tự của biến xâu b bắt đầu từ vị trí c
d)
Xóa c kí tự của biến xâu b bắt đầu từ vị trí a
e)
Xóa a kí tự của biến xâu c bắt đầu từ vị trí b
91.
Hàm Copy(a,b,c) có nghĩa là:
a)
Tạo xâu gồm a kí tự liên tiếp bắt đầu từ vị trí b của xâu c
b)
Tạo xâu gồm b kí tự liên tiếp bắt đầu từ vị trí c của xâu a
c)
Tạo xâu gồm c kí tự liên tiếp bắt đầu từ vị trí a của xâu b
d)
Tạo xâu gồm c kí tự liên tiếp bắt đầu từ vị trí b của xâu a
92.
Thủ tục Insert(a,b,c) có nghĩa là:
a)
Chèn xâu c vào xâu b bắt đầu ở vị trí a
b)
Chèn xâu a vào xâu c bắt đầu ở vị trí b
c)
Chèn xâu a vào xâu b bắt đầu ở vị trí c
d)
Chèn xâu b vào xâu a bắt đầu ở vị trí c
93.
Tham chiếu đến phần tử của xâu được xác định bởi:
a)
Tên biến xâu và chỉ số đặt trong cặp ngoặc ( và )
b)
Tên biến xâu và chỉ số đặt trong cặp ngoặc [ và ]
c)
Tên biến xâu và chỉ số đặt trong cặp ngoặc { và }
d)
Tên biến xâu và chỉ số đặt trong cặp ngoặc “ và ”
94.
Một số thao tác xử lí xâu là:
a)
Phép gán, phép so sánh
b)
Phép ghép, phép so sánh
c)
Phép cộng, phép gán
d)
Phép so sánh, phép trừ
95.
Cho xâu S là “Ha Noi – Viet Nam” , kết quả của hàm Pos(‘Viet Nam’,S) là:
a)
10
b)
9
c)
11
d)
12
96.
Sau khi thực hiện đoạn chương trình sau, kết quả của S là: S:= ‘Mua thu Ha Noi’; Delete(s,8,8); Insert(Mua thu,s,1);
a)
Ha Noi
b)
Mua thu Ha Noi
c)
Ha Noi Mua thu
d)
Mua thuMua thu
97.
Trong ngôn ngữ lập trình Pascal, hai xâu kí tự được so sánh dựa trên:
a)
Mã của từng kí tự trong các xâu lần lượt từ trái sang phải
b)
Độ dài tối đa của hai xâu
c)
Độ dài thực sự của hai xâu
d)
Số lượng kí tự khác nhau của hai xâu
98.
Trong ngôn ngữ lập trình Pascal, để 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 đếm có giá trị ≠ 1}
c)
Delete(S, length(S), 1);
d)
Delete(S, 1, i); { i là biến có giá trị bất kỳ }
99.

Cho xâu S là “Ha Noi – Viet Nam” , kết quả của hàm Pos(‘Vietnam’,S) là:

a)

0

b)

10

c)

9

d)

11

100.

Trong ngôn ngữ lập trình Pascal, để tìm vị trí xuất hiện đầu tiên của xâu ‘hoa’ trong xâu S ta có thể viết bằng cách nào trong các cách sau ?

a)

S1 := ‘hoa’ ;         i := pos(S1, ‘hoa’) ;

b)

i := pos(‘hoa’, S) ;

c)

i := pos(S, ’hoa’) ;

d)

i := pos(‘hoa’, ‘hoa’) ;

101.

Trong ngôn ngữ lập trình Pascal, để in một xâu kí tự ra màn hình theo thứ tự ngược lại của các ký tự trong xâu (vd : abcd thi in ra là dcba), đoạn chương nào sau đây thực hiện việc đó?

a)

For i := 1 to length(S) do write(S[i])

b)

For i := length(S) downto 1 do write(S[i])

c)

For i := length(S) downto 1 do write(S)

d)

For i := 1 to length(S) div 2 do write(S[i])

102.

Xác định biểu thức cho giá trị đúng (true) trong các biểu thức sau đây.

a)

‘Ninh thuan que toi’ < ‘Ninh thuan’  

b)

‘Truong chinh’ = ‘TRUONG CHINH’

c)

‘Anh’ > ‘Em’  

d)

‘Tin hoc’ > ‘Tien hoc le – Hau hoc van’

103.

Cho xâu St = ‘THPT Phan Boi Chau’, Để có xâu St =’THPT’ ta dung thủ tục nào sâu đây:

a)

Delete(St, 5,14 );

b)

Delete(St, 14, 5 );

c)

Delete(St, 1, 5 );

d)

Delete(St,5, 1 );

104.

Sau khi chạy chương trình ta nhân được kết quả?

a)

4

b)

2017

c)

Thông báo lỗi

d)

Đáp án khác

105.

Đoạn chương trình sau thực hiện công việc gì? (giá trị của biến đếm):

            Dem:=0;

            For ch:= ‘a’ to ‘z’ do

                        If pos(ch,s) <> 0 then dem := dem +1;

a)

Đếm số lượng ký tự khác dấu cách của xâu S

b)

Đếm số lượng kí tự là chữ cái in hoa của xâu S

c)

Đếm số lượng ký tự là chữ cái thường trong xâu S

d)

Đếm số lượng chữ cái thường khác nhau có trong xâu S

106.

: 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ì?

            X:=length(S);

            For i:=X downto 1 do

                        If S[i] = ‘ ’ then Delete(S,i,1);

a)

Xóa dấu cách đầu tiên trong xâu ký tự S

b)

Xóa dấu cách thừa trong xâu ký tự S

c)

Xóa dấu cách tại vị trí cuối cùng của xâu S

d)

Xóa mọi dấu cách của xâu S

107.

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ì?

S1 := ‘anh’ ;             S2 := ‘em’ ;   i := pos(S2, S) ;

While i <> 0 do

Begin

Delete(S, i, 2) ;

Insert(S1, S, i) ;

i := pos(S2, S) ;

End ;

a)

Thay toàn bộ cụm từ ‘anh’ trong xâu S bằng cụm từ ‘em’ ;

b)

Thay toàn bộ cụm từ ‘em’ trong xâu S bằng cụm từ ‘anh’ ;

c)

Thay cụm từ ‘em’ đầu tiên trong xâu S bằng cụm từ ‘anh’ ;

d)

Thay cụm từ ‘anh’ đầu tiên trong xâu S bằng cụm từ ‘em’ ;

108.

Trong ngôn ngữ lập trình Pascal, sau khi thực hiện xong đoạn chương trình sau, biến Found có giá trị là gì ? (S là biến xâu ký tự)

Found := 0 ;

x := length(S) ;

For i := 1 to x Div 2 do

            If S[i] <> S[x – i + 1] then Found := 1 ;

a)

Found bằng 0 nếu S là xâu không đối xứng;

 

b)

Found bằng 0 nếu S là xâu đối xứng;

c)

Found bằng 1 nếu S là xâu đối xứng;

D.

d)

Found không có giá trị gì;

109.

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

i := pos(‘  ’, S);  { ‘  ’ là 2 dấu cách }

while i <> 0 do

            Begin

                        Delete(S, i, 1) ;

                        i := pos(‘  ’, S) ;

            End;

a)

Xóa 2 dấu cách liền nhau đầu tiên trong xâu;

b)

Xóa đi một trong 2 dấu cách đầu tiên trong xâu;

c)

Xóa các dấu cách trong xâu S để S không còn 2 dấu cách liền nhau;

d)

Xóa các dấu cách liền nhau cuối cùng trong xâu;

110.

Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau làm công việc gì :

i := pos(‘  ’, X) ;

while i <>0 do

            Begin

                        Delete(X, i, 1) ;

                        i := pos(‘ ’, X) ;

            End;

a)

Xóa tất cả các dấu cách ở hai đầu của xâu X ;

b)

Xóa tất cả các dấu cách phía bên phải trong xâu X ;

c)

Xóa tất cả các dấu cách phía bên trái trong xâu X ;

d)

Xóa tất cả các dấu cách trong xâu X ;

111.

Trong ngôn ngữ lập trình Pascal, sau khi thực hiện đoạn chương trình sau, biến X có giá trị là gì?

S := ‘Hoang Anh Tuan’ ;     X := ‘ ’ ;         i := length(S) ;

while S[i] <> ‘ ’ do

            Begin

                        X := X + S[i] ;

                        i := i + 1 ;

            End ;

a)

. Xâu rỗng

b)

‘Hoang’

c)

‘Anh’

d)

‘Tuan’

112.

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ì?

d :=  0 ;

For i := 1 to  length(S)  do

       if  S[i] = ‘  ’  then  d := d + 1 ;

a)

Xóa đi các dấu cách trong xâu;

b)

Đếm số ký tự có trong xâu;

c)

Đếm số dấu cách có trong xâu;

d)

Xóa đi các ký tự số;

113.

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ì?

d :=  0 ;

For i := 1 to  length(S)  do

       if  ( S[i] >= ‘ 0 ’ ) AND ( S[i] <= ‘ 9 ’ ) then  d := d + 1 ;

a)

Đếm số ký tự là ký tự số trong xâu S;

b)

Đếm xem có bao nhiêu ký tự số trong xâu S;

c)

Xóa đi các chữ số có trong S;

d)

Xóa đi ký tự đầu tiên trong S;