Câu 1: Cho biết S=?, i=?, sau khi thực hiện các lệnh sau:
a/ B1: S0; i←1;
B2: Nếu S>10 thì chuyển B4
B3: S←S*i; i←i+ 2, quay lại B2
B4: Thông báo S và kết thúc thuật toá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;
Phần I: Phần trắc nghiệm
Câu 1: Cho đoạn lệnh: S:= 0; For i:=1 to 10 do S:=S+1; kết quả S sau khi thực hiện là bao nhiêu?
A. 10 B. 55 C. 1 D. 50
Câu 2: Khi kết thúc câu lệnh For i:= 1 to 10 do <câu lệnh>; giá trị của biến i nhận được là bao nhiêu?
A. 1 B. 10 C. 11 D. Tất cả đều sai.
Câu 3: Cho đoạn lệnh x:= -5; While (abs(x) >= 5) do x:= x+1; lệnh x:= x+1 được lặp lại bao nhiêu lần?
A. Lặp vô hạn B. 5 lần C. 1 lần. D. Chưa biết
Câu 4: Lệnh lặp nào sau đây là đúng cú pháp:
A. For i:=1 two 10 do S:=S+i; B. For i:=1 to 10 do S=S+i;
C. For i=1 to 10 do S:=S+i; D. For i:=1 downto -10 do S:=S+i;
Câu 5: Điền vào dấu (…): Mảng một chiều là một dãy (… )các phần tử có cùng kiểu
A. Thông tin B. hữu hạn C. Kiểu D. Giá trị
Câu 6: Cấu trúc lặp thường có mấy dạng?
A. 3 B. 4 C. 2 D. 1
Câu 7: Để tính tổng S=1+22+32+…+n2 em sẽ sử dụng lệnh lặp nào là hợp lí nhất?
A. While – do B. For – do C. If – Then D. Cả A và B.
Câu 8: Khai báo sau đây thì mảng có tối đa bao nhiêu phần tử? Var a:array [1..10] of byte;
A. 8 B. 9 C. 11 D. 10
Câu 9: Để lưu trữ dãy số nguyên A1, A2, …, A50 thì khai báo nào sau đây là đúng và tốn ít bộ nhớ?
A. Var A:=array[1..50] of real; B. Var A:array[1..50] of word;
C. Var A:array[1..50] of Integer; D. Var A:array[1..50] of Real;
Câu 10: Khi chạy chương trình :
Var A:array[1..10] of integer;
i, S : integer;
Begin A[1]:= 3; A[2]:= -1; A[3]:= -4;
S:= 0;
For i:=1 to 3 do If A[i] < 0 then S:=S+A[i];
Write(S);
End.
Kết quả in ra giá trị của S là:
A. 2 B. 3 C. 4 D. -5
Câu 11: Hãy cho biết kết quả đưa ra màn hình của chương trình sau:
Var x, i: byte;
BEGIN X:=0; i:=0; While i<17 do begin i:=i+2; x:= x+i; end; writeln(‘x= ’, x); END.
A. x= 72 B. x= 90 C. x= 91 D. 56
Câu 12: Cho khai báo Var A: array[1..10] of integer; Để đưa giá trị phần tử thứ 3 của mảng ra màn hình thực hiện câu lệnh nào?
A.Read(A<3>); B. Write(‘A[3]’); C. Writeln(A[3]); D. Readln(A[3]);
Câu 13: Các khai báo sau, khai báo nào là đúng?
A. Var A:array[1....n] of byte; B. Var A = array[1..10] of real;
C. Var A:array[10. .-10] of boolean; D. Var A : array[‘a’..’z’] of real;
Câu 14: Cho khai báo Var S:Array[1..5] of word; S có thể lưu trữ dãy số nào sau đây.
A. 300 3 5 4 5 B. 1 3 6 C. Cả A và B D. 1 5 3 2 4 3
Câu 15: Cho khai báo sau: Var A, B : array[1..20] of integer; Giả sử giá trị A[i] và B[i] (i nhận giá trị từ 1 đến 20) đã được xác định. Xét đoạn chương trình:
d:=0; for i:=1 to 20 do If A[i] = B[i] then d:=d+1; writeln(d);
Đoạn chương trình trên thực hiện công việc gì?
A. Đếm số phần tử của A khác các phần tử của B B. Đếm số phần tử khác nhau của A và B
C. Đếm số cặp phần tử tương ứng khác nhau của A và B D. Đếm số cặp phần tử tương ứng bằng nhau của A và B
Câu 16: Cho khai báo a : array[1..16] of integer ;
Câu lệnh nào dưới đây sẽ in ra tất cả các phần tử của mảng trên?
A. for k := 1 to 16 do write(a[k]); B. for k := 16 downto 0 do write(a[k]);
for k:= 0 to 15 do write(a[k]); D. for k := 16 down to 0 write(a[k]);
Câu 17: Var a : array[0..50] of real ;
k := 0 ; for i := 1 to 50 do if a[i] < a[k] then k := i ;
Đoạn chương trình trên thực hiện công việc gì dưới đây ?
A.Tìm phần tử nhỏ nhất trong mảng; B. Tìm phần tử lớn nhất trong mảng;
C.Tìm chỉ số của phần tử lớn nhất trong mảng; D. Tìm chỉ số của phần tử nhỏ nhất trong mảng;
Câu 18: Var a : array[1..10] of integer ;
Phương án nào dưới đây chỉ phần tử thứ 10 của mảng ?
A. a[10] B. a(10) C. a(9) D. a[9]
Câu 19: Có Var A:Array[‘a’..’z’] of byte; Để tham chiếu đến phần tử thứ 4 của mảng, ta viết thế nào?
A. A<’d’> B. A(4) C. A[‘d’] D. A[4]
Câu 20: Cho dãy số gồm 4 số thực, 5 số nguyên. Em có thể khai báo một mảng một chiều gồm 20 phần tử kiểu thực để lưu trữ dãy số hay không?
A. Có B. Đáp án khác. C. Vừa có vừa không D. Không
Câu 21: S:=0; For i:=1 to N do if T[i] mod 2 <> 0 then S:=S+T[i]; Đoạn lệnh trên thực hiện công việc gì?
A. Tìm tổng giá trị các phần tử của mảng T B. Tìm tổng giá trị các số chẵn trong mảng T
C. Tìm tổng giá trị các số lẻ trong mảng T D. Cả A, B, C đều đúng.
Câu 1: A
Câu 2: B
Câu 3: C
Câu 4: A
Câu 5: B
Câu 6: C
Câu 7: D
Hãy đọc đoạn chương trình sau: s:= 0; for i:= 1 to 5 do s := s + 2; Sau khi thực hiện xong, kết quả s bằng: *
25 điểm
16
10
21
15
Phát biểu nào sau đây đúng nhất khi nói về câu lệnh lặp với số lần chưa biết trước: *
25 điểm
Kiểm tra điều kiện sau khi thực biện câu lệnh
Nếu điều kiện sai thì thực hiện câu lệnh và kết thúc
Nếu điều kiện đúng thì thực hiện câu lệnh, ngược lại ngừng vòng lặp.
Nếu điều kiện đúng thì thực hiện câu lệnh và kết thúc
Câu lệnh viết đúng cú pháp lệnh lặp với số lần chưa biết trước: *
25 điểm
While <điều kiện> do <câu lệnh>;
While <điều kiện> do; <câu lệnh>;
While <điều kiện> to < câu lệnh 1> do <câu lệnh 2>;
While <điều kiện> to <câu lệnh>;
câu lệnh lặp For i:=1 to 5 do Writeln(‘Day la lan lap thu’, i); sẽ in ra màn hình 5 dòng chữ trong đó dòng thứ 3 có nội dung là: *
25 điểm
Day la lan lap thu, i
Day la lan lap thu , 3
Day la lan lap thu i
Day la lan lap thu 3
Câu 1: A
Câu 2: B
Câu 3: C
Câu 4: B
giả sử biến mảng A=(2,1,3,2,1).Khi thực hiện câu lệnh sau:
S:=0
For i:=1 to 5 do s:s+A(i);
Hãy cho biết giá trị của S sau khi thực hiện xong đoạn lệnh, nếu nhập n = 6:
Write('Nhap n = '); Readln(n);
S:=0;
For i:= 1 To n Do S:= S + 2*i;
A. 21
B. 42
C. 6
D. 0
4. Câu hỏi bài tập:
4.1/ Tìm hiểu câu lệnh lặp dưới đây và cho biết khi kết thúc câu
lệnh giá trị của biến S và biến n bằng bao nhiêu?
S:=0; n:=0;
While S<=10 do
Begin
n:=n+1;
S:=S+n;
End;
Trả lời:
Giá trị của biến S sau khi thực hiện
=...............
Giá trị của biến n sau khi thực hiện
=...............
4.2/ Gạch dưới chỗ sai của các câu lệnh sau và viết lại câu lệnh đúng:
a) While X:= 10 do X:= X+1;→............................................................
b) While X > 5 for X:= X-1→ .............................................................
c) While X< 10 do X = 5 ;→.................................................................
d) While X <> 0 ; do X:=X-1;→...........................................................
Sửa lại chương trình
Var a : integer;
Begin
a:=5;
While a<6 do begin
writeln(‘A’);
a := a + 1 ;
end;
end.
5. Bài tập thực hành:
Bài 1: Viết chương trình : “BAI8B1” tính tổng của các số tự nhiên liên
tiếp cho đến khi tổng lớn hơn 1000 thì dừng. Cho biết tổng tìm được và
con số cuối cùng được cộng vào:
Hướng dẫn Chương trình
1. Khai báo tên chương trình
2. Khai báo thư viện
3. Khai báo biến: S,n : số nguyên
4. Bắt đầu chương trình
5. Xóa màn hình
6. Gán S 0;n 1;
7. Trong khi S<=1000 thực hiện:
bắt đầu
SS+n
n n+ 1
kết thúc
8. In ra tổng S
9. In ra số n cuối cùng được cộng
10. Tạm dừng chương trình
11. Kết thúc chương trình
1....................................................................
2....................................................................
3....................................................................
4....................................................................
5....................................................................
6....................................................................
7....................................................................
......................................................................
......................................................................
......................................................................
......................................................................
8....................................................................
9....................................................................
10..................................................................
11..................................................................
Câu 2: Đoạn chương trình
i:=0;
S:=0;
While S<5 do
Begin
i:=i+1;
S=S+i;
End;
Cho biết với đoạn lệnh trên chương trình thực hiện bao nhiêu vòng lặp và ý nghĩa câu lệnh lặp bằng cách điền vào chỗ trống bên dưới:
mọi người giúp mình với mình đag cần gấp
Chương trình thực hiện 3 vòng lặp
Cho đoạn lệnh sau, hãy cho biết khi thực hiện, máy tính sẽ thực hiện bao nhiêu vòng lặp, hãy lập bảng giá trị của các biến i, T trong từng vòng lặp theo mẫu sau:
Ví dụ 1: i:=0; T:=10 while T>=0 do begin i:= i+3; T:=T-i; end;
Ví dụ 2: S:=0; i:=1; while i<=6 do begin S:=S+i; i:=i+2; end;
Ví dụ 3: s:=0; for i:=1 to 10 do s:=s+i;
Ví dụ 4: i:=0; T:=30; While T>=0 do begin i:=i+2; T:=T-i; end;
ví dụ 5: i:=0; T:=1 while T<=25 do begin i:=i+1; T:=T+i; end;
Trả lời nhanh nhất có thể giúp mình ạ!!!!!!
1: i=9; t=-8
2: i=7; s=16
3: i=10; s=55
4: T=-12; i=12
5: i=7; T=28
Câu 43: Cho biết khi thực hiện đoạn lệnh sau kết quả s bằng bao nhiêu với n=4 trong các phương án cho dưới đây?
Var n, i , s:integer;
Begin
Clrscr;
Write('Nhap vao gia tri cua n :'); Readln(n);
s:=2;
For i:=1 to n do s:=s+1;
End;
a. 6.
b. 8.
c. 10.
d. 12.