wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Bài 11_Lớp 11_Kiểu mảng

Total questions: 61

Worksheet time: 38mins

Name
Class
Date
1.

Mảng một chiều là:

a)

một ngôn ngữ lập trình bậc cao

b)

một chương trình dịch.

c)

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

d)

một dãy số nguyên và số thực.

2.

Chỉ số của mảng một chiều dùng để:

a)

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

b)

quản lí kích thước của mảng.

c)

xác định kiểu dữ liệu của mảng

d)

khai báo tên của mảng.

3.

Trong khai báo mảng một chiều, nếu ở kiểu chỉ số có n1=-99; n2=0. Hãy cho biết muốn tham chiếu đến phần tử thứ 4 của mảng thì chỉ số là?

a)

4

b)

3

c)

-96

d)

-95

4.

Cho khai báo sau :

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

Câu lệnh nào dưới đây sẽ in ra tất cả các phần tử của mảng trên ?

a)

for k := 1 to 16 do write(a[k]);

b)

for k := 16 downto 0 do write(a[k]);

c)

for k:= 0 to 16 do write('a[k']);

d)

for k := 16 downto 0 write(a['k']);

5.

Khai báo nào sau đây là đúng cú pháp

a)

Type mang1c = array [1..100] of byte;

b)

Type 1mang = array [1..100] of byte;

c)

Type mang1c = array [1-100] of byte;

d)

Type mang1c = array (1..100) of byte;

6.

Câu lệnh sau làm gi?

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

a)

Nhập 10 phần tử đầu tiên của mảng A

b)

In ra mảng A

c)

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

d)

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

7.

Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau thực hiện việc nào trong các việc sau (A là mảng số có N phần tử)?


For i:=1 to n do if (A[i] mod 2= 0) then Write(A[i]:3);

a)

Xuất các phần tử chẵn của mảng A ra màn hình

b)

Xuất các phần tử lẻ của mảng A ra màn hình

c)

Nhập các phần tử lẻ vào mảng A

d)

Nhập các phần tử chẵn vào mảng A

8.

Từ khóa Type trong Pascal có ý nghĩa:

a)

Định nghĩa 1 kiểu dữ liệu mới

b)

Khai báo biến mới

c)

Gõ giá trị từ bàn phím và lưu vào biến như thủ tục readln

d)

Mở đầu chương trình

9.

Tham chiếu đến phần tử thứ i của mảng A được biểu diễn:

a)

A[i]

b)

Ai

c)

A{i}

d)

A(i)

10.

Chọn câu lệnh nhập giá trị cho 5 phần tử đầu tiên của mảng A đúng:

a)

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

b)

For i:=1 downto 5 do readln(A[i]);

c)

For i:=1 to 5 do writeln(A[i]);

d)

For i:=1 downto 5 do writeln(A[i]);

11.

Cho khai báo biến


Var A : array[1..5] of Integer;


Chọn lệnh đúng:

a)

A[2] := -6 ;

b)

A[1] := 4/2 ;

c)

A := 10;

d)

A(3) := 6 ;

12.

Câu lệnh sau làm gi?


writeln(A[5]);

a)

Xuất giá trị của phần tử thứ 5 của mảng A

b)

Nhập giá trị cho phần tử thứ 5 của mảng A

c)

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

d)

In ra mảng A

13.

Để khai báo mảng tên A gồm 150 phần tử, các phần tử kiểu nguyên có giá trị không vượt quá 500, ta khai báo:

a)

Var A : Array[1..150] Of Integer;

b)

Var A : Array[1..150] Of Byte;

c)

Var A := Array[1..150] Of Byte;

d)

Var A : Array[1...150] Of Integer;

14.

Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau thực hiện việc nào trong các việc sau (A là mảng số có N phần tử)?


S:=0;

For i:=1 to n do S:= S + A[i];

a)

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

b)

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

c)

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

d)

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

15.

Chọn khai báo đúng:

a)

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

b)

Var A: array[1,10] of integer;

c)

Var A:= array[1..10] of integer;

d)

Var A= array[1..10] of integer;

16.

