wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

tin

Total questions: 200

Worksheet time: 2hrs 40mins

Name
Class
Date
1.

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

a)

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

b)

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

c)

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

d)

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

2.

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

a)

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

b)

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

c)

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

d)

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

3.

Câu 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.

Câu 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.

Câ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.

Câu 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 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âu 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.

Câu 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.

Câu 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.

Câu 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.

Câu 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.

Câu 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>=108 do

b)

While S < 108 do

c)

While S < 1.0E8 do

d)

While S >= E8 do

14.

Câu 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.

Câu 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)

d)

16.

Câu 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.

Câu 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)

b)

c)

d)

18.

Câu 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.

Câu 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.

Câu 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.

Câu 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.

Câu 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.

Câu 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.

Câu 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.

Câu 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.

Câu 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.
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.
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.

<NB> Để 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 để quản lí kích thước của mảng

b)

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

c)

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

d)

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

32.

<NB> 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

33.

<NB> 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ó

34.

<NB> 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;

35.

<TH> 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 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

36.

<NB> 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);

37.

<NB> 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)

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

c)

<$>xóa một phần tử

d)

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

38.

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

39.

<NB>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

40.

<NB>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;

41.

<NB>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;

42.

<NB>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ố ] of < kiểu phần tử>;

d)

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

43.

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

44.

<NB> 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 [kiểu chỉ số] 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>;

45.

<NB>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

46.

<NB>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

47.

<NB> 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ố

48.

<NB> Đâ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ố

49.

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

50.

<NB>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;

51.

<NB>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;

52.

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

a)

<$> mang : ARRAY[0..10] OF INTEGER;

b)

<$> mang : ARRAY[0..10] OF INTERGER;

c)

<$> mang : INTEGER OF ARRAY[0..10];

d)

<$> mang : ARRAY(0..10) : INTEGER;

53.

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

a)

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

b)

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

c)

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

d)

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

54.

<TH>: 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

55.

<TH>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

56.

<TH> 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)

<$> 51

c)

<$> 50

d)

<$> Khai báo sai

57.

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

For j:=n downto 2 do

            For i:=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

58.

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

M:=a[1];       

For i:=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

59.

<TH> 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’);

60.

<TH> 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’);

61.

TH> 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]);

62.

<TH> 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)

63.

VD> Đ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)

123

64.

<VD>  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

65.

<VD>   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ố 0

d)

100 số 1

66.

<VD>  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)

1

b)

0

c)

10 số 0

d)

10 số 1

67.

VD>   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

68.

<VD>  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ử trong mảng là bội của k

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ử chẵn trong mảng

d)

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

69.

<VD> 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ố

70.

<VD>  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ử chia hết cho 5 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ử trong mảng a

71.

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

72.

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

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

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

73.

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

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

a)

<$> 7 8 10

b)

<$> 3 4 5

c)

<$> 10 9 2

d)

<$> 3 4 6

74.

<TH>  Cho S= 'Thu do Ha Noi', thủ tục Delete(S,1,6); cho kết quả:

a)

<$> 'Ha Noi'

b)

<$>  ' Ha Noi'

c)

  <$> 'THa Noi'  

d)

<$> 'Thu do'

75.

<TH> Cho xâu s = ‘123456789’, sau khi thực hiện thủ tục delets(s,3,4) thì:

a)

<$> S = ‘’;

b)

<$> S= ‘1256789’;   

c)

<$>  S = ‘12789’;

d)

<$> S = ‘123789’;

76.

<TH> So sánh hai xâu a:=’Ha Noi’, xâu b:=’Sai Gon’ hãy chọn kết quả.

a)

<$> a

b)

<$> a > b

c)

<$> a < b

d)

<$> a = b

77.

<TH>  Đoạn chương trình: S := 'Hue-Sai Gon-Ha Noi';

Delete(S,1,12);

kết quả là:

a)

<$> 'Hue-Sai Gon'

b)

<$>  'Ha Noi'

c)

<$> 'Ha NoiHue-Sai Gon'

d)

<$> '-Ha Noi'

78.

<TH> S1 := ‘tin hoc cho moi nguoi’ ;

 x :=Pos(‘o’,S1) ; cho kết quả là?

a)

<$> 11

b)

<$> 5

c)

<$> 7

d)

<$>  6

79.

<TH> Cho sâu s1 = ‘123’; s2 = ‘abc’ sau khi thực hiện thủ tục Insert(s1,s2,2) thì:

a)

<$> s1 = ‘1abc23’; s2 = ‘abc’

b)

<$> s1 = ‘123’; s2 = ‘12abc’  

c)

<$>  s1 = ‘123’; s2 = ‘a123bc’    

d)

<$> s1 = ‘ab123; s2 = ‘abc’

80.

<TH> Cho s1 = ‘010’; s2 = ‘1001010’ hàm pos(s1,s2) cho giá trị bằng:

a)

5

b)

0

c)

3

d)

4

81.

<TH>  Trong Pascal, hàm Length(S) cho kết quả là gì?

a)

<$> Độ dài tối đa của xâu S khi khai báo

b)

<$>  Độ dài hiện có của xâu S

c)

<$> Số ký tự của xâu không tính dấu cách cuối cùng

d)

<$> Số ký tự hiện có của xâu S không tính các dấu cách

82.

<TH>  Kết quả của đoạn chương trình sau: d := 0;

for i:= 1 to length(S) do

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

a)

<$>  Đếm số dấu cách có trong xâu  

b)

  <$>  Xóa đi các dấu cách trong xâu

c)

<$> Xóa các kí tự số  

d)

    <$> Đếm các kí tự có trong xâu

83.

