Wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Mảng một chiều

Total questions: 33

Worksheet time: 22mins

Name
Class
Date
1.

Chọn khai báo đúng:

a)

Var A: 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;

2.

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 Dayso gồm max số nguyên.

b)

Khai báo biến 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 A gồm tối đa 100 số thực.

3.

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 ;

4.

Cho X1, X2,...Xn là một mảng số thực. Ðể tính:
S=1N(X1+X2+... + XN)S=\frac{1}{N}\left(X1+X2+...\ +\ XN\right)  
ta có đoạn chương trình sau gồm ba lệnh, một lệnh còn bỏ trống . . . :
   S:=0;
   For i:=1 to N do S := S + X[i];
   . . .
Hãy điền lệnh thích hợp vào chỗ . . . :

a)

Write ('S=', S);

b)

Readln (S);

c)

S := S/N;

d)

S=SNS=\frac{S}{N}  

5.

Cho câu lệnh: FOR i:=1 TO 100 DO A[i]:= Random(100) - Random(100);

Hãy cho biết giá trị của mảng A trong câu lệnh trên nhận giá trị nguyên trong đoạn nào?

a)

Từ -99 đến 99

b)

Từ -99 đến 100

c)

Từ -100 đến 100

d)

Từ -100 đến 99

6.

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

7.

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

8.

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

9.

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ả

10.

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;

11.

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 write(‘ ’, A[i]);

d)

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

12.

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

...

Randomize;

For i:= 1 to n do A[i] := random(50);

a)

Tạo giá trị ngẫu nhiên cho mảng A gồm n phần tử (các giá trị nằm trong khoảng 0..50).

b)

Tạo giá trị ngẫu nhiên cho mảng A gồm n phần tử

c)

Tạo giá trị ngẫu nhiên cho mảng A gồm 50 phần tử

d)

Tạo giá trị ngẫu nhiên cho mảng A gồm 49 phần tử

13.

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 k:=i;

a)

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

b)

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

c)

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

d)

In chỉ số của phần tử nguyên dương cuối cùng trong A ra màn hình

14.

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 là một biến nguyên đã được khai báo trước đó.

b)

Nmax phải là kiểu số nguyên hoặc kiểu ký tự hoặc kiểu logic.

c)

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

d)

Mọi trường hợp.

15.

Để 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]);

16.

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

17.

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

18.

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.

19.

Mỗi phần tử của mảng phải:

a)

Có kiểu dữ liệu khác nhau.

b)

Có thể có kiểu dữ liệu giống hoặc khác nhau.

c)

Có kiểu dữ liệu giống nhau.

d)

Tất cả các phương án đều sai.

20.

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

21.

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;

22.

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

a)

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

b)

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

c)

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

d)

Không thực hiện việc nào trong các việc đã nêu

23.

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

24.

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

25.

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

a)

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

b)

Không thực hiện việc nào trong 3 việc đã nêu

c)

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

d)

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

26.

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)

27.

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

28.

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:=n downto 1 do Write(A[i]:3);

a)

Xuất các phần tử của mảng A ra màn hình theo thứ tự ngược lại.

b)

Xuất các phần tử lẻ của mảng A ra màn hình theo thứ tự ngược lại.

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

29.

Đoạn chương trình trên làm gi?

a)

Đếm số phần tử có giá trị dương của mảng A

b)

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

c)

Nhập mảng A

d)

In ra mảng A

30.

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.

31.

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

32.

Cho X1, X2,...Xn là một mảng số thực. Ðể tính :

ta có đoạn chương trình sau gồm ba lệnh, một lệnh còn bỏ trống . . . :

S:=0;

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

. . .

Hãy điền lệnh thích hợp vào chỗ . . . :

a)

Write ('S=', S);

b)

S=SNS=\frac{S}{N}

c)

Readln (S);

d)

S := S/N;

33.

Cho biết giá trị của mảng sau đoạn lệnh:

có: n=4; a[1]=4, a[2]=-9, a[3]=-1,a[4]=12;

n:=n+1;

for i:=n downto 2 do a[i]:=a[i-1];

a[2]:=15;

a)

4, 15, -9, 12, -1

b)

4, 15, -9, -1, 12

c)

4, -9, 15, -1, 12

d)

4, -9, -1, 15, 12