TỔ TOÁN-TIN MÔN: TIN HỌC 8
I. TRẮC NGHIỆM
Câu 1: Lệnh lặp nào sau đây là đúng?
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ị đầu>to<giá trị cuối>do<câu lệnh>;
c) For <biến đếm>:= <giá trị cuối>to<giá trị đầu>do<câu lệnh>;
d) For <biến đếm>: <giá trị đầu>to<câu lệnh> do <giá trị cuối>;
Câu 2: Câu lệnh pascal nào sau đây là hợp lệ?
a) For i:=10 to 1 do write(‘A’); c) For i:=1.5 to 10 do write(‘A’);
b) For i= 1 to 10 do write(‘A’); d) For i:= 1 to 10 do write(‘A’);
Câu 3: Vòng lặp while ..do là vòng lặp:
a) Biết trước số lần lặp c) Chưa biết trước số lần lặp
b) Biết trước số lần <=100 d) Biết trước số lần là >=100
Câu 4: Câu lệnh lặp while…do có dạng đúng là:
a) While <đk> do; <câu lệnh>; c) While <đk> <câu lệnh> do;
b) While <câu lệnh> do <đk>; d) While <đk>do <câu lệnh>;
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;
Kết quả cuối cùng của s là : a) 11 b) 55 c) 101 d) 15
Câu 6: Trong đọan chương trình pascal sau đây x có giá trị là mấy
Begin x:= 3 ; If (45 mod 3) =0 then x:= x +2;
If x > 10 then x := x +10 ; End.
a) 3 b) 5 c) 15 d) 10
Câu 7: Trong chương trình pascal sau đây:
var a, b :integer;
s,cv :real ;
begin a:= 10; b:= 5; s:= a*b ; cv:= (a +b ) * 2 ; end.
Biến s và cv có giá trị là mấy:
a) s = 10 ; cv = 5 ; c) s= 30 ; cv = 50 ;
b) s = 50 ; cv = 40 ; d) s = 50 ; cv = 30 ;
Câu 8: 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à? a) 4 b) 6 c) 8 d) 10
Câu 9: Để 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 + 1/i
|
d) for i:=1 to n do
if ( i mod 2)=0 then S:=S + i;
|
Câu 10: Để tính tổng S=1/2+1/4 + 1/6 + … +1/ n; em chọn đoạn
|
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 – 1/i
|
d) for i:=1 to n do
if ( i mod 2)=0 then S:=S + i
|
Câu 11: Để đếm các số lẻ <= 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;
|
Câu 12: 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;
|
a) s:=5; i:=1;
While i<=s do i:=i + 1;
|
b) s:=5; i:=1;
While i> s do i:=i + 1;
|
d) s:=0; i:=0;
While i<=s do S:=S + i;
|
Câu 13: Chọn khai báo hơp lệ
|
a) Var a: array[1..n] of real;
|
c) Var a: array[1:n] of real;
|
b) Var a: array[1..100] of real;
|
d) Var a: array[1…n] of real;
|
Câu 14: Chọn khai báo hơp lệ
|
a) Const n=5;
Var a,b: array[1..n] of real;
|
c) Var n: real;
Var a,b: array[1:n] of real;
|
b) Var a,b: array[100..1] of real;
|
d) Var a:array[1.5.10] of real;
|
Câu 15: Thực hiện đoạn lệnh:
a[1]:=2; a[2]:=3; t:=a[1]+a[2]+1;
Giá trị của t là: a) t=1 b) t=3 c) t=2 d) t=6
II. TỰ LUẬN
1) Nhập số tự nhiên n từ bàn phím, in ra các số chẵn từ 1 đến n và tổng của chúng?
2) Nhập số tự nhiên n từ bàn phím, in ra các số chia hết cho 5 từ 1 đến n và tổng của chúng?
3) Tính trung bình cộng của n số nguyên nhập từ bàn phím?
4) Tìm số lớn nhất trong dãy n số nguyên nhập từ bàn phím?
5) Sửa lỗi cho các câu lệnh Pascal sau:
a. For i=1 to 10 do s= s+i; b. While i:=5 do s:= s+i;
c. Var a:array[100..1] of real; d. If a>b; then max:=a;
6) Kẻ bảng thể hiện các câu lệnh lặp sau:
a. s:=0; b. s:=0; i:=10;
For i:= 1 to 20 do While i>0 do
If I mod 5=0 then s:=s+i; begin s:=s+i; i:=i-1end;
7) Sau khi thực hiện các đoạn chương trình sau, giá trị của biến s và biến i bằng bao nhiêu?
a. s:=1; b. s:=0; i:=0;
For i:= 1 to 5 do s:=s*i; While i<5 do begin i:=i+1; s:=s+i end;
8) Cho biết kiểu dữ liệu của biến a và b trong các đoạn chương trình sau:
a. a:= 0; b:=0;
while a<5 do begin a:=a+1; b:=b+1/a end;
b. b:=1;
For a:= 1 to 5 do b:=b*a;
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 1: Chọn C
Câu 2: Chọn A