Tải bản đầy đủ (.doc) (7 trang)

Đề thi học sinh giỏi môn tin học THCS có đáp án đầy đủ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (137.3 KB, 7 trang )

ĐỀ THI HỌC SINH GIỎI MÔN TIN HỌC 9
Thời gian: 120 phút

Câu 1: (3 điểm):
Viết chương trình nhập số 0< n <500
- Nếu n không thỏa mãn yêu cầu nhập lại
- Liệt kê tất cả các số chính phương trong khoảng từ 1 đến n
- Đếm xem tất cả có bao nhiêu số chính phương được viết ra
- Ví dụ minh họa màn hình làm việc của chương trình:

Câu 2: (4 điểm)
Viết chương trình cho phép trộn hai dãy số A và B có cùng số phần tử k để được một
dãy C theo yêu cầu sau:
A = a1, a2 ... ak
B = b1, b2 ... bk
Sau khi trôn ta được C = a1, b1, a2, b2 ... ak, bk.
Câu3: (4 điểm)
Trò chơi gieo xúc sắc được mô tả như sau:
Một con xúc xắc có 6 mặt, ứng với số điểm từ một đến sáu. Mỗi một lượt chơi,
người chơi nhập vào số lần gieo một con xúc xắc, mỗi một lần gieo thì đưa ra số
điểm của lần reo đó, tính hệ số may mắn của mỗi lượt chơi theo công thức
Số lần gieo được 6 điểm chia cho tổng số lần gieo
Hãy viết chương trình mô phỏng quá trình gieo xúc xắc bằng chương trình pascal.
Ví dụ minh họa màn hình làm việc của chương trình:

Câu 4( 6 điểm)
Nhập 1 số nguyên, kiểm tra xem số đó có phải là số nguên tố hay không? Nếu số đó
không phải là số nguyên tố thì hãy phân tích số đó thành tích các thừa số nguyên tố.
Ví dụ minh họa màn hình làm việc của chương trình:



Câu 5(3 điểm)
Viết chương trình nhập vào một số, kiểm tra xem đó có dương không? Nếu dương thì
tính diện tích của hình tròn đó, biết pi = 3,14


ĐÁP ÁN VÀ THANG ĐIỂM CHI TIẾT

Câu
Câu 1
(3 điểm)

Đáp án

Điể
m

Chạy chương trình để cho điểm:
Test với các bộ số
N= -5
Không thỏa mãn
N=30
Đưa ra được 4 số chính phương 4, 6, 9, 25
- Đưa ra khuôn dạng không đúng yêu cầu trừ
- Thuật toán không tối ưu trừ
- Học sinh có thể dùng hàm để làm bài.
Mã lệnh chương trình:
program so_chinh_phuong;
var a, i,j,n,d: integer;
BEGIN


0,25đ
0,25đ


write(' Nhap so n ='); readln(n);
while (n<=0) or (n>500) do
begin
writeln('nhap lai vi khong thoa man dieu kien');
write(' Nhap so n= '); readln(n);
writeln(' Cac so chinh phuong trong khoang tu 1 den ',n,'la');
end;
d:=0;
for i:=2 to n do
for j:=1 to i do
if j= sqrt(i) then
begin
write(i:5);
d:=d+1;
end;
writeln;
writeln(' co ',d,' so chinh phuong trong khoang tu 1 den ',n);
readln;
end.






Câu2

(4 điểm)

Chạy chương trình để cho điểm:
Test với các bộ số
Cho k =4
Dãy A =1,3,5,7
Dãy C = 1, 2, 3, 4, 5, 6, 7, 8
Dãy B = 2,4,6,8
- Đưa ra khuôn dạng không đúng yêu cầu trừ
- Thuật toán không tối ưu trừ
Mã lệnh chương trình:
uses crt;
type mang= array[1..100] of integer;
var A,B,C: mang;
i,j,k,n:integer;
procedure nhap( var X:mang; n:byte);
var i:integer;
begin
for i:=1 to n do
begin
write('M[',i,']='); readln(X[i]);
end;
end;
procedure xuat( var X: mang; n:byte);
var i:integer;
begin
writeln('Mang la:');
for i:=1 to n do
write(X[i]:4);
writeln;

