1. Trang chủ
  2. » Giáo án - Bài giảng

Download đề và đáp án thi học sinh giỏi môn tin học lớp 11 2008 2009 tỉnh quảng bình (khối không chuyên)

4 256 3

Đ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 4
Dung lượng 43,5 KB

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

Nội dung

Sở GIáO DụC Và ĐàOnăm học 2008-2009 môn: tin học – KHốI không CHUYÊN Đề chính thức SBD Thời gian 180 phút, không kể thời gian giao đề đề ra Sử dụng ngôn ngữ lập trình Pascal để lập tr

Trang 1

Sở GIáO DụC Và ĐàO

năm học 2008-2009

môn: tin học – KHốI không CHUYÊN

Đề chính thức

SBD Thời gian 180 phút, không kể thời gian giao

đề

đề ra

Sử dụng ngôn ngữ lập trình Pascal để lập trình giải các bài toán sau:

Câu 1 (3,0 điểm): Tính tổng giá trị các chữ số TONG.PAS

Cho một số nguyên dơng N

Yêu cầu: Hãy 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 TONG.INP có cấu trúc nh sau:

- Dòng 1: Ghi số nguyên dơng N (10 < N < 109)

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

- Dòng 1: Ghi ra tổng giá trị các chữ số của N

Ví dụ:

Cho một xâu St gồm các kí tự từ 'a' 'z' có độ dài tối đa không quá

255 kí tự.

Yêu cầu: Hãy tìm tất cả các kí tự xuất hiện trong xâu St ít nhất hai lần Dữ liệu vào: Cho trong file văn bản KITU.INP có cấu trúc nh sau:

- Dòng 1: Ghi các kí tự của xâu St, các kí tự đợc viết liền nhau

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

- Dòng 1: Nếu không tìm đợc kí tự thỏa mãn yêu cầu thì ghi số -1 Ngợc lại

thì ghi các kí tự tìm đợc theo thứ tự tăng dần của mã ASCII, các kí tự ghi liền nhau.

Ví dụ:

KITU.INP KITU.OUT KITU.INP KITU.OUT hchcsuca

Câu 3 (3,5 điểm): Sắp xếp dãy số giảm dần SXDS.PAS

Cho dãy số gồm N phần tử có giá trị nguyên dơng a1, a2, , aN

Yêu cầu: Hãy sắp xếp dãy số theo thứ tự giảm dần.

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

- Dòng 1: Ghi số nguyên dơng N (1 ≤ N ≤ 32000).

- Dòng 2: Ghi N số nguyên dơng xi là giá trị của các phần tử trong dãy Các số

đợc ghi cách nhau ít nhất một dấu cách (0 < xi ≤ 16000; 1 ≤ i ≤ N).

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

- Dòng 1: Ghi N số nguyên dơng là giá trị của N phần tử trong dãy sau khi đã

sắp xếp Các số đợc ghi cách nhau ít nhất một dấu cách.

Giới hạn thời gian thực hiện chơng trình không quá 0,5 giây đối với một bộ dữ liệu vào Trong đó có 85% bộ dữ liệu vào có giá trị của N> 16000.

Ví dụ:

Trang 2

SXDS.INP SXDS.OUT 7

6 9 2 10 2

16000 1

16000 10 9 6 2 2 1

==== Hết ====

Sở GIáO DụC Và ĐàO

năm học 2008-2009

môn: tin học – KHốI không CHUYÊN Hớng dẫn chấm

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 bài có 3 điểm thì giám khảo phải tạo 6 bộ test.

- Đối với câu 3: Giới hạn thời gian thực hiện chơng trình không quá 0,5 giây đối với một bộ dữ liệu vào Trong đó có 85% bộ dữ liệu vào

có giá trị của N> 16000.

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

Câu 1 (3,0 điểm): Tính tổng giá trị các chữ số

Program tongcs;

Const fi='Tong.inp';

fo='Tong.out';

Var N:Longint;

Procedure Doc;

Var f:Text;

Begin

Assign(f,fi);

Reset(f);

Readln(f,N);

Close(f);

End;

Function Tong:Longint;

Var T:Longint;

Begin

T:=0;

While N > 0 do

Begin

T:=T+N mod 10;

N:= N Div 10;

End;

Tong:=T;

End;

Procedure Ghi;

Var f:Text;

Begin

Assign(f,fo);

ReWrite(f);

Write(f,tong);

Close(f);

End;

BEGIN

Doc; Ghi;

END

Trang 3

C©u 2 (3,5 ®iÓm): T×m kÝ tù

Program Tim_ki_tu;

Const fi='Kitu.inp';

fo='Kitu.out';

Type mmc=Array['a' 'z'] of Byte;

Var A:mmc;

St:String;

f:text;

Procedure Doc;

begin

assign(f,fi);

reset(f);

readln(f,st);

close(f);

end;

procedure xl;

var i:byte;

begin

fillchar(a,sizeof(a),0);

for i:=1 to length(st) do a[st[i]]:=a[st[i]] +1;

end;

procedure xuat;

var ch:char; kt:boolean;

begin

assign(f,fo);

rewrite(f);

kt:=false;

for ch:='a' to 'z' do

if a[ch]>=2 then

begin

kt:=true;

write(f,ch);

end;

if kt=false then write(f,-1);

close(f);

end;

Begin

doc;xl;xuat;End

C©u 3 (3,5 ®iÓm): S¾p xÕp d·y sè gi¶m dÇn

Program Sap_xep_day_so;

Const fi='SXDS.inp';

fo='SXDS.out';

MaxN=16000;

Type mmc = Array[1 MaxN] of word;

Var A:mmc;

N:word;

Procedure Doc;

Var f:Text;

i,so:word;

Begin

Fillchar(A,sizeof(A),0);

Assign(f,fi);

Reset(f);

Readln(f,N);

For i:=1 to N do

Begin

Read(f,so);

A[so]:= A[so] + 1;

End;

Close(f);

End;

Procedure Ghi;

Var i,j:Word;

f:Text;

Begin

Assign(f,fo);

Rewrite(f);

Trang 4

For i:=maxn downto 1 do

For j:=1 to A[i] do Write(f,i,' ');

Close(f);

End;

BEGIN

Doc; Ghi;

END

Ngày đăng: 13/10/2015, 16:15

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