Trắc nghiệm Tin học 11 Bài 11: Kiểu mảng
Câu 1: 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ự
Hiển thị đáp án
Trả lời: Mảng một chiều là một dãy hữu hạn các phần tử cùng kiểu. Mảng được
đặt tên và mỗi phần tử của nó có một chỉ số. Để mơ tả ta cần xác định kiểu của các phần tử và cách đánh số các phần tử của nó.
Đáp án: C
Câu 2: Để 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
Hiển thị đáp án
Trả lời: Để khai báo số phần tử của mảng trong PASCAL ( kiểu chỉ số), người lập
trình cần khai báo chỉ số bắt đầu và kết thúc của mảng. Kiểu chỉ số thường là một đoạn số nguyên liên tục có dạng n1..n2 với n1, n2 là các hằng hoặc biểu thức nguyên xác định chỉ số đầu và cuối (n1 ≤ n2).
Đáp án: B
Câu 3: Phát biểu nào dưới đây về chỉ số của mảng là phù hợp nhất?
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
Hiển thị đáp án
Trả lời: Chỉ số của mảng dùng để tham chiếu (truy cập) đến một phần tử bất kì
trong mảng. Cú pháp: <Tên mảng>[chỉ số];
Đáp án: A
Câu 4: 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
Hiển thị đáp án
Trả lời: Chỉ số của mảng không nhất thiết bắt đầu từ 1 tùy theo người lập trình.
Xâu kí tự cũng có thể xem như mảng một chiều, mỗi phần tử là một kí tự. Trong lập trình có thể xây dựng mảng nhiều chiều. Và khơng có giới hạn cụ thể về độ dài của mảng.
Đáp án: D
Câu 5: 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ó
Hiển thị đáp án
Trả lời: Khai báo biến mảng gián tiếp là khai báo thông qua kiểu mảng đã có.
Cấu trúc khai báo mảng gián tiếp:
Var <tên biến mảng> : < tên kiểu mảng>; Đáp án:D
Câu 6: 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;
Hiển thị đáp án Trả lời:
Cấu trúc khai báo mảng trực tiếp:
Var <tên biến mảng> : array [kiểu chỉ số] of <kiểu phần tử>;
Trong đó:
+ Kiểu chỉ số thường là một đoạn số nguyên liên tục có dạng n1..n2 với n1, n2 là các hằng hoặc biểu thức nguyên xác định chỉ số đầu và cuối (n1 ≤ n2).
+ Kiểu phần tử là kiểu của các phần tử trong mảng.
Đáp án: A
Câu 7: 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;
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
Hiển thị đáp án
Trả lời: ý nghĩa của câu lệnh
Var a : array[0..50] of real ; {khai báo mảng a} k := 0 ; {gán chỉ số 0 cho k}
for i := 1 to 50 do { vòng lặp chạy từ 1 đến 50}
if a[i] > a[k] then k := i ; { kiểm tra từ phần tử thứ 2 đến phần tử 50 so sánh với
phần tử đầu và đưa ra chỉ số lớn nhât}
Đáp án:C
Câu 8: 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);
Hiển thị đáp án
Trả lời: Tham chiếu (truy cập) đến một phần tử bất kì trong mảng.
Cú pháp: Tên mảng[chỉ số];
Đáp án: A
Câu 9: 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;
D. var m : array[0..10,0..10] of char;
Hiển thị đáp án
Trả lời: Khai báo mảng hai chiều:
+ Cách 1: trực tiếp
Var <tên biến mảng> : array [kiểu chỉ số hàng, kiểu chỉ số cột] of < kiểu phần tử>; + Cách 2: gián tiếp
Type <tên kiểu mảng> : array [kiểu chỉ số hàng, kiểu chỉ số cột] of < kiểu phần tử>;
Var <tên biến mảng>: < tên kiểu mảng>;
Đáp án: B
Câu 10: 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ử Hiển thị đáp án
Trả lời: 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 truy
cập đến phần tử bất kì. Theo cú pháp Tên mảng[chỉ số];
Trắc nghiệm Tin học 11 Bài 12: Kiểu xâu
Câu 1: Độ dài tối đa của xâu kí tự trong PASCAL là:
A. 256B. 255 B. 255 C. 65535 D. Tùy ý
Hiển thị đáp án
Trả lời: Độ dài tối đa của xâu kí tự trong Pascal là 255 kí tự. Trong mơ tả xâu có
thể bỏ qua phần khai báo độ dài, khi đó độ dài lớn nhất của xâu sẽ nhận giá trị ngầm định là 255.
Đáp án: B
Câu 2: Cho xâu S là ‘Hanoi-Vietnam’. Kết quả của hàm Length(S) là:
A. 12B. 13 B. 13 C. 14 D. 15
Hiển thị đáp án
Trả lời: Hàm Length(s) là hàm cho biết độ dài của xâu s (số kí tự có trong xâu
bao gồm cả dấu cách, dấu -, các dấu đặc biệt).
Đáp án: B
Câu 3: Cho xâu S là ‘Hanoi-Vietnam’. Kết quả của hàm Pos(‘Vietnam’,S)
là A. 5 B. 6
C. 7D. 8 D. 8
Hiển thị đáp án
Trả lời: Hàm Pos(s1, s2) cho biết vị trí xuất hiện đầu tiên của xâu s1 trong s2.
Kết quả của hàm Pos(‘Vietnam’,S) là vị trí kí tự V đầu tiên trong S → kết quả là 7
Đáp án: C
Câu 4: 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 đó
Hiển thị đáp án
Trả lời: Trong mơ tả xâu có thể bỏ qua phần khai báo độ dài, khi đó độ dài lớn
nhất của xâu sẽ nhận giá trị ngầm định là 255.
Đáp án: C
Câu 5: 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
Hiển thị đáp án
Trả lời: Thủ tục chuẩn Insert(S1,S2,vt) thực hiện chèn xâu S1 vào S2 bắt đầu từ
vị trí vt.
Câu 6: Đ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; Hiển thị đáp án
Trả lời: Hàm Length(s) là hàm cho biết độ dài của xâu s (số kí tự có trong xâu
bao gồm cả dấu cách, dấu -, các dấu đặc biệt).
+ Xâu ‘tinhoc ’ có 7 kí tự nên kết quả chương trình là 7.
Đáp án: B
Câu 7: 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; (*)
Hiển thị đáp án
Trả lời: Đoạn chương trình trên dùng để in từng kí tự ra màn hình theo thứ tự ngược, sử dụng vịng lặp chạy từ kí tự cuối về kí tự đầu. Mỗi lần chạy in ra một kí tự.
Câu 8: 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ự;
Hiển thị đáp án
Trả lời: Trong ngơn ngữ lập trình Pascal, xâu kí tự khơng có kí tự nào gọi là xâu
rỗng
Đáp án: B
Câu 9: 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];
Hiển thị đáp án
Trả lời: Cấu trúc khai báo kiểu xâu
Var < biến xâu> : string [độ dài lớn nhất của xâu];
Trong đó: Biến xâu được đặt theo quy tắc đặt tên trong Pascal.
Độ dài xâu có thể có hoặc khơng, độ dài lớn nhất khơng q 255 kí tự.
Câu 10: 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); 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;
Hiển thị đáp án Trả lời:
+ Câu lệnh Delete(S,7,8); có nghĩa là xóa 8 kí tự trong xâu S bắt đầu từ vị trí thứ
7→ xâu S cịn lại sau khi thực hiện lệnh là ‘Ha Noi’
+ Câu lệnh Insert(‘Mua thu’, S, 1); có nghĩa là chèn xâu ‘Mua thu’ vào xâu S trên tại vị trí thứ nhất→ giá trị biến S sau khi thực hiện xong chương trình là ‘Mùa thu Ha Noi’.
Trắc nghiệm Tin học 11 Bài 13: Kiểu bản ghi
Câu 1: 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
Hiển thị đáp án
Trả lời: Kiểu dữ liệu bản ghi dùng để mô tả hay lưu trữ các đối tượng có cùng
một số thuộc tính (thơng tin), mà các thuộc tính có thể có các kiểu dữ liệu khác nhau.
Đáp án: A
Câu 2: 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
Hiển thị đáp án
Trả lời: Kiểu dữ liệu bản ghi dùng để mơ tả hay lưu trữ các đối tượng có cùng
một số thuộc tính cần quản lý mà các thuộc tính có thể có các kiểu dữ liệu khác nhau. Đối với kiểu mảng thì dùng để mơ tả các đối tượng có cùng thuộc tính nhưng kiểu dữ liệu giống nhau. Vì vậy không thể dùng bản ghi để thay thế mảng.
Đáp án: D
Câu 3: 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;
C. sinh_vien.(ho_ten,ngay_sinh); D. sinh_vien.ho_ten;
Hiển thị đáp án
Trả lời: Cấu trúc tham chiếu đến một trường trong bản ghi là:
< Tên biến kiểu bản ghi>.< tên trường>;
Đáp án: D
Câu 4: 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 tốn số học +, – , *, /
Hiển thị đáp án
Trả lời: Kiểu bản ghi là một kiểu dữ liệu có cấu trúc. 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 trường tạo thành một bản ghi có thể có các kiểu dữ liệu khác nhau.
Đáp án: A
Câu 5: 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 tốn quản lí
Hiển thị đáp án
Trả lời: Không thể so sánh các bản ghi bất kì với nhau bằng các quan hệ <, >, =,
<>, vì các phép toán quan hệ dùng trong các biểu thức quan hệ.
Đáp án: A
Câu 6: 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;
Hiển thị đáp án Trả lời:
Trong ngôn ngữ lập trình Pascal, có thể gán giá trị cho bản ghi bằng cách:
+ Gán giá trị cho từng trường: có thể thực hiện bằng lệnh gán hoặc nhập từ bàn
phím
+ Dùng lệnh trực tiếp: nếu A. B là hai bản ghi cùng kiểu, ta có thể gán giá trị của B cho A bằng câu lệnh A:= B;
Đáp án: D
Câu 7: 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 ;
1. Type CanBo : Record
HoTen : String[30] ; Namsinh : Integer; Diachi : String[100] ; MucLuong : Real ; PhuCap : Real ;
End.
Hiển thị đáp án
Trả lời: Cấu trúc khai báo kiểu bản ghi:
Type <tên kiểu bản ghi> = record
<tên trường 1> : < kiểu trường 1>; …
<tên trường k> : < kiểu trường k>; End;
Đáp án:A
Câu 8: Để 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> ;
Hiển thị đáp án
Trả lời: Cấu trúc truy cập từng trường của bản ghi là: <tên biến bản ghi> . <tên trường> ;
Đáp án: C
Câu 9: 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. A.Ten := ‘Nguyen Van A’ ;