1. Phát biểu nào sau đây là đúng về mục đích của việc sử dụng cấu trúc lặp `REPEAT ... UNTIL ...` trong Pascal?
A. Thực hiện lặp khi điều kiện là sai, dừng khi điều kiện là đúng.
B. Thực hiện lặp khi điều kiện là đúng, dừng khi điều kiện là sai.
C. Luôn thực hiện ít nhất một lần, sau đó lặp lại chừng nào điều kiện còn sai.
D. Chỉ thực hiện lặp khi điều kiện là sai.
2. Trong Pascal, khi sử dụng cấu trúc `CASE ... OF ... END;`, trường hợp nào sau đây là đúng về cách xử lý các giá trị của biến điều kiện?
A. Mỗi giá trị của biến điều kiện có thể tương ứng với nhiều khối lệnh khác nhau.
B. Mỗi giá trị của biến điều kiện tương ứng với một khối lệnh duy nhất hoặc không có khối lệnh nào.
C. Chỉ những giá trị số nguyên mới được sử dụng trong cấu trúc CASE.
D. Cấu trúc CASE chỉ hoạt động với các phép so sánh.
3. Cấu trúc lặp `FOR i := 1 TO 10 DO WRITELN(Hello);` trong Pascal sẽ thực thi câu lệnh `WRITELN(Hello);` bao nhiêu lần?
A. 9 lần
B. 10 lần
C. 11 lần
D. Vô số lần
4. Phát biểu nào sau đây là đúng về loại dữ liệu ký tự (Char) trong Pascal?
A. Lưu trữ được nhiều ký tự cùng lúc.
B. Lưu trữ được một ký tự duy nhất, được bao bởi cặp dấu nháy đơn.
C. Chỉ lưu trữ được số nguyên.
D. Lưu trữ được cả số thực và số nguyên.
5. Trong Pascal, làm thế nào để kết thúc một chương trình?
A. Sử dụng câu lệnh `END;`
B. Sử dụng câu lệnh `STOP;`
C. Sử dụng câu lệnh `EXIT;`
D. Sử dụng câu lệnh `HALT;`
6. Trong Pascal, câu lệnh `x := y DIV z;` sẽ thực hiện phép toán gì nếu `y` và `z` là các biến kiểu số nguyên?
A. Phép chia lấy dư.
B. Phép chia lấy phần nguyên.
C. Phép chia lấy phần thập phân.
D. Phép nhân.
7. Trong Pascal, để truy cập phần tử thứ 5 của một mảng tên là ` diem_so ` đã được khai báo, ta sử dụng cú pháp nào?
A. diem_so.5
B. diem_so(5)
C. diem_so[5]
D. diem_so{5}
8. Trong ngôn ngữ lập trình Pascal, cú pháp khai báo biến nào sau đây là đúng?
A. VAR ten_bien : kieu_du_lieu;
B. TEN_BIEN : kieu_du_lieu;
C. Bien ten_bien : kieu_du_lieu;
D. VAR ten_bien = kieu_du_lieu;
9. Phát biểu nào sau đây mô tả đúng chức năng của câu lệnh `BEGIN ... END;` trong Pascal?
A. Nó chỉ dùng để kết thúc chương trình.
B. Nó dùng để nhóm một hoặc nhiều câu lệnh thành một khối lệnh duy nhất.
C. Nó dùng để khai báo biến.
D. Nó chỉ dùng để thực hiện một phép tính.
10. Cú pháp khai báo một mảng một chiều trong Pascal có dạng chung là gì?
A. VAR ten_mang : ARRAY [kieu_chỉ_số] OF kieu_du_lieu;
B. ARRAY ten_mang : kieu_du_lieu [kieu_chỉ_số];
C. VAR ten_mang : kieu_du_lieu OF ARRAY [kieu_chỉ_số];
D. TEN_MANG : ARRAY [kieu_chỉ_số] OF kieu_du_lieu;
11. Trong Pascal, ký tự nào được dùng để ngăn cách các câu lệnh trong một chương trình?
A. Dấu hai chấm (`:`)
B. Dấu chấm phẩy (`;`)
C. Dấu phẩy (`,`)
D. Dấu chấm (`.`)
12. Phát biểu nào sau đây về vai trò của biến trong lập trình là chính xác nhất?
A. Biến là các từ khóa cố định của ngôn ngữ lập trình.
B. Biến là các lệnh để điều khiển chương trình.
C. Biến là các đại lượng có thể thay đổi giá trị trong quá trình thực hiện chương trình.
D. Biến là các hàm được định nghĩa sẵn trong thư viện.
13. Trong Pascal, để hiển thị dòng chữ Chao ban! ra màn hình, ta sử dụng câu lệnh nào?
A. READLN(Chao ban!);
B. WRITELN(Chao ban!);
C. PRINT(Chao ban!);
D. DISPLAY(Chao ban!);
14. Cấu trúc lặp `WHILE ... DO ...` trong Pascal sẽ tiếp tục lặp khi nào?
A. Khi điều kiện trong `WHILE` là sai.
B. Khi điều kiện trong `WHILE` là đúng.
C. Khi điều kiện trong `WHILE` là đúng hoặc sai.
D. Khi gặp từ khóa `DO`.
15. Phát biểu nào sau đây mô tả chính xác về thủ tục (procedure) trong Pascal?
A. Thủ tục chỉ thực hiện một phép tính và trả về một giá trị duy nhất.
B. Thủ tục là một khối lệnh có thể được gọi tên để thực thi, và không nhất thiết phải trả về giá trị.
C. Thủ tục luôn trả về một giá trị cho chương trình chính.
D. Thủ tục chỉ dùng để khai báo biến.
16. Trong Pascal, kiểu dữ liệu `Real` được sử dụng để biểu diễn loại dữ liệu nào?
A. Số nguyên.
B. Ký tự.
C. Số thực.
D. Chuỗi ký tự.
17. Để khai báo một hằng số có tên là ` PI ` với giá trị ` 3.14159 ` trong Pascal, ta sử dụng cú pháp nào?
A. VAR PI : Real = 3.14159;
B. CONST PI = 3.14159;
C. DEFINE PI := 3.14159;
D. SET PI TO 3.14159;
18. Phát biểu nào sau đây mô tả đúng nhất mục đích của câu lệnh `IF ... THEN ... ELSE ...` trong Pascal?
A. Thực hiện một khối lệnh lặp lại nhiều lần.
B. Thực hiện một khối lệnh duy nhất một lần.
C. Thực hiện một khối lệnh nếu điều kiện đúng, thực hiện khối lệnh khác nếu điều kiện sai.
D. Thực hiện một khối lệnh mà không cần điều kiện.
19. Nếu một chương trình Pascal cần thực hiện một hành động nhiều lần với số lần lặp đã biết trước, cấu trúc điều khiển nào là phù hợp nhất?
A. Cấu trúc IF-THEN-ELSE.
B. Cấu trúc WHILE-DO.
C. Cấu trúc REPEAT-UNTIL.
D. Cấu trúc FOR-DO.
20. Trong một chương trình Pascal, đoạn mã sau đây sẽ thực hiện hành động gì? `x := x + 1;`
A. Gán giá trị 1 cho biến x.
B. Tăng giá trị của biến x lên 1 đơn vị.
C. Giảm giá trị của biến x đi 1 đơn vị.
D. So sánh giá trị của biến x với 1.
21. Phát biểu nào sau đây mô tả đúng về hàm (function) trong Pascal?
A. Hàm là khối lệnh không nhận tham số và không trả về giá trị.
B. Hàm là khối lệnh nhận tham số và thực hiện một tác vụ, nhưng không trả về giá trị.
C. Hàm là khối lệnh nhận tham số và luôn trả về một giá trị duy nhất.
D. Hàm chỉ được sử dụng để khai báo biến.
22. Phát biểu nào sau đây về kiểu dữ liệu số nguyên (Integer) trong Pascal là chính xác nhất?
A. Kiểu dữ liệu này chỉ lưu trữ được các số thực.
B. Kiểu dữ liệu này chỉ lưu trữ được các số nguyên dương.
C. Kiểu dữ liệu này lưu trữ được các số nguyên và có giới hạn nhất định về phạm vi giá trị.
D. Kiểu dữ liệu này có thể lưu trữ cả số nguyên và số thực với độ chính xác cao.
23. Trong Pascal, để đọc một giá trị từ bàn phím và gán vào biến ` diem ` kiểu số thực, ta sử dụng câu lệnh nào?
A. WRITELN(diem);
B. READ(diem);
C. INPUT(diem);
D. SCAN(diem);
24. Trong lập trình Pascal, mục đích chính của việc sử dụng tên biến có ý nghĩa là gì?
A. Giúp chương trình chạy nhanh hơn.
B. Làm cho mã nguồn dễ đọc, dễ hiểu và dễ bảo trì hơn.
C. Giảm dung lượng bộ nhớ chương trình.
D. Yêu cầu bắt buộc của trình biên dịch để chương trình chạy được.
25. Phát biểu nào sau đây mô tả đúng về hằng trong lập trình?
A. Hằng là đại lượng có thể thay đổi giá trị.
B. Hằng là các từ khóa của ngôn ngữ lập trình.
C. Hằng là các đại lượng có giá trị không đổi trong suốt quá trình thực hiện chương trình.
D. Hằng là các hàm được gọi để thực thi một tác vụ.