Tải bản đầy đủ (.doc) (41 trang)

trắc nghiệm tin học 11 có đáp án (6 chương)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (265.68 KB, 41 trang )

Một số câu hỏi trắc nghiệm TIN HỌC 11

Trang _ 1

Chương I : MỘT SỐ KHÁI NIỆM VỀ LẬP TRÌNH
VÀ NGÔN NGỮ LẬP TRÌNH
Câu 1 : _ Hãy chọn phương án ghép phù hợp nhất . Ngôn ngữ lập trình là gì :
A. phương tiện để soạn thảo văn bản trong đó có chương trình;
B. ngôn ngữ Pascal hoặc C;
C. phương tiện diễn đạt thuật toán để máy tính thực hiện công việc; (*)
D. phương tiện diễn đạt thuật toán;
Câu 2 : _ Phát biểu nào dưới đây chắc chắn sai ?
A. Lập trình là viết chương trình;
B. Lập trình và chương trình là hai khái niệm tương đương, đều là cách mô tả thuật
toán bằng ngôn ngữ lập trình; (*)
C. Chương trình được tạo thành từ tổ hợp các câu lệnh và các khai báo cần thiết về
biến, hằng, hàm, … ;
D. Chương trình chưa chắc là đã đúng nếu cho kết quả đúng với rất nhiều bộ dữ liệu
vào;
Câu 3 : _ Phát biểu nào sau đây chắc chắn sai ?
A. Mọi bài toán đều có thể giải được bằng máy tính; (*)
B. Chương trình là một mô tả thuật toán bằng một ngôn ngữ lập trình;
C. Không thể viết được chương trình để giải một bài toán nếu như không biết thuật
toán để giải bài toán đó;
D. Một bài toán có thể có nhiều thuật toán để giải;
Câu 4 : _ Phát biểu nào sau đây chắc chắn sai ?
A. Để giải bài toán bằng máy tính phải viết chương trình mô tả thuật toán giải bài
toán đó;
B. Mọi người sử dụng máy tính đều phải biết lập chương trình; (*)
C. Máy tính điện tử có thể chạy các chương trình;
D. Một bài toán có thể có nhiều thuật toán để giải;


Câu 5 : _ Hãy chọn phương án ghép đúng . Ngôn ngữ lập trình là ngôn ngữ
A. cho phép thể hiện các dữ liệu trong bài toán mà các chương trình sẽ phải xử lí;
B. dưới dạng nhị phân để máy tính có thể thực hiện trực tiếp;
C. diễn đạt thuật toán để có thể giao cho máy tính thực hiện; (*)
D. có tên là “ngôn ngữ thuật toán” hay còn gọi là “ngôn ngữ lập trình bậc cao” gần
với ngôn ngữ toán học cho phép mô tả cách giải quyết vấn đề độc lập với máy
tính;
Câu 6 : _ Hãy chọn phương án ghép đúng . Ngôn ngữ máy là
A. bất cứ ngôn ngữ lập trình nào mà có thể diễn đạt thuật toán để giao cho máy
tính thực hiện
B. ngôn ngữ để viết các chương trình mà mỗi chương trình là một dãy lệnh máy
trong hệ nhị phân; (*)
C. các ngôn ngữ mà chương trình viết trên chúng sau khi dịch ra hệ nhị phân thì
máy có thể chạy được;
D. diễn đạt thuật toán để có thể giao cho máy tính thực hiện;
Câu 7 : _ Hãy chọn phương án ghép đúng . Hợp ngữ là ngôn ngữ
A. mà máy tính có thể thực hiện được trực tiếp không cần dịch;
B. có các lệnh được viết bằng kí tự nhưng về cơ bản mỗi lệnh tương đương với một
lệnh máy . Để chạy được cần dịch ra ngôn ngữ máy; (*)
C. mà các lệnh không viết trực tiếp bằng mã nhị phân ;
D. không viết bằng mã nhị phân, được thiết kế cho một số loại máy có thể chạy trực
tiếp dưới dạng kí tự .
Câu 8 : _ Hãy chọn phương án ghép sai . Ngôn ngữ lập trình bậc cao là ngôn ngữ
A. thể hiện thuật toán theo những quy ước nào đó không phụ thuộc vào các máy
tính cụ thể;
B. mà máy tính không hiểu trực tiếp được, chương trình viết trên ngôn ngữ bậc cao
trước khi chạy phải dịch sang ngôn ngữ máy;
C. có thể diễn đạt được mọi thuật toán;
D. sử dụng từ vựng và cú pháp của ngôn ngữ tự nhiên (tiếng Anh); (*)
Câu 9 : _ Phát biểu nào dưới đây chắc chắn sai ?

A. Chương trình dịch cho phép chuyển chương trình viết bằng một ngôn ngữ lập
trình nào đó sang chương trình trên ngôn ngữ máy để máy có thể thực hiện được
mà vẫn bảo toàn được ngữ nghĩa của chương trình nguồn; (*)


Một số câu hỏi trắc nghiệm TIN HỌC 11

Câu 10 :

Câu 11 :

Câu 12 :

Câu 13 :

Câu 14 :

Câu 15 :

Câu 16 :

Câu 17 :

Câu 18 :

Trang _ 2

B. Chương trình dịch giúp người lập trình có thể lập trình trên một ngôn ngữ lập
trình gần với ngôn ngữ tự nhiên hơn, do đó giảm nhẹ được nỗ lực lập trình, tăng
cường hiệu suất lập trình;

C. Chương trình dịch giúp tìm ra tất cả các lỗi của chương trình;
D. Một ngôn ngữ lập trình có thể có cả chương trình thông dịch và chương trình biên
dịch;
_
Phát biểu nào dưới đây là sai khi nói về biên dịch và thông dịch ?
A. Chương trình dịch của ngôn ngữ lập trình bậc cao gọi là biên dịch còn thông dịch
là chương trình dịch dùng với hợp ngữ; (*)
B. Một ngôn ngữ lập trình có thể có cả chương trình thông dịch và chương trình biên
dịch;
C. Thông dịch lần lượt dịch và thực hiện từng câu lệnh còn biên dịch phải dịch trước
toàn bộ chương trình sang mã nhị phân thì mới có thể thực hiện được;
D. Biên dịch và thông dịch đều kiểm tra tính đúng đắn của câu lệnh;
_
Phát biểu nào dưới đây là đúng ?
A. Mỗi ngôn ngữ lập trình bậc cao đều có đúng một chương trình dịch;
B. Chương trình dịch gồm hợp dịch, thông dịch, biên dịch;
C. Máy tính chỉ nhận biết được kí tự 0 và kí tự 1 nên chương trình bằng ngôn ngữ
máy cũng phải được dịch sang mã nhị phân;
D. Một ngôn ngữ lập trình bậc cao có thể có nhiều chương trình dịch khác nhau; (*)
_
Phát biểu nào dưới đây là đúng ?
A. Ngữ nghĩa trong ngôn ngữ lập trình phụ thuộc nhiều vào ý muốn của người lập
trình tạo ra;
B. Mỗi ngôn ngữ lập trình đều có 3 thành phần là bảng chữ cái, cú pháp và ngữ
nghĩa, nên việc khai báo kiểu dữ liệu, hằng, biến,… được áp dụng chung như
nhau cho mọi ngôn ngữ lập trình;
C. Cú pháp của một ngôn ngữ lập trình là bộ quy tắc cho phép người lập trình viết
chương trình trên ngôn ngữ đó; (*)
D. Các ngôn ngữ lập trình đều có chung một bộ chữ cái;
_

Phát biểu nào dưới đây là đúng ?
A. Ngoài bảng chữ cái, cú pháp, ngữ nghĩa, một ngôn ngữ lập trình còn có các quy
tắc để khai báo biến, hằng,…;
B. Ngoài bảng chữ cái, có thể dùng các kí tự thông dụng trong toán học để viết
chương trình;
C. Chương trình có lỗi cú pháp có thể được dịch ra ngôn ngữ máy nhưng không thực
hiện được;
D. Cú pháp là bộ quy tắc dùng để chương trình; (*)
_
Chọn ý kiến đúng trong các ý kiến sau đây:
A. Chương trình cho kết quả đúng khi thực hiện đủ 20 test / 20 test thì chương trìn
đó đúng;
B. Chương trình cho kết quả sai khi thực hiện 1 test thì chương trình đó sai; (*)
C. Bộ test với kích thước dữ liệu lớn có nhiều khả năng phát hiện lỗi sai của chương
trình hơn là các bộ test với kích thước dữ liệu nhỏ;
D. Khi dịch chương trình không thấy lỗi thì có thể kết luận chương trình là đúng.
_
Phát biểu nào dưới đây là hợp lí nhất ?
A. Biến là đại lượng nhận giá trị trước khi chương trình thực hiện .
B. Biến là đại lượng được đặt tên và có giá trị thay đổi trong quá trình thực hiện
chương trình. (*)
C. Biến có thể lưu trữ nhiều loại giá trị khác nhau.
D. Biến có thể đặt hoặc không đặt tên gọi .
_
Phát biểu nào dưới đây là hợp lí nhất ?
A. Biến dùng trong chương trình phải khai báo . (*)
B. Biến được chương trình dịch bỏ qua .
C. Biến có thể lưu trữ nhiều loại giá trị khác nhau .
D. Biến là đại lượng nhận giá trị trước khi chương trình thực hiện .
_

Phát biểu nào dưới đây là hợp lí nhất ?
A. Hằng là đại lượng nhận giá trị trước khi chương trình thực hiện . (*)
B. Hằng là đại lượng được đặt tên và có giá trị thay đổi trong quá trình thực hiện
chương trình
C. Hằng có thể lưu trữ nhiều loại giá trị khác nhau .
D. Hằng được chương trình dịch bỏ qua .
_
Phát biểu nào dưới đây là hợp lí nhất ?
A. Tên gọi là đại lượng nhận giá trị trước khi chương trình thực hiện .


Một số câu hỏi trắc nghiệm TIN HỌC 11

