1. Giải bài tập
Xem đoạn mã sau đây:
i:=1; tong:=0;
Khi i <= 5 thì
Bắt đầu
tong:= tong + i;
i:= i + 1;
Kết thúc;
Sau khi thực thi đoạn mã trên, giá trị của biến “tong” là bao nhiêu?
A. 1
B. 5
C. 10
D. 15
Giải thích chi tiết: Chọn D. 15
i:=1; tổng:=0;
Thực hiện vòng lặp while
i<=5 (đúng): tổng:=tổng+i=0+1=1; i:=i+1=1+1=2
i<=5 (đúng): tổng:=tổng+i=1+2=3; i:=i+1=2+1=3
i<=5 (đúng): tổng:=tổng+i=3+3=6; i:=i+1=3+1=4
i<=5 (đúng): tổng:=tổng+i=6+4=10; i:=i+1=4+1=5
i<=5 (đúng): tổng:=tổng+i=10+5=15; i:=i+1=5+1=6
i<=5 (sai): kết thúc vòng lặp
Kết quả cuối cùng là tổng=15
2. Bài tập ứng dụng liên quan.
Câu 1: Xem đoạn mã Pascal dưới đây:
tổng:= 0;
Trong khi tổng <= 10 thì
tổng:=tổng+1;
Sau khi thực hiện đoạn mã trên, giá trị của biến tổng là bao nhiêu:
A. 9 B. 10 C. 11 D. 12
Câu 2: Sau khi thực hiện đoạn mã dưới đây, giá trị của biến S là bao nhiêu:
S:= 0;
for i:= 1 to 5 do S:= S + i;
A. 10 B. 12 C. 20 D. 15
Câu 3: Xem đoạn mã sau:
i:=1; tong:=0;
Khi i <= 5 thì
Bắt đầu
tong := tong + i;
i := i + 1;
Kết thúc;
Dựa vào đoạn mã trên, hãy cho biết giá trị của biến “tong” là bao nhiêu?
A. 1 B. 5 C. 10 D. 15
Câu 4: Trong Pascal, câu lệnh nào dưới đây là đúng cú pháp?
A. for i := 10 downto 1 do writeln('A');
B. for i := 1 to 5 do writeln('A');
C. for i := 1 to 100 do writeln('A');
D. for i := 1 to 10 do writeln('A');
Câu 5: Trong câu lệnh lặp for n := 1 to 10 do begin ... end;
Số lần thực hiện khối lệnh là bao nhiêu?
A. 10 lần; B. 5 lần; C. Không lần nào; D. 1 lần.
Câu 6: Khi phân tích cấu trúc câu lệnh lặp, phát biểu nào sau đây là chính xác?
A. For, to, do là các từ khóa; biến đếm cần phải là kiểu số nguyên hoặc số thực.
B. Các giá trị đầu và cuối phải là số nguyên hoặc số thực.
C. Câu lệnh lặp thực hiện nhiều lần, mỗi lần là một vòng. Số lần lặp là xác định trước và bằng giá trị cuối trừ giá trị đầu cộng một.
D. Tất cả ba điểm trên đều đúng.
Câu 7: Khai báo mảng A: array[1..7] of real;. Sử dụng câu lệnh
For i:= 1 to 5 do readln(A[i]); để nhập giá trị cho các phần tử trong mảng 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 8: Trong khai báo mảng, phát biểu nào sau đây là chính xác:
A. Chỉ số bắt đầu và chỉ số kết thúc đều là số nguyên;
B. Chỉ số bắt đầu phải nhỏ hơn chỉ số kết thúc;
C. Kiểu dữ liệu có thể là số nguyên hoặc số thực;
D. Tất cả ba ý đều đúng;
Câu 9: Giả sử mảng A có 5 phần tử với các giá trị 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ị cuối cùng của biến tb là bao nhiêu?
A. 20; B. 18; C. 21; D. 22;
Câu 10: Câu lệnh lặp nào dưới đây là chính xác?
A. For
B. For
C. For
D. For
Câu 11: Số vòng lặp của lệnh while..do là:
A. Xác định trước số lần lặp
B. Không xác định trước số lần lặp
C. Không thực hiện vòng lặp nào
D. Vòng lặp vô hạn
Câu 12: Câu lệnh lặp while…do có cú pháp đúng là:
A. While <điều kiện> do <câu lệnh>; B. While <điều kiện> <câu lệnh> do;
C. While <câu lệnh> do <điều kiện>; D. While <điều kiện>, do <câu lệnh>;
Câu 13: Xét S và i là các biến nguyên. Khi thực thi đoạn chương trình sau:
s := 0; lặp từ i := 1 đến 5 thực hiện s := s + i;
writeln(s);
Kết quả hiển thị giá trị của s là:
A. 11 B. 55 C. 15 D. 105
Câu 14: Chương trình Pascal dưới đây sẽ hiển thị kết quả gì?
Khai báo i kiểu integer;
Bắt đầu
Lặp từ i := 1 đến 10, thực hiện writeln('Đây là lần lặp thứ', i);
Đọc dữ liệu;
Kết thúc.
A. 1 câu “Đây là lần lặp thứ i”
B. 1 câu “Đây là lần lặp thứ’, i”
C. 10 câu “Đây là lần lặp thứ’, i”
D. 10 câu 'Đây là lần lặp thứ i' theo thứ tự từ i = 1 đến 10
Câu 15: Xét S và i là các biến nguyên. Khi thực hiện đoạn chương trình sau:
S := 0; i := 1;
while i < 5 do bắt đầu S := S + i; i := i + 1; kết thúc;
Giá trị cuối cùng của S là:
A. 16 B. 9 C. 6 D. 0
Câu 16: Sau khi thực thi đoạn chương trình sau:
S := 0;
Lặp từ i := 1 đến 5, thực hiện S := S + i;
Giá trị cuối cùng của biến S là bao nhiêu?
A. 20 B. 15 C. 10 D. 0
Câu 17: Cấu trúc cơ bản của một chương trình Pascal là gì?
A. Bắt đầu -> Chương trình -> Kết thúc C. Kết thúc -> Chương trình -> Bắt đầu
B. Chương trình -> Kết thúc -> Bắt đầu D. Chương trình -> bắt đầu -> Kết thúc
Câu 18: Xét S và i là các biến nguyên. Khi thực hiện đoạn chương trình dưới đây:
S := 1;
Lặp từ i := 1 đến 5, thực hiện S := S * i
Writeln(S);
Kết quả hiển thị trên màn hình là:
A. S = 72 B. S = 101
C. S = 55 D. S = 120
Câu 19: Trong lệnh lặp For...do của Pascal, biến đếm thay đổi như thế nào ở mỗi vòng lặp?
A. +1 B. +1 hoặc -1 C. Một giá trị tùy ý D. Một giá trị khác 0
Câu 5: Để thực hiện phép chia lấy phần nguyên, ta sử dụng toán tử nào?
A. Div B. : C. Mod D. /
Câu 20: Máy tính có thể hiểu và thực hiện lệnh trực tiếp bằng ngôn ngữ nào?
A. Ngôn ngữ máy B. Ngôn ngữ Tiếng Việt
C. Ngôn ngữ Tiếng Anh D. Ngôn ngữ Pascal
Câu 21: Để khai báo biến X là một số thực, cú pháp khai báo đúng là gì?
A. Var X: integer; B. Var X: Real.
C. Var X: Real; D. Var X:
Câu 22: Cấu trúc cơ bản của một chương trình Pascal bao gồm những phần nào?
A. Phần tiêu đề, phần khai báo, phần thực thi
B. Phần khai báo, phần thực thi, phần kết thúc
C. Phần đầu, phần thực thi, phần kết thúc
D. Phần thực thi, phần kết thúc
Câu 23: Theo em, viết chương trình có nghĩa là gì?
A. Viết ra các lệnh mà em đã học
B. Tạo một đoạn văn bản được tổ chức theo chương trình
C. Chuyển một thuật toán cho máy tính thực thi
D. Xây dựng các lệnh để điều khiển robot
Câu 24: Sau khi thực thi đoạn chương trình sau:
S := 10;
Lặp từ i := 1 đến 4, thực hiện S := S + i;
Biến S có giá trị là bao nhiêu?
A. 20 B. 14 C. 10 D. 0
Câu 25: Xác định giá trị của S khi thực hiện đoạn chương trình sau: S := 0; Lặp từ i := 1 đến 5, thực hiện S := S + i;
A. b = 0 B. b = 1 C. b = 10 D. b = 15
Câu 26: Xác định giá trị của biến b trong đoạn chương trình sau:
a := 10; b := 5; Trong khi a > 0 thì begin b := b + a; a := a - 1; end;
A. b = 5 B. b = 10 C. b = 15 D. b = 20
Câu 27: Đoạn mã sau thực hiện bao nhiêu vòng lặp? Vui lòng lập bảng giá trị của các biến i, T trong từng vòng lặp theo mẫu:
Ví dụ 1: i := 0; T := 10; Trong khi T >= 0 thì thực hiện begin i := i + 3; T := T - i; end;
Ví dụ 2: S := 0; i := 1; Trong khi i <= 6 thì thực hiện begin S := S + i; i := i + 2; end;
Ví dụ 3: s := 0; lặp từ i := 1 đến 10 thực hiện s := s + i;
Ví dụ 4: i := 0; T := 30; Trong khi T >= 0 thì thực hiện begin i := i + 2; T := T - i; end;
Ví dụ 5: i := 0; T := 1; Trong khi T <= 25 thì thực hiện begin i := i + 1; T := T + i; end;
Kết quả:
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 28: Xác định xem các câu lệnh dưới đây là đúng hay sai. Nếu sai, hãy giải thích lý do.
a) Lặp từ i := 150 đến 1 và in 'A';
b) Lặp từ i := 1.5 đến 30.5 và in 'B';
c) S := 0; n := 0; Trong khi S <= 20 thì thực hiện begin n := n + 1; S := S + n; end
d) Khai báo X: mảng từ 10 đến 1 của kiểu integer;
e) Khai báo X: mảng với các chỉ số 1, 5...20, 5 của kiểu integer;
f) Khai báo X: mảng từ 1 đến 30 của kiểu integer;
Đáp án:
a: Sai vì chỉ số bắt đầu lớn hơn chỉ số kết thúc
b: Sai vì chỉ số đầu và chỉ số cuối không phải là số nguyên
c: Sai vì chỗ kết thúc thiếu dấ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 đều là số thực
d: Đúng
Bài viết này của Mytour cung cấp hướng dẫn giải đề và các bài tập liên quan để các bạn có thể luyện tập. Hy vọng rằng thông tin trong bài viết sẽ hữu ích và giúp các bạn củng cố kiến thức cũng như áp dụng hiệu quả vào bài tập thực hành. Xin chân thành cảm ơn!