Đề và đáp án thi tuyển sinh môn Tin học vào trường chuyên Quảng Bình năm 20152016; Đề thi vào lớp 10 chuyên tin học trường chuyên Võ Nguyên Giáp; Sử dụng ngôn ngữ lập trình Pascal để lập trình giải các bài toán sau; Sử dụng ngôn ngữ lập trình Pascal Câu 1: (2,0 điểm) Diện tích hình chữ nhật CHUNHAT.PAS Cho hai số nguyên dương a, b lần lượt là độ dài hai cạnh của hình chữ nhật. Yêu cầu: Tính diện tích hình chữ nhật. Dữ liệu vào: Nhập hai số a và b từ bàn phím (0 < a, b ≤ 32766). Dữ liệu ra: In ra màn hình số K là diện tích hình chữ nhật tính được. Ví dụ: Dữ liệu vào: Nhap vao do dai canh thu nhat: 4 Nhap vao do dai canh thu hai: 3 Dữ liệu ra: Dien tich hinh chu nhat la: 12 Câu 2: (2,0 điểm) Số chính phương SOCP.PAS Người ta định nghĩa: Số chính phương là một số nguyên dương mà căn bậc hai của nó cũng là một số nguyên dương. Cho một số nguyên K. Yêu cầu: Kiểm tra số nguyên K có phải là số chính phương không. Dữ liệu vào: Nhập số K từ bàn phím (0 < K ≤ 2×109). Dữ liệu ra: Nếu K là số chính phương thì ghi ra dòng chữ “So chinh phuong”, ngược lại ghi ra dòng chữ “Khong phai so chinh phuong”. Ví dụ: Dữ liệu vào: Nhap vao mot so nguyen duong: 9 Dữ liệu ra: So chinh phuong Câu 3: (2,0 điểm) Tổng của các chữ số CHUSO.PAS Cho một số tự nhiên N Yêu cầu: Tính tổng giá trị các chữ số của N. Dữ liệu vào: Cho trong file văn bản CHUSO.INP, có cấu trúc như sau: Dòng 1: Ghi số tự nhiên N (N< 2×109). Dữ liệu ra: Ghi ra file văn bản CHUSO.OUT, theo cấu trúc như sau: Dòng 1: Ghi số nguyên dương K là tổng giá trị các chữ số của N. Ví dụ: CHUSO.INP CHUSO.OUT 168 15 Câu 4: (2,0 điểm) Số nguyên tố SONT.PAS Số nguyên dương N được gọi là số nguyên tố nếu N chỉ có 2 ước số là 1 và chính nó. Ví dụ: 17 là số nguyên tố vì 17 chỉ có hai ước số là 1 và 17. Cho 2 số nguyên dương P và Q. Yêu cầu: Liệt kê tất cả các số nguyên tố nằm trong đoạn P, Q. Dữ liệu vào: Cho trong file văn bản SONT.INP có cấu trúc như sau: Dòng 1: Ghi 2 số P Q, hai số được ghi cách nhau ít nhất một dấu cách (0< P ≤ Q ≤ 65535). Dữ liệu ra: Ghi ra file văn bản SONT.OUT theo cấu trúc như sau: Dòng 1: Ghi số nguyên dương D là số lượng các số nguyên tố tìm được. Dòng 2: Ghi D số nguyên tố tìm được, các số được ghi cách nhau ít nhất một dấu cách và theo thứ tự tăng dần của giá trị. Ví dụ: SONT.INP SONT.OUT SONT.INP SONT.OUT 1 7 4 2 3 5 7 10 10 0 Chú ý: Chương trình thực hiện không quá 3 giây với mọi bộ dữ liệu vào Câu 5: (2,0 điểm) Dãy tăng liên tiếp dài nhất DAYTANG.PAS Người ta định nghĩa: Dãy số a1, a2, ..., aN (N > 1) được gọi là dãy tăng nếu a1< a2 1) được gọi là dãy con liên tiếp của dãy a1, a2, ..., aN nếu b1, b2, ..., bM theo thứ tự được lấy từ các phần tử liên tiếp của dãy số a1, a2, ..., aN. Dãy số b1, b2, ..., bM được gọi là dãy con tăng liên tiếp dài nhất của dãy a1, a2, ..., aN nếu thỏa mãn đồng thời ba điều kiện sau: + b1, b2, ..., bM là dãy con liên tiếp của a1, a2, ..., aN; + b1, b2, ..., bM là dãy tăng; + M lớn nhất. Ví dụ: Cho dãy số A=(1 3 5 4 6) ta có 4 dãy con tăng liên tiếp là: (1 3); (3 5); (1 3 5); (4 6) và dãy con tăng liên tiếp dài nhất là (1 3 5) Cho dãy số nguyên gồm N phần tử a1, a2, ..., aN. Yêu cầu: Tìm số lượng phần tử của dãy con tăng liên tiếp dài nhất có trong dãy số đã cho. Dữ liệu vào: Cho trong file văn bản DAYTANG.INP có cấu trúc như sau: Dòng 1: Ghi số N (1 < N ≤ 10000). Dòng 2: Ghi N số a1, a2, ..., aN các số cách nhau ít nhất một dấu cách (0 ≤ ai ≤ 32767, 1 < i ≤ N) Dữ liệu ra: Ghi ra file văn bản DAYTANG.OUT theo cấu trúc như sau: Dòng 1: Ghi số K là số lượng phần tử của dãy con tăng liên tiếp dài nhất tìm được. Nếu không tồn tại dãy con tăng liên tiếp thì ghi số 1.
Trang 1SỞ GD&ĐT QUẢNG BÌNH KÌ THI TUYỂN SINH VÀO LỚP 10 THPT
NĂM HỌC 2015-2016
ĐỀ CHÍNH THỨC Khóa ngày 19-6-2015
Môn: Tin học (chuyên)
SBD……… Thời gian: 150 phút (không kể thời gian giao đề)
Đề gồm có 02 trang
ĐỀ RA
Sử dụng ngôn ngữ lập trình Turbo Pascal để lập trình giải các bài toán sau:
Câu 1: (2,0 điểm) Diện tích hình chữ nhật CHUNHAT.PAS
Cho hai số nguyên dương a, b lần lượt là độ dài hai cạnh của hình chữ nhật
Yêu cầu: Tính diện tích hình chữ nhật
Dữ liệu vào: Nhập hai số a và b từ bàn phím (0 < a, b ≤ 32766)
Dữ liệu ra: In ra màn hình số K là diện tích hình chữ nhật tính được
Ví dụ: Dữ liệu vào: Nhap vao do dai canh thu nhat: 4
Nhap vao do dai canh thu hai: 3
Dữ liệu ra: Dien tich hinh chu nhat la: 12 Câu 2: (2,0 điểm) Số chính phương SOCP.PAS
Người ta định nghĩa: Số chính phương là một số nguyên dương mà căn bậc hai của nó cũng là một số nguyên dương
Cho một số nguyên K
Yêu cầu: Kiểm tra số nguyên K có phải là số chính phương không
Dữ liệu vào: Nhập số K từ bàn phím (0 < K ≤ 2×109)
Dữ liệu ra: Nếu K là số chính phương thì ghi ra dòng chữ “So chinh phuong”,
ngược lại ghi ra dòng chữ “Khong phai so chinh phuong”
Ví dụ: Dữ liệu vào: Nhap vao mot so nguyen duong: 9
Dữ liệu ra: So chinh phuong
Câu 3: (2,0 điểm) Tổng của các chữ số CHUSO.PAS
Cho một số tự nhiên N
Yêu cầu: Tính tổng giá trị các chữ số của N
Dữ liệu vào: Cho trong file văn bản CHUSO.INP, có cấu trúc như sau:
- Dòng 1: Ghi số tự nhiên N (N< 2×109)
Dữ liệu ra: Ghi ra file văn bản CHUSO.OUT, theo cấu trúc như sau:
- Dòng 1: Ghi số nguyên dương K là tổng giá trị các chữ số của N
Ví dụ:
CHUSO.INP CHUSO.OUT
Trang 2Câu 4: (2,0 điểm) Số nguyên tố SONT.PAS
Số nguyên dương N được gọi là số nguyên tố nếu N chỉ có 2 ước số là 1 và chính nó
Ví dụ: 17 là số nguyên tố vì 17 chỉ có hai ước số là 1 và 17
Cho 2 số nguyên dương P và Q
Yêu cầu: Liệt kê tất cả các số nguyên tố nằm trong đoạn [P, Q]
Dữ liệu vào: Cho trong file văn bản SONT.INP có cấu trúc như sau:
- Dòng 1: Ghi 2 số P Q, hai số được ghi cách nhau ít nhất một dấu cách
(0< P ≤ Q ≤ 65535)
Dữ liệu ra: Ghi ra file văn bản SONT.OUT theo cấu trúc như sau:
- Dòng 1: Ghi số nguyên dương D là số lượng các số nguyên tố tìm được
- Dòng 2: Ghi D số nguyên tố tìm được, các số được ghi cách nhau ít nhất một
dấu cách và theo thứ tự tăng dần của giá trị
Ví dụ:
SONT.INP SONT.OUT SONT.INP SONT.OUT
1 7 4
2 3 5 7
10 10 0
Chú ý: Chương trình thực hiện không quá 3 giây với mọi bộ dữ liệu vào
Câu 5: (2,0 điểm) Dãy tăng liên tiếp dài nhất DAYTANG.PAS
Người ta định nghĩa:
Dãy số a1, a2, , aN (N > 1) được gọi là dãy tăng nếu a1< a2 <a3< < aN
Dãy số b1, b2, , bM (M > 1) được gọi là dãy con liên tiếp của dãy a1, a2, , aN
nếu b1, b2, , bM theo thứ tự được lấy từ các phần tử liên tiếp của dãy số a1, a2, , aN
Dãy số b1, b2, ., bM được gọi là dãy con tăng liên tiếp dài nhất của dãy a1, a2, , aN nếu thỏa mãn đồng thời ba điều kiện sau:
+ b1, b2, , bM là dãy con liên tiếp của a1, a2, , aN;
+ b1, b2, , bM là dãy tăng;
+ M lớn nhất
Ví dụ: Cho dãy số A=(1 3 5 4 6) ta có 4 dãy con tăng liên tiếp là: (1 3); (3 5); (1 3 5); (4 6) và dãy con tăng liên tiếp dài nhất là (1 3 5)
Cho dãy số nguyên gồm N phần tử a1, a2, , aN
Yêu cầu: Tìm số lượng phần tử của dãy con tăng liên tiếp dài nhất có trong dãy
số đã cho
Dữ liệu vào: Cho trong file văn bản DAYTANG.INP có cấu trúc như sau:
- Dòng 1: Ghi số N (1 < N ≤ 10000)
- Dòng 2: Ghi N số a1, a2, , aN các số cách nhau ít nhất một dấu cách
(0 ≤ ai ≤ 32767, 1 < i ≤ N)
Dữ liệu ra: Ghi ra file văn bản DAYTANG.OUT theo cấu trúc như sau:
- Dòng 1: Ghi số K là số lượng phần tử của dãy con tăng liên tiếp dài nhất tìm
được Nếu không tồn tại dãy con tăng liên tiếp thì ghi số 1
Ví dụ:
DAYTANG.INP DAYTANG.OUT
5
1 3 5 4 6
3
Chú ý: Chương trình thực hiện không quá 3 giây với mọi bộ dữ liệu vào
===== Hết =====
Trang 3HƯỚNG DẪN CHÁM VÀ ĐÁP ÁN
ĐỀ THI TUYỂN SINH VÀO LỚP 10 THPT NĂM HỌC 2015 - 2016
MÔN: TIN HỌC (CHUYÊN)
(Đáp án gồm 03 trang)
I- Phương pháp:
- Giám khảo tạo bộ dữ liệu vào, tính toán kết quả Thực hiện chương trình của học sinh và so sánh kết quả
- Giám khảo có thể sử dụng chương trình gợi ý dưới đây để tính toán kết quả của dữ liệu vào
- Đối với mỗi câu, giám khảo phải tạo được 04 bộ test, chương trình học sinh đúng 01 bộ test giám khảo cho 0.5 điểm Trong 04 bộ test giám khảo phải tạo được ít nhất 01 bộ test có dữ liệu lớn
- Đối với câu 4, 5 chương trình học sinh thực hiện không quá 3 giây với tất
cả các bộ test
II- Chương trình gợi ý:
program chunhat;
uses crt;
var s,a,b:longint;
begin
clrscr;
write('Nhap vao do dai canh thu nhat:');
readln(a);
write('Nhap vao do dai canh thu hai:');
readln(b);
s:=a;
s:=s*b;
writeln('Dien tich hinh chu nhat la: ',s);
readln;
end
program So_cp;
uses crt;
var k,l:longint;
r:real;
begin
clrscr;
write('Nhap vao mot so nguyen duong: ');
readln(k);
r:=sqrt(k);
l:=trunc(r);
Trang 4if l=r then write('So chinh phuong')
else write('Khong phai so chinh phuong'); readln;
end
Program chuso;
const fi='chuso.inp';
fo='chuso.out';
var s:string;
i,j,k,tong:integer;
f:text;
Begin
assign(f,fi);
reset(f);
readln(f,s);
close(f);
tong:=0;
For i:=1 to length(s) do
Begin
val(s[i],k,j);
tong:=tong+k;
end;
assign(f,fo);
rewrite(f);
writeln(f,tong);
close(f);
end
Program sont;
const fi='sont.inp';
fo='sont.out';
var a:array[1 10000] of word;
q,p,i,n:word;
f:text;
Function nt(n:word):boolean;
var nto:boolean;
k:word;
begin
nto:=true;
k:=2;
while (nto) and (k<=trunc(sqrt(n))) do
begin
if n mod k = 0 then nto:=false;
k:=k+1;
Trang 5end;
nt:=nto;
if n<2 then nt:=false;
end;
Begin
assign(f,fi);
reset(f);
readln(f,p,q);
close(f);
n:=0;
for i:=p to q do
if nt(i) then
begin
n:=n+1;
a[n]:=i;
end;
assign(f,fo);
rewrite(f);
writeln(f,n);
for i:=1 to n do
write(f,a[i],' ');
close(f);
end
Program daytang;
const fi='daytang.inp';
fo='daytang.out';
var a:array[1 10000] of word;
max,i,j,k,tong,n:word;
f:text;
Begin
assign(f,fi);
reset(f);
readln(f,n);
for i:=1 to n do
read(f,a[i]);
close(f);
max:=1;
i:=1;
while (i<=n) do
Begin
tong:=1;
while (a[i+1]>a[i]) and (i<n) do begin
Trang 6i:=i+1;
tong:=tong+1;
end;
if tong>max then max:=tong; i:=i+1;
end;
assign(f,fo);
rewrite(f);
writeln(f,max);
close(f);
end