Trang _ 3

B. Tên gọi là đại lượng được đặt tên và có giá trị thay đổi trong quá trình thực hiện
chương trình .
C. Tên gọi có thể lưu trữ nhiều loại giá trị khác nhau .
D. Tên gọi do người lập trình tự đặt theo quy tắc do từng ngôn ngữ lập trình xác định
. (*)
Câu 19 : _
Hãy chọn biểu diễn hằng đúng trong các biểu diễn sau :
A. Begin
C. ‘65
B. 58,5
D. 1024 (*)
Câu 20 : _

Câu 21 :


Câu 22 :

Câu 23 :

Câu 24 :

Câu 25 :

Câu 26 :

Câu 27 :

Câu 28 :

Câu 29 :

Hãy chọn biểu diễn tên đúng trong những biểu diễn sau
‘*****’
-tenkhongsai
(bai_tap)
Tensai
(*)
_
Chương trình viết bằng hợp ngữ không có đặc điểm nào trong các đặc
điểm sau :
A. Dễ lập trình hơn so với ngôn ngữ bậc cao (*)
B. Tốc độ thực hiện nhanh hơn so với chương trình được viết bằng ngôn ngữ bậc cao
C. Gần với ngôn ngữ máy
D. Sử dụng trọn vẹn các khả năng của máy tính
_

Chương trình dịch không có khả năng nào trong các khả năng sau ?
A. Phát hiện được lỗi ngữ nghĩa (*)
B. Phát hiện được lỗi cú pháp
C. Thông báo lỗi cú pháp
D. Tạo được chương trình đích
_
Phát biểu nào dưới đây đúng ?
A. Chương trình là dãy các lệnh được tổ chức theo các quy tắc được xác định bởi
ngôn ngữ lập trình cụ thể
(*)
B. Trong chế độ thông dịch, mỗi câu lệnh của chương trình nguồn được dịch thành
một câu lệnh của chương trình đích
C. Mọi bài toán đều có chương trình để giải trên máy tính
D. Nếu chương trình nguồn có lỗi cú pháp thì chương trình đích cũng có lỗi cú pháp
_
Chương trình dịch là chương trình có chức năng
A. Chuyển đổi chương trình được viết bằng ngôn ngữ lập trình bậc cao thành
chương trình thực hiện được trên máy
(*)
B. Chuyển đổi chương trình được viết bằng ngôn ngữ lập trình Pascal thành chương
trình thực hiện được trên máy
C. Chuyển đổi chương trình được viết bằng ngôn ngữ máy thành chương trình thực
hiện được trên máy
D. Chuyển đổi chương trình được viết bằng ngôn ngữ lập trình bậc cao thành
chương trình hợp ngữ
_
Trong tin học, hằng là đại lượng
A. Có giá trị thay đổi trong quá trình thực hiện chương trình
B. Có giá trị không thay đổi trong quá trình thực hiện chương trình
(*)

C. Được đặt tên
D. Có thể thay đổi giá trị hoặc không thay đổi giá trị tùy thuộc vào bài toán
_
Các thành phần của ngôn ngữ lập trình là
A. Chương trình thông dịch và chương trình biên dịch
B. Chương trình dịch, bảng chữ cái, cú pháp, ngữ nghĩa
C. Bảng chữ cái, cú pháp, ngữ nghĩa (*)
D. Tên dành riêng, tên chuẩn và tên do người lập trình định nghĩa
_
Trong các cách khai báo Hằng sau đây, cách khai báo nào là đúng ?
A. Const Pi = 3,14;
B. Const = Pi;
C. Const Pi = 3.1;
(*)
D. Pi = 3.14
_
Hãy chọn phát biểu sai ?
A. Các biến đều phải được khai báo và mỗi biến chỉ khai báo một lần
B. Một chương trình luôn luôn có hai phần : phần khai báo và phần thân
(*)
C. Sau từ khóa var có thể khai báo nhiều danh sách biến khác nhau
D. Chương trình dịch có hai loại : thông dịch và biên dịch
_
Trong ngôn ngữ Pascal, từ khóa CONST dùng để khai báo
A. Tên chương trình
A.
B.
C.
D.



Một số câu hỏi trắc nghiệm TIN HỌC 11

Trang _ 4

B. Hằng
(*)
C. Biến
D. Thư viện
Câu 30 : _
Trong ngôn ngữ Pascal, từ khóa USES dùng để khai báo
A. Tên chương trình
B. Hằng
C. Biến
D. Thư viện
(*)
Câu 31 : _

Tên nào không đúng trong ngôn ngữ Pascal
abc_123
_123abc
123_abc
(*)
abc123
_
Bằng 2 chữ cái A và B , người ta có thể viết được mấy tên đúng có độ dài
không quá 2 chữ cái
A. 2
B. 4
C. 6

(*)
D. 8
_
Có mấy loại hằng ?
A. 2
B. 3
(*)
C. 4
D. 5
_
Trong Pascal, các đoạn chú thích được đặt giữa cặp dấu nào ?
A. { và }
(*)
B. [ và ]
C. ( và )
D. /* và */
_
Trong những biểu diễn dưới đây, biểu diễn nào là từ khóa trong Pascal ?
A. End
(*)
B. Sqrt
C. Crt
D. LongInt
_
Khái niệm nào sau đây là đúng về tên dành riêng ?
A. Tên dành riêng là tên do người lập trình đặt
B. Tên dành riêng là tên đã được NNLT qui định dùng với ý nghĩa riêng xác định,
không được sử dụng với ý nghĩa khác
(*)
C. Tên dành riêng là tên đã được NNLT qui định đúng với ý nghĩa riêng xác định, có

thể được định nghĩa lại
D. Tên dành riêng là các hằng hay biến
_
Khai báo nào sau đây là đúng về tên chuẩn ?
A. Tên chuẩn là tên do người lập trình đặt
B. Tên chuẩn là tên đã được NNLT qui định dùng với ý nghĩa riêng xác định, không
được sử dụng với ý nghĩa khác
C. Tên chuẩn là tên đã được NNLT qui định dùng với ý nghĩa riêng xác định, có thể
được định nghĩa lại (*)
D. Tên chuẩn là các hằng hay biến
A.
B.
C.
D.

Câu 32 :

Câu 33 :

Câu 34 :

Câu 35 :

Câu 36 :

Câu 37 :


Một số câu hỏi trắc nghiệm TIN HỌC 11 Chương 4


Trang _ 5

Chương II : CHƯƠNG TRÌNH ĐƠN GIẢN
Câu 38 : _
A.
B.
C.
D.
Câu 39 : _

A.
B.
C.
D.

Câu 40 : _

A.
B.
C.
D.

Câu 41 : _
A.
B.
C.
D.
Câu 42 : _

A.

B.
C.

Câu 43 : _

D.
A.
B.
C.

Câu 44 : _

D.

Chọn phát biểu sai trong các phát biểu sau :
Nói chung, chương trình thường gồm hai phần : phần khai báo và phần thân;
Phần thân chương trình nhất thiết phải có;
Phần khai báo nhất thiết phải có; (*)
Phần thân chương trình có thể không chứa một lệnh nào;
Chọn câu đúng trong các câu sau :
Trong phần khai báo, nhất thiết phải khai báo tên chương trình để tiện ghi nhớ
nội dung chương trình;
Dòng khai báo tên chương trình cũng là một dòng lệnh;
Để sử dụng các chương trình lập sẵn trong các thư viện do ngôn ngữ lập trình
cung cấp, cần khai báo các thư viện này trong phần khai báo; (*)
Ngôn ngữ lập trình nào có hệ thống thư viện càng lớn thì càng dễ viết chương
trình;
Chọn câu phát biểu hợp lí nhất ?
Khai báo hằng thường được sử dụng cho một giá trị tại mỗi thời điểm thực hiện
chương trình;

Biến đơn là biến chỉ nhận những giá trị không đổi và xuất hiện nhiều lần trong
chương trình;
Khai báo hằng thường được sử dụng cho những giá trị không đổi và xuất hiện
nhiều lần trong chương trình; (*)
Trong Pascal, tất cả các biến trong chương trình đều phải có giá trị không đổi và
xuất hiện nhiều lần trong chương trình;
Chọn câu phát biểu hợp lí nhất ?
Trong Pascal, tất cả các biến trong chương trình đều phải đặt tên và khai báo cho
chương trình dịch biết để lưu trữ và xử lí; (*)
Trong Pascal, tất cả các biến trong chương trình đều phải có một giá trị tại mỗi
thời điểm thực hiện chương trình;
Khai báo hằng thường được sử dụng cho kiểu của hằng;
Biến đơn là biến chỉ nhận kiểu của hằng;
Chọn câu phát biểu hợp lí nhất ?
Trong Pascal, tất cả các biến trong chương trình đều phải có giá trị không đổi và
xuất hiện nhiều lần trong chương trình;
Biến đơn là biến chỉ nhận một giá trị tại mỗi thời điểm thực hiện chương trình; (*)
Khai báo hằng thường được sử dụng cho đặt tên và khai báo cho chương trình
dịch biết để lưu trữ và xử lí;
Biến đơn là biến chỉ nhận kiểu của hằng;
Chọn câu phát biểu hợp lí nhất ?
Khai báo hằng thường được sử dụng cho một giá trị tại mỗi thời điểm thực hiện
chương trình;
Khai báo hằng còn xác định cả đặt tên và khai báo cho chương trình dịch biết để
lưu trữ và xử lí;
Trong Pascal, tất cả các biến trong chương trình đều phải có một giá trị tại mỗi
thời điểm thực hiện chương trình;
Khai báo hằng còn xác định cả kiểu của hằng; (*)
Xét chương trình Pascal cho khung dưới đây :


PROGRAM vi_du;
BEGIN
Writeln(‘Xin chao cac ban’);
Writeln(‘Moi cac ban lam quen voi Pascal’);
END.


Một số câu hỏi trắc nghiệm TIN HỌC 11 Chương 4

