[r]
(1)SỞ GD & ĐT VĨNH PHÚC (Đề gồm 02 trang)
ĐỀ KSCL HSG LẦN I, NĂM HỌC 2017-2018 Môn: Tin học , Lớp 10
Thời gian làm bài:180 phút, không kể thời gian phát đề
Tổng quan đề thi:
TT Tên File chương trình File liệu File kết Điểm
1 Số nguyên tố NGUYENTO.PAS BAI1.INP BAI1.OUT
2 Dãy số DAYSO.PAS BAI2.INP BAI2.OUT
3 Sắp xếp SAPXEP.PAS BAI3.INP BAI3.OUT
Bài 1: Số nguyên tố
Một số gọi số nguyên tố số tự nhiên có hai ước số dương phân biệt Ví dụ: Số 3: Các ước 1,
*Dữ liệu vào:
Vào từ tệp văn BAI1.INP, gồm dòng ghi số N (2 <=N < 1000) * Kết ra:
Ghi tệp văn BAI1.OUT: số nguyên tố có giá trị < N
* Ví dụ:
Bài 2: Dãy số
Cho số tự nhiên N dãy số a1, a2 ,an, hãy:
a, Cho biết Giá trị vị trí phần tử lớn dãy số
b, Tính giá trị trung bình cộng số có giá trị lẻ vị trí chẵn dãy *Dữ liệu vào:
Vào từ tệp văn BAI2.INP, gồm dòng: - Dòng 1: Số N
- Dòng 2: Dãy số a1, a2 ,an số cách dấu cách, (0 ≤ ≤ 104 ; i = 1, 2, , N)
* Kết ra:
Ghi tệp văn BAI2.OUT, gồm dòng: BAI1.INP BAI1.OUT
(2)- Dòng 1: Giá trị vị trí phần tử lớn dãy số (mỗi số cách dấu cách)
- Dịng 2: Ghi giá trị trung bình cộng số có giá trị lẻ vị trí chẵn dãy
* Ví dụ:
BAI2.INP BAI2.OUT
7
3 23 25 40
40 16
Bài 3: Sắp xếp
Viết chương trình nhập vào mảng gồm n số nguyên dương in mảng sau xếp theo thứ tự tăng dần
*Dữ liệu vào:
Vào từ tệp văn BAI3.INP, gồm dòng: - Dòng 1: Số n
- Dòng 2: Dãy số a1, a2,…, an, số cách dấu cách
* Kết ra:
Ghi tệp văn BAI3.OUT, gồm dòng: In mảng xếp * Ví dụ:
BAI3.INP BAI3.OUT
3
1
(3)
ĐÁP ÁN ĐỀ THI KHẢO SÁT HSG LỚP 10, LẦN 1 MÔN: TIN HỌC
Bài 1:
Program bai1; Use crt;
Var f,g: text;
N,i,j,dem: integer; Begin
Assign(f, ‘bai1.inp’); Reset (f);
Assign( g, ‘bai1.out’); Rewrite(g);
Read(f, n); For i:= to n Begin
Dem:=0;
For j:= to i if i mod j = then dem:= dem+1; If dem=2 then write(g,i,’ ’);
End; Readln; END
Bài 2:
Program bai2; 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 Begin
Readln(f, a[i]); End;
(4)For i:=1 to n If max < a[i] then Begin
max:=a[i]; Write(g, a[i]); Write(g, i); end;
Dem: =0; Tong:=0;
For i: to n If (a[i] mod 2<> 0) and (i mod = 0) then Tong: = tong +a[i];
Inc(dem);
Tbc:= tong/dem; Writeln(g, tbc); Close(f);
Close(g); Readln END
Bài 3:
Program bai3; Use crt;
Var f, g: text;
N, i, j, max, tg: integer; A: array [1 100] of integer; BEGIN
Assign(f, ‘bai3.inp’); Reset (f);
Assign( g, ‘bai3.out’); Rewrite(g);
Read(f, n);
For i:= to n Readln(f,a[i]); Close(f)
For i:=1 to n-1 Begin
Max:=i
For j:= i to n
if (a[j]>a[max] then j:=max tg:=a[i];
(5)end;
for i:= to n writeln(g, a[i]); readln;