1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Đề thi học sinh giỏi lớp 12 THPT tỉnh Quảng Bình năm học 2012 - 2013 môn Tin học - Vòng 1 (Có đáp án)

6 509 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 6
Dung lượng 53 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Dữ liệu ra: Ghi ra file văn bản SAPXAU.OUT, theo cấu trỳc: - Dũng 1: Ghi cỏc từ của xõu ký tự sau khi được sắp xếp.. Hai số được ghi cỏch nhau ớt nhất một dấu cỏch.. Cỏc số được ghi cỏch

Trang 1

Sở Gd&Đt kỳ thi CHọN học sinh giỏi cấp tỉnh lớp 12 thpt Quảng bình năm học 2012 - 2013

Môn thi: tin học - Vòng I

Đề thi chính thức (Khóa thi ngày 11 tháng 10 năm 2012)

Số Báo Danh: Thời gian làm bài: 180 phút (không kể thời gian giao đề)

ĐỀ 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:

Người ta định nghĩa: Từ là một nhúm ký tự đứng liền nhau.

Cho một xõu St gồm cỏc ký tự lấy từ tập ‘a’ ‘z’ và dấu cỏch Xõu khụng quỏ 20 từ, mỗi từ dài khụng quỏ 10 ký tự.

Yờu cầu: Sắp xếp cỏc từ của xõu ký tự theo thứ tự khụng giảm của độ dài cỏc từ

trong xõu St.

Dữ liệu vào: Cho trong file văn bản SAPXAU.INP, cú cấu trỳc:

- Dũng 1: Ghi một xõu ký tự St (cú ớt nhất 1 từ)

Dữ liệu ra: Ghi ra file văn bản SAPXAU.OUT, theo cấu trỳc:

- Dũng 1: Ghi cỏc từ của xõu ký tự sau khi được sắp xếp Cỏc từ được ghi cỏch

nhau đỳng một dấu cỏch.

Vớ dụ:

acb abcde abcd abc acb abc abcd abcde

Cho dóy số nguyờn dương gồm N phần tử A1, A2,…, An

Yờu cầu: Hóy liệt kờ tất cả cỏc dóy con gồm cỏc phần tử đứng liờn tiếp của dóy

trờn sao cho tổng giỏ trị cỏc phần tử của dóy con đú bằng M.

Dữ liệu vào: Cho trong file văn bản DAYCON.INP, cú cấu trỳc như sau:

- Dũng 1: Ghi 2 số nguyờn dương N và M Hai số được ghi cỏch nhau ớt nhất

một dấu cỏch (1 N 1000; 1 M 32000)

- Dũng 2: Ghi N số nguyờn dương Ai Cỏc số được ghi cỏch nhau ớt nhất một dấu cỏch (1 Ai 10000 )

Dữ liệu ra: Ghi ra file văn bản DAYCON.OUT, gồm nhiều dũng Mỗi dũng ghi

một dóy con tỡm được Cỏc dóy con được ghi theo thứ tự xuất hiện của nú trờn dóy ban đầu Cỏc số trờn cựng một dũng được ghi cỏch nhau ớt nhất một dấu cỏch.

Nếu khụng tỡm được dóy con thỏa món điều kiện thỡ ghi ra file một số: 0.

Vớ dụ:

11 6

1 4 3 1 2 1 6 5 1 4 1

3 1 2 6

5 1

1 4 1

5 6

1 2 5 2 1

0

≤≤≤≤

≤≤

Trang 2

Trong một Hội trại hè do Tỉnh Đoàn tổ chức, có N học sinh tham gia, trong

đó, có một số học sinh quen nhau Một số học sinh được gọi là cùng 1 nhóm bạn, nếu bất kì một học sinh nào thuộc nhóm đều có quen ít nhất 1 học sinh khác trong cùng nhóm đó.

Yêu cầu: Hãy đếm xem có bao nhiêu nhóm bạn trong N học sinh tham gia Hội trại.

Dữ liệu vào: Cho trong file văn bản NHOMBAN.INP, có cấu trúc như sau:

- Dòng 1: Ghi số nguyên dương N, là số lượng học sinh tham gia Hội trại

(1 ≤ N ≤ 100).

- Trong N dòng tiếp theo: Mỗi dòng ghi N số nguyên dương a[i,j] với ý nghĩa:

a[i,j] = 1 nếu học sinh i quen học sinh j (với i ≠j).

a[i,j] = 0 nếu học sinh i không quen học sinh j (với i ≠j)

a[i,i] = 1 (học sinh i được xem là quen bản thân nó).

Các số trên cùng một dòng được ghi cách nhau ít nhất một dấu cách

Dữ liệu ra: Ghi ra file văn bản NHOMBAN.OUT, theo cấu trúc như sau:

- Dòng 1: Ghi số nguyên dương K, là số lượng nhóm bạn tìm được trong N học