Trang _ 6

Chọn phát biểu sai trong các phát biểu dưới đây :
A. Khai báo tên chương trình là vi du (*)
B. Khai báo tên chương trình là vi_du
C. Thân chương trình có hai câu lệnh
D. Chương trình không có khai báo hằng
Câu 45 : _
Hãy chọn phương án ghép sai . Ngôn ngữ lập trình cung cấp một số kiểu
dữ liệu chuẩn để
A. người lập trình biết phạm vi giá trị cần lưu trữ;
B. người lập trình biết dung lượng bộ nhớ cần thiết để lưu trữ;
C. người lập trình biết có các phép toán nào có thể tác động lên dữ liệu;
D. người lập trình không cần đặt thêm các kiểu dữ liệu khác; (*)
Câu 46 : _
Chọn phát biểu đúng trong các phát biểu sau :
A. Mọi ngôn ngữ lập trình đều có các kiểu dữ liệu chuẩn là : kiểu nguyên, kiểu thực,
kiểu kí tự, kiểu lôgic;
B. Quy định về phạm vi giá trị và kích thước bộ nhớ lưu trữ một giá trị của các kiểu
dữ liệu chuẩn trong mọi ngôn ngữ lập trình là như nhau;
C. Dữ liệu kiểu byte có 256 giá trị từ 0, 1, 2, …, 255; (*)

D. Dữ liệu kiểu kí tự chỉ có 256 giá trị;
Câu 47 : _
Phát biểu nào dưới đây là sai ?
A. Cách khai báo biến trong ngôn ngữ lập trình khác nhau có thể khác nhau;
B. Trong Pascal các biến cùng kiểu có thể được khai báo trong cùng một danh sách
biến, các biến cách nhau bởi dấu phẩy;
C. Kiểu dữ liệu của biến phải là kiểu dữ liệu chuẩn; (*)
D. Hai biến cùng một phạm vi hoạt động (ví dụ như cùng trong một khai báo var)
không được trùng tên;
Câu 48 : _
Cho các gợi ý về khai báo biến như sau :
 Nên đặt tên biến sao cho gợi nhớ đến ý nghĩa của biến đó.
 Không nên đặt tên biến quá ngắn.
 Không nên đặt tên biến quá dài, dễ mắc lỗi khi gõ tên biến trong chương trình.
 Khi khai báo biến cần chú ý đến phạm vi giá trị của nó để chọn kiểu biến cho
phù hợp.
Có bao nhiêu gợi ý đúng ?
A. 1 gợi ý đúng;
B. 2 gợi ý đúng;
C. 3 gợi ý đúng;
D. 4 gợi ý đúng; (*)
Câu 49 : _
Trong bài toán giải phương trình bậc hai : ax 2 + bx + c = 0 ( a ≠ 0 ), có
thể chọn đặt tên các biến tương ứng cho các đại lượng : hệ số của x 2, hệ số
của x, hệ số tự do, biệt số delta = b2 - 4*a*c, hai nghiệm (nếu có) là x1, x2
là :
A. a, b, c, delta, x1, x2 ; (*)
B. hs_a, hs_b, hs_c, bietso_delta, nghiem_x1, nghiem_x2;
C. heso_xbingphuong, heso_x, bietso_delta, nghiem_thu_nhat, nghiem_thu_hai;
D. hs1, hs2, hs3, bs, n1, n2;

Câu 50 : _
Trường hợp nào dưới đây không phải là tên biến trong Pascal ?
A. Giai_Ptrinh_Bac_2;
B. Ngaysinh;
C. _Noisinh;
D. 2x; (*)
Câu 51 : _
Trường hợp nào dưới đây là tên biến trong Pascal ?
A. Giai-Ptrinh-Bac 2;
B. Ngay_sinh; (*)
C. _Noi sinh;
D. 2x;
Câu 52 : _
Cho khai báo biến sau đây (trong Pascal) :

Var m, n : integer ;
x, y : real ;
nào sau đây
A.
B.
C.
D.

là sai ?
m := -4 ;
n := 3.5 ; (*)
x := 6 ;
y := +10.5 ;

Lệnh


gán


Một số câu hỏi trắc nghiệm TIN HỌC 11 Chương 4
Câu 53 : _

Câu 54 : _

A.
B.
C.
D.

Trang _ 7

Trường hợp nào sau đây không phải là lệnh gán trong Pascal ?
a := 10 ;
a + b := 1000 ; (*)
cd := 50 ;
a := a*2 ;
Cho một chương trình còn lỗi như sau :

Var
A, b, c : real ;
A := 1; b := 1; c := 5 ;
d := b*b – 4*a*c ;
writeln(‘d = ’,d);
END.


Câu

Câu

Câu

Câu

Tìm kết luận đúng nhất về lỗi của chương trình trong các kết luận sau :
A. Thiếu Begin
B. Không khai báo biến d
C. Thiếu Begin và không khai biến d (*)
D. Không có END.
55 : _
Chọn phát biểu sai trong các phát biểu sau đây :
A. Hầu hết các ngôn ngữ lập trình đều có các phép toán số học và phép toán quan
hệ;
B. Trong Pascal, phép chia số thực (kí hiệu là “/”) cũng áp dụng được cho chia hai số
nguyên;
C. Trong máy tính, không thể chia một số cho số nhỏ tùy ý (tùy ý sát gần giá trị 0);
D. Trong Pascal, phép chia số nguyên (kí hiệu là div) cũng áp dụng được cho hai số
thực; (*)
56 : _
Phát biểu nào dưới đây là đúng ?
A. Hằng số không là biểu thức số học;
B. Biến số không là biểu thức số học;
C. Chỉ khi hằng số và biến số liên kết với nhau bởi các phép toán;
D. Cả 3 mệnh đề trên đều sai; (*)
57 : _
Phát biểu nào dưới đây là sai ?

A. Trong biểu thức số học, cặp ngoặc tròn “(” “)” khi cần thiết được dùng để xác
định trình tự thực hiện phép toán;
B. Để tính giá trị biểu thức, các biến và hằng trong biểu thức phải được xác định giá
trị trước;
C. Phép toán được thực hiện theo thứ tự từ trái qua phải; (*)
D. Phép toán trong ngoặc được thực hiện trước. Trong dãy các phép toán không
chứa ngoặc nếu một toán hạng có thể tham gia vào hai phép toán ở hai mức với
hai mức ưu tiên khác nhau thì toán hạng sẽ tham gia vào phép toán có mứa ưu
tiên hơn; ngược lại nếu hai phép toán cùng mức ưu tiên thì toán hạng sẽ tham gia
vào phép toán bên trái (quy định của nhiều trình biên dịch).
58 : _
Thực hiện chương trình Pascal sau đây :

Var a, N : integer ;
BEGIN
N := 645 ;
A := N mod 10 ;
N := N div 10 ;
A := A + N div 10 ;
A := A + N mod 10 ;
Write(a);
END.
Ta thu được kết quả nào ?
A. 6;
B. 5;
C. 15; (*)


Một số câu hỏi trắc nghiệm TIN HỌC 11 Chương 4


Trang _ 8

D. 64;
Câu 59 : _
Hãy chọn phương án ghép đúng . Biểu thức : 25 div 3 + 5 / 2 * 3 có giá
trị là :
A. 8.0;
B. 15.5; (*)
C. 15.0;
D. 8.5;
Câu 60 : _
Hãy chọn phương án ghép đúng . Biểu thức : 25 mod 3 + 5 / 2 * 3 có giá
trị là :
A. 8.0;
B. 15.5;
C. 15.0
D. 8.5; (*)
Câu 61 : _
Những biểu thức nào sau đây có giá trị TRUE ?
A. ( 20 > 19 ) and ( ‘B’ < ‘A’ );
B. ( 4 > 2 ) and not( 4 + 2 < 5 ) or ( 2 > 4 div 2 ); (*)
C. ( 3 < 5 ) or ( 4 + 2 < 5 ) and ( 2 < 4 div 2 );
D. 4 + 2 * ( 3 + 5 ) < 18 div 4 * 4 ;
Câu 62 : _
Cho x và y là các biến đã khai báo kiểu thực, câu lệnh nào sau đây là
đúng ?
A. Readln(x,5);
B. Readln( ‘ x= ’ , x);
C. Readln(x:5:2);
D. Readln(x,y); (*)

Câu 63 : _
Cho x là biến đã khai báo kiểu thực. Sau khi thực hiện hai câu lệnh sau :

x := 10 ;
Writeln(x:7:2);
thì kết quả dạng nào sẽ xuất hiện trên màn hình trong những dạng kết quả sau ?
A. 10;
B. 10.00
C. 1.000000000000000E+001;
D. _ _ 10.00; (*)
Câu 64 : _
Cho x là biến thực đã được gán giá trị 12.41235. Để thực hiện lên màn
hình nội dung “x=12.41” cần chọn câu lệnh nào sau đây ?
A. Writeln(x);
B. Writeln(x:5);
C. Writeln(x:5:2);
D. Writeln(‘x=’ ,x:5:2); (*)
Câu 65 : _
Cho x, y, z là ba biến nguyên. Cách nhập giá trị nào sau đây là sai khi
muốn nhập giá trị 3, 4, 5 cho ba biến này từ bàn phím bằng câu lệnh
readln(x,y,z); ?
A. Gõ 3, 4, 5 sau đó nhấn phím Enter (giữa hai số liên tiếp gõ dấu phẩy); (*)
B. Gõ 3, 4, 5 sau đó nhấn phím Enter (giữa hai số liên tiếp gõ một dấu cách);
C. Gõ 3 sau đó nhấn phím Enter rồi gõ 4 sau đó nhấn phím Enter rồi gõ 5 sau đó
nhấn phím Enter;
D. Gõ 3 sau đó nhấn phím Tab rồi gõ 4 sau đó nhấn phím Tab rồi gõ 5 sau đó nhấn
phím Enter;
Câu 66 : _
Cho S là biến có kiểu xâu (String) và y là biến kiểu thực. Trong các cách
sau đây, khi thực hiện câu lệnh readln(S,y) nhập giá trị cho S = ‘ Tran Van

