PHẦN TỰ LUẬN: 7 điểm Câu 1: 1 điểm Chương trình sau đây có hợp lệ không?. Nếu không hãy chỉnh sửa lại cho hoàn chỉnh.. Câu 3: 2 điểm Dữ liệu kiểu mảng là gì?. Hãy nêu cách khai báo biến
Trang 1Họ và tên:
Môn: tin học 8
Thời gian làm bài: 45 phút;
Câu 1: Cú pháp của câu lệnh While…do là:
A While <điều kiện> to <câu lệnh1> do <câu lệnh 2>;
B While <điều kiện> to <câu lệnh>;
C While <điều kiện> do <câu lệnh>;
D While <điều kiện>; do <câu lệnh>;
Câu 2: 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ị 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 <câu lệnh> do <giá trị cuối>;
Câu 3: Sau khi thực hiện đoạn chương trình sau, giá trị của biến S bằng bao nhiêu:
s:=1;
for i:=1 to 4 do s := s*i;
Câu 4: Chọn khai báo hợp lệ:
A Var a,b: array[1 : n] of Integer; B Var a,b: array[1 100] of real;
C Var a,b: array[1 n] of real; D Var a,b: array[1 … 100] of real;
Câu 5: Để đế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;
B 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 + I;
D for i:=1 to n do if ( I mod 2)=1 then S:=S + I ;
Câu 6: Sau khi thực hiện đoạn chương trình sau
s:= 0; for i:= 1 to 3 do s:=s+i; kết quả giá trị s bằng bao nhiêu?
Câu 7: Câu lệnh nào sau đây lặp vô hạn lần
A s:=5; i:=1; While i> s do i:=i + 1;
B s:=5; i:=0; While i<=s do s:=s + 1;
C s:=5; i:=1; While i<=s do i:=i + 1;
D s:=5; i:=1; While i<> s do i:=i + 1; s:=s+i
Câu 8: Cú pháp khai báo biến mảng trong Pascal là:
A var <Tên mảng> : array [<chỉ số đầu> <chỉ số cuối>] of <kiểu dữ liệu >;
B var <Tên mảng> : aray [<chỉ số đầu>…<chỉ số cuối>] of <kiểu dữ liệu >;
C var <Tên mảng> : array [<chỉ số đầu>…<chỉ số cuối>] for <kiểu dữ liệu >;
D var <Tên mảng> ; array [<chỉ số đầu> <chỉ số cuối>] of <kiểu dữ liệu >;
Câu 9: Cho các câu lệnh sau hay 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:= 1 to 10 for j:=1 to 10 do x:=x+1
Trang 2
Câu 10: Để tính tổng S=2 + 4 + 6 … + n; em chọn đoạn lệnh:
A For i:=1 to n do if ( i mod 2)=0 then S:=S + i;
B For i:=1 to n do S:= S + i ;
C For i:=1 to n do if ( i mod 2)=1 then S:=S + i;
D for i:=1 to n do if ( i mod 2)<>0 then S:=S + i;
Câu 11 Chọn câu lệnh đúng ?
A) x While x:= 10 do x:= x+5; B) x:=10 While x:= 10 do x:= x+5; C) x While x:= 10 do x:= x+5; D) While x < 10 do x:= x+5;
-
II PHẦN TỰ LUẬN: (7 điểm)
Câu 1: (1 điểm) Chương trình sau đây có hợp lệ không? Nếu không hãy chỉnh sửa lại cho hoàn chỉnh.
Program tinhhieu;
Begin
Writeln (‘Nhap sp nguyen duong a: ‘); Readln (a);
Writeln (‘Nhap sp nguyen duong b: ‘); Readln (b);
S:= a - b Writeln (‘Hieu hai so nguyen duong a va b la: ‘,S:2:2) Readln
Var a, b: integer;
S: real;
Câu 2: ( 2 điểm) Viết chương trình in ra số lớn hơn trong hai số (được nhập từ bàn phím) Câu 3: ( 2 điểm) Dữ liệu kiểu mảng là gì? Hãy nêu cách khai báo biến mảng trong Pascal
và các thành phần của nó
Câu 4: (2 điểm) Viết chương trình nhập dãy n số và in ra tổng các số lẻ trong dãy số vừa
nhập
-Hết -bj)
xxcsc -
Trang 3
Bài tập 2.1:
Viết chương trình in ra số lớn hơn trong hai số (được nhập từ bàn phím).
a Hướng dẫn:
- Nhập hai số vào hai biến a, b.
- Nếu a > b thì in a Nếu a <= b thì in b.
- Hoặc: Nếu a > b thì in a Ngược lại thì in b.
b Mã chương trình:
Program SO_SANH1;
uses crt;
var a,b: real;
begin
clrscr;
write('nhap so thu nhat: '); readln(a);
write('nhap so thu hai: '); readln(b);
if a> b then writeln(' So lon la:',a);
if a<= b then writeln(' So lon la:',b:10:2); readln
end.
Hoặc:
Program SO_SANH2;
uses crt;
var a,b: real;
begin
clrscr;
write('nhap so thu nhat: '); readln(a);
write('nhap so thu hai: '); readln(b);
if a> b then writeln(' So lon la:',a:10:2)
else writeln(' So lon la:',b:10:2);
readln
end.
Bài tập 5.2
Viết chương trình nhập dãy n số và in ra tổng các số lẻ trong dãy số vừa nhập.
a Hướng dẫn:
b Mã chương trình:
Program Mang_Tong_Le;
uses crt;
var i,n:byte;
M:array[1 100] of integer;
tong:longint;
begin
write('Nhap so phan tu cua day: ');readln(n); for i:=1 to n do
begin
write('M[',i,']'); readln(M[i]);
end;
tong:=0;
for i:=1 to n do if M[i] mod 2 =1 then tong:=tong+M[i];
write('Tong cac so le trong day la: ',tong);
Trang 4
readln
end.