<TH> Xâu A = ‘ABBA’ nhỏ hơn xâu:

a)

<$>  ‘AAA’;   

b)

 <$> ‘A’; 

c)

<$> ‘B’;   

d)

 <$> ‘ABA’;

84.

<TH> Thủ tục delete(st,p,n) thực hiện:

a)

<$>  Xóa n kí tự của biến xâu st bắt đầu từ vị trí p

b)

<$> Xóa các kí tự của biến xâu st bắt đầu tử vị trí p đến vị trí p;

c)

<$> Xóa các kí tự của biến xâu st bắt đầu từ vị trí n đến vị trí n

d)

<$> Xóa p kí tự của biến xâu st bắt đầu từ vị trí n

85.

<TH> Chọn  câu SAI:

a)

<$>  ‘Ha Noi’ > ‘Ha Nam’

b)

<$> ‘May tinh’< ‘May tinh cua toi’

c)

<$> ‘TIN HOC’ < ‘tin hoc

d)

<$> ‘Viet Nam’ > ‘Viet nam’

86.

<TH> Cho s = ‘500 ki tu’, hàm Length(s) cho giá trị bằng:

a)

<$> ‘500’;  

b)

$>  9;

c)

   <$> 500;      

d)

<$> ‘5’;  

87.

<TH> Cho s1='Que huong', s2='Viet Nam'. Để có xâu 'Que huong Viet Nam' ta thực hiện:

a)

<$>insert(s2,s1,8);

b)

<$>insert(s1,s2,8);   

c)

<$>s1 + s         

d)

    <$>  s1 + '  ' + s2

88.

<TH> Khai báo nào trong các khai báo sau là sai khi khai báo xâu kí tự?

a)

<$> Var  s1 : str[256];

b)

<$> Var  abc: string[100];

c)

<$> Var  s_s : String;  

d)

<$>Var  cba: string[1];

89.

<TH> Trên dữ liệu kiểu xâu có các phép toán nào?

a)

<$>Phép gán và phép nối;

b)

<$> Phép so sánh và phép nối;

c)

<$>Phép gán, phép nối và phép so sánh;

d)

<$>Phép toán so sánh và phép gán;

90.

<TH> Cho s = ‘10000 ki tu’, hàm Length(s) cho giá trị bằng:

a)

<$>‘500’;

b)

   <$>9;     

c)

 <$>500;   

d)

<$>  11;  

91.

<TH> Cho xâu s = ‘123456789’, sau khi thực hiện thủ tục delets(s,3,4) thì:

a)

<$>  S = ‘’;

b)

<$> S= ‘1256789’;   

c)

<$>  S = ‘12789’;   

d)

<$>  S = ‘123789’;

92.

<TH>  Cho xâu s1 = 'PC', S2 = ' IBM486 thao tác insert (s1, s2, 4);chokếtquả

a)

<$>  S = ‘IBM’;

b)

 <$> S= ‘C486’;

c)

<$>  S = ‘IBMPC486'’

d)

$>  S = ‘C48’;

93.

<TH> Cho S='Bai hoc thu 9'; biểu thức copy ( s, 9, 5); cho kết quả ?

a)

<$>S = ‘thu 9’;

b)

   <$> S= ‘hoc’;    

c)

<$>S = ‘hoc thu 9’;

d)

<$>  S = ‘i hoc thu’;

94.

< TH> Cho s= 'Tin hoc' thì biểu thức length (S) có độ dài là ?

a)

<$>  S = ‘5’;

b)

  <$> S= ‘7’;          

c)

<$>  S = ‘6’;   

d)

<$>  S = ‘6’;   

95.

<TH> Cho  s2='abcdef' thì biểu thức pos ('cd', s2) cho kết quả ?

a)

1

b)

2

c)

3

d)

4

96.

<NB> Độ dài tối đa của xâu kí tự trong PASCAL là:

a)

<$> 256

b)

<$> 255

c)

<$> 65535

97.

<NB> Cho xâu S là ‘Hanoi-Vietnam’. Kết quả của hàm Length(S) là:

a)

<$> 12

b)

<$> 13

c)

14

d)

15

98.

<NB> Cho xâu S là ‘Hanoi-Vietnam’. Kết quả của hàm Pos(‘Vietnam’,S) là

a)

5

b)

6

c)

7

d)

8

99.

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

a)

9

b)

10

c)

11

d)

12

100.

<NB> 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ừ

101.

<NB> 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à ”

102.

<NB> 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

103.

<NB> 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

104.

<NB> 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 c kí tự của biến xâu b bắt đầu từ vị trí a

d)

<$> Xóa a kí tự của biến xâu c bắt đầu từ vị trí b

105.

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

106.

<NB> 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);

107.

<NB> 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

108.

<NB> 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

109.

<NB> Trong ngôn ngữ lập trình Pascal, sau khi chương trình thực hiện xong đoạn chương trình sau, giá trị của biến S là ?

S := ‘Ha Noi Mua thu’;

Delete(S,7,8);

Insert(‘Mua thu’, S, 1);

a)

<$> Ha Noi Mua thu;

b)

<$> Mua thu Ha Noi mua thu;

c)

<$> Mua thu Ha Noi;     

d)

<$> Ha Noi;

110.

<NB> Trong ngôn ngữ lập trình Pascal, khai báo nào trong các khai báo sau là sai khi khai báo xâu kí tự ?

a)

<$> Var S : string;

b)

<$> Var X1 : string[100];

c)

<$> Var S : string[256];   

d)

<$> Var X1 : string[1];

111.

<NB>Trong ngôn ngữ lập trình Pascal, xâu kí tự không có kí tự nào 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ự;

112.

