MÔN TIN HỌC 11
NĂM HỌC 2019 – 2020
20 CÂU TRẮC NGHIỆM VỀ CẤU TRÚC RẼ NHÁNH VÀ LẶP
Câu 1: 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 2: Cho hai dạng lặp FOR – DO trong PASCAL như sau :
Dạng lặp tiến :
FOR
Dạng lặp lùi :
FOR
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 3: Cho hai dạng lặp FOR – DO trong PASCAL như sau
Dạng lặp tiến :
FOR
Dạng lặp lùi :
FOR
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 4: 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 :
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.
A. Câu lệnh sau DO bao giờ cũng được thực hiện ít nhất một lần.
B. đ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ự.
C. 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. (*)
Câu 5: Cho chương trình viết bằng ngôn ngữ PASCAL sau đây :
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 6: 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 ;
Câu 7: Trong ngôn ngữ lập trình Pascal, câu lệnh nào sau đây là đúng ?
A. If
C. If
Câu 8: Trong ngôn ngữ lập trình Pascal, câu lệnh nào sau đây là đúng ?
A. If
B. If
C. If
D. If
Câu 9: Trong ngôn ngữ lập trình Pascal, câu lệnh nào sau đây là đúng ?
A. If
B. If
C. If
D. If
Câu 10: 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 11: 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 a
A. 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 12: 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 .
Câu 13: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 14: 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 15: 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 “ ; ” (*)