I. Phần trắc nghiệm: Hãy chọn một đáp án đúng nhất.
Câu 1. Trong Pascal, câu lệnh nào sau đây được viết đúng?
A. for i:= 4 to 1 do writeln(‘A’); B. for i= 1 to 10 writeln(‘A’);
C. for i:= 1 to 10 do writeln(‘A’); D. for i to 10 do writeln(‘A’);
Câu 2. Trong câu lệnh lặp: For i := 1 to 10 do j:= j + 2; write( j );
Khi kết thúc câu lệnh lặp trên, câu lệnh write( j ); được thực hiện bao nhiêu lần?
A. 10 lần B. 5 lần C. 1 lần D. Không thực hiện.
Câu 3. Cho đoạn chương trình: J:= 0;
For i:= 1 to 5 do J:= j + i;
Sau khi thực hiện đoạn chương trình trên, giá trị của biến j bằng bao nhiêu?
A. 12 B. 22 C. 15 D. 42.
Câu 4: Cú pháp của câu lệnh điều kiện dạng đủ nào sau đây là đúng?
A. If <điều kiện> then <câu lệnh 1> else <câu lệnh 2> B. If <câu lệnh> then <điều kiện>
C. If <điều kiện> then <câu lệnh 1> else <câu lệnh 2> D. If <điều kiện> do <câu lệnh>;
Câu 5: Chương trình sau cho kết quả gì?
Program VD;
Var a, b: Real; x: Integer;
Begin
Readln( a,b);
If a>b then x:=a else x:=b;
Writeln(x);
End.
A.Xuất ra màn hình số nhỏ nhất trong 2 số a, b đã nhập.
B.Xuất ra màn hình số lớn nhất trong hai số a, b đã nhập.
C.Chương trình không thực hiện được do lỗi khai báo kiểu dữ liệu.
D.Đảo giá trị của hai biến a, b cho nhau.
Câu 6: Hoạt động nào sau đây lặp với số lần lặp biết trước?
A. Rửa rau tới khi sạch B. Học bài cho tới khi thuộc bài
C. Gọi điện tới khi có người nghe máy D. Ngày tắm 2 lần
Câu 7: Cấu trúc câu lệnh điều kiện dạng thiếu là:
A. If <điều kiện> then <câu lệnh 1> esle <câu lệnh 2> B. If <điều kiện> then <câu lệnh >
C. If <điều kiện> then <câu lệnh 1> <câu lệnh 2> D. If <điều kiện> then <câu lệnh 1> esle <câu lệnh 2>
Câu 8: Ta có 2 lệnh sau:
x := 8;
IF x > 5 then x := x+1;
Giá trị của x nhận được là bao nhiêu?
A. 5 B. 7 C. 8 D. 9
Câu 9: Chọn câu lệnh Pascal hợp lệ trong các câu lệnh sau:
A. If a > b then max = a ; B. If a := b then max = b ;
C. If a = b then S := a+b ; D. If a <> b then b=a;
Câu 10: Chọn cú pháp đúng nhất về câu lệnh lặp:
A. for < biến đếm > : = < giá trị đầu > to < giá trị cuối > do < câu lệnh >
B. for < biến đếm > := < giá trị cuối > to < giá trị đầu > do <câu lệnh >
C. for <biến đếm > : = < giá trị đầu > to < giá trị cuối > do < câu lệnh >
D. for < biến đếm > : = < giá trị đầu > to < giá trị cuối > do < câu lệnh >
Câu 11: Em hiểu lệnh lặp theo nghĩa nào dưới đây?
A. Một lệnh thay cho nhiều lệnh B. Các câu lệnh được viết lặp đi lặp lại nhiều lần
C. Vì câu lệnh có tên là lệnh lặp D. Cả (A), (B), (C) đều sai
Câu 12: Khi nào thì câu lệnh For..to..do kết thúc?
A. Khi biến đếm nhỏ hơn giá trị cuối B. Khi biến đếm lớn hơn giá trị cuối
C. Khi biến đếm nhỏ hơn giá trị đầu D. Khi biến đếm lớn hơn giá trị đầu
Câu 13: Cho các câu lệnh sau hãy chỉ ra câu lệnh đúng?
A. for i:=1 to 10; do x:=x+1; B. for i:=1 to 10 do x:=x+1;
C. for i:=10 to 1 do x:=x+1; D. for i =10 to 1 do x:=x+1;
Câu 14: Với ngôn ngữ lập trình Passcal câu lệnh lặp for i:=1 to 10 do x:=x+1; thì biến đếm i phải
được khai báo là kiểu dữ liệu nào?
A. Integer B. Real C. String D. Tất cả các kiểu trên đều được
Câu 15: Trong câu lệnh lặp với số lần biết trước (For – do), được thực hiện mấy lần?
A. ( < giá trị cuối > - < giá trị đầu >) lần B. Tuỳ thuộc vào bài toán mới biết được số lần
C. Khoảng 10 lần D. ( < giá trị đầu > - < giá trị cuối>) lần
Câu 16: Xác định số vòng lặp cho bài toán: tính tổng các số nguyên từ 1 đến 100
A. 1 B. 100 C. 99 D. Tất cả đều sai
Câu 17: Kết quả của < điều kiện > trong câu lệnh sẽ có giá trị là gì?
A. Là một số nguyên B. Là một số thực C. Đúng hoặc sai D. Là một dãy kí tự
Câu 18: Sau khi thực hiện đoạn chương trình sau:
S:=0; For i:=1 to 5 do S:=S+i; Giá trị của biến S bằng bao nhiêu?
A. 20 B. 15 C. 10 D. 0
Câu 19: Cú pháp lệnh lặp For – do dạng lùi:
A. for < biến đếm> = < Giá trị cuối >downto < Giá trị đầu > do < câu lệnh >
B. for < biến đếm> := < Giá trị cuối >downto < Giá trị đầu > do < câu lệnh >
C. for < biến đếm> = < Giá trị cuối >down < Giá trị đầu > do < câu lệnh >
D. for < biến đếm> := < Giá trị đầu >downto < Giá trị cuối > do < câu lệnh >
Câu 20: Trong lệnh lặp For – do: (chọn phương án đúng nhất)
A. Giá trị đầu phải nhỏ hơn giá trị cuối
B. Giá trị đầu phải nhỏ hơn hoặc bằng giá trị cuối
C. Giá trị đầu phải lớn hơn giá trị cuối D. Giá trị đầu phải bằng giá trị cuối
Câu 21: Lệnh lặp For – do được sử dụng khi:
A. Lặp với số lần biết trước B. Lặp với số lần chưa biết trước
C. Lặp với số lần có thể biết trước D. Lặp với số lần không bao giờ biết trước
Câu 22: Sau khi thực hiện đoạn chương trình sau: s:=1; for i:= 1 to 3 do s:= s*i;
Giá trị của biến s bằng bao nhiêu?
A. 10; B.5; C. 6; D. 15.
Câu 23: Với câu lệnh for i:=1 to 10 do x:=x+1; biến i được khai báo thuộc kiểu dữ liệu nào?
A. Real; B. Integer; C. String; D. Char.
Câu 24: Lệnh lặp for..to..do của Pascal trong mỗi vòng lặp, biến đếm thay đổi như thế nào?
A. Tăng thêm 1 đơn vị; B. +1 hoặc -1;
C. Giá trị bất kì; D. Một giá trị khác 0.
II: Bài tập: Tính tổng các số tự nhiên đầu tiên chia hết cho 3 không vướt quá N cho trước (N được
nhập vào từ bàn phím).
MONG NHẬN ĐƯỢC SỰ TRỢ GIÚP TỪ CÁC BẠN !!!
I: Trắc nghiệm
Câu 1: C
Câu 2: A
Câu 3: C
Câu 4: C
Câu 5: C
Câu 6: D
Câu 7: B
Câu 8: D
Câu 9: C
Câu 10: B
Câu 11: D
Câu 12: B
Câu 13: B
Câu 14: A
Câu 15: B
Câu 16: B
Câu 17: Không rõ câu hỏi
Câu 18: B
Câu 19: B
Câu 20: B
Câu 21: A
Câu 22: C
Câu 23: B
Câu 24: A
II: Bài tập:
uses crt;
var i,s,n:longint;
begin
clrscr;
write('n='); readln(n);
s:=0;
for i:=1 to n do
if i mod 3=0 then s:=s+i;
writeln('tong cac so tu nhien chia het cho 3 khong vuot qua ',n,' la: ',s);
readln;
end.