<NB> Cho str là một xâu kí tự, đoạn chương trình sau thực hiện công việc gì ?

for  i := length(str) downto 1 do

write(str[i]) ;

a)

<$> In xâu ra màn hình;

b)

<$> In từng kí tự xâu ra màn hình;

c)

<$> In từng kí tự ra màn hình theo thứ tự ngược trừ kí tự đầu tiên;

d)

<$> In từng kí tự ra màn hình theo thứ tự ngược;

113.

<NB> Đoạn chương trình sau in ra kết quả nào ?

Program Welcome ;

Var a : string[10];

Begin

a := ‘tinhoc ’;

writeln(length(a));

End

a)

6

b)

7

c)

10

d)

<$> Chương trình có lỗi;

114.

<NB> Hãy chọn phương án ghép đúng nhất. Thủ tục chuẩn Insert(S1,S2,vt) thực hiện:

a)

<$> Chèn xâu S1 vào S2 bắt đầu từ vị trí vt 

b)

<$> Chèn xâu S2 vào S1 bắt đầu từ vị trí vt

c)

<$> Nối xâu S2 vào S1

d)

<$> Sao chép vào cuối S1 một phần của S2 từ vị trí vt

115.

<NB> Cho khai báo sau: Var hoten : String;Phát biểu nào dưới đây là đúng ?

a)

<$> Câu lệnh sai vì thiếu độ dài tối đa của xâu

b)

<$> Xâu có độ dài lớn nhất là 0

c)

<$> Xâu có độ dài lớn nhất là 255

d)

<$> Cần phải khai báo kích thước của xâu sau đó

116.

<TH> 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 thu Mua thu

117.

<TH> 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

118.

<TH> 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ỳ }

119.

<TH> 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’) ;

120.

<TH> 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])

121.

<TH> 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’

122.

<TH> 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 );

123.

<NB>Hãy chọn phương án ghép đúng. Tệp văn bản

a)

<$> cho phép truy cập đến một dữ liệu nào đó trong tệp chỉ bằng cách bắt đầu từ đầu tệp và đi qua lần lượt tất cả các dữ liệu trước nó.

b)

<$> Cho phép tham chiếu đến dữ liệu cần truy cập bằng cách xác định trực tiếp vị trí của dữ liệu đó.

c)

<$> là tệp mà các phần tử của nó được tổ chức theo một cấu trúc nhất định.

d)

<$> là tệp mà dữ liệu được ghi dưới dạng các ký tự theo mã ASCII.     

124.

<NB>Hãy chọn phương án ghép đúng. Tệp có cấu trúc

a)

<$> Cho phép truy cập đến một dữ liệu nào đó trong tệp chỉ bằng cách bắt đầu từ đầu tệp và đi qua lần lượt tất cả các dữ liệu trước nó.

b)

<$> Cho phép tham chiếu đến dữ liệu cần truy cập bằng cách xác định trực tiếp vị trí của dữ liệu đó.

c)

<$> là tệp mà các phần tử của nó được tổ chức theo một cấu trúc nhất định.

d)

<$> là tệp mà dữ liệu được ghi dưới dạng các ký tự theo mã ASCII.     

125.

<NB> Hãy chọn phương án ghép đúng. Tệp truy cập tuần tự

a)

<$> cho phép truy cập đến một dữ liệu nào đó trong tệp chỉ bằng cách bắt đầu từ đầu tệp và đi qua lần lượt tất cả các dữ liệu trước nó.       

b)

<$> Cho phép tham chiếu đến dữ liệu cần truy cập bằng cách xác định trực tiếp vị trí của dữ liệu đó.

c)

<$> là tệp mà các phần tử của nó được tổ chức theo một cấu trúc nhất định.

d)

<$> là tệp mà dữ liệu được ghi dưới dạng các ký tự theo mã ASCII.

126.

<NB> Hãy chọn phương án ghép đúng. Tệp truy cập trực tiếp

a)

<$> cho phép truy cập đến một dữ liệu nào đó trong tệp chỉ bằng cách bắt đầu từ đầu tệp và đi qua lần lượt tất cả các dữ liệu trước nó.

b)

<$> Cho phép tham chiếu đến dữ liệu cần truy cập bằng cách xác định trực tiếp vị trí của dữ liệu đó.    

c)

<$> là tệp mà các phần tử của nó được tổ chức theo một cấu trúc nhất định.

d)

<$> là tệp mà dữ liệu được ghi dưới dạng các ký tự theo mã ASCII.

127.

<NB> Dữ liệu kiểu tệp

a)

<$> sẽ bị mất hết khi tắt máy.

b)

<$> sẽ bị mất hết khi tắt điện đột ngột.

c)

<$> không bị mất khi tắt máy hoặc mất điện. 

d)

<$> cả A B C đều sai.

128.

<NB> Phát biểu nào dưới đây là đúng?

a)

<$> Các kiểu dữ liệu đều được lưu trữ ở bộ nhớ trong (RAM).

b)

<$> Dữ liệu kiểu tệp được lưu trữ ở bộ nhớ trong.

c)

<$> Dữ liệu kiểu tệp được lưu trữ ở bộ nhờ ngoài (đĩa mềm, đĩa cứng, CD thiết bị nhớ Flash).

d)

<$> Các dữ liệu trong máy tính đều bị mất đi khi tắt nguồn điện.

129.

<NB> Phát biểu nào sau đây là sai?

a)

<$> Tệp có cấu trúc là tệp mà các thành phần của nó được tổ chức theo một cấu trúc nhất định.

b)

<$> Tệp chứa dữ liệu được tổ chức theo một cách thức nhất định gọi là tệp có cấu trú<$>

