Cho câu lệnh: For i:=1 to n do writeln(i*(i+1)div2). Hãy thay thế câu lệnh trên bằng đoạn chương trình dùng While - do
Câu 1: 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.5 to 10.5 do writeln(‘A’);
c) For i= 1 to 10 do writeln(‘A’);
d) For i:= 1 to 10 do writeln(‘A’);
Câu 2: Lệnh lặp For, mỗi lần lặp giá trị của biến đếm thay đổi như thế nào?
A. Tăng 1
B. Tăng 2
C. Tăng 3
D. Tăng 4
Câu 4: Vòng lặp for ..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à <=50
D. Biết trước số lần lặp nhưng giới hạn là >=50
Câu 5: Với ngôn ngữ lập trình Pascal 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: *
A. Integer
B. Real
C. String
D. Tất cả các kiểu trên đều được
Câu 6: 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 là của s là :
a) 11
b) 55
c) 101
d) 15
Câu 7: Để 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; c) 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)=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 8: Để đế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; c) 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 + i ; d) for i:=1 to n do if ( i mod 2)=0 then S:=S + i;
III. Bài tập thực hành: Viết chương trình nhập vào 1 số nguyên n. Viết ra 20 các số chẳn tiếp theo lớn hơn số n.
GIÚP VỚI !!!
1.C
2.A
4.A
5.A
6.D
7.C
8.A
III.
Program HOC24;
var n,d: integer;
begin
write('Nhap N: '); readln(n);
if n mod 2=1 then
begin
begin
n:=n+1;
write(n,' ');
end;
d:=1;
while d<20 do
begin
n:=n+2;
write(n,' ');
d:=d+1;
end;
end else
begin
d:=1;
while d<=20 do
begin
n:=n+2;
write(n,' ');
d:=d+1;
end;
end;
readln
end.
Câu 5: Đoạn lệnh sau đây
P:=1;
` for i:=1 to N do P := P*i;
Writeln (N, ‘!=’, P);
Dùng để làm gì?
Đoạn chương trình dùng để tính N! hay tích của P= 1.2.3.4....N
Câu 4: Trong các câu lệnh pascal, câu lệnh nào hợp lệ:
A. For i:=1 to 4 do writeln (‘y’); C. For i=4 to 1 do writeln (‘y’) ;
B. For i:=4 to 1 do writeln (‘y’); D. For i=:4 to 1 do writeln (‘y’);
Câu 5: Cho biết số vòng lặp của câu lệnh: For i:= 22 to 32 do writeln(‘A’);
A. 8 B. 9 C. 10 D. 11
Câu 6: Khi nào thì câu lệnh for ..to..do kết thúc?
A. Khi biến đếm lớn hơn giá trị cuối. C. Khi biến đếm nhỏ hơn giá trị cuối.
B. Khi biến đếm bằng giá trị cuối. D. Khi biến đếm lớn hơn giá trị đầu.
Câu 7: Vòng lặp sau thực hiện bao nhiêu lần lặp:
For i := 1 to 5 do a := a + 1;
A. 3 lần. B. 4 lần. C. 5 lần. D. 6 lần.
Câu 8: Vòng lặp sau cho kết quả S bằng bao nhiêu:
S := 0; For i := 1 to 4 do S := S + 2;
A. S = 8 B. S = 10 C. S = 12 D. S = 14
Câu 9: Vòng lặp sau cho kết quả S bằng bao nhiêu:
S := 1; For i := 1 to 3 do S := S * 2;
A. S = 6 B. S = 8 C. S = 10 D. S = 12
Câu 10: Số lần lặp của câu lệnh lặp for…to…do… được tính như thế nào?
A. Giá trị đầu – giá trị cuối B. Giá trị đầu – giá trị cuối + 1
C. Giá trị cuối – giá trị đầu D. Giá trị cuối – giá trị đầu + 1
Câu 11: Trong câu lệnh lặp, kiểu dữ liệu của biến đếm là:
A. Real B. String C. Integer D. Char
Câu 12: Câu lệnh lặp với số lần chưa biết trước bắt đầu bằng từ khóa:
A. For B. While C. If D. Var
Câu 13: Từ khóa nào sau đây dùng để khai báo biến:
A. Uses B. Begin C. Var D. Writeln
Câu 14: Trong câu lệnh While...do… nếu điều kiện đúng thì:
A. Tiếp tục vòng lặp B. Vòng lặp vô tận
C. Lặp 10 lần D. Thoát khỏi vòng lặp
Câu 15: Câu lệnh sau đây cho kết quả như thế nào? For i:=1 to 10 do Writeln(‘A’);
A. In dãy số từ 10 đến 1 ra màn hình B. In dãy số từ 1 đến 10 ra màn hình
C. In 20 ký tự A ra màn hình D. In 10 ký tự A ra màn hình
Câu 16: Cú pháp câu lệnh lặp với số lần chưa biết trước:
A. For ... to... do
B. For <biến đếm>:=<giá trị cuối> to <giá trị đầu> do <câu lệnh>;
C. For ... do
D. For <biến đếm>:=<giá trị đầu > to <giá trị cuối > do <câu lệnh>;
Câu 17: Chọn phát biểu đúng:
A. Lặp vô hạn lần có thể xảy ra ở câu lệnh lặp với số lần biết trước
B. Lặp vô hạn lần là lặp 1000 lần
C. Lặp vô hạn lần có thể xảy ra ở câu lệnh điều kiện
D. Lặp vô hạn lần có thể xảy ra ở câu lệnh lặp với số lần chưa biết trước
Câu 18: Chọn câu lệnh đúng:
A. x:=1; while x<10 do x:=x+5;
B. x =1; while x> 10 do x:=x+5;
C. x:=1; while x:= 10 do x:=x+5;
D. x:=10; while x< 10 do x=x+5;
Câu 19: 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 20: Trong các câu lệnh Pascal sau, câu nào được viết đúng:
A. for i:=1 to 10 do B. for i:=1 to 10 do;
C. for i=1 to 10 do D. for i:1 to 10 do
Câu 21: Để thoát khỏi chương trình Pascal ta dùng tổ hợp phím:
A. Ctrl + X B. Ctrl+ F9 C. Alt + F9 D. Alt +X.
Câu 22. Trong các hoạt động dưới đây, đâu là hoạt động lặp với số lần chưa biết trước:
A. Mỗi buổi học đúng 5 tiết.
B. Mỗi ngày ăn cơm 3 buổi.
C. Mỗi ngày phải học bài cho đến khi thuộc.
D. Rằm tháng Giêng là Tết Nguyên tiêu.
Câu 23: Nhặt thóc ra khỏi gạo đến khi trong gạo không còn thóc là :
A. Lặp 10 lần B. Lặp vô số lần
C. Lặp với số lần chưa biết trước D. Lặp với số lần biết trước
Câu 24: Các câu lệnh sau, câu lệnh nào hợp lệ ?
A. For i:=1 to 10 do; write (‘a’)
B. For i:=1 to 10 do write (‘a’);
C. var x:real; begin for x:=1 to 10 do write (‘a’); end.
D. For i=1 to 10 do write (‘a’);
Câu 25: Cho câu lệnh sau: S:=S+1/i ; Cho biết kiểu dữ liệu cần khai báo cho biến S là:
A.integer B. byte C. longint D. real
Câu 26: Cho biết cú pháp khai báo biến mảng
A. <tên mảng>:array [<chỉ số đầu> …. <chỉ số cuối>] of <kiểu dữ liệu>;
B. <tên mảng>:array [<chỉ số đầu> .. <chỉ số cuối>] for <kiểu dữ liệu>;
C. <tên mảng>:array [<chỉ số đầu>.. <chỉ số cuối>] of <kiểu dữ liệu>;
D. <tên mảng>:array [<chỉ số đầu> ... <chỉ số cuối>] of <kiểu dữ liệu>;
Câu 27: Giả sử biến Chiều cao gồm 20 phần tử, cách khai báo nào dưới đây là đúng
A. Var Chieucao: array[1..20] of real;
B. Var Chieucao: array[1..20] of integer;
C. Var Chieucao: array[1..20] of string;
D. Var Chieucao: array[1…20] of char;
Câu 28: Giả sử biến mảng A có 5 phần tử và giá trị của các phần tử lần lượt là 1, 4, 7, 2, 6. Khi thực hiện câu lệnh sau: tb:= 0; For i:= 1 to 5 do tb := tb + A[i]; Giá trị của biến tb là bao nhiêu?
A.18 B. 22 C. 21 D. 20
Câu 29: Khai báo biến kiểu mảng nào sau đây là hợp lệ:
A. Var a,b: array[1 .. n] of real;
B. Var a,b: array[1 : n] of Integer;
C. Var a,b: array[1 .. 100] of Integer ;
D. Var a,b: array[1 … 100] of real;
Câu 30: Tính giá trị cuối cùng của b, biết rằng: a:= 3; b:= 5;
while a<0 do b:= a + b; a:=a+1;
A. b= 8 B. b=3 C. b= 5 D. b= 0
Câu 4: Trong các câu lệnh pascal, câu lệnh nào hợp lệ:
A. For i:=1 to 4 do writeln (‘y’); C. For i=4 to 1 do writeln (‘y’) ;
B. For i:=4 to 1 do writeln (‘y’); D. For i=:4 to 1 do writeln (‘y’);
Câu 5: Cho biết số vòng lặp của câu lệnh: For i:= 22 to 32 do writeln(‘A’);
A. 8 B. 9 C. 10 D. 11
Câu 6: Khi nào thì câu lệnh for ..to..do kết thúc?
A. Khi biến đếm lớn hơn giá trị cuối. C. Khi biến đếm nhỏ hơn giá trị cuối.
B. Khi biến đếm bằng giá trị cuối. D. Khi biến đếm lớn hơn giá trị đầu.
Câu 7: Vòng lặp sau thực hiện bao nhiêu lần lặp:
For i := 1 to 5 do a := a + 1;
A. 3 lần. B. 4 lần. C. 5 lần. D. 6 lần.
Câu 8: Vòng lặp sau cho kết quả S bằng bao nhiêu:
S := 0; For i := 1 to 4 do S := S + 2;
A. S = 8 B. S = 10 C. S = 12 D. S = 14
Câu 9: Vòng lặp sau cho kết quả S bằng bao nhiêu:
S := 1; For i := 1 to 3 do S := S * 2;
A. S = 6 B. S = 8 C. S = 10 D. S = 12
Câu 10: Số lần lặp của câu lệnh lặp for…to…do… được tính như thế nào?
A. Giá trị đầu – giá trị cuối B. Giá trị đầu – giá trị cuối + 1
C. Giá trị cuối – giá trị đầu D. Giá trị cuối – giá trị đầu + 1
Câu 11: Trong câu lệnh lặp, kiểu dữ liệu của biến đếm là:
A. Real B. String C. Integer D. Char
Câu 12: Câu lệnh lặp với số lần chưa biết trước bắt đầu bằng từ khóa:
A. For B. While C. If D. Var
Câu 13: Từ khóa nào sau đây dùng để khai báo biến:
A. Uses B. Begin C. Var D. Writeln
Câu 14: Trong câu lệnh While...do… nếu điều kiện đúng thì:
A. Tiếp tục vòng lặp B. Vòng lặp vô tận
C. Lặp 10 lần D. Thoát khỏi vòng lặp
Câu 15: Câu lệnh sau đây cho kết quả như thế nào? For i:=1 to 10 do Writeln(‘A’);
A. In dãy số từ 10 đến 1 ra màn hình B. In dãy số từ 1 đến 10 ra màn hình
C. In 20 ký tự A ra màn hình D. In 10 ký tự A ra màn hình
Câu 16: Cú pháp câu lệnh lặp với số lần biết trước:
A. For ... to... do
B. For <biến đếm>:=<giá trị cuối> to <giá trị đầu> do <câu lệnh>;
C. For ... do
D. For <biến đếm>:=<giá trị đầu > to <giá trị cuối > do <câu lệnh>;
Câu 17: Chọn phát biểu đúng:
A. Lặp vô hạn lần có thể xảy ra ở câu lệnh lặp với số lần biết trước
B. Lặp vô hạn lần là lặp 1000 lần
C. Lặp vô hạn lần có thể xảy ra ở câu lệnh điều kiện
D. Lặp vô hạn lần có thể xảy ra ở câu lệnh lặp với số lần chưa biết trước
Câu 18: Chọn câu lệnh đúng:
A. x:=1; while x<10 do x:=x+5;
B. x =1; while x> 10 do x:=x+5;
C. x:=1; while x:= 10 do x:=x+5;
D. x:=10; while x< 10 do x=x+5;
Câu 19: 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 20: Trong các câu lệnh Pascal sau, câu nào được viết đúng:
A. for i:=1 to 10 do B. for i:=1 to 10 do;
C. for i=1 to 10 do D. for i:1 to 10 do
Câu 21: Để thoát khỏi chương trình Pascal ta dùng tổ hợp phím:
A. Ctrl + X B. Ctrl+ F9 C. Alt + F9 D. Alt +X.
Câu 22. Trong các hoạt động dưới đây, đâu là hoạt động lặp với số lần chưa biết trước:
A. Mỗi buổi học đúng 5 tiết.
B. Mỗi ngày ăn cơm 3 buổi.
C. Mỗi ngày phải học bài cho đến khi thuộc.
D. Rằm tháng Giêng là Tết Nguyên tiêu.
Câu 23: Nhặt thóc ra khỏi gạo đến khi trong gạo không còn thóc là :
A. Lặp 10 lần B. Lặp vô số lần
C. Lặp với số lần chưa biết trước D. Lặp với số lần biết trước
Câu 24: Các câu lệnh sau, câu lệnh nào hợp lệ ?
A. For i:=1 to 10 do; write (‘a’)
B. For i:=1 to 10 do write (‘a’);
C. var x:real; begin for x:=1 to 10 do write (‘a’); end.
D. For i=1 to 10 do write (‘a’);
Câu 25: Cho câu lệnh sau: S:=S+1/i ; Cho biết kiểu dữ liệu cần khai báo cho biến S là:
A.integer B. byte C. longint D. real
Câu 26: Cho biết cú pháp khai báo biến mảng
A. <tên mảng>:array [<chỉ số đầu> …. <chỉ số cuối>] of <kiểu dữ liệu>;
B. <tên mảng>:array [<chỉ số đầu> .. <chỉ số cuối>] for <kiểu dữ liệu>;
C. <tên mảng>:array [<chỉ số đầu>.. <chỉ số cuối>] of <kiểu dữ liệu>;
D. <tên mảng>:array [<chỉ số đầu> ... <chỉ số cuối>] of <kiểu dữ liệu>;
Câu 27: Giả sử biến Chiều cao gồm 20 phần tử, cách khai báo nào dưới đây là đúng
A. Var Chieucao: array[1..20] of real;
B. Var Chieucao: array[1..20] of integer;
C. Var Chieucao: array[1..20] of string;
D. Var Chieucao: array[1…20] of char;
Câu 28: Giả sử biến mảng A có 5 phần tử và giá trị của các phần tử lần lượt là 1, 4, 7, 2, 6. Khi thực hiện câu lệnh sau: tb:= 0; For i:= 1 to 5 do tb := tb + A[i]; Giá trị của biến tb là bao nhiêu?
A.18 B. 22 C. 21 D. 20
Câu 29: Khai báo biến kiểu mảng nào sau đây là hợp lệ:
A. Var a,b: array[1 .. n] of real;
B. Var a,b: array[1 : n] of Integer;
C. Var a,b: array[1 .. 100] of Integer ;
D. Var a,b: array[1 … 100] of real;
Câu 30: Tính giá trị cuối cùng của b, biết rằng: a:= 3; b:= 5;
while a<0 do b:= a + b; a:=a+1;
A. b= 8 B. b=3 C. b= 5 D. b= 0
Câu 1: Câu lệnh lặp nào bên dưới có dạng đúng?
A. For i= 1 to 10 do writeln(‘A’);
B. For i:=1.5 to 10.5 do writeln(‘A’);
C. For i:= 1 to 10 do writeln(‘A’);
D. For i:=100 to 1 do writeln(‘A’);
E. x:=10; While x=10 do x=x+5;
F. x:=10; While x=10 to x:=x+5;
G. x:=10 While x=10 do x:=x+5;
H. x:=10; While x=10 do x:=x+5;
Câu 14 (2,0 điểm): Trong các câu lệnh lặp trong Pascal sau đây đúng hay sai. Vì
sao?
a. While i<5 do i=i+1;
b. While 3=3 do i:=i+1;
c. While x<3 do x:=x+1;
d. For i:=2.5 to 10 do x:=x+1;
Cho biết giá trị của biến S và n sau khi thực hiện đoạn chương trình trên
cho đoạn lệnh, hãy thực hiện các lệnh trong đoạn chương trình và cho biết sau khi thực hiện giá trị biến s,i bằng bao nhiều có bap nhiều vòng lặp trong câu lệnh s:=0;
for i:=1 to 10 do s:=s+1;
Em hãy xác định các câu lệnh sau đây đúng hay sai? Nếu sai hãy giải thích tại sao?
a) For i:=150 to 1 do writeln(‘A’);
b) For i:=1.5 to 30.5 do writeln(‘B’);
c) S:=0;n:=0; While S<=20 do begin n:=n+1;S:=S+n; end
d) Var X: array[10..1] of integer;
e) Var X: array[1,5...20,5] of integer;
f) Var X: array[1..30] of integer;
a: Sai bởi chỉ số đầu lớn hơn chỉ số cuối
b: Sai vì chỉ số đầu, chỉ số cuối là số thực
c: Sai vì chỗ end thiếu chấm phẩy
d: Sai vì chỉ số đầu lớn hơn chỉ số cuối
e: Sai vì chỉ số đầu và chỉ số cuối là số thực
d: Đúng
Các câu lệnh sau trong Pascal sau có hợp lệ không? Nếu không hãy sửa lại cho hợp lệ?
a) For i:= 50 to 10 do writeln(‘A’);
b) For i:= 1.5 to 5.5 do Writeln(‘A’);
c) X:= 3; while X:=3 do X= X + 1;
d) X:= 5; while X =5 do; X:= X + 2;
a: Không hợp lệ
Sửa lại: for i:=50 downto 10 do writeln('A');
b: Không hợp lệ
Sửa lại: for i:=1 to 5 do writeln('A');
c: Không hợp lệ
x:=3;
while x<=3 do
x:=x+1;
d: Không hợp lệ
Sửa lại: x:=5;
while x<=5 do
x:=x+2;
I. PHẦN LÍ THUYẾT
câu 1:cho đoạn chương trình sau:
S:=0;
For i:= 1 to 6 do S:=S+i;
Tính giá trị của S?
II. PHẦN BÀI TẬP:
câu 1: Viết chương trình tính tích của 10 số tự nhiên đầu tiên.
Câu 2: Hãy phát biểu sự khác biệt giữa câu lệnh lặp với số lần lặp cho trước và câu lệnh lặp với số
lần lặp chưa biết trước.
Câu 3: Hãy tìm hiểu đoạn chương trình Pascal sau đây 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:=1; n:=0;
While S <=10 do
Begin
n:=n+1;
S:=S+n;
End;
A. 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. Trong Pascal, câu lệnh nào sau đây là đúng?
A. S:=1; B. i:=0; S:=1;
While S<10 do write(S); while s<10 do S:=S+i; i:=i+1;
C. n:=2; while n<5 do write(‘A’); D. Cả A và B.
Câu 5. Khi thực hiện đoạn chương trình sau: n:=1; T:=50;
While n < 20 do begin n:= n+5; T:=T- n end;
Hãy cho biết giá trị của biến T bằng bao nhiêu?
A. 14 B. 15 C. 16 D. 17
Câu 6. Khai báo biến mảng: A : array[1..7] of real;. Sử dụng câu lệnh For i:= 1 to 5 do readln(A[i]); để gán giá trị cho các phần tử trong biến A từ bàn phím, ta sẽ nhập được bao nhiêu giá trị?
A. 4 B. 5 C. 6 D. 7
Câu 7. Trong câu lệnh khai báo biến mảng, phát biểu nào sau đây đúng:
A. Chỉ số đầu và chỉ số cuối là 2 số nguyên. B. Chỉ số đầu chỉ số cuối.
C. Kiểu dữ liệu có thể là integer hoặc real. D. Cả ba ý trên.
Câu 8. Giả sử biến mảng A có 5 phần tử và giá trị của các phần tử lần lượt là 1, 4, 7, 2, 6. Khi thực hiện câu lệnh sau: tb:= 0; For i:= 1 to 5 do tb := tb + A[i]; Giá trị của biến tb là bao nhiêu?
A. 20 B. 18 C. 21 D. 22
Câu 1: B
Câu 2: A
Câu 3: C
Câu 4: B
Câu 5: D
Câu 6: B
Câu 7: A
Câu 8: C