Thong’ và y = 7.5 từ bàn phím, cách nhập nào đúng ?
A. Gõ “Tran Van Thong 7.5” sau đó nhấn Enter;
B. Gõ “Tran Van Thong” sau đó nhấn phím Enter rồi gõ “7.5” sau đó nhấn phím
Enter; (*)
C. Gõ “Tran Van Thong 7.5” sau đó nhấn phím Enter;
D. Gõ “Tran Van Thong ” rồi gõ dấu phẩy rồi gõ “7.5” sau đó nhấn phím Enter;
Câu 67 : _
Để đưa ra màn hình giá trị của biến a kiểu nguyên và biến b kiểu thực ta
dùng lệnh
A. Write(a:8:3, b:8);
B. Readln(a,b);


Một số câu hỏi trắc nghiệm TIN HỌC 11 Chương 4
Câu 68 :

Câu 69 :

Câu 70 :

Câu 71 :

Câu 72 :

Câu 73 :

Câu 74 :

Câu 75 :


Trang _ 9

C. Writeln(a:8, b:8:3); (*)
D. Writeln(a:8:3, b:8:3);
_
Để nhập giá trị cho 2 biến a và b ta dùng lệnh :
A. Write(a,b);
B. Real(a,b);
C. Readln(a,b); (*)
D. Read(‘a,b’);
_
Biến X có thể nhận các giá trị 1; 100; 150; 200 và biến Y có thể nhận các
giá trị 1; 0,2; 0,3; 1,99. Khai báo nào trong các khai báo sau là đúng ?
A. Var X, Y : byte;
B. Var X, Y : real;
C. Var X : real; Y : byte;
D. Var X : BYTE; Y : real;
(*)
_
Để tính diện tích S của hình vuông có cạnh A với giá trị nguyên nằm
trong phạm vi từ 10 đến 100, cách khai báo S nào dưới đây là đúng và tốn ít
bộ nhớ nhất .
A. Var S : integer;
B. Var S : real;
C. Var S : longint;
D. Var S : word; (*)
_
Để thực hiện gán giá trị 10 cho biến X. Phép gán nào sau đây là đúng ?
A. X = 10;
B. X := 10; (*)

C. X =: 10;
D. X : = 10;
_
Hàm cho giá trị bằng bình phương của x là :
A. Sqrt(x);
B. Sqr(x);
(*)
C. Abs(x);
D. Exp(x);
_
Trong ngôn ngữ lập trình Pascal, biểu thức số học nào sau đây là hợp
lệ ?
A. 5a + 7b + 8c;
B. 5*a + 7*b + 8*c;
(*)
C. {a + b}*c;
D. X*y(x+y);
_
Câu lệnh xóa màn hình trong thư viện CRT có dạng :
A. Clear screen;
B. Clear scr;
C. Clrscr;
(*)
D. Clr scr;
_
Cho chương trình :
Var x,y : real;
Begin
Write(‘Nhap vao gia tri cua x = ’);
readln(x);

y := (x+2)*x – 5 ;
writeln(‘gia tri cua y = ’, y);
End.
Nếu nhập x = 2 thì giá trị của biến y là :
A.
B.
C.
D.

13
3
5
7

(*)

( a + b) +
Biểu diễn biểu thức

Câu 76 : _
A.
B.
C.
D.

(a+b)
(a+b)
(a+b)
(a+b)


+
+
+
+

a 2 + 2bc
trong NNLT Pascal là
a
c−
a+b

