WorksheetsÔN TẬP KTGK2 K11
Total questions: 58
Worksheet time: 44mins
Phát biểu nào dưới đây về kiểu mảng một chiều là phù hợp?
Là một tập hợp các số nguyên
Độ dài tối đa của mảng là 255
Là một dãy hữu hạn các phần tử cùng kiểu
Mảng không thể chứa kí tự
Hiển thị đáp án
Để khai báo số phần tử của mảng trong PASCAL, người lập trình cần:
khai báo một hằng số là số phần tử của mảng
khai báo chỉ số bắt đầu và kết thúc của mảng
khai báo chỉ số kết thúc của mảng
không cần khai báo gì, hệ thống sẽ tự xác định
Phát biểu nào dưới đây về chỉ số của mảng là phù hợp nhất?
Dùng để truy cập đến một phần tử bất kì trong mảng
Dùng để quản lí kích thước của mảng
Dùng trong vòng lặp với mảng
Dùng trong vòng lặp với mảng để quản lí kích thước của mảng
Phát biểu nào sau đây về mảng là không chính xác?
Chỉ số của mảng không nhất thiết bắt đầu từ 1
Có thể xây dựng mảng nhiều chiều
Xâu kí tự cũng có thể xem như là một loại mảng
Độ dài tối đa của mảng là 255
Phương án nào dưới đây là khai báo mảng hợp lệ?
Var mang : ARRAY[0..10] OF INTEGER;
Var mang : ARRAY[0..10] : INTEGER;
INTEGER OF ARRAY[0..10];
ARRAY(0..10) : INTEGER;
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 ;
Tìm phần tử nhỏ nhất trong mảng;
Tìm phần tử lớn nhất trong mảng;
Tìm chỉ số của phần tử lớn nhất trong mảng
Tìm chỉ số của phần tử nhỏ nhất trong mảng
Cho khai báo mảng như sau: Var a : array[1..10] of integer ;
Phương án nào dưới đây chỉ phần tử thứ 10 của mảng?
a[10];
a(10);
a[9];
a(9);
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:
chèn thêm phần tử
truy cập đến phần tử bất kì
xóa một phần tử
chèn thêm phần tử và xóa phần tử
Câu lệnh sau, thực hiện công việc gì?
for i := 1 to 7 do
begin
write(‘Nhập phần tử thứ ‘, i , ‘ : ‘);
readln(a[ i ]);
end;
Nhập giá trị cho 7 phần tử của mảng
Xuất giá trị cho 7 phần tử của mảng
Tính tổng giá trị cho 7 phần tử của mảng
Đếm giá trị cho 7 phần tử của mảng
Cho đoạn chương trình sau:
for i := 1 to 5 do
writelln(a[ i ]);
In giá trị 5 phần tử của mảng, mỗi số trên 1 dòng
Nhập giá trị 5 phần tử của mảng, mỗi số trên 1 dòng
In giá trị 5 phần tử của mảng trên 1 dòng
Xuất giá trị 5 phần tử của mảng trên 1 dòng
Chọn khai báo đúng:
Var A: array[1..20] of integer;
Var A= array[1..20] of integer;
Var A:= array[1..20] of integer;
Var A: array[1,20] of integer;
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;
Khai báo biến Dayso gồm max số nguyên.
Khai báo biến Dayso gồm 100 số thực.
Khai báo biến mảng A gồm max số nguyên.
Khai báo biến A gồm tối đa 100 số thực.
Cho khai báo biến: Var A : array[1..5] of Integer; Chọn lệnh đúng:
A[1] := 6/2 ;
A[2] := -10 ;
A(3) := 6 ;
A := 10 ;
Cho X1, X2,...Xn là một mảng số thực. Ðể tính:
S=N1(X1+X2+... + XN)
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ỗ . . . :
Write ('S=', S);
Readln (S);
S := S/N;
S=NS
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?
Từ -99 đến 99
Từ -99 đến 100
Từ -100 đến 100
Từ -100 đến 99
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ỗ . . . :
Real
Char
Integer
String
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[1]=0, A[2]=1, A[3]=2, A[4]=3
A[1]=1, A[2]=1, A[3]=1, A[4]=1
A[1]=1, A[2]=2, A[3]=3, A[4]=4
A[1]=2, A[2]=3, A[3]=4, A[4]=5
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]);
In ra màn hình các số nguyên âm
In ra màn hình các số nguyên âm
Kiểm tra phần tử thứ i là dương hay âm
Không làm gì cả
Khai báo biến mảng một chiều A gồm n số nguyên (0 < n <= 50) có dạng:
TYPE A : ARRAY [1..50] OF Integer;
Var A = ARRAY [1..50] OF Integer;
Var A : ARRAY[1..50] OF Integer;
TYPE A = ARRAY [1..50] OF Integer;
Đ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);
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).
Tạo giá trị ngẫu nhiên cho mảng A gồm n phần tử
Tạo giá trị ngẫu nhiên cho mảng A gồm 50 phần tử
Tạo giá trị ngẫu nhiên cho mảng A gồm 49 phần tử
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;
In giá trị của phần tử nguyên dương cuối cùng trong A ra màn hình
In chỉ số của phần tử nguyên dương đầu tiên trong A ra màn hình
In giá trị của phần tử nguyên dương đầu tiên trong A ra màn hình
In chỉ số của phần tử nguyên dương cuối cùng trong A ra màn hình
Cho khai báo: VAR Mang1d : ARRAY[-Nmax..Nmax] OF Integer;
Khai báo trên ĐÚNG trong trường hợp nào?
Nmax là một biến nguyên đã được khai báo trước đó.
Nmax phải là kiểu số nguyên hoặc kiểu ký tự hoặc kiểu logic.
Nmax là một hằng số nguyên đã được khai báo trước đó.
Mọi trường hợp.
Để 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:
Write(A[10]);
Write(A(10));
Readln(A[10]);
Write([10]);
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:
For i:=1 to 10 do Begin Write(‘ Nhập A[‘, i, ‘]:’); Readln(A[i]); End;
For i:=1 to 10 do Write(‘ Nhập A[‘, i, ‘]:’); Readln(A[i]);
For i:=1 to 10 do Readln(‘ Nhập A[‘, i, ‘]:’);
Write(‘ Nhập A:’); Readln(A);
Cách làm việc với mảng một chiều như thế nào?
Thông qua tên biến và chỉ số của mảng.
Thông qua tên biến mảng.
Thông qua chỉ số của mảng.
Làm việc trực tiếp với mảng.
Chỉ số của mảng có thể là kiểu gì ?
Kiểu số thực, kiểu logic
Kiểu miền con, kiểu kí tự
Kiểu số nguyên, kiểu số thực
Kiểu đếm được
Mỗi phần tử của mảng phải:
Có kiểu dữ liệu khác nhau.
Có thể có kiểu dữ liệu giống hoặc khác nhau.
Có kiểu dữ liệu giống nhau.
Tất cả các phương án đều sai.
Các phần tử của mảng có thể thuộc các kiểu dữ liệu nào ?
Kiểu kí tự
Kiểu số thực
Kiểu logic
Cả ba kiểu trên
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;
Khai báo biến Dayso gồm max số nguyên.
Khai báo biến Dayso gồm 100 số thực.
Khai báo biến mảng A gồm max số nguyên.
Khai báo biến A gồm tối đa 100 số thực.
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[1]=0, A[2]=1, A[3]=2, A[4]=3
A[1]=1, A[2]=1, A[3]=1, A[4]=1
A[1]=1, A[2]=2, A[3]=3, A[4]=4
A[1]=2, A[2]=3, A[3]=4, A[4]=5
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]);
In ra màn hình các số nguyên âm
In ra màn hình các số nguyên âm
Kiểm tra phần tử thứ i là dương hay âm
Không làm gì cả
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;
In giá trị của phần tử nguyên dương cuối cùng trong A ra màn hình
In chỉ số của phần tử nguyên dương đầu tiên trong A ra màn hình
In giá trị của phần tử nguyên dương đầu tiên trong A ra màn hình
In chỉ số của phần tử nguyên dương cuối cùng trong A ra màn hình
Chỉ số của mảng có thể là kiểu gì ?
Kiểu số thực, kiểu logic
Kiểu miền con, kiểu kí tự
Kiểu số nguyên, kiểu số thực
Kiểu đếm được
Phát biểu nào dưới đây về kiểu mảng một chiều là phù hợp?
Là một tập hợp các số nguyên
Độ dài tối đa của mảng là 255
Là một dãy hữu hạn các phần tử cùng kiểu
Mảng không thể chứa kí tự
Hiển thị đáp án
Phát biểu nào sau đây về mảng là không chính xác?
Chỉ số của mảng không nhất thiết bắt đầu từ 1
Có thể xây dựng mảng nhiều chiều
Xâu kí tự cũng có thể xem như là một loại mảng
Độ dài tối đa của mảng là 255
Phương án nào dưới đây là khai báo mảng hợp lệ?
Var mang : ARRAY[0..10] OF INTEGER;
Var mang : ARRAY[0..10] : INTEGER;
INTEGER OF ARRAY[0..10];
ARRAY(0..10) : INTEGER;
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:
chèn thêm phần tử
truy cập đến phần tử bất kì
xóa một phần tử
chèn thêm phần tử và xóa phần tử
Câu lệnh sau, thực hiện công việc gì?
for i := 1 to 7 do
begin
write(‘Nhập phần tử thứ ‘, i , ‘ : ‘);
readln(a[ i ]);
end;
Nhập giá trị cho 7 phần tử của mảng
Xuất giá trị cho 7 phần tử của mảng
Tính tổng giá trị cho 7 phần tử của mảng
Đếm giá trị cho 7 phần tử của mảng
Xâu kí tự có độ dài bằng 0 gọi là:
Không tồn tại
Xâu rỗng
Chứa kí tự 0
Xâu ngắn
Để khai báo biến xâu ta sử dụng tên dành riêng:
Array
String
Type
Const
Cho xâu S là “Ha Noi – Viet Nam” , kết quả của hàm Pos(‘Viet Nam’,S) là:
9
11
10
12
Cho s = ‘abc123456’ hàm Copy(s,2,4) cho giá trị bằng:
12
23
bc12
c123
Cho S1:='Bien dao que huong';
S2:= upcase(S1[10]);
S2 có giá trị là:
'Q'
'Bien Dao Que Huong'
'Que'
‘Bien’
Câu lệnh nào xóa kí tự cuối cùng của xâu a?
delete(a, length(a), 1);
delete(a, 1, 255);
delete(a, 255, 1);
delete(a, 1, length(a));
Cho 2 xâu A, B. Hãy cho biết câu lệnh sau thực hiện công việc gì:
If A[1] = B[length(B)] then writeln(‘Giong nhau’)
else writeln(‘Khac nhau’);
Xuất ra kết quả so sánh kí tự đầu tiên của xâu A và kí tự cuối cùng của xâu B.
Xuất ra kết quả so sánh của xâu A và xâu B.
Xuất ra kết quả so sánh chiều dài của xâu A và chiều dài của xâu B.
Xuất ra kết quả so sánh kí tự đầu tiên của xâu B và kí tự cuối cùng của xâu A.
Trong xâu, để in xâu S ra màn hình theo thứ tự ngược lại, phải thực hiện lệnh :
For i:=length(S) downto 1 do write(S[i]);
For i:=length(S) downto 1 do write(S);
For i:=1 to length(S) do write(S[i]);
For i:=1 to length(S) div 2 do write(S[i]);
Cho s := ‘500 ki tu’
hàm Length(s) cho giá trị bằng:
9
‘5’
500
‘500’
Cho sâu s1 = ‘123’; s2 = ‘abc’ sau khi thực hiện thủ tục Insert(s1,s2,2) thì:
s1 = ‘123’; s2 = ‘a123bc’
s1 = ‘123’; s2 = ‘12abc’
s1 = ‘1abc23’; s2 = ‘abc’
s1 = ‘ab123; s2 = ‘abc’
Cho khai báo sau:
Var hoten : string;
Phát biểu nào dưới đây là đúng?
Xâu có độ dài lớn nhất là 255;
Xâu có độ dài lớn nhất là 0;
Cần phải khai báo kích thước của xâu sau đó;
Câu lệnh sai vì thiếu độ dài tối đa của xâu;
Cho s1 = ‘010’; s2 = ‘1001010’ hàm pos(s1,s2) cho giá trị bằng:
2
3
4
5
Để khai báo kiểu xâu trực tiếp ta sử dụng cú pháp nào?
Var <tên biến> : <tên kiểu> ;
Var <tên biến> : String[độ dài của lớn nhất của xâu] ;
Var <tên biến> = <tên kiểu>;
Var <tên biến> = String[độ dài lớn nhất của xâu];
Trong các khai báo sau, khai báo nào đúng?
Var hoten : string[27];
Var diachi : string(100);
Var ten = string[30];
Var ho = string(30);
Trong các phát biểu sau, phát biểu nào sai?
Xâu A lớn hơn xâu B nếu độ dài xâu A lớn hơn độ dài xâu B;
Xâu A lớn hơn xâu B nếu kí tự dầu tiên khác nhau giữa chúng kể tử trái sang trong xâu A có mã ASCII lớn hơn;
Nếu A và B là các xâu có độ dài khác nhau và A là đoạn đầu của B thì A nhỏ hơn B;
Hai xâu bằng nhau nếu chúng giống nhau hoàn toàn;
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?:
i:=pos(s,’hoa’);
i:=pos(‘hoa’,’hoa’);
i:=pos(‘hoa’,s);
s1:=’hoa’ ; i:=pos(s1,’hoa’);
Trong các phép toán sau, phép nào trả về giá trị TRUE (đúng)?
‘abc’=’ABC’
‘ccb’<’abcdef’
‘cba’<’abc’
‘abcdh’>’abcdef’
s=" May tinh"; t= "may tinh".
s>t
s<t
s==t
Tất cả đều sai
Xâu ‘ABBA’ lớn hơn xâu:
‘ABC’;
‘ABABA’;
‘ABCBA’;
‘BABA’;
Cho S là biến xâu, kết quả sau khi thực hiện các lệnh:
S:='ABCDEF';
DELETE(S,3,2);
INSERT('XYZ',S,2);
(a)
