Tải bản đầy đủ

Đề thi HSG Tin Học huyện Hạ Hòa 20152016

PHÒNG GD&ĐT HẠ HÒA
Đề chính thức

KÌ THI HỌC SINH GIỎI LỚP 9
Năm học: 2015 – 2016
Môn: TIN HỌC
Ngày thi: 4 tháng 12 năm 2015
Thời gian: 150 phút (không kể thời gian giao đề)
(Đề thi có 2 trang)

* Các file chương trình và file dữ liệu được đặt tên chính xác như sau:
Bài
File bài làm
Dữ liệu vào
Dữ liệu ra
Bài 1:
Bai1.Pas
BAI1.INP
BAI1.OUT
Bài 2:
Bai2.Pas

BAI2.INP
BAI2.OUT
Bài 3:
Bai3.Pas
BAI3.INP
BAI3.OUT
Bài 4:
Bai4.Pas
BAI4.INP
BAI4.OUT

Time
2s
2s
2s
2s

Thí sinh tạo thư mục và lưu các bài làm theo đường dẫn D:\Thi HSG
Bài 1 (4,0 điểm).
Khởi động chương trình PASCAL, viết chương trình đọc vào một số tự nhiên n
từ tệp “BAI1.INP” sao cho 4 < n ≤1000000, tính tổng s n: và in lên tệp “BAI1.OUT”,
nếu dữ liệu nhập sai in số 0..
Sn =

1.2 2.3 3.4
n.(n + 1)
+
+
+ ... +
3.4 4.5 5.6
(n + 2)(n + 3)

Bài 2.(4,0 điểm)
Viết chương trình kiểm tra một số tự nhiên n (n<10000) được nhập vào từ tệp
“BAI2.INP” Kiểm tra xem có phải là số hoàn chỉnh hay không?
In lên tệp “BAI2.OUT” số 1 nếu n là số hoàn chỉnh và số 0 nếu n không phải là
số hoàn chỉnh.
Biết rằng số hoàn chỉnh là một số có tổng các ước nhỏ hơn nó bằng chính nó.
Ví dụ: Số 6 có các ước nhỏ hơn nó là 1, 2, 3. Tổng các ước 1 + 2 + 3 = 6. Vậy 6
được gọi là số hoàn chỉnh.

Bài 3. (7,0 điểm)
Viết chương trình nhập từ tệp “BAI3.INT” hai số nguyên dương a, b cách nhau
một dấu cách và thực hiện in lên tệp đầu ra “BAI3.OUT”:
a) Dòng 1 in ra số đối xứng của số nguyên dương a và đối xứng của số nguyên
dương b Cách nhau một dấu “ ;”.
b) Dòng 2 in ra tổng của số đối xứng với a và số đối xứng với b
Biết rằng ta gọi số “đối xứng” với số a là số nguyên dương thu được từ a bằng
cách đảo ngược thứ tự các chữ số của a.
Ví dụ: nhập số a = 12, số b = 23 cho kết quả:
a) Số đối xứng với số a = 12 là 21; Số đối xứng với số b = 23 là 32.
b) Tổng của số đối xứng với a = 12 và số đối xứng với b = 23 là: 21 + 32 = 53.

Bài 4.(5,0 điểm)
1


Cho một chuỗi gồm n2 ký tự từ tệp “BAI4.INP”. Người ta cắt chuỗi từ trái sang
phải thành n chuỗi con, mỗi chuỗi con có đúng n ký tự. Viết mỗi chuỗi con thành một
cột, ta có một bảng gồm n hàng và n cột ký tự.
Yêu cầu: Viết chương trình nhập vào một chuỗi gồm n2 ký tự (4 ≤ n2 ≤ 255) In lên tệp
“BAI4.OUT”.
a) In các hàng có tổng mã ASCII của các ký tự là lớn nhất mỗi hàng trên một
dòng.
b) Dòng tiếp theo in giá trị tổng ở câu a.
Ví dụ:
BAI4.INP
Bảng
BAI4.OUT
abcdefghi
adg
cf i
beh
306
cf i

-------Hết-----Họ và tên thí sinh: ...................................................... SBD.........................

Cán bộ coi thi không phải giải thích gì thêm.
2