c)

<$> Tệp văn bản không thuộc loại tệp có cấu trúc

d)

<$> Tệp văn bản gồm các kí tự theo mã ASCII được phân chia thành một hay nhiều dòng.

130.

<NB>Phát biểu nào sau đây là sai?

a)

<$> Có thể truy cập trực tiếp tệp văn bản.      

b)

<$> Tệp có cấu trúc có thể truy cập trực tiếp.

c)

<$> Tệp có cấu trúc có thể truy cập tuần tự.

d)

<$> Truy cập trực tiếp là cách truy cập cho phép tham chiếu đến dữ liệu cần truy cập bằng cách xác định trực tiếp vị trí (thường là số hiệu) của dữ liệu đó.

131.

<NB> Phát biểu nào sau đây là đúng?

a)

<$> Số lượng phần tử của tệp là cố định.

b)

<$> Kích thước tệp có thể rất lớn.        

c)

<$> Dữ liệu một tệp được lưu trữ trên đĩa thành một vùng dữ liệu liên tục

d)

<$> Tệp lưu trữ lâu dài trên đĩa, không thể xóa tệp trên đĩa

132.

<NB>Phát biểu nào sau đây là sai?

a)

<$> Tệp nhị phân thuộc loại tệp có cấu trúc

b)

<$> Các dòng trong tệp văn bản có độ dài bằng nhau.       

c)

<$> Có thể hiểu nội dung các tệp văn bản khi hiển thị nó trên màn hình trong phần mềm soạn thảo văn bản.

d)

<$> Không thể hiểu nội dung các tệp có cấu trúc khi hiển thị nó trên màn hình trong phần mềm soạn thảo văn bản.

133.

<NB>Dữ liệu kiểu tệp

a)

<$> được lưu trữ trên ROM.

b)

<$> chỉ được lưu trữ trên đĩa cứng.

c)

<$> được lưu trữ trên RAM.

d)

<$> được lưu trữ trên bộ nhớ ngoài

134.

<NB>Hãy chọn phương án ghép đúng. Tệp truy cập tuần tự

a)

<$> cho phép truy cập đến một dữ liệu nào đó trong tệp chỉ bằng cách bắt đầu từ đầu tệp và đi qua lần lượt tất cả các dữ liệu trước nó.

b)

<$> là tệp mà dữ liệu được ghi dưới dạng các ký tự theo mã ASCII.

c)

<$> là tệp mà các phần tử của nó được tổ chức theo một cấu trúc nhất định.

d)

<$> Cho phép tham chiếu đến dữ liệu cần truy cập bằng cách xác định trực tiếp vị trí của dữ liệu đó.

135.

<NB>Vị trí của con trỏ tệp sau lời gọi thủ tục Reset

a)

<$> Nằm ở cuối tệp.

b)

<$> Nằm ở đầu tệp.

c)

<$> Nằm ở giữa tệp.

d)

<$> Nằm ngẫu nhiên ở bất kỳ vị trí nào.

136.

<NB>Để thao tác với tệp

a)

<$> Ta nên sử dụng trực tiếp tên tệp trong chương trình.

b)

<$> Ta có thể gán tên tệp cho tên biến tệp, hoặc sử dụng trực tiếp tên tệp cũng được

c)

<$> Ta nhất thiết phải gán tên tệp cho tên biến tệp.

d)

<$> Ta nhất thiết phải sử dụng trực tiếp tên tệp trong chương trình.

137.

<NB>Phát biểu nào sau đây là đúng?

a)

<$> Tệp lưu trữ lâu dài trên đĩa, không thể xóa tệp trên đĩa

b)

<$> Kích thước tệp có thể rất lớn.

c)

<$> Dữ liệu một tệp được lưu trữ trên đĩa thành một vùng dữ liệu liên tục

d)

<$> Số lượng phần tử của tệp là cố định.

138.

<NB>Phát biểu nào sau đây là sai?

a)

<$> Sau khi mở tệp, con trỏ tệp ở vị trí đầu tệp.

b)

<$> Muốn đọc / ghi dữ liệu trong một tệp, sau khi gắn biến tệp với tên tệp cần phải thực hiện thao tác mở tệp đó;

c)

<$> Trong lệnh mở tệp, cần khai báo tên tệp để xác định đúng vị trí tệp trên đĩa

d)

<$> Trong lệnh gán tên tệp với biến tệp, cần khai báo tên tệp để xác định đúng vị trí tệp trên đĩa

139.

<NB>Hãy chọn phương án ghép đúng. Tệp truy cập trực tiếp

a)

<$> Cho phép tham chiếu đến dữ liệu cần truy cập bằng cách xác định trực tiếp vị trí của dữ liệu đó

b)

<$> Là tệp mà dữ liệu được ghi dưới dạng các ký tự theo mã ASCII.

c)

<$> Cho phép truy cập đến một dữ liệu nào đó trong tệp chỉ bằng cách bắt đầu từ đầu tệp và đi qua lần lượt tất cả các dữ liệu trước nó.

d)

<$> Là tệp mà các phần tử của nó được tổ chức theo một cấu trúc nhất định.

140.

<NB>Trong PASCAL, để khai báo hai biến tệp văn bản f1, f2 ta viết

a)

<$> Var f1 f2 : Text;

b)

<$> Var f1 ; f2 : Text;

c)

<$> Var f1 , f2 : Text;

d)

<$> Var f1 : f2 : Text;

141.

<NB> Trong NNLT Pascal, cú pháp để khai báo biến tệp văn bản là:

a)

<$> var < tên tệp > : txt; 

b)

<$> var < tên biến tệp > : txt; 

c)

<$> var < tên tệp > : text; 

