BÀI 11: KIỂU MẢNG

Nhận biết:

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

A. Var

B. Var

C. Var

D. Var

Câu 2: 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

Câu 3: 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

Câu 4: 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ố

Câu 5: Đâ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ố

Câu 6: Để 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

Câu 7: 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;

Câu 8: 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;

Câu 9: 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;

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

A. readln(Kiểu chỉ số>]);

B. readln(

C. readln(ng>[>]);

D. readln(ng>[>]);

 

Thông hiểu:

Câu 11: 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

Câu 12: 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

Câu 13: 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

Câu 14: Đ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

Câu 15: Đ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]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

Câu 16: 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’);

Câu 17: Trong ngôn ngữ lập trình Pascal câu 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’);

Câu 18: Cho khai báo biến mảng sau:

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

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

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

 

Vận dụng:

Câu 20:Đ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

Câu 21: 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

Câu 22: 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

Câu 23: 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

Câu 24: 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

Câu 25: 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

Câu 26: 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ố

Câu 27: 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

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.

Câu 28: 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

Câu 29: 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

Câu 30: 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

nguon VI OLET