Cho biết ý nghĩa của đoạn khai báo sau:

Const Max = 100;

Type Dayso = ARRAY[1..Max] Of real;

Var A : Dayso;

a)

Khai báo biến mảng Dayso gồm max số nguyên.

b)

Khai báo biến mảng Dayso gồm 100 số thực.

c)

Khai báo biến mảng A gồm max số nguyên.

d)

Khai báo biến mảng A gồm tối đa 100 số thực.

17.

Cho khai báo biến: Var A : array[1..5] of Integer; Chọn lệnh đúng:

a)

A[1] := 6/2 ;

b)

A[2] := -10 ;

c)

A(3) := 6 ;

d)

A := 10 ;

18.

Trong khai báo sau còn bỏ trống . . . một chỗ, vì chưa xác định được kiểu dữ liệu của biến Max:

Var A: Array[‘a’..’d’] of Real;

Ch : Char ;

Max : . . . ;

Muốn biến Max lưu giá trị lớn nhất của mảng A thì cần khai báo biến Max kiểu dữ liệu gì vào chỗ . . . :

a)

Real

b)

Char

c)

Integer

d)

String

19.

Muốn tham chiếu đến một phần tử nào đó trong mảng ta cần phải có tối thiểu các thông tin

a)

Tên kiểu mảng, tên biến mảng

b)

Chỉ số phần tử, tên kiểu mảng

c)

Tên biến mảng, chỉ số phần tử

d)

Giá trị của phần tử, biến mảng

20.

Cho khai báo:

Var A: Array[1..4] of Integer;

i : Integer;

Sau khi thực hiện các lệnh:

For i:=1 to 4 do A[i]:= i;

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

thì mảng A có giá trị là:

a)

A[1]=0, A[2]=1, A[3]=2, A[4]=3

b)

A[1]=1, A[2]=1, A[3]=1, A[4]=1

c)

A[1]=1, A[2]=2, A[3]=3, A[4]=4

d)

A[1]=2, A[2]=3, A[3]=4, A[4]=5

21.

Cho mảng A gồm N số nguyên. Đoạn chương trình sau thực hiện công việc gì?

FOR i:=1 TO N DO

IF A[i] < 0 THEN Write(A[i]);

a)

In ra màn hình các số nguyên âm

b)

In ra màn hình các số nguyên âm

c)

Kiểm tra phần tử thứ i là dương hay âm

d)

Không làm gì cả

22.

Khai báo biến mảng một chiều A gồm n số nguyên (0 < n <= 50) có dạng:

a)

TYPE A : ARRAY [1..50] OF Integer;

b)

Var A = ARRAY [1..50] OF Integer;

c)

Var A : ARRAY[1..50] OF Integer;

d)

TYPE A = ARRAY [1..50] OF Integer;

23.

Lệnh nào in giá trị các phần tử trong mảng trên cùng một dòng?

a)

For i:= n downto 1 do writeln(A[i],' ');

b)

For i:= n downto 1 do write(A[i], ‘ ’);

c)

For i:= 1 to n do read(A[i],' ');

d)

For i:= 1 to n do readln(A[i],' ');

24.

Cho mảng A gồm N số nguyên. Đoạn chương trình sau thực hiện công việc gì?


FOR i:=1 TO N DO

IF A[i] > 0 THEN writeln(i);

a)

Đưa ra màn hình giá trị của phần tử nguyên dương cuối cùng trong mảng A.

b)

Đưa ra màn hình chỉ số của phần tử nguyên dương đầu tiên trong mảng A.

c)

Đưa ra màn hình giá trị của phần tử nguyên dương đầu tiên trong mảng A.

d)

Đưa ra màn hình chỉ số của phần tử nguyên dương có trong mảng A.

25.

Cho khai báo:

VAR Mang1d : ARRAY[-Nmax..Nmax] OF Integer;

Khai báo trên ĐÚNG trong trường hợp nào?

a)

Nmax phải là một biến nguyên đã được khai báo trước đó.

b)

Nmax phải là một biến kiểu ký tự được khai báo trước đó.

c)

Nmax phải là một hằng số nguyên đã được khai báo trước đó.