sinh tham gia Hội trại.

Ví dụ:

NHOMBAN.INP NHOMBAN.OUT 5

1 0 0 1 1

0 1 1 0 0

0 1 1 0 0

1 0 0 1 1

1 0 0 1 1

2

==HẾT==

Trang 3

Së GD&§T kú thi CHäN häc sinh giái cÊp tØnh líp 12 THPT Qu¶ng b×nh n¨m häc 2012 - 2013

M«n thi: tin häc - Vßng i

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.

- Chương trình học sinh đúng một bộ test, giám khảo cho 0,5 điểm Như vậy, nếu một câu có 3 điểm thì giám khảo phải tạo 6 bộ test.

- Với mỗi câu, giám khảo phải tạo được ít nhất một bộ test có không gian dữ liệu lớn.

- Riêng Câu 1, thứ tự sắp xếp của HS có thể khác với đáp án Nếu kết quả của học sinh khác đáp án nhưng vẫn đúng thì giám khảo vẫn cho điểm tối đa.

II Chương trình gợi ý:

Câu 1: (3,0 điểm) Sắp xếp xâu

program sap;

const f1='sapxau.inp';

f2='sapxau.out';

type mm=array[1 20] of string;

var a:mm;

s,st,tg:string;

d:integer;

f:text;

procedure doc;

begin

assign(f,f1);

reset(f);

readln(f,s);

close(f);

end;

procedure xl;

var x,j,i:integer;

n:byte;

begin

n:=length(s);

while s[1]=' ' do delete(s,1,1);

while s[n]=' ' do delete(s,n,1);

x:=pos(' ',s);

while x>0 do

begin

delete(s,x,1);

x:=pos(' ',s);

end;

s:=s+' ';

for i:=1 to 20 do a[i]:='';

i:=0;

while s<>'' do

begin

i:=i+1;

a[i]:=copy(s,1,pos(' ',s)-1);

delete(s,1,pos(' ',s));

end;

d:=i;

{ for j:=1 to d do

begin

Trang 4

i:=1;st:='';

while (s[i]<>' ')do

begin

st:=st+s[i];

i:=i+1;

end;

delete(s,1,i);

a[j]:=a[j]+st;

end;}

for i:=1 to d-1 do

for j:=i+1 to d do

if length(a[i])>length(a[j]) then

begin

tg:=a[i];a[i]:=a[j];a[j]:=tg;

end;

end;

procedure xuat;

var i:integer;

begin

assign(f,f2);

rewrite(f);

for i:=1 to d do write(f,a[i],' ');

close(f);

end;

begin

doc;xl;xuat;

end

Câu 2: (3,5 điểm) Dãy con liên tiếp

program day_con;

const fi='daycon.inp';

f0='daycon.out';

type mm=array[1 10000] of integer;

var f:text;

a:mm;

n,m:integer;

procedure doc;

var i:integer ;

begin

assign(f,fi);

reset(f);

read(f,n,m);

for i:=1 to n do read(f,a[i]);

close(f);

end;

procedure xuli;

var i,j,l:integer;

t:longint;

kt:boolean;

begin

assign(f,f0);

rewrite(f);

kt:=false;

for i:=1 to n do

begin

j:=i;

t:=0;

while (t<m )and (j<=n) do

begin

t:=t+a[j];

j:=j+1;

end;

if t=m then

Trang 5

begin

kt:=true;

for l:=i to j-1 do write(f,a[l],' ');

writeln(f);

end;

end;

if kt=false then write(f,0);

close(f);

end;

begin

doc; xuli;

end

Câu 3: (3,5 điểm) Đếm nhóm bạn trong Hội trại

const fi='nhomban.inp';

fo='nhomban.out';

maxn=100;

type mhc=array[1 maxn,1 maxn] of byte;

mmc=array[1 maxn] of byte;

var a:mhc;

b:mmc;

n,stp:integer;

f:text;

Procedure doc;

var i,j:integer;

Begin

assign(f,fi);

reset(f);

readln(f,n);

for i:=1 to n do

begin

for j:=1 to n do read(f,a[i,j]);

readln(f);

end;

close(f);

End;

Procedure xl;

var i,j,k:integer;

Begin

for i:=1 to n do b[i]:=n+1;

stp:=0;

for k:=1 to n do

begin

if b[k]=n+1 then

begin

stp:=stp+1;

b[k]:=stp;

end;

for i:=1 to n do

begin

if b[i] = stp then

for j:=1 to n do

if (a[i,j]=1) and (b[j]=n+1) then b[j]:=stp;

end;

end;

end;

procedure xuatstp;

begin

assign(f,fo);

rewrite(f);

writeln(f,stp);

close(f);

end;

Begin

Trang 6

doc; xl;

xuatstp;

End

Ngày đăng: 28/07/2015, 09:28

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w