HƯỚNG DẪN CHẤM THI - CHỌN HỌC SINH GIỎI LỚP 9
CẤP HUYỆN NĂM HỌC 2015 – 2016

Môn: Tin học
Chấm theo bộ Test thử, đúng test nào giám khảo cho điểm test đó.
Bài 1. (4,0 điểm)
Bộ Test thử
Test
BAI1.INP
BAI1.OUT
1
4
0
2
5
1.879
3
1000
978.044
4
1000000
1018115.610
Bài 2. (4,0 điểm)
Test
BAI2.INP
BAI2.OUT
Điểm
1
2
0
1,0 đ
2
6
1
1,0 đ
3
496
1
1,0 đ
4
8128
1
1,0 đ
Bài 3. (7,0 điểm)
BAI3.OUT
Test
BAI3.INP
Điểm
Số đối
Số đối
Tổng của hai
xứng số a xứng số b số đối xứng a,b
1
12
23
21
32
53
1,5 đ
2
123
456
321
654
975
1,5 đ
3
1357
2468
7531
8642
16173
2,0 đ
4
2809
2014
9082
4102
13184
2,0 đ
Bài 4. (5,0 điểm)
Test
BAI4.OUT
Điểm
BAI4.INP
0,5
cf i
1
abcdefghi
0,5
306
2

HOCSINHGIOILOPCHINCAPTINH

3

ABCDEFGHIJKLJAAA

4

asdfghjklzxcvb q m

OHLIT
384
AE I J
DHLA
281
shzb
djxq
439

0,5
0,5
0,5
0,5
0,5
0.5
0,5
0,5

3


Hướng dẫn chấm trên giấy.
Bài

Chương trình

Uses Crt;
1
(4,0đ) Var
n,i:Integer;
s:Real;
BEGIN
ClrScr;
Write(‘Nhap so tu nhien n=');Readln(n);
While ((n<=5) OR (n>100) do
Begin
Write(‘Nhap lai n thoa man 5 < n <=100, n =
');Readln(n);
end;
s:=0;
For i:=1 to n do s:=s+i*(i+1)/((i+2)*(i+3));
Write(‘s=’,s:4:3);
Readln
END.
2
s:= 0;
(4,0đ)

For i:= 1 to n - 1 do
If n mod i = 0 then s:= s + i;
If s = n then writeln(n, ‘ : la so hoan chinh ’)
Else writeln(n, ‘ : khong la so hoan chinh ’)
Readln
END.
Program Bai3;
Uses crt;
Var a, b: Longint;
Function DX(a: integer):integer;
Var so: Integer;
Begin
3
so:= 0;
(7,0đ)
Repeat
so:= so*10+a mod 10;
a:= a div 10;
Until a = 0;
DX:= so;
end;
BEGIN

Điểm
Điểm
0,5

1

1,5
0,5
0,5
1,5 đ

1,0 đ

1,0 đ

2,0 đ

1,0 đ
4


Clrscr;
Write(' Nhap so a= '); readln(a);
Write(' Nhap so b= '); readln(b);
Writeln('So doi xung so ',a,' la: ',DX(a));
Writeln('So doi xung so ',b,' la: ',DX(b));
Writeln('Tong cua hai so doi xung la: ',DX(a)+DX(b));
readln;
END.
Program Bai4;
Uses crt;
Var
a:Array[1..1000] of Integer;
i, n: Byte;
j, k: Integer;
kt:boolean;
BEGIN
clrscr;
Write(' Nhap kich thuoc N cua mang: '); Readln(n);
a[1]:= 2;
For i:= 2 to n do
Begin
4
j:= a[i-1];
(5,0đ)
Repeat
Inc(j);
kt:= True;
For k:= 2 to j div 2 do
If j mod k = 0 then kt:= False;
Until kt;
a[i]:= j;
End;
Writeln(' Mang N so nguyen to dau tien: ');
For i:=1 to n do Write(a[i]:4);
Readln;
END.

2,0 đ
1,0 đ

2,0 đ

2,0 đ

1,0 đ

* Lưu ý: Học sinh có nhiều cách giải khác nhau, nếu đúng giám kháo cho điểm
tương ứng của phần đó.

5



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay

×