d)

Nmax phải là một hằng số thực đã được khai báo trước đó.

26.

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

a)

Write(A[10]);

b)

Write(A(10));

c)

Readln(A[10]);

d)

Write([10]);

27.

Cho khai báo:

Var A: Array[1..10] of Real;

i : Integer;

Ðể nhập dữ liệu cho A, chọn câu nào:

a)

For i:=1 to 10 do Begin Write(‘ Nhập A[‘, i, ‘]:’); Readln(A[i]); End;

b)

For i:=1 to 10 do Write(‘ Nhập A[‘, i, ‘]:’); Readln(A[i]);

c)

For i:=1 to 10 do Readln(‘ Nhập A[‘, i, ‘]:’);

d)

Write(‘ Nhập A:’); Readln(A);

28.

Chỉ số của mảng có thể là kiểu gì ?

a)

Kiểu số thực, kiểu logic

b)

Kiểu miền con, kiểu kí tự

c)

Kiểu số nguyên, kiểu số thực

d)

Kiểu đếm được

29.

Cách làm việc với mảng một chiều như thế nào?

a)

Thông qua tên biến và chỉ số của mảng.

b)

Thông qua tên biến mảng.

c)

Thông qua chỉ số của mảng.

d)

Làm việc trực tiếp với mảng.

30.

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

a)

Kiểu kí tự

b)

Kiểu số thực

c)

Kiểu logic

d)

Cả ba kiểu trên

31.

Phát biểu nào dưới đây về kiểu mảng 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ự

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.

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.

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.

Tham chiếu đến phần tử thứ i của mảng A được biểu diễn:

a)

A[i]

b)

Ai

c)

A{i}

d)

A(i)

36.

Cho khai báo biến


Var A : array[1..5] of Integer;


Chọn lệnh đúng:

a)

A[2] := -6 ;

b)

A[1] := 4/2 ;

c)

A := 10;

d)

A(3) := 6 ;

37.

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

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[kiểu phần tử] OF< kiểu chỉ số> ;

c)

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

d)

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

38.

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

a)

Write(A[20]);

b)

Write(A(20));

c)

Readln(A[20]);

d)

Write([20]);

39.

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

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

a)

B[4];

b)

B[10];

c)

A[10];

d)

A[4];

40.

Mảng một chiều là dãy …

a)

các phần tử có thứ tự.

b)

hữu hạn các phần tử cùng kiểu.

c)

vô số các phần tử có giá trị

d)

các số nguyên hoặc số thực

41.

Khai báo biến mảng một chiều có dạng:

a)

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

b)

Type <tên biến mảng>:array[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)

Type <tên biến mảng>=<tên kiểu mảng>;

42.

Hãy chọn phương án ghép đúng nhất. Để 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;

43.

Cho khai báo mảng như sau :

Var m : 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);

44.

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] : INTEGER;

c)

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

d)

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

45.

var a:array[1..10] of integer; s,i:integer;

begin

s:=0;

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

for i:=5 downto 1 do s:=s+a[i]; writeln(s);

readln

end.

Sau khi thực hiện chương trình trên, giá trị hiển thị lên màn hình là gì?

a)

20

b)

10

c)

5

d)

15

46.

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

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[kiểu phần tử] OF< kiểu chỉ số> ;

c)

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

d)

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

47.

Khai báo nào là ĐÚNG trong các khai báo mảng 1 chiều sau:

a)

VAR A: ARRAY[1..100] OF Integer;

b)

VAR A: ARRAY[1-100] OF Integer;

c)

VAR A: ARRAY[100] OF Integer;

d)

VAR A= ARRAY[1..100]OF Integer;

48.

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

49.

Cho đoạn code sau:

j:=0;

for i:=1 to n do

if a[i]>=7 then

begin inc(j); b[j]:=a[i]; end;

for i:=1 to j do write(b[i]:4);

Hãy cho biết mảng b gồm những phần tử như thế nào?

a)

b[i] là Các phần tử có giá trị >= 7

b)

b[i] là Các phần tử có giá trị <=7

c)

