Cách viết nào sau đây tham chiếu đúng phần tử thứ y của mảng A

Giải Bài Tập Tin Học 11 – Bài 11: Kiểu mảng giúp HS giải bài tập, giúp cho các em hình thành và phát triển năng lực sử dụng công nghệ thông tin và truyền thông:

Xem thêm các sách tham khảo liên quan:

  • Sách Giáo Viên Tin Học Lớp 11

Chúng ta chỉ xét hai kiểu mảng thông dụng với nhiều ngôn ngữ lập trình là kiểu mảng một chiều và kiểu mảng hai chiều.

1. Kiểu mảng một chiều

-Mảng một chiều là một dãy hữu hạn các phần tử có cùng kiểu. Mảng được đặt tên và mỗi phần tử mang một chỉ số. Để mô tả mảng một chiều cần xác định kiểu của các phần tử và cách đánh chỉ số các phần tử.

– Với mảng một chiều ta quan tâm đến:

+ Tên kiểu mảng một chiều.

+ Số lượng phần tử trong mảng.

+ Kiểu dữ liệu của phần tử.

+ Cách khai báo biến mảng.

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

Tại sao ta lại phải sử dụng mảng?

Giả sử ta muốn đo nhiệt độ trung bình trong 1 tháng và đưa ra những ngày nào cao hơn nhiệt độ trung bình. Nếu chỉ sử dụng kiến thức ta biết từ đầu chương trình đến giờ. Ta sẽ phải khai báo 30 biến để lưu giữ giá trị nhiệt độ các ngày trong tháng. Sau đó phải gõ lại rất nhiều lệnh if gây ra sự nhàm chán.

a] Khai báo.

Cách 1: Khai báo trực tiếp biến mảng một chiều

Var :array[kiểu chỉ số] of ;

Cách 2: Khai báo gián tiếp biến mảng qua kiểu mảng một chiều

Type=array[kiểu chỉ số] of ; Var:;

Trong đó:

+ Kiểu chỉ số thường là đoạn số nguyên liên tục có dạng n1..n2, với n1 là chỉ số đầu và n2 là chỉ số cuối [n1≤n2].

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

+ Tham chiếu đến phần tử mảng ta viết :

[chỉ số];

Ví dụ:

Var nhietdo:array[1..30] of integer;

Muốn tham chiếu tới phần tử thứ 20 ta sẽ viết là nhietdo[20].

b] Một số ví dụ

Ví dụ 1. Tìm phần tử lớn nhất của dãy số nguyên

Input: Số nguyên dương N [Narrayint[mi] then mi:=i; end; writeln['gia tri lon nhat la ',arrayint[mi],' chi so la ',mi]; readln; end.

Ví dụ 2: Sắp xếp dãy số nguyên bằng thuật toán tráo đổi.

program sapxep; uses crt; const Nmax=250; var N,i,j,t:integer; A:array[1..Nmax] of integer; begin clrscr; write['nhap so luong phan tu cua day N=']; readln[N]; for i:=1 to N do begin write['phan tu thu ',i,'=']; readln[A[i]]; end; for j:=N downto 2 do for i:=1 to j-1 do if A[i]>A[i+1] then begin t:=A[i]; A[i]:=A[i+1]; A[i+1]:=t; end; writeln['day da duoc sap xep la ']; for i:=1 to N do write[A[i]:4]; readln; end.

Kết quả:

Ví dụ 3: Tìm kiếm nhị phân.

Bước 1: Nhập N, các số hạng a1, a2… aN và khóa k.

Bước 2: Dau =10] Do N := N div 10; Writeln['N = ',N]

A. N = 1                                   

B. N = 0                                   

C. N = 5                                   

D. N = 10

Câu 7. Cách khai báo mảng nào sau đây là đúng

A. Var   D : array [ 1.2 .. 20] of integer;                    

B. Var   A : array [ -10 .. 10] of char;

C. Var   B : array [ 100 .. 20] of byte;                        

D. Var   C : array [ n .. m] of real;

Câu 8. Trong cấu trúc lặp với số lần chưa trước khẳng định nào sau đây là đúng

