Tuyển tập đề ôn thi học sinh giỏi môn tin 9 cấp tỉnh, Đề thi học sinh giỏi tin 9, đề thi môn tin 9 cấp tỉnh, ôn thi học sinh giỏi môn tin 9, Tổng hợp đề thi môn tin 9 cấp tỉnh, tài liệu ôn thi môn tin 9 cấp tỉnh, đề thi có đáp án môn tin 9.
Trang 1ĐỀ THI THỬ SỐ 3 Bài 1 (5 điểm) Viết chương trình in ra dãy số nhị phân có n chữ số (n<=10) + N là số nguyên dương
+ Số N là số lượng kí số nhị phân được in ra.
Bài toán liệt kê các dãy nhị phân độ dài n là bài toán cổ điển dùng để minh họa cho phương pháp sinh và thuật toán quay lui Trong bài này, mình sẽ viết về thuật toán sinh các dãy nhị phân độ dài n hay nói cách khác là liệt kê các dãy nhị phân có độ dài n bằng phương pháp sinh
Yêu cầu: Viết chương trình in ra các chuỗi nhị phân có độ dài n (chuỗi nhị phân
có độ dài n là chuỗi số có số chữ số bằng n và các chữ số trong chuỗi chỉ gồm 0
và 1.)
Input: Độ dài của chuỗi nhị phân cần in ra
Output: In ra tất cả chuỗi nhị phân có độ dài ở đầu vào
Ví dụ:
Input: 3
Out put: 000 001 010 011 100 101 110 111
Bài 2 (7 điểm) Dãy số tăng
Một dãy số a1, a2, …, an được gọi là dãy tăng nếu như nó thỏa điều kiện: a1< a2< … < an
- Yêu cầu: Cho dãy số nguyên a1, a2, …, an Hãy cho biết dãy số này có phải là
dãy tăng hay không?
Nếu không phải dãy tăng thì hãy cho biết chỉ số k nhỏ nhất của phần tử làm cho dãy không có tính chất của dãy tăng
- Dữ liệu vào:
· Dòng đầu tiên ghi số nguyên n(1<n≤1000)
· Dòng thứ hai ghi dãy n số nguyên a1, a2, …, an (-1000 ≤ ai≤ 1000, i=1 n)
- Kết quả: Ghi ra màn hình một số nguyên duy nhất k Trường hợp dãy đã cho là
dãy tăng thì ghi số 1
Bài 3 (8 điểm) Phần thưởng (PT.PAS)
Trong cuộc thi giải toán qua mạng internet mỗi học sinh đều có số điểm tích lũy riêng của mình Số điểm tích lũy của mỗi học sinh là một số nguyên dương K (0 < K ≤ 2×109) Đội tuyển của trường THCS Tài Năng có N học sinh tham gia dự thi (2 ≤ N ≤ 100) Tại buổi gặp mặt trước kỳ thi cấp tỉnh, thầy hiệu trưởng quyết định thưởng cho các học sinh trong đội tuyển Q triệu đồng, biết rằng điểm tích lũy của mỗi học sinh đều chia hết cho Q
Yêu cầu: Hãy tìm số nguyên dương Q lớn nhất.
Dữ liệu vào:
- Dòng 1: Ghi số nguyên dương N là số lượng học sinh.
Trang 2- Dòng 2: Ghi N số nguyên dương lần lượt là điểm tích lũy của N học sinh, các số
được ghi cách nhau ít nhất một dấu cách
Dữ liệu ra: Ghi ra màn hình như sau:
- Dòng 1: Ghi số nguyên dương Q tìm được.
Ví dụ:
5
HƯỚNG DẪN ĐỀ THI THỬ SỐ 3
Bai 1.
program tim_DNP;
const
nmax=9;
type
data = byte;
var
n:data;
DNP: array [1 nmax]of data;
procedure xuat;
var i:data;
begin
for i:=1 to n do
write (DNP[i]);
writeln;
Trang 3procedure In_DNP(i:data);
var j:data;
begin
if i>n then
xuat
else
for j:=0 to 1 do
begin
DNP[i]:=j; In_DNP(i+1); end;
end;
begin
writeln ('nhap do dai DNP'); readln(n);
In_DNP(1);
readln
end
Bài 2.
Program day_tang;
uses crt;
Var A: Array [0 1000] of Longint;
Trang 4Begin
clrscr;
write ('nhap so n = ');readln(n);
For i:=1 To n Do
Begin
Write('Phan tu A[',i,']= '); Readln(a[i]); End;
For i:=1 To n Do Write(a[i],' ');
writeln;
i:=1;
While (i<=n-1) and (a[i]<a[i+1]) do i:=i+1;
If i<=n-1 then Write(i+1)
Else Write(0);
readln
End
Bài 3
Code 1
Program Phan_thuong;
Type mang=Array[0 101] of Longint; Var N,i,ucln,usc,sodu,x,y:Longint;
TS:mang;
Trang 5writeln ('nhap so thi sinh'); readln(n);
for i:=1 to n do
begin
write('nhap diem tich luy cho thi sinh TS[',i,']');readln(TS[i]); end;
for i:=1 to n do
begin
writeln (TS[i]);
end;
{tim USCLN}
sodu:=x mod y;
While sodu<>0 do
Begin
x:=y;
y:=sodu;
sodu:=x mod y;
End;
UCLN:=y;
{tim USC}
USC:=UCLN(TS[1],TS[2]);
for i:= 3 to N do
begin
Trang 6USC:=UCLN(USC,A[i]);
USC:=USC;
End;
Readln
End
Code 2
program phanthuong1;
var uoc,i,n: longint;
a: array[1 100] of longint; function uc(a,b: longint): longint; var r: longint;
begin
r:=a mod b;
while r<>0 do
begin
a:=b;
b:=r;
r:=a mod b;
end;
uc:=b;
end;
begin
Trang 7write('Nhap so hoc sinh ');
readln(n);
while (n<2) or (n>10) do
begin
write('Nhap la n: ');
readln(n);
end;
for i:=1 to n do
begin
write('Phan tu thu ',i,' la: ');
readln(a[i]);
while (a[i]<0) or (a[i]>1000000000) do
begin
write('Nhap lai diem tich luy cua hoc sinh thu ',i,': '); readln(a[i]);
end;
end;
uoc:=0;
for i:=1 to n do
uoc:=uc(a[1],a[2]);
uoc:=uc(uoc,a[i]);
write('Uoc chung lon nhat cua day la: ',uoc);
readln
Trang 8end.