Phần trắc nghiệm
CHƯƠNG I. MỘT SỐ KHÁI NIỆM VỀ LẬP TRÌNH
Bài 1. Khái niệm về lập trình và ngôn
ngữ lập trình
Câu 1. 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;
Câu 2. 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ữ
Bài 2. Các thành phần của ngôn ngữ lập
trình
Câu 1. 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 .
Câu 2. 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
Câu 3. 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
Câu 4. 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
Câu 5. Trong ngôn
ngữ Pascal, từ khóa CONST dùng để
khai báo
A. Tên chương trình B.
Hằng C. Biến D. Thư viện
Câu 6. 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 7. Tên nào
không đúng trong ngôn ngữ Pascal
A. abc_123 B.
_123abc C. 123_abc D. abc123
Câu 8. 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
Câu 9. 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
CHƯƠNG II. CHƯƠNG TRÌNH ĐƠN GIẢN
Bài 3. Cấu trúc chương trình
Câu 1.
Chọn phát biểu sai trong các phát biểu sau :
A. Nói chung, chương trình thường gồm hai phần : phần khai
báo và phần thân;
B. Phần thân chương trình nhất thiết phải có;
C. Phần khai báo nhất thiết phải có;
D. Phần thân chương trình có thể không chứa một lệnh nào;
Câu 2.
Chọn câu đúng trong các câu sau:
A. 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;
B. Dòng khai báo tên chương trình cũng là một dòng lệnh;
C. Để 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;
D. 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;
Câu 3.
Chọn câu phát biểu hợp lí nhất ?
A. 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;
B. 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;
C. 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;
D. 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;
Câu 4.
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 5.
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;
Bài 4. Một số kiểu dữ liệu chuẩn
Câu
1. 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ó 127 kí tự;
Câu 2.
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
3. Biến P có thể nhận các giá trị 5; 10; 15; 20; 30;
60; 90 và biến X có thể nhận các giá trị 0,1; 0,2; 0,3; 0,4; 0,5. Khai báo nào trong các khai báo sau đây là
đúng?
A.
var X,P: byte; B.
var P,X: real;
C.
var P:real; X: byte; D.
var X: real; P:byte;
Câu
4. Để 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ừ 100 đến
200, cách khai báo S nào dưới đây là đúng và ít tốn bộ nhớ nhất?
A.
var s:integer; B.
var s:real;
C.
var s:word; D.
var s:longint;
Bài 5. Khai báo biến
Câu
1. 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;
Câu 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.
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.
Bài 6. Phép toán, biểu thức, câu lệnh gán
Câu
1. Cho khai báo biến sau đây (trong Pascal) :
Var m, n : integer ; x, y
: real ;
Lệnh gán nào sau đây là sai ?
A. m := -4 ; B. n := 3.5 ; C. x := 6 ; D. y := +10.5 ;
Câu 2.
Trường hợp nào
sau đây không phải là lệnh gán trong Pascal ?
A. a := 10 ; B. a + b := 1000
; C. cd := 50 ; D. a := a*2 ;
Câu 3.
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 4.
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 5.
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 ;
Bài 7. Các thủ tục chuẩn vào/ra đơn giản
Câu
1. 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 2.
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.00;
B. 10.00 C. 1.00000000000000E+001; D. 10;
Bài 8. Soạn thảo, dịch, thực hiện và
hiệu chỉnh chương trình
Câu
1. Trong NNLT Pascal, để chạy chương trình ta dùng tổ hợp
phím
A. Alt + F9 B. Shift + F9. C. Ctrl + F9. D. Ctrl + Alt + F9
Câu 2.
Để biên dịch
chương trình trong Pascal ta dùng tổ hợp phím :
A. Ctrl + F9 B. Alt + F9 C. Alt + F8 D. Shift + F9
Câu 3.
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âu 4.
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.
CHƯƠNG III. CẤU TRÚC RẼ NHÁNH VÀ LẶP
Bài 9. Cấu trúc rẽ nhánh
Câu 1. Để 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 2. 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 3. Với cấu
trúc rẽ nhánh IF <điều kiện> THEN <câu
lệnh 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 4. 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 1. 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 2. 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 3. 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 4. 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ó 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 5. 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 ;
Thầy ơi cho em hỏi về câu 2 (viết chương trình giải phương trinh bậc hai) có cần làm trường hợp d (delta) =0 không thầy?
Trả lờiXóa