b[i] là Các phần tử >7

d)

b[i] là các phần tử <7

50.

Cho đoạn code sau:

j:=0;

for i:=1 to n do

if (a[i]<10) or (a[i]>39) then

begin inc(j); b[j]:=a[i]; end;

for i:=1 to j do write(b[i]:4);

Hãy cho biết mảng b gồm những phần tử như thế nào?

a)

b[i] là Các phần tử có giá trị >10

b)

b[i] là Các phần tử có giá trị <39

c)

b[i] là Các phần tử <10 hoặc >39

d)

b[i] là Các phần tử >10 và <39

51.

Cho đoạn code sau:

j:=0; min:=maxint;

for i:=1 to n do

if (a[i] <min) then min:=a[i];

for i:=1 to n do

if a[i] = min then

begin inc(j); b[j]:=a[i]; end;

for i:=1 to n do

if (a[i] <> min ) then

begin inc(j); b[j]:=a[i]; end;

for i:=1 to j do write(b[i]:4);

Hãy cho biết mảng b gồm những phần tử như thế nào?

a)

b[i] là Các phần tử có giá trị nhỏ nhất đứng trước

b)

b[i] là Các phần tử có giá trị nhỏ nhất đứng trước, các số còn lại giữ nguyên vị trí

c)

b[i] là Các phần tử có giá trị nhỏ lên trước, lớn xuống cuối dãy

d)

b[i] là Các phần tử có giá trị lớn nhất lên trước, còn lại giữ nguyên

52.

Cho đoạn code sau:

min:=maxint;

for i:=1 to n do

if (a[i] mod 2=0 ) and (a[i] <min) then min:=a[i];

nếu cho dãy a[i]= 1, -3, -8, 125, 120. Thì Min =?

a)

-3

b)

-8

c)

125

d)

120

53.

Cho đoạn code sau:

min:=maxint;

for i:=1 to n do

if (a[i] >0 ) and (a[i] <min) then min:=a[i];

nếu cho dãy a[i]= 1, -3, -8, 125, 120. Thì Min =?

a)

125

b)

-8

c)

1

d)

120

54.

Cho đoạn code sau:

tong:=0; dem:=0;

while tong<2005 do

begin

readln(n);

inc(dem);

tong:=tong+n;

end;

write(tong/dem:6:2);

Hỏi chương trình in ra giá trị gì?

a)

Trung bình cộng của tổng

b)

Trung bình cộng của các số nhập vào từ bàn phím

c)

Tổng các số nhập từ bàn phím

d)

Trung bình cộng của các số mà có tổng không quá 2005

55.

Khai báo nào sau đây là đúng:

a)

Var nhietdo : array[1…365] of integer;

b)

Var mang1:Array[1..7] of byte;

c)

Const N=1.2; Var mang1 : Array[1..n] of Integer;

d)

Var mang1= Array[1..100] of Real;

56.

Muốn tham chiếu tới phần tử 90 của biến mảng Vidu1 thì viết:

a)

Vidu1 (90)

b)

Vidu1{90}

c)

Vidu1[90]

d)

Vidu1[90)

57.

Để tham chiếu tới phần tử mảng 1 chiều R ta viết:

a)

R[chỉ số]

b)

R[4:3]

c)

R[4,3]

d)

R(chỉ số).

58.

Khai báo Var a: array[1..10] of Integer. Trong các câu lệnh sau, lệnh nào bị lỗi:

a)

a[1]:=5;

b)

a[2]:= a[1]+1;

c)

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

d)

a[12]:=1;

59.

Đoạn lệnh sau thực hiện công việc gì?( A là mảng số có N phần tử)

S:=0; For i:=1 to N do S:= S +A[i];

a)

Đếm giá trị i của mảng A

b)

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

c)

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

d)

Tính tổng giá trị của i

60.

Để nhập dữ liệu cho mảng một chiều ta sử dụng câu lệnh:

a)

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

b)

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

c)

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

d)

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

61.

Để nhập dữ liệu cho mảng một chiều ta sử dụng câu lệnh:

a)

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

b)

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

c)

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

d)

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