Đề thi học sinh giỏi môn Tin học lớp 12 trường THPT Nguyễn Duy Thì, Vĩnh Phúc năm học 2016 - 2017 (Lần 1)
Đề thi học sinh giỏi môn Tin học lớp 12
Đề thi học sinh giỏi môn Tin học lớp 12 trường THPT Nguyễn Duy Thì, Vĩnh Phúc năm học 2016 - 2017 (Lần 1) có 3 câu hỏi, bao gồm các nội dung: số hoàn hảo, dãy số, đếm từ trong xâu. Đề thi có đáp án đi kèm giúp các bạn học sinh có thể kiểm tra lại kết quả một cách linh hoạt, mời các bạn tham khảo.
Đề thi học sinh giỏi lớp 12 THPT tỉnh Bến Tre năm 2012 - 2013 môn Tin học
Đề thi học sinh giỏi lớp 12 THPT tỉnh Hà Nam năm 2011 - 2012 môn Tin học (Có đáp án)
SỞ GD&ĐT VĨNH PHÚC TRƯỜNG THPT NGUYỄN DUY THÌ -------------------------- | KÌ 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 có tổng các ước nhỏ hơn nó bằng chính nó được gọi là số hoàn hảo. Ví dụ: Số 6 là số hoàn hảo vì: Các ước của 6 là 1, 2, 3 và 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: là các số hoàn hảo có giá trị < N, mỗi số được viết trên một dòng.
* Ví 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......., an mỗ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à 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).
- Dòng 2: ghi giá trị trung bình cộng của các số có giá trị lẻ ở vị trí chẵn trong dãy.
* Ví 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 có nghĩa là loại bỏ dấu cách dư thừa trong xâu.
* Dữ liệu:
Vào từ tệp văn bản XAU.INP, gồm 1 dòng: là một xâu S bất kỳ có độ dài không quá 255 kí 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ề ký tự in hoa.
- Dòng 2: ghi độ dài của xâu sau khi chuẩn hóa.
- Dòng 3: ghi ra số từ có trong xâu.
* Ví dụ:
BAI3.INP | BAI3.OUT |
thpt nguyen duy thi | THPT NGUYEN DUY THI 19 4 |
Đáp án đề thi học sinh giỏi môn Tin học lớp 12
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.
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;
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);
{chuyen het xau ve ki tu in hoa}
For i:=1 to x do upcase(s[i]);
Write(g, i);
{chuan hoa xau}
while s[1]=' ' do delete(s,1,1);
while s[x]=' ' do delete(s,x,1);
for i:= x downto 2 do
if (s[i]='') and (s[i-1]='') then delete (s, i, 1);
writeln(g, s);
{ghi ra so tu co trong xau}
Writeln(g, Sotu(s));
Close(f);
Close(g);
Readln
End.