Trang 1
SỞ GD&ĐT VĨNH PHÚC
TRƯỜNG THPT NGUYỄN DUY THÌ
--------------------------
THI CHỌN HSG LỚP 12, NĂM HỌC 2016 - 2017
MÔN: TIN HỌC LẦN 1
Thời gian làm bài: 180 phút, không kể thời gian giao đề
--------------------------
Tổng quan: Đề thi gồm 02 trang.
TT Tên bài
File chương
trình
File dữ liệu File kết quả Điểm
Bài 1 Số hoàn hảo HOANHAO.PAS BAI1.INP BAI1.OUT 3
Bài 2 Dãy số DAYSO.PAS BAI2.INP BAI2.OUT 3
Bài 3 Đếm từ trong xâu XAU.PAS BAI3.INP BAI3.OUT 4
Bài 1. Số hoàn hảo
Một số tự nhiên N tổng các ước nhỏ hơn bằng chính được gọi số hoàn
hảo. dụ: Số 6 số hoàn hảo vì: Các ước của 6 1, 2, 3 6 = 1 + 2 + 3.
* Dữ liệu:
Vào từ tệp văn bản HOANHAO.INP, gồm 1 dòng ghi số N (2 < N < 1000).
* Kết quả:
Ghi ra tệp văn bản HOANHAO.OUT: các số hoàn hảo giá trị < N, mỗi số
được viết trên một dòng.
* dụ:
BAI1.INP BAI1.OUT BAI1.INP BAI1.OUT
7 6 30 6
28
Bài 2. Dãy số
* Dữ liệu: Vào từ tệp văn bản SUM.INP, gồm 2 dòng:
- Dòng 1: Số N.
- Dòng 2: Dãy số a1, a2.......,anmỗi số cách nhau một dấu cách.
(0 ai 104; i = 1, 2, ..., N)
* Kết quả:
Ghi ra tệp văn bản SUM.OUT, gồm 2 dòng:
- Dòng 1: Giá trị vị trí của phần tử lớn nhất trong dãy số (mỗi số cách nhau một
dấu cách).
Trang 2
- Dòng 2: ghi g trị trung bình cộng của các số g trị lẻ vị trí chẵn trong dãy.
* dụ:
BAI2.INP BAI2.OUT
7
3 2 6 7 23 25 40
40 7
16
BÀI 3: Đếm t trong xâu.
Chuẩn hóa xâu nghĩa loại bỏ dấu cách thừa trong xâu.
* Dữ liệu:
Vào từ tệp văn bản XAU.INP, gồm 1 dòng: một xâu S bất kỳ độ dài không
quá 255 tự.
* Kết quả:
Ghi ra tệp văn bản XAU.OUT, gồm 3 dòng:
- Dòng 1: ghi xâu sau khi đã chuyển hết về tự in hoa.
- Dòng 2: ghi độ dài của u sau khi chuẩn hóa.
- Dòng 3: ghi ra số từ trong xâu.
* dụ:
BAI3.INP BAI3.OUT
thpt nguyen duy thi THPT NGUYEN DUY THI
19
4
----- HẾT -----
Cán bộ coi thi không giải thích thêm.
Họ tên thí sinh:.................................................SBD:.................................
Trang 3
ĐÁP ÁN
Bài 1
Program hoanhao;
Uses crt;
Var i, n: interger;
f, g: text;
{Xay dung ham tinh tong cac uoc cua so nguyen duong}
function tongus(n : integer): integer;
var i,s : integer;
begin
s := 0;
for i := 1 to n div 2 do
if n mod i = 0 then s := s + i;
tongus := s;
end;
Begin
Assign(f, bai1.inp’);
Reset (f);
Assign( g, ‘bai1.out’);
Rewrite(g);
Read(f, n);
{kiem tra va in ra so hoan hao}
For i:=1 to n do
If i = tongus(i) then write(g, i);
Close(f);
Close(g);
Readln
End.
Trang 4
Bài 2
Program dayso;
Uses crt;
Var i, n, , tong, dem, tb, max: interger;
A: array[1..10000] of longint;
F, g: text;
Begin
Assign(f, bai2.inp’);
Reset (f);
Assign( g, ‘bai2.out’);
Rewrite(g);
Read(f, n);
For i:=1 to n do
Begin
Readln(f, a[i]);
End;
{Tim gia tri va vi tri cua phan tu lon nhat}
Max:=a[1];
For i:=1 to n do
If max < a[i] then
begin
max:=a[i];
Write(g, a[i]);
Write(g, i);
end;
{Ghi ra gia tri trung binh cong cua cac so le o vi tri chan trong day}
Dem: =0;
Tong:=0;
For i: 1 to n do
If (a[i] mod 2<> 0) and (i mod 2 = 0) then
Tong: = tong +a[i];
Inc(dem);
Tbc:= tong/dem;
Trang 5
Writeln(g, tbc);
Close(f);
Close(g);
Readln
End.
Bài 3
Program xau;
Uses crt;
Var s: string;
F, g: text;
X, i, dem: integer;
{Ham dem so tu trong xau s}
Function sotu(s : string) : integer;
Var i, dem : integer;
Begin
{ cong them dau cach dau xau de dem tu dau tien}
S: = ‘’ + s;
Dem: = 0 ;
For i:= 2 to x do
If (s[i-1]=’’) and (s[i]<>’’) then inc(dem);
Sotu:= dem;
End;
Begin
Assign(f, bai3.inp’);
Reset (f);
Assign( g, ‘bai3.out’);
Rewrite(g);
Read(f, s);
x:= length(s);