Viết chương trình nhập chiều cao của hai bạn Long và Trang, in ra màn hình kết quả so sánh chiều cao của hai bạn, chẳng hạn "Bạn Long cao hơn", thì xuất ra câu lệnh “Bạn Long cao[r]
Trang 1CÂU HỎI ÔN TẬP BÀI 6,7 – TIN HỌC 8
BÀI 6 CÂU LỆNH ĐIỀU KIỆN
I Câu hỏi học sinh cần nhận biết
1 Câu lệnh điều kiện dạng đầy đủ là:
A If < Điều kiện> then < Câu lệnh 1 >; Else < 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 > Else < Câu lệnh 2 >;
2 If Then Else là:
A Vòng lặp xác định B Vòng lặp không xác định
C Câu lệnh điều kiện D Một khai báo
3 Cấu trúc rẽ nhánh có mấy loại?
II Câu hỏi học sinh cần thông hiểu
Câu 4: Chọn câu lệnh Pascal hợp lệ trong các câu sau:
A If x : = a + b then x : = x + 1; B If a > b then max = a;
C If a > b then max : = a ; else max : = b; D If 5 = 6 then x : = 100;
5 Trong Pascal, câu lệnh điều kiện nào sau đây được viết đúng?
A if a := 1 then a := a + 1; B if a > b else write(a);
C if (a mod 2) = 0 then write('So khong hop le'); D if x = y; then writeln(y);
Câu 6: Chọn kết quả nào đúng nhất khi cho chương trình dưới đây?
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 2 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 2 biến a, b cho nhau
“ Chương trình”
Program vd;
Var a, b,: real; x,: integer ; Begin
Writeln(‘nhập vào số thứ nhất, thứ hai tùy ý’);
readln(a, b);
If a>b then x:=a else x:=b;
Write(x);
End.
Trang 2Bài 7: Em hãy nêu một vài ví dụ về các hoạt động (khoảng 4-5 HĐ) hàng ngày phụ vào điều kiện.
VD mẫu (gợi ý trả lời):
Nếu sáng thứ hai không mưa thì lớp em sẽ sinh hoạt dưới cờ.
Điều kiện: sáng thứ hai không mưa
Hoạt động: lớp em sẽ sinh hoạt dưới cờ
-> Hoạt động phụ thuộc vào điều kiện là hoạt động đó diễn ra với điều kiện quan hệ nếu…thì.
Bài 8: Mỗi điều kiện hoặc biểu thức cho kết quả đúng hay sai? a) 123 là số chia hết cho 3
b) Nếu ba cạnh a,b và c của một tam giác thỏa mãn c2 > a2 + b2 thì tam giác đó có một góc vuông
c) 152 > 200
Bài 9: Các câu lệnh Pascal sau đây được viết đúng hay sai và chỉ ra điểm sai? a) if x:=7 then a:=b;
b) if x > 5; then a:=b;
c) if x > 5 then; a:=b;
d) if x > 5 then a:=b; m:=n;
e) if x > 5 then a:=b; else m:=n;
f) if n > 0 then begin a:=0; m:=-1 end else c:=a;
Trang 3
III Câu hỏi học sinh vận dụng
Nhắc lại lý thuyết, khi điều kiện xảy ra nó có 2 trường hợp trả lời
TH1 dạng thiếu: IF <điều kiện xảy ra> then <câu lệnh>;
TH2 dạng đủ: IF <điều kiện xảy ra> then <câu lệnh 1> else <câu lệnh 2>;
* Vận dụng mức trung bình
10 Để tìm giá trị lớn nhất của 2 số a, b thì ta viết:
A Max:=a; If b>Max then Max:=b; B If (a>b) then Max:=a; If (b>a) then Max:=b;
C Max:=b; If a>Max then Max:=a; D Cả 3 câu đều đúng
11 IF a>8 THEN b:=3 ELSE b:=5;
Khi a nhận giá trị là 0 thì b nhận giá trị nào?
Gợi ý: câu hỏi nói là khi a>8 thì cho ra kết quả, ngược lại thì không
* Vận dụng mức cao
12 Em hãy mô tả các điều kiện sau trong ngôn ngữ pascal
Gợi ý: Câu a (sử dụng phép chia mod, chia hết = 0, không chia hết = 1), Câu b các phép nối câu and, or
a) N là số nguyên chia hết cho 3, hoặc không chia hết cho 4
b) Số a < 10 và tổng của số b và c bằng 10, hoặc số a >= 10 và tổng hai số b và c bằng 20
13 Cho X=5 và Y=2 Z 1, Z 2 thuộc kiểu dữ liệu gì?
a) Z 1 = X div Y
b) Z 2 = X mod Y
14 Ta có 2 lệnh sau: x:= 8; if x>5 then x := x +1; Giá trị của x là bao nhiêu?
Gợi ý: Kiểm tra điều kiện If đúng không, nếu đúng thì công thức X:=X+1 mới thực hiện
Bài 15: Với mỗi câu lệnh sau đây giá trị của biến X là bao nhiêu, nếu trước đó giá trị của X bằng 5?
a) if (45 mod 3) = 0 then X:= X+1;
b) if X > 10 then X:= X+1;
Trang 4
Bài 16: Giả sử cần viết chương trình nhập một số tự nhiên vào máy tính và in ra màn hình kết quả
số đã nhập chẵn hay lẻ, chẳng hạn “5 là số lẻ”, “8 là số chẵn” Hãy mô tả các bước của thuật toán
để giải quyết bài toán trên và dựa vào chương trình Pascal để thực hiện thuật toán đó.
- Chương trình Pascal:
- Kết quả:
Trả lời: Thuật toán chương trình:
Bài 17: Cho chương trình nhập hai số nguyên a, b khác nhau từ bàn phím và in ra hai số đó ra màn hinh theo thứ tự không giảm, hãy thực hiện yêu cầu:
- Cho chương trình:
- Ví dụ mô phỏng kết quả:
Trang 5- Viết thuật toán dựa vào chương trình trên
- Ý nghĩa câu lệnh trong chương trình
Bài 18 Viết chương trình nhập chiều cao của hai bạn Long và Trang, in ra màn hình kết quả so sánh chiều cao của hai bạn, chẳng hạn "Bạn Long cao hơn", thì xuất ra câu lệnh “Bạn Long cao hơn”, ngược lại thì “Bạn Trang cao hơn” a Gõ chương trình.
b Chạy chương trình với các bộ dữ liệu (1.5, 1.6); (1.6, 1.5) và (1.6 , 1.6) xem kết quả như thế nào? Nhập vào (1.5, 1.6): ………
Nhập vào (1.6, 1.5): ………
Nhập vào (1.6, 1.6):………
Trang 6
Bài 19: Dưới đây là chương trình nhập ba số dương a, b và c từ bàn phím Kiểm tra và in ra màn hình kết quả kiểm tra ba số đó có thể là độ dài các cạnh của một tam giác hay không?
- Chương trình và ý nghĩa từng câu lệnh
- Nếu nhập input 1 lần lượt 1, 2, 3 và input 2 lần lượt là 3, 4, 5 thì kết quả đúng hay sai?
Nếu đúng các em hãy cho biết điều kiện để trở thành 3 cạnh của một tam giác
Câu 20 Viết chương trình nhập vào 3 số nguyên a, b, c bất kì từ bàn phím Tìm giá trị lớn nhất trong 3 số vừa nhập Gợi ý: Giả sử ta có 3 số 3, 5, 7 nhìn vào ta thấy số 7 là số lớn nhất, nhưng để tìm số 7 thông thường ta dùng phép so sánh So sánh từng cặp hoặc nhiều số một lần
Trang 7
BÀI 7 CÂU LỆNH LẶP
Nhắc lại một số lý thuyết:
Cú pháp: for < biến đếm > : = < giá trị đầu > to < giá trị cuối > do < câu lệnh >;
Câu lệnh lặp thực hiện nhiều lần, mỗi lần là một vòng lặp, số vòng lặp = (giá trị cuối – giá trị đầu) + 1
I Câu hỏi học sinh cần nhận biết
Bài 21: Cho 4-5 ví dụ về hoạt động được thực hiện lặp lại trong cuộc sống hàng ngày.
Gợi ý: Tức là mỗi ngày các em làm việc nào đó từ 2 lần trở lên, hoặc hôm sau vẫn thực hiện lại công việc đó Thì gọi là lặp đi lặp lại
VD: Hàng ngày em đi học từ thứ 2 đến 7
Câu 22: 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
23 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 >;
II Câu hỏi học sinh cần thông hiểu
24 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
25 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
26 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
27 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
Trang 828 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ự
29 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?
C String D Tất cả các kiểu trên đều được
Câu 30: Lệnh lặp For, mỗi lần lặp giá trị của biến đếm thay đổi như thế nào?
Câu 31: Câu lệnh pascal nào sau đây là hợp lệ?
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’);
32 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;
Bài 33: Chương trình Pascal sau đây thực hiện hoạt động nào?
Var i: integer;
begin
for i:=1 to 1000 do;
end.
Gợi ý: Xem lại cấu trúc vòng lặp
34 Trong câu lệnh lặp For i:= 1 to 15 do begin S:= S + i end; câu lệnh ghép trên thực hiện bao nhiêu lần (bao nhiêu vòng lặp)? Chọn câu trả lời đúng nhất.
a) Không lần nào b) 1 lần c) 15 lần d) 16 lần
35 Dưới đây là một đoạn chương trình pascal:
For i:= 0 to 20 do Begin
S:= S + i;
End;
Sau khi thực hiện đoạn chương trình trên giá trị của i là:
III Câu hỏi học sinh vận dụng
* Vận dụng ở mức trung bình
36 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
Trang 937 Sau khi thực hiện đoạn chương trình sau: S:=0; For i:=1 to 15 do S:=S+i; Giá trị của biến S bằng bao nhiêu?
* Vận dụng mức cao
Bài 38: Hãy mô tả thuât toán để tính tổng A sau đây (n là số tự nhiên được nhập vào từ bàn phím):
39 Viết chương trình nhập vào một số nguyên N Tính và xuất ra màn hình tổng bình phương từ 1 đến N Gợi ý: Giả sử nhập N=3, tức là vòng lặp chạy từ 1 đến 3, thì tổng là 1 + 2 + 3 Vậy tổng bình phương 14
40 Viết chương trình nhập vào một số nguyên N Tính và xuất ra màn hình tổng các số lẻ từ 1 đến N Gợi ý: Giả sử nhập N=6, tức là vòng lặp chạy từ 1 đến 6 thì các số lẻ là 1, 3, 5 Vậy tổng 9 Sử dụng phép chia (mod) để lấy ra điều kiện là số lẻ
Trang 10
ĐÁP ÁN ÔN TẬP BÀI 6,7 – TIN HỌC 8
Câu 7 Một số ví dụ hoạt động phụ thuộc vào điều kiện
1- Nếu không có tiền thì không mua được xe
2- Nếu không học thì bạn sẽ bị điểm thấp
3- Nếu ăn quá nhiều thì bạn sẽ bị đau bụng
4- Nếu không cấm điện thì máy tính bàn sẽ không hoạt động 5- Nếu bị ốm thì bạn nên đi khám
Câu 8.
a) Đúng b) Sai Vì c2 = a2 + b2 thì tam giác đó mới có góc vuông c) Đúng
Câu 9.
a) Sai -> Sửa lại: if x=7 then a:=b; b) Sai -> Sửa lại: if x > 5 then a:=b;
c) Sai -> Sửa lại: if x > 5 then a:=b; d) Đúng
e) Sai -> Sửa lại: if x > 5 then a:=b else m:=n; f) Đúng
Câu 10 D Câu 11 B
Câu 12.
a) (N mod 3 = 0) or (N mod 4 = 1) b) (a<10) and (b+c=10) or (a>=10) and (b+c=20)
Câu 13.
a) Z1 thuộc kiểu số nguyên integer b) Z2 thuộc kiểu số nguyên integer
Câu 14 B
Câu 15
a) X = 6 -> Do 45 chia hết cho 3 nên điều kiện thỏa mãn và X sẽ tăng lên 1 và bằng 6
Trang 11b) X = 5 -> Do X = 5 < 10 nên điều kiện không thỏa mãn.
Câu 16 Thuật toán chương trình:
Bước 1: Nhập một số tự nhiên n và một biến d
Bước 2: Gán giá d=n mod 2
Bước 3: Nếu d=0 thì đấy là số chẵn, ngược lại thì đấy là số lẻ
Bước 4 Kết thúc thuật toán
Câu 17
- Thuật toán:
+ Bước 1: Nhập hai số a và b Nếu a=b thì đến bước 4, ngược lại đến bước 2
+ Bước 2: Nếu a > b thì đổi vị trí của a và b Ngược lại đến bước 3
+ Bước 3: In ra a và b
+ Bước 4: Kết thúc thuật toán
- Ý nghĩa câu lệnh:
+ Writeln(‘nhap a, b:’); -> Ý nghĩa: In ra dòng lệnh nhập a, b.
+ Readln(a); -> Ý nghĩa: Đọc biến a.
+ Readln(b); -> Ý nghĩa: Đọc biến b.
+ If a<b then Writeln(a,’ ‘,b) else Writeln(b,’ ‘,a); -> Ý nghĩa: Nếu a<b in ra a b Ngược lại thì in ra b a
Câu 18.
a) Viết chương trình
Program bt;
Var Long, Trang: real;
Begin
Writeln(‘nhập chiều cao của Long’); Readln(Long);
Writeln(‘nhập chiều cao của Trang’); Readln(Trang);
If Long > Trang then Writeln(‘Bạn Long cao hơn’);
If Trang > Long then Writeln(‘Bạn Trang cao hơn’);
Else Writeln(‘Hai bạn cao bằng nhau’);
Readln;
Trang 12b) Kết quả
Nhập vào (1.5, 1.6) -> Kết quả: Bạn Trang cao hơn
Nhập vào (1.6, 1.5) -> Kết quả: Bạn Long cao hơn
Nhập vào (1.6, 1.6) -> Kết quả: Hai bạn cao bằng nhau
Câu 19.
- Kết quả input 1: không phải là 3 cạnh của một tam giác
- Kết quả input 2: Là 3 cạnh của một tam giác
- Vì: để thỏa mãn điều kiện trở thành 3 cạnh của tam giác thì (a+b>c) and (b+c>a) and (c+a>b)
Câu 20.
Program bt;
Var a, b, c: integer;
Begin
Writeln(‘nhập vào số thứ nhất’); Readln(a);
Writeln(‘nhập vào số thứ hai’); Readln(b);
Writeln(‘nhập vào số thứ ba’); Readln(c);
If (a > b) and (a > c) then Writeln(‘số lớn nhất là:’,a);
If (b > a) and (b > c) then Writeln(‘số lớn nhất là:’,b);
If (c > a) and (c > b) then Writeln(‘số lớn nhất là:’,c);
Readln;
End.
Câu 21
- Hàng ngày ta đi học từ thứ 2 đến 7
- Hàng ngày ta ăn một ngày ba bữa cơm
- Hàng ngày đêm đến ta đều đi ngủ
Trang 13- Mỗi ngày em tập thể dục vào buổi sáng.
- Hàng ngày em đi học bằng xe bus
Câu 31 A Câu 32 B
Câu 33 Chương trình chạy biến i từ 1 đến 1000 rồi không làm gì cả.
Câu 37 B
Câu 38.
- Bước 1: Nhập n Gán i=1, A:=0;
- Bước 2: A=1/i(i+2)
- Bước 3: i:= i+1;
- Bước 3: Nếu i > n thì đến bước 5, ngược lại quay về bước 2
- Bước 4: In ra A
- Bước 5 kết thúc vòng lặp
Câu 39.
Program bt;
Var i, n, s: integer;
Begin
Writeln(‘nhập vào số nguyên bất ki’); Readln(n);
For i:= 1 to N do S:= S + i*i;
Writeln(‘tổng bình phương từ 1 đến ’,n,’ la ’, s);
Readln;
End.
Trang 14Câu 40.
Program bt;
Var i, n, s: integer;
Begin
Writeln(‘nhập vào số nguyên bất kì’); Readln(n); For i:= 1 to N do
If (i mod 2 = 1) then S:= S + i;
Writeln(‘tổng các số lẻ từ 1 đến ’,n,’ la ’, s);
Readln;
End.