Câu 1: Trong vòng lặp For := to do củaPascal, trong mỗi vòng lặp, biến đếm thay đổi như thế nào c.. Một giá trị khác không Câu 2: Phát biểu nào sau đây là đúng?. Cấu trúc lặp được sử dụ
Trang 1Câu 1: Trong vòng lặp For <biến đếm>:=<giá trị đầu> to <giá trị cuối> do <câu lệnh>
củaPascal, trong mỗi vòng lặp, biến đếm thay đổi như thế nào
c Một giá trị bất kỳ d Một giá trị khác không
Câu 2: Phát biểu nào sau đây là đúng ?
a Cấu trúc lặp được sử dụng để chỉ thị cho máy tính thực hiện lặp lại một vài hoạt động nào
đó cho đến khi một điều kiện nào đó được thoả mãn
b Chỉ ngôn ngữ lập trình Pascal mới có các câu lệnh lặp để thể hiện cấu trúc lặp
c Ngôn ngữ Pascal thể hiện cấu trúc lặp với số lần lặp cho trước bằng câu lệnh while…do
d Ngôn ngữ Pascal thể hiện cấu trúc lặp với số lần lặp chưa biết trước bằng câu lệnh For…do
Câu 3: Câu lệnh lặp while…do có dạng đúng là:
a x:=10; While x:=10 do x:=x+5; b x:=10; While x:=10 do x=x+5;
c x:=10; While x=10 do x=x+5; d x:=10; While x=10 do x:=x+5;
Câu 4: Câu lệnh pascal nào sau đây là hợp lệ?
a For i:=100 to 1 do writeln(‘A’); b For i:= 1 to 10 do writeln(‘A’);
c For i:=1.5 to 10.5 do writeln(‘A’); d For i= 1 to 10 do writeln(‘A’);
Câu 5: Cho S và i là biến nguyên Khi chạy đoạn chương trình :
s:=0;
for i:=1 to 5 do s := s+i;
writeln(s);
Kết quả in lên màn hình của S là :
Câu 6: Lần lượt thực hiện câu lệnh for i:= 1 to 3.5 do writeln(i:3:1); sẽ viết ra màn hình?
a Thứ tự của biến đếm, chiếm 3 chỗ và lấy 1 chữ số sau phần thập phân
b Viết số 1 rồi viết số 3.5
c Chỉ viết số 3.5 mà thôi
d Không thực hiện được vì giá trị của biến đếm có kiểu thứ tự là Real
Câu 7: Trong câu lệnh lặp
For i:=1 to 10 do
begin
…
End
Câu lệnh ghép được thực hiện bao nhiêu lần (bao nhiêu vòng lặp được thực
hiện)
g lần nào
Câu 8: Tìm hiểu đoạn lệnh sau và cho biết với đoạn lệnh đó chương trình thực hiện bao nhiêu
vòng lặp
S:=0; n:=0;
While S< =10 do
Begin
n:=n+1;
s:=s+n;
end;
Trang 2Câu 9: Câu lệnh nào sau đây lặp vô hạn lần
a s:=5; i:=0;
While i<=s do s:=s + 1; b s:=5; i:=1;While i<=s do i:=i + 1;
c s:=5; i:=1;
While i> s do i:=i + 1; d s:=0; i:=0;While i<=n do
if (i mod2)=1 then S:=S + I else i:=i+1;
Câu 10: Để tính tổng S=1 + 2 +3 +4 … + n; em chọn đoạn lệnh:
a for i:=1 to n do
if ( i mod 2)=0 then S:=S + i;
b for i:=1 to n do
if ( i mod 2)=1 then S:=S + i;
c for i:=1 to n do
S:= S + i ;
d for i:=1 to n do
if ( i mod 2)<>0 then S:=S + i;
Câu 11: Để tính tổng S=2 + 4 + 6 … + n; em chọn đoạn lệnh:
a For i:=1 to n do
if ( i mod 2)=0 then S:=S + i;
b For i:=1 to n do
S:= S + i ;
c c For i:=1 to n do
if ( i mod 2)=1 then S:=S + i;
d for i:=1 to n do
if ( i mod 2)<>0 then S:=S + i;
Câu 12: Để tính tổng S=1/2+1/4 + 1/6 + … +1/ n; em chọn đoạn lệnh:
a for i:=1 to n do
if ( i mod 2)=0 then S:=S + 1/i; b for i:=1 to n doif ( i mod 2) < > 0 then S:=S + i;
c for i:=1 to n do
if ( i mod 2)=0 then S:=S – 1/i else S:= S + 1/i;
d for i:=1 to n do
if ( i mod 2)=0 then S:=S +1/ i else S:=S-1/i;
Câu 13: Để đếm có bao nhiêu số lẻ nhỏ hơn hay bằng n ; em chọn đoạn lệnh:
a for i:=1 to n do
if ( I mod 2)< >0 then S:=S + 1;
b for i:=1 to n do
if ( I mod 2) =0 then S:=S + 1;
c for i:=1 to n do
if ( I mod 2)=0 then S:=S + I ;
d for i:=1 to n do
if ( I mod 2)=0 then S:=S + I;
Câu 14: Hãy tìm hiểu đoạn chương trình sau đây Không cần viết chương trình, hãy
cho biết lệnh Writeln in ra màn hình giá trị của i, j, k là bao nhiêu?
While i<=6 do i:=i+1; j:=j+1; k:=k+j; I=
Câu 15: Hãy xác định đúng sai cho những phát biểu dưới đây
Trong câu lệnh sau do của câu lệnh lặp While … do phải có lệnh làm thay đổi giá trị của điều kiện điều
khiển vòng lặp, để sau một số lần hữu hạn lần lặp, điều kiện phải có giá trị “sai”, vòng lặp sẽ được kết
thúc (không bị lặp vô hạn lần)
Trong nhiều trường hợp, việc thực hiện câu lệnh lặp While… do tốn ít thời gian hơn so với câu lệnh lặp
for … do
Câu lệnh sau do trong câu lệnh lặp while … do có thể không được thực hiện lần nào nếu ngay từ đầu
điều kiện điều khiển vòng lặp có giá trị “sai”
Mọi câu lệnh lặp For…do đều có thể thay thế một cách thích hợp bởi câu lệnh While do
Câu 16: Trong các hoạt động sau đây, hoạt động nào sẽ được thực hiện lặp lại với số
lần chưa biết trước
Trang 3a Nhập 1 số hợp lệ, số nguyên trong khoảng từ 0 đến 10, vào máy tính Nếu nhập không hợp
lệ thì yêu cầu nhập lại
b Nhập các số tự nhiên từ bàn phím cho đến khi đủ 50 số
c Rút tiền dần từ số tiền tiết kiệm cho đến khi số dư còn lại ít hơn 50 ngàn đồng
d Cả ba trường hợp trên đều đúng
Câu 17: Vòng lặp while do là vòng lặp:
a Biết trước số lần lặp b Chưa biết trước số lần lặp
c Biết trước số lần lặp nhưng giới hạn là <=100 d Biết trước số lần lặp nhưng giới hạn là >=100
Câu 18: Lệnh lặp nào sau đây là đúng?
a For i:=1 to 10; do x:=x+1;
b For i:=10 to 1 do x:=x+1;
c For i:=1 to 10 do x:=x+1;
d For i=1 to 10 do x:=x+1;
Câu 19: 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
Câu 20: Sau khi thực hiện đoạn chương trình j:= 0; for i:= 1 to 3 do j:=j+2; thì giá trị in ra màn
hình là?
Câu 21: Đoạn lệnh sau đây So:=1; While so<10 do writeln(so); So:=so+1; Sẽ cho kết quả gì?
a In ra các số từ 1 đến 9 b In ra các số từ 1 đến 10
c Không phương án nào đúng d In vô hạn các số 1, mỗi số trên một dòng
Câu 22: Câu trong đoạn chương trình Pascal sau đây
for i:=1 to 10 do
begin
…
End
Sau khi thực hiện đoạn chương trình trên, giá trị của i là
Câu 23: Tìm hiểu đoạn lệnh sau và cho biết với đoạn lệnh đó chương trình thực hiện bao nhiêu
vòng lặp
S:=0; n:=0;
While S< =10 do n:=n+1; s:=s+n;
Câu 24: Hãy tìm hiểu đoạn chương trình sau đây Sau khi đoạn chương trình này được thực hiện,
giá trị của x bằng bao nhiêu?
X:=0; Tong:=0;
While tong<=20 do
Begin
Writeln(tong); Tong:=tong+1;
End.
X:=tong;
Câu 25: Để tính tổng S=1+1/2 +1/3 + 1/4 … 1/n; em chọn đoạn lệnh:
Trang 4if ( i mod 2)=0 then S:=S + 1/i; if ( i mod 2)=0 then S:=S + i
Else S:= S + I;
c for i:=1 to n do
S:=S + 1/i; d for i:=1 to n doif ( i mod 2)<>0 then S:=S + 1/i Else S:=S-1/i;
Câu 26: Để tính tổng S=1+3 + 5 + … + n; em chọn đoạn lệnh:
a for i:=1 to n do
if ( i mod 2)=0 then S:=S + 1/i; b for i:=1 to n doif ( i mod 2) < > 0 then S:=S + i;
c for i:=1 to n do
if ( i mod 2)=0 then S:=S + i else S:= S + I;
d for i:=1 to n do
if ( i mod 2)=0 then S:=S + i;
Câu 27: Để tính tổng S=1+1/3 + 1/5 + … +1/ n; em chọn đoạn lệnh:
a for i:=1 to n do
if ( i mod 2)=1 then S:=S + 1/i;
b for i:=1 to n do
if ( i mod 2) =0 then S:=S + 1/i;
c for i:=1 to n do
if ( i mod 2)=0 then S:=S + 1/i else S:= S + 1/;
d for i:=1 to n do
if ( i mod 2)=0 then S:=S + i;
Câu 28: Để tính tổng S=1+2+3+ 4+ 5 + … + n; em chọn đoạn lệnh:
a s:=0; i:=0;
While i<=n do S:=S + 1; b s:=0; i:=0;While i<=n do If (I mod 2)= 1 Then S:=S + i;
c s:=0; i:=0;
While i<=n do
begin
S:=S + i;
I:=i+1;
End;
d s:=0; i:=0;
While i<=n do begin
if (i mod2)=1 Then S:=S + i Else i:=i+1;
End;
Câu 29: Hãy tìm hiểu đoạn chương trình sau đây Không cần viết chương trình, hãy cho
biết lệnh Writeln in ra màn hình giá trị của i, j, k là bao nhiêu?
Begin
end;
Write(I,space,j,space,k);
Câu 30: Hãy xác định đúng sai cho những phát biểu dưới đây
Không nên thay đổi giá trị của biến đếm trong câu lệnh lặp For … do, ví dụ câu lệnh lặp sau đây là không
nên sử dụng For i:=1 to n do i:=i+2;
Trong câu lệnh lặp for biến đếm:=giá trị đầu to giá trị cuối do câu lệnh;
Nếu giá trị đầu < giá trị cuối thì chương trình dịch sẽ báo lỗi để ta chỉnh sữa lại
Câu lệnh lặp For… do rất thuận tiện và hữu ích trong việc tránh phải viết lặp đi lặp lại nhiều lần một câu
lệnh nào đó Chẳng hạn để in ra các số nguyên hơn kém nhau 1 đơn vị từ 1 đến 15 ta chỉ viết 1 câu lệnh
sau For i:=1 to 15 do writeln(i:3:1);
Mọi câu lệnh lặp While…do đều có thể thay thế một cách thích hợp bởi câu lệnh For do