d)

<$> var < tên biến tệp > : text;

142.

<NB> Để có thể thao tác với tệp dữ liệu trên đĩa thông qua biến tệp cho trước thì bước đầu tiên chúng ta phải làm gì?

a)

<$> Gắn tên tệp cho biến tệp

b)

<$> Mở tệp để ghi dữ liệu vào tệp

c)

<$> Mở tệp để đọc dữ liệu từ tệp

d)

<$> Đóng tệp

143.

<NB> Trong NNLT Pascal, cú pháp để gắn tên tệp cho biến tệp là:

a)

<$> < biến tệp > := < tên tệp >;

b)

<$> < tên tệp > := < biến tệp >;

c)

<$> assign ( < biến tệp > , < tên tệp > );

d)

<$> assign ( < tên tệp > , < biến tệp > );

144.

<NB> Trong NNLT Pascal, cú pháp để mở tệp ở chế độ đọc dữ liệu từ tệp là:

a)

<$> repeat( < biến tệp >);

b)

<$> reset ( < biến tệp >);

c)

<$> restart ( < biến tệp >);

d)

<$> rewrite ( < biến tệp >);

145.

<NB> Cú pháp của thủ tục đọc dữ liệu từ tệp văn bản là:

a)

<$> read ( < biến tệp > , < danh sách biến > );

b)

<$> readln ( < biến tệp > , < danh sách biến > );

c)

<$> readln ( < tên tệp > , < danh sách biến > );

d)

<$> Cả đáp án A và B đều đúng <@>

146.

<NB> Cú pháp của thủ tục ghi dữ liệu vào tệp văn bản là:

a)

<$> write (< biến tệp > , < danh sách kết quả >);

b)

<$> write (< tên tệp > , < danh sách kết quả >);

c)

<$> writeln (< biến tệp  > , < danh sách kết quả >);

d)

<$> Cả đáp án A và C đều đúng <@>

147.

<NB> Hàm eoln() trả về giá trị TRUE khi nào?

a)

<$> Khi con trỏ tệp đang chỉ tới cuối tệp

b)

<$> Khi con trỏ tệp đang chỉ tới cuối dòng

c)

<$> Khi con trỏ tệp đang chỉ tới đầu tệp

d)

<$> Khi con trỏ tệp đang chỉ tới đầu dòng

148.

<NB> Hàm eof() trả về giá trị TRUE khi nào?

a)

<$> Khi con trỏ tệp đang chỉ tới cuối tệp

b)

<$> Khi con trỏ tệp đang chỉ tới đầu tệp

c)

<$> Khi con trỏ tệp đang chỉ tới cuối dòng

d)

<$> Khi con trỏ tệp đang chỉ tới đầu dòng

149.

<NB>Trong NNLT Pascal, sau khi làm việc với tệp cần phải đóng tệp. Cú pháp để đóng tệp là:

a)

<$> close( < tên tệp > );

b)

<$> close( < biến tệp > );

c)

<$> close;

d)

<$> close all;

150.

<NB> Trong một chương trình Pascal, sau khi đã đóng tệp bằng thủ tục đóng tệp thì có thể mở lại tệp đó hay không?

a)

<$> Không được phép mở lại

b)

<$> Được phép mở lại vô số lần tùy ý

c)

<$> Được phép mở lại 1 lần duy nhất

d)

<$> Cần phải gắn lại tên tệp cho biến tệp trước khi mở

151.

<NB>Cách thức truy cập tệp văn bản là

a)

<$> Truy cập tuần tự.

b)

<$> Truy cập trực tiếp

c)

<$> Vừa truy cập tuần tự vừa truy cập trực tiếp.

d)

<$> Truy cập ngẫu nhiên.

152.

<NB>Số lượng phần tử trong tệp

a)

<$> Không được lớn hơn 128

b)

<$> Phải được khai báo trước

c)

<$> Không được lớn hơn 255.

d)

<$> Không bị giới hạn mà chỉ phụ thuộc vào dung lượng đĩa

153.

<NB>Để đọc dữ liệu từ tệp văn bản ta có thể sử dụng thủ tục

a)

<$> Write(,);

b)

<$> Read(,);

c)

<$> Write(,);

d)

<$> Read(,);

154.

<NB> Rewrite(<tên biến tệp>) ; có ý nghĩa gì?

a)

<$> thủ tục mở tệp để ghi dữ liệu.

b)

<$> thủ tục đọc dữ liệu từ tệp.

c)

<$> thủ tục đóng tệp.

d)

<$> thủ tục ghi dữ liệu vào tệp.

155.

<NB>Close(<tên biến tệp>) ; có ý nghĩa gì?

a)

<$> Thủ tục gán tên tệp cho tên biến tệp.

b)

<$> Thủ tục mở tên để đọc dữ liệu.

c)

<$> Khai báo biến tệp.

d)

<$> Thủ tục đóng tệp.

156.

<NB>Hãy chọn các thao tác đọc trên tệp văn bản chứa dữ liệu là:

a)

<$> Thông báo mở file để ghi dữ liệu mới => Gán biến tệp với tên tệp => Ghi dữ liệu mới => Đóng tệp.

b)

<$> Gán biến tệp với tên tệp => Thông báo mở tệp để đọc => Đọc dữ liệu trong tệp => Đóng tệp.

c)

<$> Thông báo mở file để ghi dữ liệu mới => Ghi dữ liệu mới => Gán biến tệp với tên tệp => Đóng tệp.

d)

<$> Gán biến tệp với tên tệp => Thông báo mở file để ghi dữ liệu mới => Ghi dữ liệu mới => Đóng tệp.

157.

