NEW
Font size
WorksheetsÔN TẬP GIỮA HỌC KỲ II - LỚP 11
Total questions: 51
Worksheet time: 26mins
Cho đoạn chương trình sau:
A[1]:=14; A[2]:=12; A[3]:=4; A[4]:=12; A[5]:=18; A[6]:=22; A[7]:=19;
k:=A[1];
For i:=2 To 7 Do If A[i]<k Then k:=A[i];
Sau khi thực hiện xong đoạn lệnh trên thì giá trị của k là:
12
12
4
18
Cho các lệnh gán sau:
A[1]:=4; A[2]:=8; A[3]:=A[1] + A[2]; A[4]:=A[2] + A[3];
Sau khi thực hiện các lệnh gán trên, giá trị A[4] là:
12
16
18
20
Trong Pascal, cho đoạn chương trình sau:
T:=0;
For i:=1 To 10 Do
If A[i] mod k = 0 Then T:=T+A[i];
Em hãy cho biết ý nghĩa của đoạn chương trình trên?
A. Tính tổng số các phẩn tử trong mảng A có giá trị chia hết cho số k.
B. tính tổng số các phẩn tử trong mảng A.
C. tính tổng số các phẩn tử trong mảng A có giá trị bằng số k.
D. tính tích số các phẩn tử trong mảng A mà có giá trị chia hết cho số k.
Cho đoạn chương trình:
Max:=A[1];
For i:=2 To 6 Do
If A[i]>Max Then
Begin
Max:=A[i];
csMax:=i;
End;
Giả sử mảng A nhận các giá trị: 15; 7; 21; -56; 27; 19 thì giá trị của Max và csMax sau khi thực hiện đoạn chương trình trên là:
A. Max=15; csMax=1
B. Max=21; csMax=3
C. Max=-56; csMax=4
D. Max=27; csMax=5
Cho đoạn chương trình:
T:=0;
For i:=1 To 10 Do
If A[i] mod 2 <> 0 Then T:=T+A[i];
Đoạn chương trình trên tính gì?
A. Tính tổng các phần tử có giá trị lẻ của mảng A
B. Tính tổng các phần tử có giá trị chẵn của mảng A
C. Tính tổng các phần tử của mảng
D. Tính tổng các chỉ số của mảng A
Dưới đây là các lệnh gán, hãy chọn lệnh gán hợp lệ?
A. A[1] := 14 mod 5;
C. A[3] := 14 - 5;
B. A[2] := 14 div 5;
D. Cả A, B và C đều hợp lệ
Chọn câu lệnh: Gán giá trị 35 cho phần tử thứ i của mảng A
A. Readln(A[i]) := 35;
B. A[i] := 35;
C. A(i) := 35;
D. A[35] := i;
Chọn câu lệnh: Nhập từ bàn phím giá trị cho phần tử thứ i của mảng A
A. Readln(A[i]);
B. Write(A[i]);
C. Readln(‘A[i]’);
D. Write(‘A[i]’);
Chọn câu lệnh: Xuất ra màn hình giá trị của phần tử thứ i của mảng A
A. Readln(A[i]);
B. Write(A[i]);
C. Readln(‘A[i]’);
D. Write(‘A[i]’);
Để tham chiếu đến phần tử thứ 21 của mảng B, ta viết:
A. B[20];
B. B[21];
C. B(20);
D. B(21);
Để 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 Byte;
B. Var A : Array[1..150] Of Byte;
C. Var A : Array[1…150] Of Integer;
D. Var A : Array[1..150] Of Integer;
Cú pháp tham chiếu đến một phần tử của mảng là:
A. <tên kiểu mảng>[<chỉ số>]
B. <tên biến mảng>[<số lượng phần tử>]
C. <tên biến mảng>[<chỉ số>]
D. <tên kiểu mảng>[<số lượng phần tử>]
Trong Pascal, để khai báo kiểu gián tiếp mảng một chiều ta thực hiện:
A. type <tên kiểu mảng> = array[<kiểu chỉ số>] of <kiểu phần tử>;
var <tên biến mảng> =<tên kiểu mảng>;
B. type <tên kiểu mảng> = string[<kiểu chỉ số>] of <kiểu phần tử>;
var <tên biến mảng>:<tên kiểu mảng>;
C. type <tên kiểu mảng> = array[<kiểu chỉ số>] of <kiểu phần tử>;
var <tên biến mảng>:<tên kiểu mảng>;
D. type <tên kiểu mảng> = array[<kiểu chỉ số>] of <kiểu mảng khác>;
var <tên biến mảng>:<tên kiểu mảng>;
Trong Pascal, để khai báo trực tiếp mảng một chiều ta thực hiện:
A. Var <tên biến mảng> : array[<chỉ số hàng>] of <kiểu phần tử>;
B. Var <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 <số lượng phần tử>;
D. Var <tên kiểu mảng> : array[<kiểu chỉ số>] of <kiểu phần tử>;
Phát biểu nào dưới đây về mảng là không chính xác
A. Chỉ số 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. Mảng có thể chứa các kí tự
D. Độ dài tối đa của mảng là 255
Phát biểu nào dưới đây về mảng là phù hợp?
A. Độ dài tối đa của mảng là 255
B. Là một tập hợp các số nguyên
C. 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ự
Cho đoạn lệnh K:=10; While (K>5) do K:=K-2; Write(K); Kết quả xuất ra màn hình là:
A. 10 9 8 7 6 5
B. 10 5
C. 5
D. 4
Cho đoạn lệnh K:=10; While (K>5) do K:=K-1; Write(K);
Kết quả xuất ra màn hình là:
A. 10 9 8 7 6 5
B. 10 5
C. 5
D. 3
Mọi quá trình tính toán đều có thể mô tả và thực hiện dựa trên cấu trúc cơ bản là:
A. Cấu trúc tuần tự
C. Cấu trúc lặp
B. Cấu trúc rẽ nhánh
D. Cả ba cấu trúc
Trong vòng lặp While-do, câu lệnh sau do được thực hiện khi:
A. Điều kiện còn đúng
B. Điều kiện sai
C. Điều kiện không xác định
D. Không cần điều kiện
Câu lệnh while – do có cú pháp nào dưới đây?
A. white <điều kiện> do <câu lệnh>;
B. while <điều kiện> do <câu lệnh>;
C. while <điều kiện> to <câu lệnh>;
D. while <điều kiện> begin <câu lệnh>;end;
Cú pháp nào sau đây là lệnh lặp For – do dạng tiến:
A. for < biến đếm> = < Giá trị cuối >downto < Giá trị đầu > do < câu lệnh >;
B. for < biến đếm> := < Giá trị cuối >downto < Giá trị đầu > do < câu lệnh >;
C. for < biến đếm> := < Giá trị đầu > to < Giá trị cuối > do < câu lệnh>;
D. for < biến đếm> = < Giá trị cuối >down < Giá trị đầu > do < câu lệnh >;
Hãy chọn phương án ĐÚNG ở dạng lặp tiến For – do ?
A. Giá trị đầu phải nhỏ hơn giá trị cuối
B. Giá trị đầu phải nhỏ hơn hoặc bằng giá trị cuối.
C. Giá trị đầu phải lớn hơn giá trị cuối
D. Giá trị đầu phải bằng giá trị cuối
Cú pháp lệnh lặp For – do dạng lùi là:
A. for < biến đếm> = < Giá trị cuối > downto < Giá trị đầu > do < câu lệnh >;
B. for < biến đếm> = < Giá trị cuối > down < Giá trị đầu > do < câu lệnh >;
C. for < biến đếm>:= < Giá trị đầu > downto < Giá trị cuối > do < câu lệnh>;
D. for < biến đếm>:= < Giá trị cuối > downto < Giá trị đầu > do < câu lệnh >;
Cho đoạn chương trình:
S:= 0; n:= 0;
while … do
Begin
n:= n + 1;
S:= S + n;
end;
Để tính tổng S = 1 + 2 + 3 + … + 100, điều kiện nào sau đây cần điền vào chỗ ba chấm (…) giữa câu lệnh while … do?
A. n >= 100
B. n < 100
C. n > 100
D. n <= 100
Đoạn chương trình sau thực hiện công việc?
While M <> N do
If M > N then M:=M - N else N:=N - M;
A. Tìm ước số chung lớn nhất của M và N
B. Tìm bội số chung nhỏ nhất của M và N
C. Tìm số nhỏ nhất trong hai số M và N
D. Tìm số lớn nhất trong hai số M và N
Đoạn chương trình sau thực hiện công việc?
For i:= 1 to M do
If (i mod 3 = 0) or (i mod 5 = 0) then
t:= t + i;
A. Tính tổng các số chia hết cho 3 hoặc 5 trong phạm vi từ 1 đến M
B. Tính tổng các số chia hết cho 3 và 5 trong phạm vi từ 1 đến M
C. Tính tổng các số chia hết cho 3 trong phạm vi từ 1 đến M
D. Tính tổng các số chia hết cho 5 trong phạm vi từ 1 đến M
Đoạn chương trình sau làm công việc gì?
While a <> 2*b do
Begin
a:=a+1;
b:=b+1;
End;
A. Lặp lại việc tăng a, b lên 1 đơn vị cho đến khi a < 2b
B. Lặp lại việc tăng a, b lên 1 đơn vị cho đến khi a ≠ 2b
C. Lặp lại việc tăng a, b lên 1 đơn vị cho đến khi a = 2b
D. Lặp lại việc tăng a, b lên 1 đơn vị cho đến khi a > 2b
Phát biểu nào dưới đây về kiểu mảng một chiều 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ự
Cách viết nào sau đây tham chiếu đúng phần tử thứ i của mảng một chiều M ?
A. M[',i',]
B. M['i']
C. M[i]
D. M(i)
Khai báo nào dưới đây ĐÚNG về biến kiểu mảng một chiều gồm 100 phần tử là số nguyên?
A. Var mang: array[1..100] of integer;
B. Var mang: array(1..100) of integer;
C. Var mang: array[1...100] of integer;
D. Var mang: array[0..100] of integer
Cách viết nào sau đây đưa ra màn hình giá trị các phần tử của mảng A?
A. Write(A[i]);
B. Write(A{i});
C. Write(A(i));
D. Write(A[‘i’]);
Hãy chọn phương án ĐÚNG về biểu thức điều kiện khi kiểm tra một phần tử thứ i của mảng A có chia hết cho 3 và 5 hay không?
A. (A[i] mod 3=0) or (A[i] mod 5=0)
B. (A[i] mod 3=0) and (A[i] mod 5=0)
C. (A[i] mod 3<>0) and (A[i] mod 5<>0)
D. (A[i] mod 3<>0) and (A[i] mod 5=0
Cho khai báo mảng:
Var a: array[1..50] of word ;
và đoạn chương trình như sau: d:= 0;
for i:= 1 to 50 do
if a[i] mod 2=0 then d:= d+1;
Đoạn chương trình trên thực hiện công việc?
A. Tính tổng các phần tử là số chẵn trong mảng
B. Tìm phần tử lớn nhất trong mảng
C. Đếm số lượng phần tử là số chẵn trong mảng
D. Đếm số lượng phần tử là số lẻ trong mảng
Cho khai báo mảng:
Var a: array[1..50] of integer ;
và đoạn chương trình như sau: s:= 0 ;
for i:= 1 to 50 do
s:= s + a[i];
Đoạn chương trình trên thực hiện công việc?
A. Tính tích các phần tử trong mảng;
B. Tính tổng các phần tử trong mảng;
C. Tính hiệu các phần tử trong mảng
D. Tính thương các phần tử trong mảng
Cho khai báo mảng:
Var a: array[1..50] of real;
và đoạn chương trình như sau: m:= a[1] ;
for i:= 2 to 50 do
if a[i] > m then m:= a[i] ;
Đoạn chương trình trên thực hiện công việc?
A. Tìm chỉ số của phần tử nhỏ nhất trong mảng
B. Tìm chỉ số của phần tử lớn nhất trong mảng
C. Tìm phần tử lớn nhất trong mảng
D. Tìm phần tử nhỏ nhất trong mảng;
Phát biểu nào ĐÚNG về kiểu dữ liệu xâu?
A. Là dãy các ký tự trong bộ mã ASCII
B. Là dãy các ký tự chữ
C. Là dãy các ký tự dấu
D. Là dãy các ký tự số
Hãy chọn phương án ĐÚNG về các phép toán thao tác với xâu ?
A. Cộng, trừ, nhân, chia.
B. Ghép và so sánh.
C. Tính toán và so sánh
D. Cắt, dán, sao chép.
Cách viết nào sau đây tham chiếu đúng phần tử thứ i của xâu S?
A. S[',i',]
B. S['i']
C. S(i)
D. S[i]
Trong ngôn ngữ lập trình Pascal, khai báo nào dưới đây SAI về biến kiểu xâu?
A. Var St: String[300];
B. Var St: String[10];
C. Var St: String;
D. Var St: String[100];
Trong ngôn ngữ lập trình Pascal, hàm Length(S) cho kết quả là:
A. Số ký tự là chữ cái trong xâu S.
B. Số lượng ký tự là dấu cách trong xâu S.
C. Độ dài của xâu S.
D. Số ký tự của xâu S không tính các dấu cách.
Hãy chọn phương án ĐÚNG khi thực hiện thủ tục chuẩn Insert(S1,S2,vt) ?
A. Chèn xâu S1 vào S2 bắt đầu từ vị trí vt
B. Chèn xâu S2 vào S1 bắt đầu từ vị trí vt
C. Nối xâu S2 vào S1
D. Sao chép vào cuối S1 một phần của S2 từ vị trí vt
Cho xâu S= 'Thu do khang chien', sau khi thực hiện thủ tục Delete(S,1,7) kết quả xâu S là:
A. 'Thu do '
B. 'khang chien'
C. 'Thu do khang chien'
D. 'Thu do khang'
Trong ngôn ngữ lập trình Pascal, sau khi thực hiện xong đoạn chương trình sau, giá trị của biến S là?
S := ‘Ha Noi Mua thu’;
Delete(S,7,8);
Insert(‘Mua thu ’, S, 1);
A. ‘Ha Noi Mua thu’;
Noi mua thu’;B. ‘Mua thu Ha Noi mua thu’;
C. ‘Mua thu Ha Noi’;
D. ‘Ha Noi’;
Cho xâu S là ‘Hanoi-Vietnam’. Kết quả của hàm Length(S) là:
A. 12
B. 13
C. 14
D. 15
Đoạn chương trình dưới đây thực hiện công việc?
d:= 0;
for i:= 1 to length(S) do
if S[i] = 'h' then d:= d + 1;
A. Xóa các kí tự số
B. Đếm các kí tự có trong xâu
C. Đếm số ký tự là ‘h’ có trong xâu
D. Xóa đi ký tự là ‘h’ trong xâu
Câu lệnh if nào sau đây đúng:
A. if (a= 5) then a:= d+1 else a:= d+2;
B. if (a= 5) then a:= d+1 else a:= d+2.
C. if (a.= 5) then a:= d+1; else a:= d+2;
D. if (a= 5) then a= d+1 else a= d+2;
Cho đoạn chương trình sau:
Var S, i : Integer;
Begin
i := 3; S:= 40;
if (i > 5) then S:= 5 3 + ( 5 - i ) 2
else
if (i > 2) then S:= 5 * i
else S:= 0;
End.
Sau khi chạy chương trình giá trị của S là:
15
19
40
0
Cho i là biến nguyên. Sau khi thực hiện các lệnh:
i:= 2;
if i: = 1 then i:= i+1 else i:= i+2;
Giá trị cuối cùng của i là:
2
3
4
5
Cho N là một biến kiểu nguyên, chọn câu đúng cú pháp:
A. If N < 10 then write (' Nho hon 10 ') ; else write (' Lon hon 10 ');
B. If N < 10 then write (' Nho hon 10 ') else write (' Lon hon 10 ');
C. If N < 10 Write (' Nho hon 10 ') else then write (' Lon hon 10 ');
D. If N < 10 then N := 10 else N > 20 then write (' N > 20 ');
Cho đoạn chương trình sau:
A[1]:=14; A[2]:=12; A[3]:=4; A[4]:=12; A[5]:=18; A[6]:=22; A[7]:=19;
k:=A[1];
For i:=2 To 7 Do If A[i]<k Then k:=A[i];
Sau khi thực hiện xong đoạn lệnh trên thì giá trị của k là:
12
12
4
18
