Đề thi giữa HK2 môn Tin học 11 năm 2021-2022
Trường THPT Nguyễn Du
-
Câu 1:
Trong lệnh lặp For – do: (chọn phương án đúng nhất)
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âu 2:
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ự
B. Cấu trúc rẽ nhánh
C. Cấu trúc lặp
D. Cả ba cấu trúc
-
Câu 3:
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:
A. chèn thêm phần tử
B. truy cập đến phần tử bất kì
C. xóa một phần tử
D. chèn thêm phần tử và xóa phần tử
-
Câu 4:
Trong ngôn ngữ lập trình Pascal, sau khi chương trình 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;
B. Mua thu Ha Noi mua thu;
C. Mua thu Ha Noi;
D. Ha Noi;
-
Câu 5:
Trong kiểu dữ liệu bản ghi, mỗi bản ghi thường được dùng để?
A. Mô tả hay lưu trữ thông tin về nhiều đối tượng cần quản lý ;
B. Mô tả hay lưu trữ thông tin về một thuộc tính cần quản lý ;
C. Mô tả hay lưu trữ thông tin về một đối tượng cần quản lý ;
D. Mô tả hay lưu trữ thông tin về nhiều thuộc tính cần quản lý ;
-
Câu 6:
Phát biểu nào sau đây về bản ghi là không phù hợp?
A. Bản ghi là dữ liệu có cấu trúc
B. Bản ghi thường có nhiều trường dữ liệu
C. Trường dữ liệu của bản ghi có thể là một kiểu bản ghi khác
D. Bản ghi thường được dùng để thay thế mảng
-
Câu 7:
Tính tống S = 1 + 2 + 3 + … + n + … cho đến khi S>108. Điều kiện nào sau đây cho vòng lặp while – do là đúng:
A. While S>=108 do
B. While S < 108 do
C. While S < 1.0E8 do
D. While S >= E8 do
-
Câu 8:
Câu lệnh sau giải bài toán nào:
While M <> N do
If M > N then M:=M-N else N:=N-M;
A. Tìm UCLN của M và N
B. Tìm BCNN của M và N
C. Tìm hiệu nhỏ nhất của M và N
D. Tìm hiệu lớn nhất của M và N
-
Câu 9:
Đoạn chương trình sau giải bài toán nào?
For I:=1 to M do
If (I mod 3 = 0) and (I mod 5 = 0) then
T := T + I;
A. Tổng các số chia hết cho 3 hoặc 5 trong phạm vi từ 1 đến M
B. Tổng các số chia hết cho 3 và 5 trong phạm vi từ 1 đến M
C. Tổng các số chia hết cho 3 trong phạm vi từ 1 đến M
D. Tổng các số chia hết cho 5 trong phạm vi từ 1 đến M
-
Câu 10:
Để 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
-
Câu 11:
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
-
Câu 12:
Phát biểu nào sau đây về mảng là không chính xác?
A. Chỉ số của 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. Xâu kí tự cũng có thể xem như là một loại mảng
D. Độ dài tối đa của mảng là 255
-
Câu 13:
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
-
Câu 14:
Cho xâu S là ‘Hanoi-Vietnam’. Kết quả của hàm Pos(‘Vietnam’,S) là
A. 5
B. 6
C. 7
D. 8
-
Câu 15:
Cho biến bản ghi sinh_vien gồm các trường ho_ten, ngay_sinh. Biểu thức nào truy cập đến trường ho_ten của bản ghi này?
A. ho_ten;
B. sinh_vien → ho_ten;
C. sinh_vien.(ho_ten,ngay_sinh);
D. sinh_vien.ho_ten;
-
Câu 16:
Cho khai báo sau: Var hoten : String;
Phát biểu nào dưới đây là đúng ?
A. Câu lệnh sai vì thiếu độ dài tối đa của xâu
B. Xâu có độ dài lớn nhất là 0
C. Xâu có độ dài lớn nhất là 255
D. Cần phải khai báo kích thước của xâu sau đó
-
Câu 17:
Hãy chọn phương án ghép đúng nhất. Thủ tục chuẩn Insert(S1,S2,vt) thực hiện:
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
-
Câu 18:
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ó
-
Câu 19:
Cú pháp lệnh lặp For – do dạng lùi:
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ị cuối >down < Giá trị đầu > do < câu lệnh >;
D. for < biến đếm> := < Giá trị đầu >downto < Giá trị cuối > do < câu lệnh>;
-
Câu 20:
Phát biểu nào dưới đây là đúng khi nói về kiểu bản ghi?
A. Kiểu bản ghi là một kiểu dữ liệu có cấu trúc
B. Mỗi bản ghi mô tả một đối tượng, mỗi bản ghi có thể gồm một số thành phần gọi là trường, mỗi trường mô tả một thuộc tính của đối tượng. Giống như kiểu mảng, các thành phần tạo thành một bản ghi phải thuộc cùng một kiểu dữ liệu.
C. Có thể so sánh các bản ghi bất kì với nhau bằng các quan hệ <, >, =, <>
D. Trên các biến bản ghi, ta có thể sử dụng các phép toán số học +, – , *, /
-
Câu 21:
Phát biểu nào dưới đây là sai khi nói về kiểu bản ghi?
A. Có thể so sánh các bản ghi bất kì với nhau bằng các quan hệ <, >, =, <>
B. Kiểu bản ghi là một kiểu dữ liệu có cấu trúc
C. Với A. B là hai biến bản ghi thì ta chỉ có thể dùng lệnh gán A := B trong trường hợp A và B là cùng kiểu
D. Kiểu bản ghi cho chúng ta một phương thức xây dựng các kiểu dữ liệu mới một cách linh hoạt và phong phú. Kiểu bản ghi thường được dùng để mô tả các đối tượng trong các bài toán quản lí
-
Câu 22:
Trong ngôn ngữ lập trình Pascal, có thể gán giá trị cho bản ghi bằng cách?
A. Gán giá trị cho từng trường;
B. Gán giá trị cho bảng ghi;
C. Nhập giá trị từ bàn phím;
D. Cả 3 cách trên;
-
Câu 23:
Trong ngôn ngữ lập trình Pascal, để khai báo kiểu bản ghi để xử lý danh sách cán bộ của một cơ quan, khai báo kiểu bản ghi nào trong các khai báo sau là đúng? ( Bản ghi có cấu trúc gồm 5 trường: Họ tên, năm sinh, địa chỉ, mức lương, phụ cấp )
A. Type CanBo = Record HoTen : String[30] ; Namsinh : Integer; Diachi : String[100] ; MucLuong : Real ; PhuCap : Real ; End;
B. Type CanBo : Record HoTen : String[30] ; Namsinh : Integer; Diachi : String[100] ; MucLuong : Real ; PhuCap : Real ; End;
C. Type CanBo : Record HoTen : String[30] ; Namsinh : Integer; Diachi : String[100] ; MucLuong : Real ; PhuCap : Real ;
D. Type CanBo : Record HoTen : String[30] ; Namsinh : Integer; Diachi : String[100] ; MucLuong : Real ; PhuCap : Real ; End.
-
Câu 24:
Để truy cập vào từng trường của bản ghi ta viết?
A. <tên biến bản ghi> . <giá trị của trường> ;
B. <tên kiểu bản ghi> . <tên trường> ;
C. <tên biến bản ghi> . <tên trường> ;
D. <tên kiểu bản ghi> . <giá trị của trường> ;
-
Câu 25:
Đoạn chương trình sau in ra kết quả nào ?
Program Welcome ;
Var a : string[10];
Begin
a := ‘tinhoc ’;
writeln(length(a));
End.
A. 6;
B. 7;
C. 10;
D. Chương trình có lỗi;
-
Câu 26:
Câu lệnh nào trong các câu lệnh sau không dùng để gán giá trị cho trường của bản ghi A? (với bản ghi A có 3 trường là Ten, Lop, Diem)
A. Ten := ‘Nguyen Van A’ ;
B. Lop := ‘11A7’ ;
C. Readln(A.Diem) ;
D. S := A.Diem ;
-
Câu 27:
Phát biểu nào sau đây về chức năng của kiểu bản ghi là phù hợp nhất?
A. Để mô tả đối tượng chứa nhiều loại thông tin khác nhau
B. Để mô tả nhiều dữ liệu
C. Để mô tả dữ liệu gồm cả số và xâu kí tự
D. Để tạo mảng nhiều chiều
-
Câu 28:
Cho str là một xâu kí tự, đoạn chương trình sau thực hiện công việc gì ?
for i := length(str) downto 1 do
write(str[i]) ;
A. In xâu ra màn hình;
B. In từng kí tự xâu ra màn hình;
C. In từng kí tự ra màn hình theo thứ tự ngược, trừ kí tự đầu tiên;
D. In từng kí tự ra màn hình theo thứ tự ngược;
-
Câu 29:
Trong ngôn ngữ lập trình Pascal, xâu kí tự không có kí tự nào gọi là ?
A. Xâu không;
B. Xâu rỗng;
C. Xâu trắng;
D. Không phải là xâu kí tự;
-
Câu 30:
Trong ngôn ngữ lập trình Pascal, khai báo nào trong các khai báo sau là sai khi khai báo xâu kí tự ?
A. Var S : string;
B. Var X1 : string[100];
C. Var S : string[256];
D. Var X1 : string[1];
-
Câu 31:
Độ dài tối đa của xâu kí tự trong PASCAL là:
A. 256
B. 255
C. 65535
D. Tùy ý
-
Câu 32:
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;
-
Câu 33:
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
-
Câu 34:
Cho khai báo mảng như sau:
Var a : 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);
-
Câu 35:
Khai báo mảng hai chiều nào sau đây là sai?
A. var m : array[1..10] of array[0..9] of integer;
B. var m : array[1..20,1..40] of real;
C. var m : array[1..9;1..9] of integer;
D. var m : array[0..10,0..10] of char;
-
Câu 36:
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âu 37:
Cú pháp 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ị cuối >down < Giá trị đầu > do < câu lệnh >;
D. for < biến đếm> := < Giá trị đầu > to < Giá trị cuối > do < câu lệnh>;
-
Câu 38:
Trong vòng lặp For – do dạng tiến. Giá trị của biến đếm
A. Tự động giảm đi 1
B. Tự động điều chỉnh
C. Chỉ tăng khi có câu lệnh thay đổi giá trị
D. Được giữ nguyên
-
Câu 39:
Kiểu dữ liệu của biến đếm trong lệnh lặp For – do:
A. Cùng kiểu với giá trị đầu và giá trị cuối
B. Chỉ cần khác kiểu với giá trị đầu
C. Cùng kiểu với các biến trong câu lệnh
D. Không cần phải xác định kiểu dữ liệu
-
Câu 40:
Vòng lặp While – do kết thúc khi nào
A. Khi một điều kiện cho trước được thỏa mãn
B. Khi đủ số vòng lặp
C. Khi tìm được Output
D. Tất cả các phương án