<NB>Dữ liệu kiểu tệp

a)

<$> cả A, B, C đều sai.

b)

<$> không bị mất khi tắt máy hoặc mất điện.

c)

<$> sẽ bị mất hết khi tắt điện đột ngộ

d)

<$> sẽ bị mất hết khi tắt máy.

158.

<NB>Hãy chọn phương án ghép đúng. Tệp có cấu trúc

a)

<$> cho phép truy cập đến một dữ liệu nào đó trong tệp chỉ bằng cách bắt đầu từ đầu tệp và đi qua lần lượt tất cả các dữ liệu trước nó.

b)

<$> là tệp mà dữ liệu được ghi dưới dạng các ký tự theo mã ASCII.

c)

<$> là tệp mà các phần tử của nó được tổ chức theo một cấu trúc nhất định.

d)

<$> Cho phép tham chiếu đến dữ liệu cần truy cập bằng cách xác định trực tiếp vị trí của dữ liệu đó.

159.

<NB>Reset(<tên biến tệp>) ; có ý nghĩa gì?

a)

<$> Thủ tục đóng tệp.

b)

<$> Thủ tục gán tên tệp cho tên biến tệp.

c)

<$> Thủ tục mở tên để đọc dữ liệu.

d)

<$> Khai báo biến tệp.

160.

<NB>Trong PASCAL mở tệp để đọc dữ liệu ta phải sử dụng thủ tục

a)

<$> Reset();

b)

<$> Rewrite();

161.

<NB>write(<tên biến tệp>,<danh sách kết quả>) ; có ý nghĩa gì?

a)

<$> thủ tục đóng tệp

b)

<$> thủ tục ghi dữ liệu vào tệp.

c)

<$> thủ tục đọc dữ liệu từ tệp.

d)

<$> thủ tục mở tệp để ghi dữ liệu.

162.

<NB>Trong PASCAL để khai báo biến tệp văn bản ta phải sử dụng cú pháp

a)

<$> Var : String;

b)

<$> Var : Text;

163.

<NB>Trong Pascal để đóng tệp ta dùng thủ tục

a)

<$> Close();

b)

<$> Stop();

164.

<NB>Để gắn tệp KQ.TXT cho biến tệp f1 ta sử dụng câu lệnh

a)

<$> Assign(‘KQ.TXT’,f1);

b)

<$> Assign(f1,‘KQ.TXT’);

c)

<$> f1 := ‘KQ.TXT’;

d)

<$> KQ.TXT := f1;

165.

NB>Mô tả nào dưới đây về chương trình có cấu trúc là phù hợp nhất?

a)

<$> Được chia thành nhiều chương trình con;

b)

<$> Sử dụng các hàm và thủ tục thư viện chuẩn;

c)

<$> Cả A và B đều đúng

d)

<$> Chương trình có sử dụng cấu trúc mảng và bản ghi;

166.

<NB>Khẳng định nào sau đây là đúng?

a)

<$> Chỉ có hàm mới có thể có tham số hình thức

b)

<$> Thủ tục và hàm nào cũng phải có tham số hình thức

c)

<$> Cả thủ tục và hàm đều có thể có tham số hình thức

d)

<$> Chỉ có thủ tục mới có thể có tham số hình thức

167.

<NB>Trong các cách sử dụng thủ tục sau, cách nào là phù hợp nhất?

a)

A, Khai báo lại thủ tục và gọi nó mỗi khi cần sử dụng;

b)

<$> Khai báo thủ tục duy nhất một lần và gọi nó một lần duy nhất;

c)

<$> Chỉ cần khai báo;

d)

<$> Khai báo thủ tục một lần và gọi nó trong thân chương trình mỗi khi muốn sử dụng;

168.

<NB> Khẳng định nào sau đây là đúng?

a)

<$> Một chương trình con nhất thiết phải có tham số hình thức

b)

<$> Một chương trình con nhất thiết phải có biến cục bộ.

c)

<$> Một chương trình con nhất thiết phải có tham số hình thức không nhất thiết phải có biến cục bộ.

d)

<$> Một chương trình con có thể không có tham số hình thức và cũng có thể không có biến cục bộ.

169.

<NB>Phát biểu nào dưới đây về biến là sai?

a)

<$> Biến toàn cục có thể được sử dụng ở trong một thủ tục;

b)

<$> Biến cục bộ phải có tên khác với tên của biến toàn cục;

c)

<$> Một hàm có thể có nhiều tham số biến;

d)

<$> Biến cục bộ có thể có kiểu khác với kiểu của biến toàn cục có cùng tên;

170.

<NB>Mô tả nào dưới đây về tham số là sai?

a)

<$> Có thể truyền biến số cho tham số giá trị ;

b)

<$> Có thể dùng tham số biến để nhận kết quả;

c)

<$> Có thể truyền giá trị cho tham số biến;

d)

<$> Một hàm có thể có cả tham số giá trị và tham số biến;

171.

<NB>Muốn khai báo x là tham số giá trị và y, z là tham số biến (x, y, z thuộc kiểu Byte) trong thủ tục “ViduTT” thì khai báo nào sau đây là sai?

a)

<$> Procedure ViduTT( x : Byte ; Var y, z : Byte) ;

b)

<$> Procedure ViduTT( x : Byte ; Var y : Byte ; Var z : Byte) ;

c)

<$> Procedure ViduTT( Var y : Byte ; x : Byte ; Var z : Byte) ;

d)

<$> Procedure ViduTT( x : Byte ; Var y : Byte ; z : Byte) ;

172.

<NB>Mô tả nào dưới đây về hàm là sai?

a)

<$> Phải có tham số

b)

<$> Có thể có các biến cục bộ

