PHÒNG GD-ĐT HUYỆN CẨM MỸ
KỲ THI TIN HỌC TRẺ KHÔNG CHUYÊN
Trường THCS:……………………….
HÈ NĂM HỌC 2010 - 2011
ĐỀ THI THỰC HÀNH
THỜI GIAN : 90’
Họ Tên:……………………………….
SBD:
GIÁM THỊ 1
GIÁM THỊ 2
MẬT MÃ
…………………………………………………………………………………………………………………
ĐIỂM
GIÁM KHẢO 1
GIÁM KHẢO 1
MẬT MÃ
Bài 1: Viết chương tìm ước số chung lớn nhất của hai số nguyên a và b khác 0, với a, b
được nhập từ bàn phím.
Bài 2: Viết chương trình nhập vào một mảng gồm n phần tử (n<=100). Kiểm tra và in ra
màn hình các số là số nguyên tố sắp xếp theo thứ tự tăng dần.
Bài 3: Trăm Trâu, trăm cỏ
Trâu đứng ăn năm
Trâu nằm ăm ba
Lụ khụ Trâu già
Ba con một bó
Viết chương tìm số Trâu đứng, Trâu nằm, Trâu già?
KỲ THI TIN HỌC TRẺ KHÔNG CHUYÊN
HÈ NĂM HỌC 2010 - 2011
ĐỀ THI THỰC HÀNH
ĐÁP ÁN VÀ BIỂU ĐIỂM
Bài 1: 3 điểm
− Khai báo đúng: 0,5 điểm
− Nhập được dữ liệu: 0,5 điểm
− Thuật toán tìm UCLN đúng: 1,5 điểm
− Test đúng các trường hợp: 0,5 điểm
Bài 2: 4 điểm
− Khai báo đúng: 0,5 điểm
− Nhập được dữ liệu: 0,5 điểm
− Thuật toán tìm SNT đúng: 1,5 điểm
− Thuật toán tìm SX đúng: 1 điểm
− Xuất đúng dữ liệu dãy SNT: 0,5 điểm
Bài 3: 3 điểm
− Khai báo đúng: 0,5 điểm
− Thuật toán đúng: 2 điểm
− Xuất đúng các trường hợp: 0,5 điểm
Program Bai1;
Uses crt;
Var a,b,m,n:integer;
Begin
clrscr;
repeat
write('nhap a,b (a<>0, b<>0): ');
readln(a,b);
until (a<>0) and (b<>0);
m:=abs(a); n:=abs(b);
while m<>n do
if m>n then m:=m-n else n:=n-m;
writeln('ucln(',a,',',b,')=',m);
readln;
End.
Program Bai2;
Uses crt;
Var b,a:array[1..100]of integer;
n,i,j,k,tam:integer;
Begin
clrscr;
write('nhap so phan tu cua day so nguyen : ');
readln(n);
writeln('nhap gia tri cua cac phan tu :');
for i:=1 to n do
begin
write('a[',i,']= ') ;
readln(a[i]);
end;
k:=0;
for i:=1 to n do
begin
j:=2;
while a[i] mod j <> 0 do j:=j+1;
if a[i] = j then
begin
k:=k+1; b[k]:=a[i];
end;
end;
for i:=1 to k-1 do
for j:=i+1 to k do
if b[i]>b[j] then
begin
tam:=b[i]; b[i]:=b[j]; b[j]:=tam;
end;
writeln('cac so nguyen to da duoc sap xep: ');
for i:=1 to k do write(b[i]:5);
readln;
End.
Program Bai3;
Uses crt;
Var t_dung, t_nam, t_gia: integer;
Begin
for t_dung:=1 to 100 do
for t_nam:=1 to 100 do
for t_gia:= 1 to 100 do
if (t_dung+t_nam+t_gia=100) and (t_dung*5 + t_nam*3 +
(t_gia/3) = 100) then
writeln('trau dung: ',t_dung:5,'trau nam: ',t_nam:5,'trau gia: ',t_gia:5);
readln
End.