A. Câu lệnh sau Do phải là câu lệnh ghép

B. Câu lệnh sau Do phải có ít nhất một câu lệnh làm thay đổi biểu thức điều kiện

C. Câu lệnh sau Do phải là câu lệnh đơn            

D. Câu lệnh còn được thực hiện [lặp] khi điều kiện có giá trị là sai.

Câu 9. Với i là các biến nguyên. Ðoạn chương trình sau cho kết quả nào ?i:=1; while [i > 5] do   i := i +1; write[i,' ']; 

A. 1 2 3 4 5                             

B. 

C. 1                                          

D. 2 3 4 5 

Câu 10. Cho a,b,z là các biến nguyên, cho ðoạn chương trình:  a:=5: b:=8; While [b>=a] Do a:=a+1;  Write['a=',a,', b=',b]; cho kết quả của a, b là:

A. a=8, b=8                             

B. đáp án khác                        

C.  a=9, b=8                             

D. a=5, b=8

Câu 11. Những tên nào sau đây là tên các hàm xử lý xâu trong Pascal

A. Pos; Copy; length;                                                   

B. Copy; Insert; Length; Upcase

C. Pos; Delete; Upcase; Copy                                     

D. Tất cả đều đúng

Câu 12. Cách khai báo mảng nào sau đây là sai

A. Var   D : array [ 1 .. 100] of real;                           

B. Var    A  : array [ 1 .. N ] of integer;

C. Var   C : array [ 20 .. 200] of string;                     

D. Var   B : array [ -10 .. 200] of char;

Câu 13. Trong ngôn ngữ lập trình Pascal muốn chuyển đổi xâu S từ chữ thường sang chữ in hoa ta dùng:

A. Tất cả đều sai.                   

B. Upcase[S];                         

C. Length[S];                          

D. Pos[S]

Câu 14. Câu Lệnh While Do thực hiện như thế nào ?

A. Trong khi điều kiện còn đúng thì câu lệnh sau từ khóa "Do" còn được thực hiện.

B. Nếu điều kiện đúng thì sau từ khóa "Do" không được thực hiện.

C. Nếu điều kiện sai thì sau từ khóa "Do" được thực hiện.

D. Trong khi điều kiện còn sai thì câu lệnh sau từ khóa "Do" còn được thực hiện.

Câu 15. Trong câu lệnh lặp for - do [dạng lùi], câu lệnh còn được thực hiện [lặp] khi nào ?

A. giá trị cuối > giá trị của biến đếm >= giá trị đầu 

B. giá trị cuối > giá trị của biến đếm > giá trị đầu

C. giá trị cuối >= giá trị của biến đếm >= giá trị đầu                                      

D. giá trị cuối > giá trị của biến đếm = giá trị đầu

Câu 16. Với A[1]:=4; A[2]:=5; A[3]:=3; A[4]:=7; A[5]:=2; S: = 0; For i:= 5 Downto 1 do If [[i mod 2]0 then] S:=S + A[i]; Write['S=',S]; cho giá trị 

A. S=5                                     

B. S=9                                      

C. S=15                                   

D. 7;

Câu 17. Cho biết kết quả của đoạn chương trình sau Dem:=1; While [Dem < 5] Do Dem:=Dem+1; Writeln['Dem = ',Dem]

A. Dem =5                              

B. Dem = 6                              

C. Dem = 1                             

D. Dem = 4

Câu 18. Chọn khẳng định đúng khi dùng vòng lặp giải bài toán sau:  Tính tổng:S = 1+1/2 +1/3 +.....+ 1/1000 

A. Sử dụng được cả hai câu lênh While..do và For..do                                   

B. Không thể dùng lệnh For..do 

C. Không thể sử dụng While..do                                

D. Chỉ dùng được lệnh For..do 

Câu 19. Trong câu lệnh lặp for - do [dạng tiến], câu lệnh còn được thực hiện [lặp] khi nào ?

A. giá trị đầu giá trị của biến đếm > giá trị đầu   

B. giá trị cuối > giá trị của biến đếm = giá trị đầu