c)

<$> Phải trả lại kết quả

d)

<$> Trong hàm có thể gọi lại chính hàm đó

173.

<NB> Mô tả nào dưới đây về tham số là sai?

a)

<$> Một hàm có thể có cả tham số giá trị và tham số biến;

b)

<$> Có thể truyền biến số cho tham số giá trị ;        

c)

<$> Có thể truyền giá trị cho tham số biến;

d)

<$> Có thể dùng tham số biến để nhận kết quả;

174.

<NB> Khẳng định nào sau đây là đúng?

a)

A, Lời gọi hàm nhất định phải có tham số thực sự còn lời gọi thủ tục không nhất thiết phải có tham số thực sự.

b)

<$> Lời gọi thủ tục nhất thiết phải có tham số thực sự còn lời gọi hàm không nhất thiết phải có tham số thực sự.

c)

<$> Cả lời gọi hàm và lời gọi thủ tục đều phải có tham số thực sự.

d)

<$> Lời gọi hàm và lời gọi thủ tục có thể có tham số thực sự hoặc không có tham số thực sự tùy thuộc vào từng thủ tục

175.

<TH>Cho chương trình sau: Program Thidu ; Var s : string[50] ; Procedure foo(s : string); Var i : integer; Begin i := 1 ; while ( i <= length(S) ) do begin writeln( s[ i ] ) ; i := i + 1 ; end ; end; Begin s := ‘tinhoc’ ; foo(s) ; End . Số dòng chương trình in ra màn hình là bao nhiêu?

a)

6

b)

7

c)

vô số

d)

10

176.

<NB>Trong các cách sử dụng thủ tục sau, cách nào là phù hợp nhất?

a)

<$> Chỉ cần khai báo;

b)

<$> Khai báo thủ tục duy nhất một lần và gọi nó một lần duy nhất;

c)

<$> Khai báo thủ tục một lần và gọi nó trong thân chương trình mỗi khi muốn sử dụng;

d)

<$> Khai báo lại thủ tục và gọi nó mỗi khi cần sử dụng;

177.

<NB>Khẳng định nào sau đây là đúng?

a)

<$> Biến cục bộ là biến chỉ được dùng trong chương trình con chứa nó.

b)

<$> Biến toàn bộ chỉ được sử dụng trong chương trình chính và không được sử dụng trong các chương trình con.

c)

<$> Biến cục bộ là biến được dùng trong chương trình con chứa nó và trong chương trình chính.

d)

<$> Biến cục bộ là biến chỉ được dùng trong chương trình chính.

178.

<TH> Cho chương trình sau:

Program Chuong_Trinh;

Var a, b S : byte;

Procedure TD(Var x : byte ; y : byte);

    Var i : byte;

Begin

    i := 5;

writeln(x,‘  ’, y);

x := x + i ;

y := y + i ;

S := x + y ;

Writeln(x,‘  ’, y);

End;

Begin

    Write(‘nhập a và b : ’);

Readln(a, b);

TD(a,b);

Writeln(a,‘  ’,  b ‘  ’, S);

Readln;

End

Trong chương trình trên có các biến toàn cục là:

a)

<$> x và y.

b)

<$> i

c)

<$> a và b

d)

<$> a, b S.

179.

<TH>Cho chương trình sau:

Program Chuong_Trinh;

Var a, b S : byte;

Procedure TD(Var x : byte ; y : byte);

    Var i : byte;

Begin

    i := 5;

writeln(x,‘  ’, y);

x := x + i ;

y := y + i ;

S := x + y ;

Writeln(x,‘  ’, y);

End;

Begin

    Write(‘nhập a và b : ’);

Readln(a, b);

TD(a,b);

Writeln(a,‘  ’, b ‘  ’, S);

Readln;

End

Trong chương trình trên có các tham số thực sự là:

a)

<$> x và y.

b)

<$> i

c)

<$> a và b

d)

<$> a, b S.

180.

<TH>Đoạn chương trình sau có lỗi gì?

Procedure End (key : char ) ;

    Begin

           If key = ‘ q ’  then  writeln( ‘ Ket thuc ’ )

    End;

a)

<$> Thiếu dấu “ ; ” sau từ khóa Begin ;

b)

<$> Thiếu dấu “ ; ” sau từ khóa Begin ;

c)

<$> Thiếu dấu “ ” sau lệnh writeln ;

d)

<$>  End không thể dùng làm tên của thủ tục

181.

<TH>Giả sử có hai biến xâu x và y ( y đã có giá trị ) câu lệnh nào sau đây là không hợp lệ?

a)

<$> Delete(y,5,3);

b)

<$> x := Copy(y,5,3);

c)

<$> x := Copy(y,5,3)

d)

<$> x := Delete(y,5,3);

182.

<NB>Để khai báo thủ tục trong Pascal bắt đầu bằng từ khóa

a)

<$> Program.

b)

<$> Procedure.

c)

<$> Function.

d)

<$> Var.

183.

<TH>Cho chương trình sau:

Program Thi_du ;

Var Mess : string ;

Procedure StopHere;

Var Mess : string ;

Begin

Mess := ‘StopHere’ ;

Write(Mess) ;

End ;

Begin

Mess := ‘StartHere’ ;

StopHere ;

Write(Mess) ;

End

Phương án nào dưới đây là kết quả thực hiện chương trình trên?

a)

<$> StartHere StopHere StartHere;

b)

<$> StopHere StartHere;

c)

<$> StartHere StopHere;

d)

<$> StopHere StopHere;

184.

<NB>Để khai báo thủ tục trong Pascal bắt đầu bằng từ khóa

a)

<$> Var.

b)

