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 bài File chương trình File dữ liệu File kết quả Điểm
1 Số nguyên tố NGUYENTO.PAS BAI1.INP BAI1.OUT 3
2 Dãy số DAYSO.PAS BAI2.INP BAI2.OUT 3
3 Sắp xếp SAPXEP.PAS BAI3.INP BAI3.OUT 4
Bài 1: Số nguyên tố
Một số được gọi là số nguyên tố khi số tự nhiên đó chỉ có hai ước số dương phân biệt là 1 và chính nó. Ví dụ: Số 3: Các ước của 3 là 1, 3.
*Dữ liệu vào:
Vào từ tệp văn bản BAI1.INP, gồm 1 dòng ghi số N (2 <=N < 1000).
* Kết quả ra:
Ghi ra tệp văn bản BAI1.OUT: là các số nguyên tố có giá trị < N.
* Ví dụ:
Bài 2: Dãy số
Cho số tự nhiên N và dãy số a1, a2...,an, hãy:
a, Cho biết Giá trị và vị trí của phần tử lớn nhất trong dãy số.
b, Tính giá trị trung bình cộng của các số có giá trị lẻ ở vị trí chẵn trong dãy.
*Dữ liệu vào:
Vào từ tệp văn bản BAI2.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ả ra:
Ghi ra tệp văn bản BAI2.OUT, gồm 2 dòng:
BAI1.INP BAI1.OUT
5 2, 3
- 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: Sắp xếp
Viết chương trình nhập vào 1 mảng gồm n số nguyên dương và in ra mảng đó sau khi sắp xếp theo thứ tự tăng dần.
*Dữ liệu vào:
Vào từ tệp văn bản BAI3.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 bởi 1 dấu cách.
* Kết quả ra:
Ghi ra tệp văn bản BAI3.OUT, gồm 1 dòng: In ra mảng đã sắp xếp.
* Ví dụ:
BAI3.INP BAI3.OUT
3 4 2 1
1 2 4
---Hết---
Thí sinh không được sử dụng tài liệu, cán bộ không giải thích gì thêm
ĐÁ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:= 2 to n do Begin
Dem:=0;
For j:= 1 to i do if i mod j = 0 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 do Begin
Readln(f, a[i]);
End;
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;
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 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:= 1 to n do Readln(f,a[i]);
Close(f)
For i:=1 to n-1 do Begin
Max:=i
For j:= i to n do
if (a[j]>a[max] then j:=max tg:=a[i];
a[i]:=a[max];
a[max]:= tg;
end;
for i:= 1 to n do writeln(g, a[i]);
readln;
END.