sqrt(a*a+2*b*c) / ( c – a / (a+b) ) (*)
sqr(a*a+2*b*c) / c – a / (a+b)
sqrt( sqr(a) + 2*b*c / c – a / (a+b)
sqr( sqrt(a) + 2*b*c) / (c – a / (a+b) )


Một số câu hỏi trắc nghiệm TIN HỌC 11 Chương 4
Câu 77 : _

Câu 78 : _

A.
B.
C.
D.
A.
B.
C.
D.


Câu 79 : _
A.
B.
C.
D.
Câu 80 : _

Câu 81 : _

A.
B.
C.
D.
A.
B.
C.
D.

Câu 82 : _

Câu 83 : _

A.
B.
C.
D.
A.
B.
C.

D.

Câu 84 : _

Câu 85 : _

A.
B.
C.
D.
A.
B.
C.
D.

Câu 86 : _

Câu 87 : _

A.
B.
C.
D.
A.
B.
C.
D.

Câu 88 : _


A.
B.
C.

Trang _ 10

Trong NNLT Pascal, để chạy chương trình ta dùng tổ hợp phím
Alt + F9
Shift + F9
Ctrl + F9
(*)
Ctrl + Alt + F9
Cấu trúc của chương trình được mô tả như sau :
[]

(*)
[]


[]


[]
X := Y ; có nghĩa là
Gán giá trị X cho Y
Gán giá trị Y cho X
(*)
So sánh xem X có bằng Y hay không
Ý nghĩa khác
Để biên dịch chương trình trong Pascal ta dùng tổ hợp phím :

Ctrl + F9
Alt + F9
(*)
Alt + F8
Shift + F9
Câu lệnh nào sau đây dùng để nhập một số từ bàn phím vào biến x
Writeln(‘Nhap x = ’);
Writeln(x);
Readln(x);
(*)
Read(‘X’);
Câu lệnh nào sau đây dùng để in giá trị lưu trong biến x ra màn hình
Writeln(x);
(*)
Readln(x);
Write(‘X’);
Không có câu lệnh nào đúng
Khai báo nào sau đây là sai
Var a, b, c : integer;
Var 1, 2, 3 : integer; (*)
Var x, y, z : real;
Var a1, b2, c3 : char;
Trong các kiểu dữ liệu sau, kiểu nào cần bộ nhớ lớn nhất
Byte;
Integer;
LongInt;
Real; (*)
Trong các hàm sau, hàm nào cho kiểu đối số thực
Sqrt(x);
Sqr(x);

Abs(x);
Cả 3 (*)
Câu lệnh nào sau đây là khai báo hằng trong Pascal
Const max = 50;
(*)
Const max := 50;
Const int max = 50;
Const max 50;
Trong Pascal, câu lệnh nào sau đây là sai
X := x;
X := 12345;
X := 123,456;
(*)
X := pi*100;
Trong Pascal, phép toán MOD với số nguyên có tác dụng gì ?
Chia lấy phần nguyên
Chia lấy phần dư
(*)
Làm tròn số


Một số câu hỏi trắc nghiệm TIN HỌC 11 Chương 4
Câu 89 :

Câu 90 :

Câu 91 :

Câu 92 :


Câu 93 :

Câu 94 :

Câu 95 :

Câu 96 :

Trang _ 11

D. Thực hiện phép chia
_
Trong Pascal, phép toán DIV với số nguyên có tác dụng gì ?
A. Chia lấy phần nguyên
(*)
B. Chia lấy phần dư
C. Làm tròn số
D. Thực hiện phép chia
_
Cho biết kết quả sau khi thực hiện lệnh :
Begin
a := 100;
b := 30;
x := a div b ;
Write(x);
End.
A. 10
B. 33
C. 3
(*)

D. 1
_
Cú pháp của thủ tục nhập dữ liệu vào từ bàn phím :
A. Write(<tênbiến 1>, <tên biến 2>,…, <tên biến n>);
B. Readln<tên biến 1>, <tên biến 2>,…, <tên biến n>;
C. Readln(<tên hàng 1>, <tên hàng 2>,…,<tên hằng n>);
D. Readln(<tên biến 1>, <tên biến 2>,…,<tên biến n>);
(*)
_
Cú pháp của thủ tục xuất dữ liệu ra màn hình :
A. Readln(<danh sách kết quả ra>);
B. Writeln<danh sách kết quả ra>;
C. Writeln(<danh sách kết quả ra>); (*)
D. Writeln(<danh sách kết quả ra>)
_
Trong INTEGER và WORD, phạm vi giá trị của kiểu nào lớn hơn ?
A. Kiểu INTEGER có phạm vi giá trị lớn hơn kiểu WORD.
B. Kiểu INTEGER có phạm vi giá trị bằng với kiểu WORD.
C. Kiểu WORD có phạm vi giá trị lớn hơn kiểu INTEGER.
(*)
D. Kiểu WORD có phạm vi giá trị nhỏ hơn kiểu INTEGER.
_
Xét biểu thức lôgic : (m mod 100 < 10 ) and (m div 100 > 0), với giá trị nào
của m dưới đây biểu thức trên cho giá trị TRUE.
A. 66
B. 99
C. 2007 (*)
D. 2011
_
Trong ngôn ngữ lập trình Pascal, cho đoạn chương trình

Var a, b : real;
Begin
a := 1;
b := 12*(a-2);
writeln(b);
End.
Sau khi chạy chương trình, kết quả trên màn hình là
A. -12
B. -1.2000000000E+01
(*)
C. -1.2000000000E+00
D. -12.000000000E+01
_


Một số câu hỏi trắc nghiệm TIN HỌC 11 Chương 4

Trang _ 12

Chương III : CẤU TRÚC RẼ NHÁNH VÀ LẶP
Hãy chọn phương án ghép đúng nhất . Để mô tả cấu trúc rẽ nhánh trong thuật toán, nhiều
ngôn ngữ lập trình bậc cao dùng câu lệnh IF – THEN, sau IF là <điều kiện> . Điều kiện là
A. biểu thức lôgic; (*)
B. biểu thức số học;
C. biểu thức quan hệ;
D. một câu lệnh;
Câu 98 : _
Hãy chọn phương án ghép đúng . Với cấu trúc rẽ nhánh IF <điều kiện> THEN <câu lệnh>,
câu lệnh đứng sau THEN được thực hiện khi
A. điều kiện được tính toán xong;

B. điều kiện được tính toán và cho giá trị đúng; (*)
C. điều kiện không tính được;
D. điều kiện được tính toán và cho giá trị sai;
Câu 99 : _
Hãy chọn phương án ghép đúng . Với cấu trúc rẽ nhánh IF <điều kiện> THEN 1> ELSE <câu lệnh 2>, câu lệnh 2 được thực hiện khi
A. biểu thức điều kiện đúng và câu lệnh 1 thực hiện xong;
B. câu lệnh 1 được thực hiện;
C. biểu thức điều kiện sai; (*)
D. biểu thức điều kiện đúng;
Câu 100 : _ Hãy chọn cách dùng sai . Muốn dùng biến X lưu giá trị nhỏ nhất trong các giá trị của hai
biến A, B có thể dùng cấu trúc rẽ nhánh như sau :
A. if A <= B then X := A else X := B;
B. if A < B then X := A; (*)
C. X := B; if A < B then X := A;
D. if A < B then X := A else X := B;
Câu 101 : _ Cho chương trình viết bằng PASCAL sau đây :
Câu 97 : _

PROGRAM giaiPT;
uses crt;
var A, B, C : real;
DELTA, X1, X2 : real;
BEGIN
write(‘ Nhap cac he so A, B, C : ’);
readln(A, B, C);
DELTA := B*B – 4*A*C;
if DELTA > 0 then
begin
X1 := ( – B – SQRT(DELTA) ) / (2*A);

X2 := – B / A – X1;
writeln(‘ X1 = ’, X1);
writeln(‘ X2 = ’, X2);
end;
readln
END.
Hãy chọn phát biểu sai trong các phát biểu sau đây :
A. Đây là chương trình giải phương trình bậc hai nhưng chưa xét hết các trường hợp;
B. Đây là chương trình giải phương trình bậc hai nhưng không đưa ra thông báo gì khi chương
trình có nghiệm kép;
C. Đây là chương trình giải và thông báo nghiệm của một phương trình bậc hai nếu phương
trình đó có nghiệm; (*)


Một số câu hỏi trắc nghiệm TIN HỌC 11 Chương 4
Trang _ 13
D. Đây là chương trình giải phương trình bậc hai, nhưng không đưa ra thông báo gì khi phương
trình vô nghiệm .
Câu 102 : _

Cho chương trình viết bằng PASCAL sau đây :

PROGRAM GiaiPTBac2;
uses crt;
var A, B, C : real;
DELTA, X1, X2 : real;
BEGIN
write(‘ Nhap cac he so A, B, C : ’);
readln(A, B, C);
DELTA := B*B – 4*A*C ;

if DELTA < 0 then writeln(‘ Phuong trinh vo nghiem.’);
X1 := ( – B – SQRT(DELTA) ) / (2 *A) ;
X2 := – B / A – X1 ;
writeln(‘ X1 = ’, X1);
writeln(‘ X2 = ’, X2);
readln
END.
Hãy chọn phát biểu đúng trong các phát biểu sau đây :
A. Đây là chương trình giải phương trình bậc hai hoàn chỉnh;
B. Đây là chương trình giải phương trình bậc hai sai vì không thông báo nghiệm trong trường
hợp có nghiệm kép;
C. Đây là chương trình giải phương trình bậc hai sai vì với trường hợp phương trình vô nghiệm,
chương trình vẫn thực hiện tính nghiệm thực; (*)
D. Đây là chương trình giải phương trình bậc hai sai vì chỉ xét trường hợp DELTA < 0 mà thôi.
Câu 103 : _ Phát biểu nào sau đây có thể lấy làm biểu thức điều kiện trong cấu trúc rẽ nhánh ?
A. A + B
B. A > B (*)
C. N mod 100
D. “A nho hon B”
Câu 104 : _ Phát biểu nào sau đây có thể lấy làm biểu thức điều kiện trong cấu trúc rẽ nhánh ?
A. 100 > 99 (*)
B. “A > B”
C. “A nho hon B”
D. “false”
Câu 105 : _ Chọn phát biểu sai trong các phát biểu sau đây :
A. Để mô tả việc lặp đi lặp lại một số thao tác (hoặc câu lệnh) trong một thuật toán ta có thể
dùng cấu trúc lặp.
B. Tùy từng trường hợp cụ thể (khi mô tả một thuật toán), khi thì ta biết trước số lần lặp, khi thì
ta không cần hoặc không xác định được trước số lần lặp các thao tác nào đó.
C. Có thể dùng cấu trúc lặp để thay cho cấu trúc rẽ nhánh trong mô tả thuật toán. (*)

D. Không thể mô tả được mọi thuật toán bằng ngôn ngữ lập trình bậc cao nếu không dùng cấu
trúc lặp.
Câu 106 : _ Chọn phát biểu đúng trong các phát biểu sau đây :
A. Có thể dùng câu lệnh FOR – DO để thay thế cho câu lệnh lặp WHILE – DO.
B. Câu lệnh lặp không được xuất hiện trong <câu lệnh> đứng sau từ khóa THEN của cấu trúc
rẽ nhánh.
C. Câu lệnh rẽ nhánh không được xuất hiện trong <câu lệnh> của một cấu trúc lặp.
D. Một cấu trúc lặp có thể xuất hiện trong <câu lệnh> của một cấu trúc lặp khác. (*)
Câu 107 : _ Cho hai dạng lặp FOR – DO trong PASCAL như sau :
Dạng lặp tiến :
FOR <biến đếm> := <giá trị đầu> TO <giá trị cuối> DO <câu lệnh> ;


Một số câu hỏi trắc nghiệm TIN HỌC 11 Chương 4
Trang _ 14
Dạng lặp lùi :
FOR <biến đếm> := <giá trị cuối> DOWNTO <giá trị đầu> DO <câu lệnh> ;
Chọn phát biểu sai trong các phát biểu đưới dây :
A. Biến đếm là biến đơn, thường có kiểu nguyên.
B. Với mỗi giá trị của biến đếm trong khoảng từ giá trị đầu đến giá trị cuối, câu lệnh sau DO
được thực hiện một lần.
C. Phải có lệnh thay đổi biến đếm trong mỗi <câu lệnh> sau DO trong cấu trúc lặp này, vì giá
trị của biến đếm không được tự động điều chỉnh sau mỗi lần thực hiện câu lệnh lặp. (*)
D. Ở dạng lặp tiến câu lệnh sau DO được thực hiện tuần tự, với biến đếm lần lượt nhận giá trị từ
giá trị đầu đến giá trị cuối.
Câu 108 : _ Cho hai dạng lặp FOR – DO trong PASCAL như sau :
Dạng lặp tiến :
FOR <biến đếm> := <giá trị đầu> TO <giá trị cuối> DO <câu lệnh> ;
Dạng lặp lùi :
FOR <biến đếm> := <giá trị cuối> DOWNTO <giá trị đầu> DO <câu lệnh> ;

Chọn phát biểu đúng trong các phát biểu sau đây :
A. Ở dạng lặp tiến câu lệnh sau DO luôn được thực hiện ít nhất một lần.
B. Ở dạng lặp lùi câu lệnh sau DO được thực hiện tuần tự, với biến đếm lần lượt nhận giá trị từ
giá trị đầu đến giá trị cuối.
C. Ở dạng lặp lùi câu lệnh sau DO có thể không được thực hiện lần nào, đó là trường hợp giá
trị cuối nhỏ hơn giá trị đầu. (*)
D. Biểu thức giá trị đầu và biểu thức giá trị cuối có thể thuộc kiểu số thực.
Câu 109 : _ Trong các ngôn ngữ lập trình bậc cao thường có cấu trúc lặp để mô tả việc lặp đi lặp lại một
số thao tác nào đó khi một điều kiện cho trước được thỏa mãn.
Để tổ chức việc lặp như vậy PASCAL dùng câu lệnh WHILE – DO có dạng :
WHILE <điều kiện> DO <câu lệnh>;
Chọn phát biểu sai trong các phát biểu dưới đây :
A. Điều kiện là biểu thức cho giá trị logic.
B. Về mặt cú pháp, những biểu thức có thể điền vào điều kiện trong cấu trúc WHILE – DO
cũng có thể điền vào điều kiện trong cấu trúc rẽ nhánh IF – THEN .
C. Không cần có lệnh thay đổi điều kiện trong mỗi câu lệnh sau DO trong cấu trúc lặp này, vì
giá trị của biểu thức điều kiện được tự động điều chỉnh sau mỗi lần thực hiện câu lệnh lặp.
(*)
D. Nếu không có lệnh nào thay đổi điều kiện trong mỗi câu lệnh sau DO thì có thể gặp hiện
tượng lặp vô hạn khi thực hiện chương trình, nghĩa là lặp không dừng được,
Câu 110 : _ Trong các ngôn ngữ lập trình bậc cao thường có cấu trúc lặp để mô tả việc lặp đi lặp lại một
số thao tác nào đó khi một điều kiện cho trước được thỏa mãn.
Để tổ chức việc lặp như vậy PASCAL dùng câu lệnh WHILE – DO có dạng :
WHILE <điều kiện> DO <câu lệnh>;
Chọn phát biểu đúng trong các phát biểu dưới đây :
A. Biểu thức điều kiện được tính và kiểm tra, nếu biểu thức đó sai thì câu lệnh sau DO được
thực hiện.
B. Câu lệnh sau DO bao giờ cũng được thực hiện ít nhất một lần.
C. điều kiện trong cấu trúc lặp WHILE – DO có thể là một biểu thức kiểu nguyên hoặc kiểu kí
tự.

D. Khi xác định được trước số lần lặp vẫn có thể dùng cấu trúc lặp WHILE – DO. (*)


Một số câu hỏi trắc nghiệm TIN HỌC 11 Chương 4

Câu 111 : _

Trang _ 15

Cho chương trình viết bằng ngôn ngữ PASCAL sau đây :

PROGRAM Inso;
Uses crt;
Var M, N, I : integer;
BEGIN
clrscr;
M := 0 ;
N := 0 ;
For I := 1 TO 10000 do
Begin
if ( (I mod 3) = 0 ) then M := M + 1 ;
if ( (I mod 3) = 0 ) and ( (I mod 5) = 0 ) then N := N + 1 ;
End;
writeln( M,‘
’, N );
readln
END.

Phát biểu nào dưới đây về chương trình trên là đúng ?
A. Đây là chương trình đếm số các số nguyên trong khoảng từ 1 đến 10000 là bội số của 3;

B. Đây là chương trình đếm và thông báo ra màn hình rằng trong khoảng từ 1 đến 10000 có bao
nhiêu số nguyên là bội số của 3 và có bao nhiêu số là bội số chung của 3 và 5; (*)
C. Đây là chương trình đếm số các số nguyên nhỏ hơn 10000 và chia hết cho 3;
D. Đây là chương trình đếm số các số nguyên trong khoảng từ 1 đến 10000 là bội số của 3 và 5;
Câu 112 : _ Trong ngôn ngữ lập trình Pascal, về mặt cú pháp cách viết các câu lệnh ghép nào sau đây là
đúng ?
A. Begin :
A := 1 ;
B := 5 ;
End ;
B. Begin ;
A := 1 ;
B := 5 ;
End ;
C. Begin
A := 1 ;
B := 5 ;
End :
D. Begin
A := 1 ;
B := 5 ;
End ;
(*)
Câu 113 : _
A.
B.
C.
D.
Câu 114 : _
A.

B.
C.

Trong ngôn ngữ lập trình Pascal, câu lệnh nào sau đây là đúng ?
If <biểu thức logic> ; then <câu lệnh> .
If <biểu thức logic> then <câu lệnh> ;
(*)
If <biểu thức logic> ; then <câu lệnh> ;
If <biểu thức logic> then <câu lệnh > .
Trong ngôn ngữ lập trình Pascal, câu lệnh nào sau đây là đúng ?
If <biểu thức logic> ; then <câu lệnh 1> ; else <câu lệnh 2> ;
If <biểu thức logic> ; then <câu lệnh 1> else <câu lệnh 2> ;
If <biểu thức logic> then <câu lệnh 1> ; else <câu lệnh 2> ;


Một số câu hỏi trắc nghiệm TIN HỌC 11 Chương 4
Trang _ 16
D. If <biểu thức logic> then <câu lệnh 1> else <câu lệnh 2> ;
Câu 115 : _ Trong ngôn ngữ lập trình Pascal, câu lệnh nào sau đây là đúng ?
A. If <biểu thức logic> then <câu lệnh 1> ; else <câu lệnh 2> ;
B. If <biểu thức logic> then <câu lệnh 1> else <câu lệnh 2> ;
(*)
C. If <biểu thức logic> ; then <câu lệnh 1> else <câu lệnh 2> ;
D. If <biểu thức logic> ; then <câu lệnh 1> ; else <câu lệnh 2> ;
Câu 116 : _ Trong ngôn ngữ lập trình Pascal, câu lệnh nào sau đây là đú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 .
Câu 117 : _ Trong ngôn ngữ lập trình Pascal, câu lệnh nào sau đây là đúng ?
A. If a = 5 then
a := d + 1 ;
b := 2
else
a := d + 2 ;
B. If a = 5 then
Begin
a := d + 1 ;
b := 2 ;
End ;
else
a := d + 2 ;
C. If a = 5 then
Begin
a := d + 1 ;
b := 2
End

else
a := d + 2 ;
(*)
D. If a = 5 then
Begin
a := d + 1 ;
b := 2 ;
End
else
a := d + 2 .
Câu 118 : _ Trong ngôn ngữ lập trình Pascal, phát biểu nào sau đây là đúng với câu lệnh rẽ nhánh if…
then…?
A. Nếu sau then muốn thực hiện nhiều câu lệnh thì các câu lệnh phải đặt giữa hai dấu ngoặc
đơn;
B. Nếu sau then muốn thực hiện nhiều câu lệnh thì các câu lệnh phải đặt giữa Begin và End ;
(*)
C. Nếu sau then muốn thực hiện nhiều câu lệnh thì các câu lệnh phải đặt giữa hai cặp dấu
ngoặc nhọn;
D. Nếu sau then muốn thực hiện nhiều câu lệnh thì các câu lệnh phải đặt giữa Begin và End .


Một số câu hỏi trắc nghiệm TIN HỌC 11 Chương 4
Trang _ 17
Câu 119 : _ Trong ngôn ngữ lập trình Pascal, phát biểu nào sau đây là đúng với câu lệnh rẽ nhánh if…
then…else…?
A. Nếu sau then muốn thực hiện nhiều câu lệnh thì các câu lệnh phải đặt giữa hai dấu ngoặc
đơn;
B. Nếu sau then muốn thực hiện nhiều câu lệnh thì các câu lệnh phải đặt giữa Begin và End ;
(*)
C. Nếu sau then muốn thực hiện nhiều câu lệnh thì các câu lệnh phải đặt giữa hai cặp dấu

ngoặc nhọn;
D. Nếu sau then muốn thực hiện nhiều câu lệnh thì các câu lệnh phải đặt giữa Begin và End .
Câu 120 : _ Trong ngôn ngữ lập trình Pascal, phát biểu nào sau đây là đúng với câu lệnh rẽ nhánh if…
then…else…?
A. Nếu sau else muốn thực hiện nhiều câu lệnh thí các câu lệnh phải đặt giữa hai dấu ngoặc
đơn;
B. Nếu sau else muốn thực hiện nhiều câu lệnh thí các câu lệnh phải đặt giữa Begin và End;
(*)
C. Nếu sau else muốn thực hiện nhiều câu lệnh thí các câu lệnh phải đặt giữa hai cặp dấu ngoặc
nhọn;
D. Nếu sau else muốn thực hiện nhiều câu lệnh thí các câu lệnh phải đặt giữa Begin và End;
Câu 121 : _ Trong ngôn ngữ lập trình Pascal, phát biểu nào sau đây là đúng ?
A. Sau mỗi câu lệnh đầu có dấu chấm phẩy “ ; ”
B. Trước lệnh else bắt buộc phải có dấu chấm phẩy “ ; ”
C. Có phân biệt chữ hoa và chữ thường
D. Câu lệnh trước câu lệnh End không nhất thiết phải có dấu chấm phẩy “ ; ”
(*)
Câu 122 : _ Trong ngôn ngữ lập trình Pascal, muốn kiểm tra đồng thời cả ba giá trị của A, B, C có cùng
lớn hơn 0 hay không ta viết câu lệnh If thế nào cho đúng ?
A. If A, B, C > 0 then ……
B. If (A > 0) and (B > 0) and (C > 0) then ……
(*)
C. If A>0 and B>0 and C>0 then ……
D. If (A>0) or (B>0) or (C>0) then……
Câu 123 : _ Trong ngôn ngữ lập trình Pascal, về mặc cú pháp câu lệnh nào sau đây là đúng với cấu trúc
lặp For có một lệnh con ?
A. For i := 1 to 100 do
a := a – 1 ;
(*)
B. For i := 1 to 100 do;

a := a – 1 ;
C. For i := 1 to 100 do
a := a – 1
D. For i := 1 ; to 100 do
a := a – 1 ;
Câu 124 : _ Trong ngôn ngữ lập trình Pascal, về mặt cú pháp câu lệnh nào sau đây là đúng với cấu trúc
lặp For có nhiều lệnh con ?
A. For i := 1 to 100 do
a := a – 1 ;
b := a – c ;
EndFor ;
B. For i := 1 to 100 do
Begin
a := a – 1 ;
b := a – c ;
End;
C. For i := 1 to 100 do
Begin
a := a – 1 ;
b := a – c
End;
(*)
D. For i := 1 to 100 do
a := a – 1 ;
b := a – c ;


Một số câu hỏi trắc nghiệm TIN HỌC 11 Chương 4
Trang _ 18
Câu 125 : _ Trong ngôn ngữ lập trình Pascal, về mặt cú pháp câu lệnh nào sau đây là đúng với cấu trúc

lặp While có một lệnh con ?
A. While a>5 do
a := a – 1 ;
(*)
B. While a>5 do ;
a := a – 1
C. While a>5 do
a := a – 1 ;
D. While a>5 ; do
a := a – 1 ;
Câu 126 : _ Trong ngôn ngữ lập trình Pascal, về mặt cú pháp câu lệnh nào sau đây là đúng với cấu trúc
lặp While có một lệnh con ?
A. While a>5 and a<17 do
a := a – 1 ;
B. While (a>5) and (a<17) do ;
a := a – 1 ;
C. While (a>5) and (a<17) do
a := a – 1
D. While (a>5) and (a<17) do
a := a – 1 ;
(*)
Câu 127 : _ Trong ngôn ngữ lập trình Pascal, về mặt cú pháp câu lệnh nào sau đây là đúng với cấu trúc
lặp While có nhiều lệnh con ?
A. While a>5 do
a := a – 1 ;
b := a – c ;
EnWhile ;
B. While a>5 do ;
Begin
a := a – 1 ;

b := a – c ;
End;
C. While a>5 do
a := a – 1 ;
b := a – c ;
D. While a>5 do ;
Begin
a := a – 1 ;
b := a – c
End;
(*)
Câu 128 : _ Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau đưa ra màn hình kết quả gì ?
For i := 10 downto 1 do write(i, ‘ ’);
A. 1 2 3 4 5 6 7 8 9 10
B. 10 9 8 7 6 5 4 3 2 1
(*)
C. Đưa ra 10 dấu cách
D. Không đưa ra kết quả gì
Câu 129 : _ Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau đưa ra màn hình kết quả gì ?
For i := 10 to 1 do write(i, ‘ ’);
A. 1 2 3 4 5 6 7 8 9 10
B. 10 9 8 7 6 5 4 3 2 1
C. Đưa ra 10 dấu cách
D. Không đưa ra kết quả gì
(*)
Câu 130 : _ Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau thực hiện công việc gì ?
i := 0 ;
while i <> 0 do write(i, ‘ ’) ;
A. Đưa ra màn hình 10 chữ số 0 ;
B. Không đưa ra thông tin gì;

(*)
C. Lặp vô hạn việc đưa ra màn hình số 0 ;
D. Đưa ra màn hình một chữ số 0 ;
Câu 131 : _ Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau cho kết quả trên màn hình là gì với i
là biến số nguyên ?


Một số câu hỏi trắc nghiệm TIN HỌC 11 Chương 4
Trang _ 19
For i := 1 to 100 do if i mod 9 = 0 then write(i, ‘ ’);
A. 1 2 3 4 5 6 … 100 ;
B. 91827364554637281;
C. 9 18 27 36 45 54 63 72 81 90 99;
(*)
D. 9 9 9 9 9 9 9 9 9 9
Câu 132 : _ Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau thực hiện công việc gì ?
T := 0 ;
For i := 1 to N 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 N ;
(*)
B. Tính tổng các ước thực sự của N ;
C. Tính tổng các số chia hết cho cả 3 và 5 trong phạm vi từ 1 đến N ;
D. Tìm một ước số của số N ;
Câu 133 : _ Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau thực hiện công việc gì ?
T := 0 ;
For i := 1 to N do
If (i mod 3 = 0) and (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 N ;
B. Tính tổng các ước thực sự của N ;

C. Tính tổng các số chia hết cho cả 3 và 5 trong phạm vi từ 1 đến N ;
(*)
D. Tìm một ước số của số N ;
Câu 134 : _ Trong ngôn ngữ lập trình Pascal, hãy cho biết giá trị của M sau khi thực hiện đoạn chương
trình sau với a=19 và b=12 ?
M := a ;
If aA. M = 12
(*)
B. M = 10
C. M nhận cả hai giá trị trên
D. M không nhận giá trị nào
Câu 135 : _ Trong ngôn ngữ lập trình Pascal, hãy cho biết đoạn chương trình sau làm công việc gì ?
I := 0 ; T := 0 ;
While I < 10000 do
Begin
T := T + I ;
I := I + 2 ;
End ;
A. Tính tổng các số tự nhiên nhỏ hơn hoặc bằng 10000 ;
B. Tính tổng các số tự nhiên chẵn nhỏ hơn 10000 ;
(*)
C. Tính tổng các số tự nhiên chẵn nhỏ hơn hoặc bằng 10000 ;
D. Tính tổng các số tự nhiên nhỏ hơn hoặc 10000 ;

Chương IV : KIỂU DỮ LIỆU CÓ CẤU TRÚC
Câu 136 : _ Phát biểu nào dưới đây về kiểu mảng 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 137 : _ Hãy chọn phương án ghép đúng nhất. Để 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 138 : _ Phát biểu nào dưới đây về chỉ số của mảng là phù hợp nhất ?


Một số câu hỏi trắc nghiệm TIN HỌC 11 Chương 4
A.
B.
C.
D.
Câu 139 : _
A.
B.
C.
D.
Câu 140 : _
A.
B.
C.
D.
Câu 141 : _

Trang _ 20

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; (*)
Thế nào là khai báo biến mảng gián tiếp ?
Khai báo mảng của các bản ghi;
Khai báo mảng xâu kí tự;
Khai báo mảng hai chiều;
Khai báo thông qua kiểu mảng đã có; (*)
Mảng table dưới đây chứa bao nhiêu phần tử ?

CONST
COLUMNS = 3;
ROWS = 4;
table : ARRAY [ 0..COLUMNS + 1, 0..ROWS ] of INTEGER;
A.
B.
C.
D.
Câu 142 : _
A.
B.
C.
D.
Câu 143 : _


12
16
20
25 (*)
Phương án nào dưới đây là khai báo mảng hợp lệ ?
mang : ARRAY[0..10] OF INTEGER; (*)
mang : ARRAY[0..10] : INTEGER;
mang : INTEGER OF ARRAY[0..10];
mang : ARRAY(0..10) : INTEGER;
Cho khai báo sau :

a : array[0..16] of integer ;

Câu lệnh nào dưới đây sẽ in ra tất cả các phần tử của mảng trên ?
A. for k := 1 to 16 do write(a[k]);
B. for k := 16 downto 0 do write(a[k]); (*)
C. for k:= 0 to 15 do write(a[k]);
D. for k := 16 down to 0 write(a[k]);

Câu 144 : _

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 145 : _ Cho khai báo mảng như sau :

Var m : array[0..10] of integer ;


Một số câu hỏi trắc nghiệm TIN HỌC 11 Chương 4

Câu

Câu

Câu

Câu

Câu

Câu

Trang _ 21

Phương án nào dưới đây chỉ phần tử thứ 10 của mảng ?
A. a[10];
C. a[9]; (*)
B. a(10);
D. a(9);
146 : _ 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;
147 : _ Hãy chọn phương án ghép đúng nhất. 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ử;
148 : _ Hãy chọn phương án ghép đúng. Độ dài tối đa của xâu kí tự trong
PASCAL là
A. 256;
C. 65535;
B. 255; (*)
D. Tùy ý;
149 : _ Hãy chọn phương án ghép đúng. Cho xâu S là ‘Hanoi-Vietnam’. Kết quả
của hàm Length(S) là
A. 12;
C. 14
B. 13 (*)
D. 15
150 : _ Hãy chọn phương án ghép đúng. Cho xâu S là ‘Hanoi-Vietnam’. Kết quả
của hàm Pos(‘Vietnam’,S) là
A. 5;
C. 7; (*)
B. 6;
D. 8;
151 : _ 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 152 : _ 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 153 : _

Đ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.
B.
C.
D.
Câu 154 : _

6;
7; (*)

10;
Chương trình có lỗi;
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ì ?


Một số câu hỏi trắc nghiệm TIN HỌC 11 Chương 4

Trang _ 22

for i := length(str) downto 1 do
write(str[i]) ;
A.
B.
C.
D.
Câu 155 : _

In
In
In
In

xâu ra màn hình;
từng kí tự xâu ra màn hình;
từng kí tự ra màn hình theo thứ tự ngược, trừ kí tự đầu tiên;
từng kí tự ra màn hình theo thứ tự ngược; (*)

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 := 1 to length(str) – 1 do

str[i+1] := str[i] ;
A.
B.
C.
D.

Dịch chuyển các kí tự của xâu về sau 1 vị trí;
Dịch chuyển các kí tự của sâu lên trước một vị trí;
Khởi tạo lại mọi kí tự của xâu bằng kí tự đầu tiên; (*)
Khởi tạo lại mọi kí tự của xâu bằng kí tự cuối cùng;

Câu 156 : _ 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 157 : _ 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 158 : _ Cho 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 159 : _ Hãy chọn phương án ghép đúng nhất. Kiểu dữ liệu có cấu trúc
A. là kiểu dữ liệu chuẩn do mỗi ngôn ngữ lập trình cho sẵn, người lập trình chỉ cần
khai báo nhờ các tên chuẩn;

B. là kiểu dữ liệu do người lập trình xây dựng từ những kiểu dữ liệu đã có; (*)
C. trong mỗi ngôn ngữ lập trình đều có cách thức xây dựng giống nhau;
D. trong ngôn ngữ lập trình bậc cao chỉ là kiểu mảng, bản ghi và xâu;
Câu 160 : _ Phát biểu nào sau đây là sai ?
A. Một ngôn ngữ lập trình luôn cung cấp cách thức để xây dựng các kiểu dữ liệu có
cấu trúc từ kiểu dữ liệu chuẩn;
B. Khi xây dựng kiểu dữ liệu có cấu trúc, người lập trình phải xác định tên kiểu, cấu
trúc, khuôn dạng của kiểu dữ liệu cần xây dựng từ các thành phần, mỗi thành
phần có kiểu dữ liệu chuẩn hoặc kiểu dữ liệu đã được xác định trước đó;
C. Mỗi giá trị thuộc kiểu dữ liệu có cấu trúcthường gồm nhiều thành phần tạo nên.
Có thể truy cập và xử lý từng giá trị thành phần như vậy. Giá trị của kiểu dữ liệu
chuẩn chỉ gồm có một thành phần duy nhất .
D. Để xây dựng kiểu dữ liệu có cấu trúc, người lập trình không cần biết các kiểu dữ
liệu chuẩn; (*)
Câu 161 : _ Phát biểu nào sau đây là đúng ?
A. Để xây dựng kiểu dữ liệu có cấu trúc, người lập trình không cần biết các kiểu dữ
liệu chuẩn;
B. Để tiện lợi cho người lập trình, không có quy tắc cho người lập trình xây dựng
kiểu dữ liệu có cấu trúc;
C. Cách thức xây dựng mỗi kiểu dữ liệu có cấu trúc trong mỗi ngôn ngữ lập trình
đều giống nhau;


Một số câu hỏi trắc nghiệm TIN HỌC 11 Chương 4

Trang _ 23

D. Mỗi giá trị thuộc kiểu dữ liệu có cấu trúcthường gồm nhiều thành phần tạo nên.
Có thể truy cập và xử lý từng giá trị thành phần như vậy. Giá trị của kiểu dữ liệu
chuẩn chỉ gồm có một thành phần duy nhất . (*)

Câu 162 : _
A.
B.
C.
D.
Câu 163 : _
A.
B.
C.
D.
Câu 164 : _
A.
B.
C.
D.
Câu 165 : _
A.
B.
C.
D.
Câu 166 : _
A.
B.
C.
D.
Câu 167 : _
A.
B.
C.
D.

Câu 168 : _
A.
B.
C.
D.
Câu 169 : _
A.
B.

Phát biểu nào sau đây là đúng ?
Mảng một chiều là một dãy hữu hạn các số nguyên.
Mảng một chiều là một dãy hữu hạn các phần tử cùng kiểu dữ liệu. (*)
Có thể dùng bất cứ một kiểu dữ liệu chuẩn nào để đánh chỉ số cho các phần tử
của mảng một chiều.
Khi xây dựng kiểu mảng một chiều, người lập trình không cần khai báo kiểu dữ
liệu của phần tử của mảng.
Phát biểu nào sau đây là sai ?
Mỗi phần tử của mảng một chiều đều được đánh chỉ số, được chỉ định nhờ chỉ số
tương ứng của nó.
Với khai báo xây dựng kiểu mảng một chiều, không thể biết được mảng chứa tối
đa bao nhiêu phần tử. (*)
Trong khai báo xây dựng kiểu mảng một chiều, có thể biết được cách đánh chỉ số
cho các phần tử của mảng.
Chỉ số được đánh tuần tự, liên tiếp cho các phần tử kề nhau của mảng một chiều,
từ phần tử đầu tiên cho đến phần tử cuối.
Phát biểu nào dưới đây là đúng ?
Hai chỉ số trong khai báo xây dựng kiểu mảng hai chiều phải thuộc hai kiểu dữ
liệu khác nhau.
Kiểu phần tử của mảng hai chiều chỉ có thể là số nguyên.
Phần tử của mảng hai chiềucũng được tham chiếu nhờ một chỉ số.

Mảng hai chiều là kiểu dữ liệu có cấu trúc do người lập trình xây dựng, nó như
một bảng các phần tử cùng kiểu. (*)
Phát biểu nào dưới đây là sai ?
Mảng hai chiều là kiểu dữ liệu có cấu trúc do người lập trình xây dựng, nó như
một bảng các phần tử cùng kiểu.
Mỗi hàng của mảng hai chiều có cấu trúc như mảng một chiều có cùng kích
thước. Nếu coi mỗi hàng của mảng hai chiều là một phần tử thì có thể nói mảng
hai chiều là mảng một chiều mà mỗi phần tử lại là một mảng một chiều.
Bất cứ kiểu dữ liệu nào có thể làm chỉ số cho mảng một chiều thì cũng có thể lấy
làm chỉ số cho mảng hai chiều.
Hai chỉ số trong khai báo xây dựng kiểu mảng hai chiều phải thuộc hai kiểu dữ
liệu khác nhau. (*)
Phát biểu nào dưới đây là sai ?
Xâu là một dãy các kí tự trong bảng mã ASCII. Kiểu xâu là một kiểu dữ liệu có cấu
trúc.
Có thể xem mỗi xâu có cấu trúc giống như một mảng một chiều mà mỗi phần tử
của mảng là một kí tự trong bảng mã ASCII, được đánh chỉ số từ 1.
Số lượng kí tự trong một xâu chính là độ dài của xâu.
Các phép toán thao tác với xâu tương tự như các phép toán thao tác với mảng.
(*)

Biểu thức quan hệ nào dưới đây cho giá trị TRUE ?
“MOOR” < “LOOK”;
“MATHEMATIC” < “LOOK”;
“AB123CD” < “ ”;
“MOOR” < “MOORK”; (*)
Biểu thức quan hệ nào dưới đây cho giá trị FALSE ?
“MOOR” < “LOOK”; (*)
“MOOR” < “MOORK”;
“AB123CD” < “ABCDAB”;

“ABCDOR” < “ABDOR”;
Phát biểu nào dưới đây là đúng ?
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 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 khác
nhau.
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 +, – , *, /.


Một số câu hỏi trắc nghiệm TIN HỌC 11 Chương 4

Trang _ 24

Câu 170 : _
A.
B.
C.

Câu 171

Câu 172

Câu 173

Câu 174

Câu 175


Câu 176

Câu 177

Phát biểu nào dưới đây là sai ?
Có thể so sánh các bản ghi bất kì với nhau bằng các quan hệ <, >, =, <> . (*)
Kiểu bản ghi là một kiểu dữ liệu có cấu trú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í.
: _ Trong ngôn ngữ lập trình Pascal, về mặt cú pháp câu lệnh nào sau đây là đúng ?
A. Type 1chieu=array[1..100] of char;
B. Type mang=array[1-100] of char;
C. Type mang1c=array(1..100) of char;
D. Type mang1c=array[1..100] of char;
(*)
: _ Trong ngôn ngữ lập trình Pascal, về mặt cú pháp câu lệnh nào sau đây là đúng ?
A. Type 2chieu=array[1..100,1..100] of char;
B. Type mang=array[1-100,1-100] of char;
C. Type mang2c=array[1..100,1..100] of char;
(*)
D. Type mang2c=array[1..100][1..100] of char;
: _ Hãy chọn phương án hợp lý nhất. Trong ngôn ngữ lập trình Pascal
A. Các phần tử của mảng một chiều được sắp thứ tự theo chỉ số;
(*)
B. Các phần tử của mảng một chiều được sắp thứ tự theo giá trị giảm dần;
C. Các phần tử của mảng một chiều được sắp thứ tự theo giá trị tăng dần;
D. Các phần tử của mảng một chiều không sắp thứ tự .

: _ Trong ngôn ngữ lập trình Pascal, với khai báo mảng A:array[1..100,1..100] of
integer; thì việc truy xuất đến các phần tử như sau:
A. A[i],[j]
C. A[i;j]
B. A[i][j]
D. A[i,j] (*)
: _ Trong ngôn ngữ lập trình Pascal, với khai báo mảng A:array[1..100] of
array[1..100] of integer; thì việc truy xuất đến các phần tử như sau:
A. A[i],[j]
C. A[i;j]
B. A[i][j] (*)
D. A[i,j]
: _ Trong ngôn ngữ lập trình Pascal, trong quá trình nhập dữ liệu của mảng một
chiều A, để các phần tử hiển thị như trong cửa sổ chương trình ta viết lệnh như sau:
A. Write(‘ A[ ’ , i , ‘ ]= ’); readln(A[i]); (*)
B. Write(‘ A[ i ]= ’);
readln(A[i]);
C. Write(‘ A[ ’ i ‘ ]= ’); readln(A[i]);
D. Write(“ A[ ” , i ,“ ]= ”);
readln(A[i]);
: _ Trong ngôn ngữ lập trình Pascal, trong quá trình nhập dữ liệu của mảng hai chiều
A, để các phần tử hiển thị như trong cửa sổ chương trình ta viết lệnh như sau:
A. Write(‘ A[ ’ , i , j , ‘ ]= ’);
readln(A[i]);
B. Write(‘ A[ ’, i , ‘ , ’, j , ‘ ]= ’); readln(A[i]); (*)
C. Write(‘ A[ ’ i, j ‘ ]= ’);
readln(A[i]);
D. Write(“ A[ ” , i, j ,“ ]= ”);
readln(A[i]);


Câu 178 : _ Trong ngôn ngữ lập trình Pascal, trong quá trình xuất dữ liệu của mảng hai chiều
A m . n , để các phần tử hiển thị đúng như mô hình của mảng hai chiều ta viết lệnh
như sau :
A. For i := 1 to m do
For j := 1 to n do
Write( A[i,j] : 5 );
B. For i := 1 to m do
Begin
For j := 1 to n do
Write( A[i,j] : 5 );
End;
C. For i := 1 to m do
Begin
For j := 1 to n do
Writeln;
End;
D. For i := 1 to m do
Begin
For j := 1 to n do


Một số câu hỏi trắc nghiệm TIN HỌC 11 Chương 4
End;

Trang _ 25

Write( A[i,j] : 5 );
Writeln;
(*)


Câu 179 : _ Trong ngôn ngữ lập trình Pascal, để đổi giá trị hai phần tử mảng một chiều A tại
hai vị trí i và j , ta viết mã lệnh như sau :
A. A[i] := Tag;
A[i] := A[j];
A[j] := Tag;
B. Tag := A[i];
A[i] := A[j];
A[j] := Tag;
(*)
C. Tag := A[i];
A[j] := A[i];
A[j] := Tag;
D. Tag := A[i];
A[i] := A[j];
Tag := A[j];
Câu 180 : _ Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau thực hiện việc nào trong
các việc sau (A là mảng số có N phần tử) ?
S := 0 ;
For i := 1 to N do
S := S + A[i] ;
A. Tính tổng các phần tử của mảng A; (*)
B. In ra màn hình mảng A;
C. Đếm số phần tử của mảng A;
D. Không thực hiện việc nào trong 3 việc trên.
Câu 181 : _ Trong ngôn ngữ lập trình Pascal, với khai báo như sau :
Type mang = ARRAY[1..100] of integer ;
Var a, b : mang ;
c : array[1..100] of integer ;
Câu lệnh nào dưới đây là hợp lệ ?
A.

B.
C.
D.
Câu 182 : _
A.
B.
C.
D.

a := b ;
(*)
b := c ;
c := b ;
a := c ;
Trong ngôn ngữ lập trình Pascal, xâu kí tự là ?
Mảng các ký tự;
Dãy các kí tự trong bảng mã ASCII; (*)
Tập hợp các chữ cái trong bảng chữ cái tiếng Anh;
Tập hợp các chữ cái và các chữ số trong bảng chữ cái tiếng Anh;

Câu 183 : _
A.
B.
C.
D.
Câu 184 : _
A.
B.
C.
D.

Câu 185 : _
A.
B.
C.
D.
Câu 186 : _
A.
B.
C.
D.

Trong ngôn ngữ lập trình Pascal,
S := file of string ;
S : file of char ;
S : string;
(*)
Cả 3 câu đều đúng ;
Trong ngôn ngữ lập trình Pascal,
8 kí tự;
256 kí tự;
16 kí tự;
255 kí tự;
(*)
Trong ngôn ngữ lập trình Pascal,
Xâu không;
Xâu rỗng;
(*)
Xâu trắng;
Không phải là xâu kí tự;
Trong ngôn ngữ lập trình Pascal,

0
Do người lập trình khai báo
1
(*)
Không có chỉ số

cách khai báo xâu kí tự nào sau đây là đúng ?

xâu kí tự có tối đa ?

xâu kí tự không có kí tự nào gọi là ?

phần tử đầu tiên của xâu ký tự mang chỉ số là ?