<$> Program

c)

<$> Function.

d)

<$> Procedure.

185.

<NB>Cho chương trình sau:

Program Chuong_Trinh;

Var a, b, S : byte;

Procedure TD(Var x : byte ; y : byte);

Var i : byte;

Begin

i := 5;

writeln(x,‘ ’, y);

x := x + i ;

y := y + i ;

S := x + y ;

Writeln(x,‘ ’, y);

End;

Begin Write(‘nhập a và b : ’);

Readln(a, b);

TD(a,b);

Writeln(a,‘ ’, b, ‘ ’, S);

Readln;

End

Trong chương trình trên có các biến cục bộ là:

a)

<$> x và y.

b)

<$> a và b

c)

<$> i.

d)

<$> S.

186.

<NB>Trong các chương trình chuẩn sau đây, chương trình chuẩn nào là thủ tục chuẩn?

a)

<$> Delete(S,5,1);

b)

<$> Sqrt(x);

c)

<$> Length(S);

d)

<$> Sin(x);

187.

<NB>Trong các chương trình chuẩn sau đây, chương trình chuẩn nào là thủ tục chuẩn?

a)

<$> Sin(x);

b)

<$> Length(S);

c)

<$> Sqrt(x);

d)

<$> Delete(S,5,1);

188.

<NB> Hãy chọn phương án ghép đúng. Cho thủ tục sau:

Procedure p;

    Var n : integer ;

Begin

…… ……

End ;  

Phạm vi của biến n là :

a)

A, Trong toàn bộ chương trình;

b)

<$> Trong nội bộ thủ tục p;

c)

<$> Trong toàn bộ tệp chương trình nguồn;

d)

<$> Tùy thuộc vào vị trí sử dụng thủ tục p;

189.

<NB> Phát biểu nào dưới đây về biến là sai?

a)

<$> Biến toàn cục có thể được sử dụng ở trong một thủ tục;

b)

<$> Biến cục bộ phải có tên khác với tên của biến toàn cục;        

c)

<$> Biến cục bộ có thể có kiểu khác với kiểu của biến toàn cục có cùng tên;

d)

<$> Một hàm có thể có nhiều tham số biến;

190.

<NB>Hàm chuẩn nào dưới đây biến giá trị thực 6.6 thành 7?

a)

<$> Round;

b)

<$> Odd;

c)

<$> Trunc;

d)

<$> Abs;

191.

<NB>Hãy chọn phương án ghép đúng. Kiểu của một hàm được xác định bởi

a)

<$> Tên hàm

b)

<$> Kiểu của các tham số

c)

<$> Địa chỉ mà hàm trả về

d)

<$> Kiểu giá trị trả về

192.

<NB>Khẳng định nào sau đây là đúng?

a)

<$> Cả lời gọi hàm và lời gọi thủ tục đều phải có tham số thực sự.

b)

<$> Lời gọi thủ tục nhất thiết phải có tham số thực sự còn lời gọi hàm không nhất thiết phải có tham số thực sự.

c)

<$> Lời gọi hàm và lời gọi thủ tục có thể có tham số thực sự hoặc không có tham số thực sự tùy thuộc vào từng thủ tục

d)

<$> Lời gọi hàm nhất định phải có tham số thực sự còn lời gọi thủ tục không nhất thiết phải có tham số thực sự.

193.

<NB>Kiểu dữ liệu của hàm

a)

<$> Chỉ có thể là kiểu real.

b)

<$> Chỉ có thể là kiểu integer.

c)

<$> Có thể là integer, real, char, boolean, string, record, kiểu mảng.

d)

<$> Có thể là các kiểu integer, real, char, boolean, string.

194.

<NB>Hãy chọn phương án ghép đúng. Kiểu của một hàm được xác định bởi

a)

<$> Kiểu của các tham số

b)

<$> Kiểu giá trị trả về

c)

<$> Tên hàm

d)

<$> Địa chỉ mà hàm trả về

195.

<NB>Mô tả nào dưới đây về hàm là sai?

a)

<$> Phải trả lại kết quả

b)

<$> Phải có tham số

c)

<$> Trong hàm có thể gọi lại chính hàm đó

d)

<$> Có thể có các biến cục bộ

196.

<NB> Hàm chuẩn nào dưới đây biến giá trị thực 6 thành 7?

a)

<$> Odd;

b)

<$> Round;

c)

<$> Trunc;

d)

<$> Abs;

197.

<NB>Mô tả nào dưới đây về chương trình có cấu trúc là phù hợp nhất?

a)

<$> Chương trình có sử dụng cấu trúc mảng và bản ghi;

b)

<$> Sử dụng các hàm và thủ tục thư viện chuẩn;

c)

<$> Được chia thành nhiều chương trình con.

d)

<$> Cả A  B

198.

<NB>Khẳng định nào sau đây là đúng?

a)

<$> Cả thủ tục và hàm đều có thể có tham số hình thức

b)

<$> Chỉ có thủ tục mới có thể có tham số hình thức

c)

<$> Chỉ có hàm mới có thể có tham số hình thức

d)

<$> Thủ tục và hàm nào cũng phải có tham số hình thức

199.

<NB> Để khai báo hàm trong Pascal bắt đầu bằng từ khóa

a)

<$> Program.

b)

<$> Procedure.

c)

<$> Function.

d)

<$> Var.

200.

<NB> Kiểu dữ liệu của hàm

a)

A, Chỉ có thể là kiểu integer.

b)

<$> Chỉ có thể là kiểu

c)

<$> Có thể là các kiểu integer, real, char, boolean, string.

d)

<$> Có thể là integer, real, char, boolean, string, record kiểu mảng.