end;
{-------------------------------------------}
BEGIN
clrscr;
write('Nhap so phan tu cua day:'); readln(n);
nhap(A,n);
nhap(B,n);
xuat(A,n);
xuat(B,n);
i:=1;
j:=1;
while i<=n do
begin
C[j]:=A[i];

0,25đ
0,25đ






C[j+1]:=B[i];
j:=j+2;
i:=i+1;

Câu 3:
(4 điểm)


end;
xuat(c,2*n);
readln;
end.
Chạy chương trình để cho điểm
Test với các bộ số
N= 8
Đưa ra được 8 lần gieo và sồ điểm của mỗi lần
Đưa ra được hệ số may mắn
N=30
Đưa ra được 30 lần gieo và sồ điểm của mỗi lần
Đưa ra được hệ số may mắn
- Đưa ra khuôn dạng không đúng yêu cầu trừ
- Thuật toán không tối ưu trừ

0,25đ
0,25đ

Mã lệnh chương trình:
uses crt;
Var i, n, k, a : integer;
Heso: real;
BEGIN
Clrscr;
Randomize;
k:=0;
write('hay nhap vao so lan gieo xuc xac n= ');
readln(n);
for i:=1 to n do
begin

a:= random(6) +1;
writeln(' Lan gieo thu ',i,' duoc mat' , a);
if a=6 then k:= k+1;
end;
writeln(' So lan gieo duoc mat 6 la:' ,k);
heso:= k/n;
writeln(' He so may man la:', heso:5:2);
readln;
end.
Câu 4
Chạy chương trình để cho điểm:
( 6 điểm)
Test với các bộ số
N= 7
7 Là số nguyên tố
N=230
Đưa ra được
2.5.25






N=100

Đưa ra được

2.2.5.5


- Đưa ra khuôn dạng không đúng yêu cầu trừ

0,5đ

- Thuật toán không tối ưu trừ

0,5đ

-HS Có thể dùng hàm để làm bài.
Mã lệnh chương trình:
Program so_nguyen_to;
Uses crt;
Var kt,i,n: integer;
BEGIN
Write('Moi ban nhap vao mot so: N='); readln(n);
kt:=0;
for i:=2 to (n div 2) do if ( n mod i) =0 then kt:=1;
if kt= 0 then writeln('So vua nhap la so nguyen to')
else
begin
writeln('So vua nhap khong phai la so nguyen to');
i:=2;
write('Ket qua phan tich so do la:',n,'=');
while n>1 do
begin
if (n mod i=0) then
begin
write(i,' .');
n:=n div i;
end

else i:=i+1;
end;
end;
readln;
end.
Câu 5
Chạy chương trình để cho điểm
(3 điểm) Test với các bộ số
r= -5
Không phải bán kính hình tròn
r= 7
Đưa ra được
S= 153,86
r=10
Đưa ra được
S= 314
Đưa ra không đúng khuôn dạng trừ
Thuật toán không tối ưu trừ
Mã lệnh chương trình:
Program S_Hinh_tron;
Uses crt;

0,25 đ
0,25 đ







Const pi=3.14;
Var r, s : real;
Begin
Clrscr;
Writeln(' Chuong trinh tinh dien tich hinh tron ');
Write(' Nhap ban kinh hinh tron = ');
Readln(r);
If ( r > 0 ) then
begin
S:= pi * r * r;
Writeln(' Dien tich hinh tron =' , s:3:2);
End
Else
writeln(' Khong phai ban kinh hinh tron');
Readln;
End.

1,5đ

1,5đ



×