1. Trong Pascal, câu lệnh `case ... of ... end` được sử dụng cho mục đích gì?
A. Thực hiện một chuỗi lệnh lặp lại nhiều lần.
B. Rẽ nhánh chương trình dựa trên giá trị của một biến hoặc biểu thức.
C. Khai báo các biến có kiểu dữ liệu phức tạp.
D. Định nghĩa các thủ tục và hàm.
2. Trong lập trình Pascal, nhãn (label) và goto được sử dụng để làm gì?
A. Khai báo biến và hằng.
B. Thực hiện nhảy đến một vị trí khác trong chương trình.
C. Định nghĩa các hàm và thủ tục.
D. Kiểm soát luồng thực thi của các câu lệnh điều kiện.
3. Phát biểu nào sau đây mô tả đúng nhất về hàm `sqr()` trong Pascal?
A. Tính căn bậc hai của một số.
B. Tính bình phương của một số.
C. Làm tròn số đến hàng đơn vị.
D. Trả về giá trị tuyệt đối của một số.
4. Trong Pascal, câu lệnh nào được sử dụng để hiển thị thông tin ra màn hình?
A. readln
B. assign
C. writeln
D. close
5. Phát biểu nào sau đây là đúng về kiểu dữ liệu số thực (real) trong Pascal?
A. Chỉ lưu trữ các số nguyên.
B. Lưu trữ các số có phần thập phân.
C. Có độ chính xác tuyệt đối.
D. Không thể thực hiện phép chia.
6. Trong lập trình Pascal, từ khóa nào dùng để định nghĩa một hằng số?
A. var
B. const
C. type
D. procedure
7. Trong Pascal, ký hiệu `:=` được sử dụng để làm gì?
A. So sánh bằng.
B. Gán giá trị.
C. Phép toán cộng.
D. Khai báo biến.
8. Trong lập trình Pascal, câu lệnh `writeln(Ket qua la: , kq);` sẽ hiển thị gì trên màn hình nếu biến `kq` có giá trị là 25?
A. Ket qua la: kq
B. Ket qua la: 25
C. kq = 25
D. 25
9. Xem xét đoạn mã Pascal sau:
```pascal
var
tong: integer;
i: integer;
begin
tong := 0;
for i := 1 to 3 do
tong := tong + i;
writeln(tong);
end.
```
Kết quả in ra màn hình sẽ là gì?
10. Phát biểu nào sau đây mô tả đúng nhất về cấu trúc lặp for...to...do trong Pascal?
A. Lặp với số lần biết trước, biến đếm tăng dần hoặc giảm dần theo một bước cố định.
B. Lặp cho đến khi một điều kiện nào đó trở thành sai.
C. Lặp ít nhất một lần, sau đó lặp lại cho đến khi một điều kiện nào đó trở thành sai.
D. Lặp lại một khối lệnh cho đến khi hết một danh sách các phần tử.
11. Trong ngôn ngữ lập trình Pascal, câu lệnh nào sau đây dùng để khai báo biến?
A. Uses
B. program
C. var
D. begin
12. Phát biểu nào sau đây KHÔNG đúng về kiểu dữ liệu số nguyên (integer) trong Pascal?
A. Kiểu dữ liệu này chỉ lưu trữ các số nguyên dương.
B. Kiểu dữ liệu này có thể lưu trữ cả số nguyên dương và số nguyên âm.
C. Phạm vi giá trị của kiểu integer phụ thuộc vào hệ điều hành và trình biên dịch.
D. Các phép toán số học như cộng, trừ, nhân đều thực hiện được trên kiểu dữ liệu này.
13. Cấu trúc lặp nào trong Pascal phù hợp nhất khi số lần lặp không được biết trước mà phụ thuộc vào một điều kiện?
A. for...to...do
B. while...do
C. repeat...until
D. case
14. Phát biểu nào sau đây KHÔNG phải là đặc điểm của cấu trúc rẽ nhánh if...then...else trong Pascal?
A. Chỉ thực hiện một trong hai khối lệnh tùy thuộc vào điều kiện.
B. Có thể có hoặc không có phần else.
C. Cho phép thực hiện nhiều lựa chọn dựa trên nhiều điều kiện khác nhau một cách trực tiếp.
D. Điều kiện trong if thường là một biểu thức logic trả về giá trị đúng hoặc sai.
15. Trong Pascal, để thực hiện một chuỗi các câu lệnh, chúng ta cần đặt chúng giữa hai từ khóa nào?
A. program và uses
B. begin và end
C. if và then
D. for và do
16. Phát biểu nào sau đây KHÔNG đúng về kiểu dữ liệu logic (boolean) trong Pascal?
A. Chỉ có hai giá trị là True và False.
B. Thường được sử dụng trong các biểu thức điều kiện.
C. Có thể thực hiện phép cộng với các số nguyên.
D. Quan trọng trong việc kiểm soát luồng thực thi của chương trình.
17. Trong Pascal, cấu trúc `for i := 10 downto 1 do` sẽ làm cho biến `i` thay đổi giá trị như thế nào?
A. Tăng dần từ 1 đến 10.
B. Giảm dần từ 1 đến 10.
C. Giảm dần từ 10 về 1.
D. Tăng dần từ 10 lên 1.
18. Phát biểu nào sau đây mô tả đúng về cấu trúc lặp while...do?
A. Luôn thực hiện khối lệnh ít nhất một lần.
B. Kiểm tra điều kiện trước khi thực hiện khối lệnh.
C. Vòng lặp chỉ dừng khi gặp câu lệnh continue.
D. Không thể sử dụng biến đếm trong cấu trúc này.
19. Phát biểu nào sau đây là đúng về kiểu dữ liệu chuỗi (string) trong Pascal?
A. Chỉ có thể lưu trữ các ký tự số.
B. Là một dãy các ký tự, bao gồm chữ cái, số, và ký hiệu đặc biệt.
C. Không thể thực hiện các phép toán trên chuỗi.
D. Luôn có độ dài cố định là 255 ký tự.
20. Xem xét đoạn chương trình Pascal sau:
```pascal
var
a, b: integer;
begin
a := 5;
b := a + 2;
writeln(b);
end.
```
Chương trình này sẽ in ra kết quả nào?
A. 5
B. 7
C. a + 2
D. Lỗi biên dịch
21. Phát biểu nào sau đây mô tả đúng vai trò của cấu trúc lặp lồng nhau (nested loops) trong Pascal?
A. Chỉ dùng để thực hiện một lệnh lặp duy nhất.
B. Cho phép xử lý các tác vụ phức tạp, ví dụ như duyệt qua các phần tử của ma trận.
C. Luôn làm cho chương trình chạy chậm hơn đáng kể.
D. Không được phép sử dụng cùng với cấu trúc điều kiện.
22. Xem xét đoạn mã Pascal:
```pascal
var
i: integer;
begin
for i := 1 to 5 do
if i mod 2 = 0 then
writeln(i);
end.
```
Chương trình này sẽ in ra những số nào?
A. 1 2 3 4 5
B. 2 4
C. 1 3 5
D. Chỉ in ra 2
23. Trong Pascal, nếu bạn muốn khai báo một biến có thể lưu trữ cả số nguyên và số thực, bạn nên sử dụng kiểu dữ liệu nào?
A. integer
B. boolean
C. real
D. char
24. Xem xét đoạn mã Pascal:
```pascal
var
x: real;
begin
x := 10 / 4;
writeln(x);
end.
```
Kết quả in ra màn hình sẽ là gì?
A. 2
B. 2.5
C. 2.0
D. Lỗi
25. Xem xét khai báo biến `var DiemTB: real;`. Giá trị nào sau đây KHÔNG thể gán cho biến `DiemTB`?