Đề thi chọn HSG Tin 9
Nội dung tài liệu
Tải xuống
Link tài liệu:
Các tài liệu liên quan
Có thể bạn quan tâm
Thông tin tài liệu
Bài 1: (6 điểm) Cho một dãy số nguyên có số phần tử âm bằng số phần tử
dương lấy ra từ tệp ‘SN.dat’ hãy viết chương trình tạo thành dãy số âm và
số dương lồng nhau ( số âm, số dương, số âm, số dương…) Sao cho dãy
số dương không giảm, dãy số âm không tăng .
VD: -1 2 -3 5 -5 6 -5 6 -6 9
Bài 2: (5 điểm)Viết chương trình in ra màn hình tam giác số sau:
1
21
321
4321
54321
654321
7654321
87654321
987654321
Bài 3: (5 điểm)
a, Viết chương trình kiểm tra xem k có phải là số “tương lai” hay không
(số “tương lai” là số có các ước (khác 1) là các số nguyên tố).
VD: số 10 có ước là 2 và 5 là các số nguyên tố nên 10 là số “tương lai”.
b, Cho một dãy số nguyên dương lấy ra từ tệp ‘SND.dat’ hãy viết chương
trình in tất cảc các số “tương lai” có trong dãy ra màn hình.
Bài 4(4 điểm) Cho một dãy số nguyên lấy ra từ tệp ‘DSN.dat’ hãy viết
chương trình tìm đoạn dài nhất các phần tử liên tiếp có giá trị chẵn.
VD cho dãy: 1 2 4 2 8 10 1 7 8 6 42 6 8 4 28 1 8 9 6 2 3 8
đoạn dài nhất là: 8 6 42 6 8 4 28
Đáp án
Bài 1
program bai1;
var A:array [1..40] of integer;
n,i,j,k: byte;
f:text;
procedure traodoi(var x,y:integer);
var tam:integer;
begin
tam:=x; x:=y; y:=tam;
end;
BEGIN
i:=0;
assign(f, 'SN.dat');
reset(f);
readln(f,k);
while not eof(f) do
begin
i:=i+1;
read(f,a[i]);
end;
close(f);
n:=i;
for i:=1 to n do
for j:=1 to n-1 do
if a[j]>a[j+1] then
traodoi(a[j],a[j+1]);
writeln(' Day da sap xep la:');
for i:=1 to n do
write(a[i],' ');
j:=1;
if a[1]>=k then
begin
for i:=n+1 downto 2 do
a[i]:=a[i-1];
a[1]:=k;
end
else
if a[n]<=k then
a[n+1]:=k
else
begin
while (j5 then
begin
snt:=true;
for u:=2 to x div 2 do
if x mod u=0 then snt:=false;
end;
end;
BEGIN
i:=0;
assign(f, 'SND.dat');
reset(f);
while not eof(f) do
begin
i:=i+1;
read(f,a[i]);
end;
close(f);
n:=i;
writeln('Day vua lay ra tu tep la:');
for i:=1 to n do
write(a[i],' ');
assign(f,'DSNT.dat');
rewrite(f);
for i:=1 to n do
if snt(a[i])=true then
write(f,a[i],' ');
readln;
end.
Bài 3
program bai3;
var
a:array[1..30] of byte;
k,i,j:integer;
begin
write(' Nhap so nguyen duong:'); readln(k);
while k0 do
begin i:=i+1;
a[i]:=k mod 2;
k:=k div 2;
end;
writeln('So nhi phan la:');
for j:=i downto 1 do
write(a[j]);
readln
end.
Bài 4
program doan_dai_nhat;
var f:text;
a:array[1..50] of integer;
i,n,vt,d,dd:byte;
begin
assign(f,'sn.dat');
reset(f);
i:=0;
while not eof(f) do {doc tep}
begin
i:=i+1;
read(f,a[i]);
end;
close(f);
n:=i;
for i:=1 to n do
write(a[i],' '); {in day vua doc ra man hinh}
writeln;
writeln;
i:=1;
vt:=1;d:=1;dd:=1;
while i