C. giá trị cuối > giá trị của biến đếm >= giá trị đầu 

D. giá trị cuối >= giá trị của biến đếm >= giá trị đầu

Câu 16. Cách khai báo mảng nào sau đây là đúng

A. Var   D : array [ 1.2 .. 20] of integer;                    

B. Var   C : array [ n .. m] of real;

C. Var   A : array [ -10 .. 10] of char;                        

D. Var   B : array [ 100 .. 20] of byte;

Câu 17. Trong cấu trúc lặp với số lần chưa biết trước khẳng định nào sau đây là đúng

A. Câu lệnh sau Do phải là câu lệnh đơn

B. Câu lệnh sau Do phải có ít nhất một câu lệnh làm thay đổi biểu thức điều kiện

C. Câu lệnh sau Do phải là câu lệnh ghép             

D. Câu lệnh còn được thực hiện [lặp] khi điều kiện có giá trị là sai.

Câu 18. Trong kiểu dữ liệu kiểu mảng, khẳng định nào sau đây là sai

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

B. Có 2 cách để khai báo mảng một chiều.

C. Là một dãy vô hạn các phần tử cùng kiểu            

D. Các phần tử trong mảng có cùng kiểu dữ liệu

Câu 19. Đoạn chương trình sau thực hiện  i:=1; S:=0;  While [i < N] Do begin S:=S+i; i := i+2; end; Write['S = ',S];

A. Tính tổng các số lẽ từ 1 đến N -1                          

B. Tính tổng các số chẵn từ 1 đến N

C. Tính tổng các số từ 1 đến N                                    

D. Tính tổng các số lẽ từ 1 đến N

Câu 20. Câu Lệnh While Do thực hiện như thế nào ?

A. Trong khi điều kiện còn đúng thì câu lệnh sau từ khóa "Do" còn được thực hiện.

B. Trong khi điều kiện còn sai thì câu lệnh sau từ khóa "Do" còn được thực hiện.

C. Nếu điều kiện sai thì sau từ khóa "Do" được thực hiện.

D. Nếu điều kiện đúng thì sau từ khóa "Do" không được thực hiện.

Câu 21. Với i,j là các biến nguyên. Cho ðoạn chương trình sau:  For i:=1 to 3 do    For j:=i downto  1 do Write[ j -1,'  ']; Cho kết quả là

A. 0 1 1 1 1 0                          

B. 0 1 2 3 2 1 0                       

C. 0 1 0 2 1 0                          

D. 0 1 0 3 2 1 0 

II. TỰ LUẬN: [3,0 điểm]

Câu 1  [3.0 điểm]. Viết chương trình nhập từ bàn phím mảng A có 10 phần tử cùng kiểu dữ liệu là số nguyên. Đưa ra màn hình:

1. Mảng A vừa nhập 

2. Các phần tử lẻ

ĐÁP ÁN ĐỀ KIỂM TRA NĂM HỌC 2021-2022 [ĐỀ SỐ 4]

MÔN: TIN HOC

THỜI GIAN: 45 PHÚT

I. TRẮC NGHIỆM [7 điểm; mỗi câu 0,3 điểm]

Câu

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

ĐA

C

C

C

A

D

D

B

A

A

C

C

A

B

D

D

C

B

C

A

A

C

II. TỰ LUẬN: [3 điểm]

CÂU

ĐÁP ÁN

THANG ĐIỂM

Câu 1

[3.0đ]

Program  Tinhtong;

Uses   crt;

 Const     m=10;

   Var 

       A: array[1..m] of integer;

      I, n: integer;

      Tong: longint;

  BEGIN

Write[‘Nhap so luong phan tu cua mang: ‘]; readln[n];

    For i:=1 to n do

       Begin

Write[‘Nhap phan tu thu ‘,i,’ =’];          Readln[a[i]];

       End;

Tong:=0;

For i:=1 to n do

 If a[i] mod 20 then  tong:=tong+a[i];

 Writeln[‘Tong= ‘,tong:9];

 Readln

END.  

0.5

0.5

0.5

0.5

0.5

0.5

Video liên quan

Chủ Đề