1. Trang chủ
  2. » Tất cả

De dap an code mon chuyen tin tuyen sinh lop 10 nam hoc 1920 Chuyên lào cai

8 8 0
Tài liệu đã được kiểm tra trùng lặp

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề De đáp án code môn chuyên tuyển sinh lớp 10 năm học 1920 Chuyên Lào Cai
Trường học Trường THPT Chuyên Lào Cai
Chuyên ngành Tin học
Thể loại Đề thi
Năm xuất bản 2019-2020
Thành phố Lào Cai
Định dạng
Số trang 8
Dung lượng 524,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

Microsoft Word TIN HOC DE CHINH THUC 1 SỞ GDĐT LÀO CAI KỲ THI TUYỂN SINH LỚP 10 THPT CHUYÊN NĂM HỌC 2019 2020 Môn TIN HỌC (chuyên Toán Tin) Thời gian 150 phút, không kể thời gian giao đề Đề thi gồm 0.

Trang 1

1

NĂM HỌC 2019-2020

Môn: TIN HỌC (chuyên Toán-Tin) Thời gian: 150 phút, không kể thời gian giao đề

Đề thi gồm: 03 trang

Thí sinh sử dụng ngôn ngữ lập trình Pascal hoặc C++ để viết chương trình trên giấy thi giải các bài toán sau:

Câu 1:(3 điểm) Viết các chương trình thực hiện:

1, Tính tổng 𝑆 = 1 − + − … + (−1)

( ) Với n, x là số nguyên dương được nhập từ bàn phím

2, Số “Siêu chính phương” là số có dạng 𝑁 = 𝑖 + 𝑗 + 𝑘 + 𝑙 𝑣ớ𝑖 𝑁 ≤ 10 Viết chương trình nhập vào số nguyên dương N, kiểm tra xem số đó là “Siêu chính phương” hay không? Nếu là đúng thì in ra màn hình dòng “Siêu chính phương” còn không in ra “Không siêu chính phương”

Ví dụ: 53=22+22+32+62; 94=22+42+52+72 nên 53, 94 là các số siêu chính phương Câu 2(4 điểm): Cho dãy dãy số nguyên 𝑎 , 𝑎 , … 𝑎 (𝑛 ≤ 1000) và số nguyên dương K Viết chương trình thực hiện các yêu cầu sau:

1, Nhập dãy, in dãy theo chiều đảo ngược từ cuối lên

2, Số “May mắn” là số có ước nguyên tố lớn nhất bằng K Ví dụ số 10 có các ước

1, 2, 5, số 3 có ước là 1, 3 với K=5 thì số 10 là số “May mắn” In các số “May mắn” của dãy ra màn hình

3, Dãy đối xứng là dãy khi ta viết ngược từ cuối dãy về đầu dãy thì nó vẫn là dãy ban đầu Ví dụ: 1 1 2 2 1 1 là dãy đối xứng Kiểm tra xem dãy đã cho có phải dãy đối xứng hay không? Nếu dãy là đối xứng thì in ra “Yes” ngược lại in ra “No”

Ví dụ:

N=7 K=5

15 5 3 7 9 12 10

Dãy đảo ngược: 10 12 9 7 3 5 15

Số may mắn: 12 10 Dãy đối xứng: No

Câu 3 (1 điểm) Chọn quà

Sắp đến tết, trường bạn An phát động đợt quyên góp ủng hộ các bạn nhỏ vùng cao Tất cả học sinh trong trường đều tham gia rất nhiệt tình; bạn thì ủng hộ quần

áo, bạn thì ủng hộ bánh kẹo, sách vở,… Vì số quà ủng hộ rất nhiều nên nhà trường

dự định sẽ mang các món quà này đi ủng hộ ở nhiều nơi Do có nhiều nơi để đi nên đội tình nguyện của nhà trường sẽ chia thành các nhóm khác nhau; mỗi nhóm sẽ đi

ĐỀ CHÍNH THỨC

Trang 2

2

một nơi và mỗi nơi chỉ có một xe chở đồ đi cùng Các nhóm tình nguyện sẽ tự chọn các món quà và sắp xếp lên xe Nhóm của An cũng được phân cho một chiếc xe để chở quà Xe chỉ có thể chở được hàng có tổng tải trọng không quá K, các bạn trong nhóm muốn chọn các món quà để xếp lên xe sao cho số lượng quà là nhiều nhất có thể Vì thời gian không còn nhiều nên nhóm An muốn nhờ em chọn giúp những món quà sẽ xếp lên xe sao cho được nhiều quà nhất

Dữ liệu vào:

- Hai số N, K - là số món quà và tải trọng tối đa của xe (N 10 ,K 10 3  8)

i

a 10 (i 1,2, N) là trọng lượng các món quà

Kết quả ra: Trọng lượng của từng món quà được chọn

Ví dụ:

Nhập vào số: N=10, K=15

Nhập dãy số: 2 14 3 1 4 11

31 21 5 8

Chon cac mon qua co trong luong: 1 2 3 4 5

Câu 4(1 điểm) Quà tặng ngày 01-06

Nhân dịp ngày Quốc tế thiếu nhi 01-06 siêu thị ABC tổ chức chương trình trò chơi cho các bạn học sinh như sau: Trong siêu thị có n mặt hàng đươc xếp thành một hàng, mỗi mặt hàng có giá trị là ai nhưng do một số mặt hàng rất đặc biệt nên siêu thị để giá âm Các bạn học sinh được phép chọn một số mặt hàng xếp liên tiếp nhau trong n mặt hàng Người thắng cuộc là người chọn được dãy các mặt hàng liên tiếp nhau có tổng giá trị lớn nhất

Dữ liệu vào: Nhập từ bàn phím

Dãy số nguyên 𝑎 , 𝑎 , … 𝑎 (𝑛 ≤ 10 ) và số N

Dữ liệu ra: Là tổng giá trị lớn nhất của các mặt hàng 𝑎 + 𝑎 + ⋯ +𝑎 𝑣ớ𝑖 𝑖 < 𝑗

Lưu ý:

1, Nếu xử lí được bài toán với 𝑛 ≤ 100 được 0.5 điểm

2, Nếu xử lí được bài toán với 𝑛 ≤ 1000 được 0.75 điểm

3, Nếu xử lí được bài toán với 𝑛 ≤ 10 được 1.0 điểm

Ví dụ:

N= 10

1 3 -11 -5 7 -8 1 2 3 10

16 (Chọn các mặt hàng từ i=7 đến j=10)

Câu 5:(1 điểm) Bắt tay

Trong giờ đợt tập quân sự đầu năm của trường THPT chuyên Lào Cai các thầy cô dạy môn giáo dục Quốc phòng cho các bạn học sinh xếp thành 2 hàng song

Trang 3

3

song và quay mặt vào nhau: hàng thứ nhất có n học sinh, mỗi học sinh có chiều cao

là 𝑎 , 𝑎 , … 𝑎 (𝑛 ≤ 10 ) 0 < 𝑎 ≤ 200𝑐𝑚, hàng học sinh thứ 2 cũng có n học sinh chiều cao của mỗi học sinh tương ứng là 𝑏 , 𝑏 , … 𝑏 (𝑛 ≤ 10 ) 0 < 𝑏 ≤ 200𝑐𝑚 tất cả các bạn đều nhớ chính xác chiều cao của mình Các thầy cô tổ chức cho 2 hàng học sinh này bắt tay nhau theo nguyên tắc là các bạn có cùng chiều cao thì mới được bắt tay nhau Hỏi có bao nhiêu cái bắt tay được bắt? Bạn hãy viết chương trình tính số cái bắt tay

Dữ liệu vào: Nhập từ bàn phím

Dãy 𝑎 , 𝑎 , … 𝑎 (𝑛 ≤ 10 ) và 𝑏 , 𝑏 , … 𝑏 (𝑛 ≤ 10 ), số N

Dữ liệu ra: Ghi số cái bắt tay

Ví dụ: có n= 8 học sinh và chiều cao tương ứng của 2 hàng là:

Hàng 1: 7 4 2 8 6 4 2 4

Hàng 2: 3 7 2 1 2 7 1 4

Kết quả: Có 9 cái bắt tay được bắt

Giải thích: Có các cặp (a1,b2), (a1,b6), (a2,b8), (a3,b3), (a3, b5), (a6,b8), (a7,b3), (a7,b5), (a8,b8)

Chú ý:

- Thuật toán sử dụng 3 vòng lặp lồng nhau thì sẽ giải quyết được bài toán với 𝒏 ≤ 𝟏𝟎𝟎

- Thuật toán sử dụng 2 vòng lặp lồng nhau thì sẽ giải quyết được bài toán với 𝒏 ≤ 𝟏𝟎𝟎𝟎

- Thuật toán sử dụng 1 vòng lặp thì sẽ giải quyết được bài toán với 𝒏 ≤ 𝟏𝟎 𝟔

-Hết -

- Thí sinh không sử dụng tài liệu

- Cán bộ coi thi không giải thích gì thêm

SỞ GIÁO DỤC VÀ ĐÀO TẠO

LÀO CAI

ĐÁP ÁN – THANG ĐIỂM TUYỂN SINH VÀO LỚP 10 THPT CHUYÊN

Môn thi: Tin học – chuyên (Đáp án-thang điểm gồm có 06 trang)

Lưu ý:

- Học sinh có thể không sử dụng chương trình con để giải nhưng đúng vẫn cho đủ số điểm điểm

- Học sinh có cách giải khác, nhưng chính xác vẫn cho đủ số điểm

ĐỀ CHÍNH THỨC

Trang 4

4

Câu 1:(3 điểm)

( ) Với n, x là số nguyên dương được nhập từ bàn phím

Program tong;

Var s:real;

X,I,n: integer;

Begin

Writeln(‘nhap vao so n, x=’); readln(n,x);

S:=1; tu:=1;

For i:=1 to n do

Begin

Tu:=tu*x;

If I mod 2=0 then

S:=s+tu/(2*i+1)

Else

S:=s-tu/(2*i+1);

End;

Writeln(‘tong la’, s:6:2);

End

2, Số “Siêu chính phương” là số có dạng 𝑁 = 𝑖 + 𝑗 + 𝑘 + 𝑙 𝑣ớ𝑖 𝑁 ≤ 10 Viết

chương trình nhập vào số nguyên dương N, kiểm tra xem số đó là “Siêu chính

phương” hay không? Nếu là đúng thì in ra màn hình dòng “Siêu chính phương” còn

không in ra “Không siêu chính phương”

Ví dụ: 53=22+22+32+62; 94=22+42+52+72

Program sieuchinhphuong;

Var ok:boolean;

I,j,k,l,n: integer;

Begin

ok:=true;

For i:=1 to N do

if (sqr(i) <=N) and ok then

for j:=i to N do

if (sqr(i)+sqr(j) <=N) and ok then

For k:=j to N do

if (sqr(i)+sqr(j)+sqr(k) <=N) and ok then

For l:=k to N do

If (sqr(i)+ sqr(j)+ sqr(k) + sqr(l)= N) and ok then

begin

writeln(‘Sieu chinh phuong’);

ok:=false;

end;

if ok then write(‘Khong sieu chinh phuong’);

End

0,25 0.25

0.5 0.5

0.25

0.5 0.5

0.25

Trang 5

5

Chú ý: Nếu học sinh làm bằng 4 vòng for lồng thì chỉ được 1 điểm/1.5 điểm

For i:=1 to n do

For j:=1 to n do

For k:=1 to n do

For l:=1 to n do

If (sqr(i)+ sqr(j)+ sqr(k) + sqr(l)= N) then

begin

writeln(‘Sieu chinh phuong’);

ok:=false;

end;

if ok then write(‘Khong sieu chinh phuong’);

Câu 2(4 điểm): Cho dãy dãy số nguyên 𝑎 , 𝑎 , … 𝑎 (𝑛 ≤ 1000) và số nguyên

dương K Viết chương trình thực hiện các yêu cầu sau:

1, Nhập dãy, in dãy theo chiều đảo ngược từ cuối lên – 1 điểm

Program cau2;

Var a:array[1 10000] of integer;

I,n,k: integer;

Procedure nhap_in;

Begin

Writeln(‘nhap vao so n,k=’); readln(n,k);

For i:=1 to n do readln(a[i]);

For i:=n downto 1 do write(a[i],’ ‘);

End;

2, Số “May mắn” là số có ước nguyên tố lớn nhất bằng K, in ra các số “May mắn”

trong dãy: Ví dụ số 10 có các ước 1, 2, 5 với K=5 thì số 10 là số “May mắn” In

rác số “May mắn” của dãy ra màn hình – 1 điểm

Function ktngto(x:integer):boolean;

Begin

Ktngto:=true;

If x< 2 then ktngto:=false;

If x=2 then ktngto:=true;

For i:=2 to trunc(sqrt(x)) do

If x mod i =0 then

Begin

Ktngto:=false;

Break;

End;

Function somayman (n,k:integer):boolean;

Var max:integer;

Begin

For i:=1 to n do

If (I mod 2=0) and (ktngto(i)) and (max<i) then

Max:=I;

0.5 0.5

0.5

0.5

Trang 6

6

somayman:=max=k;

End;

Procedure ktsomaynam;

Begin

For i:=1 to n do

If somayman(a[i],k) then

Write(a[i],’ ‘);

End;

3, Dãy đối xứng là dãy khi ta viết ngược từ cuối dãy về đầu dãy thì nó vẫn là dãy

ban đầu Ví dụ: 1 1 2 2 1 1 là dãy đối xứng Kiểm tra xem dãy đã cho có phải dãy

đối xứng hay không? Nếu dãy là đối xứng thì in ra “Yes” ngược lại in ra “No”

Procedure doixung;

Var ok: boolean;

Begin

Ok:=true;

For i:=1 to n div 2 do

If a[i]<> a[n-i+1] then ok:=false;

If ok then writeln(‘Yes’)

Else writeln(‘No’)

Begin

Nhap_in;

Ktsomayman;

Doixung;

End

0.5

0.5 0.75

0.25

Câu 3 (1 điểm) Chọn quà

program CAU3;

const input='CAU3.INP';

output='CAU3.OUT';

var a:array[1 1000] of integer;

k:longint;

i,n:integer;

f:text;

procedure nhap;

begin

assign(f,input);

reset(f);

readln(f,n,k);

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

close(f);

end;

procedure sort;

var j,tg:integer;

begin

for i:=n downto 2 do

for j:=1 to i-1 do

if (a[j]>a[j+1]) then

0.5

Trang 7

7

begin

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

end;

end;

procedure xuli;

begin

assign(f,output);

rewrite(f);

i:=1;

k:=k-a[1];

write(f,'Chon cac mon qua co trong luong: ');

while (k>=0) do

begin

write(f,a[i],' ');

i:=i+1;

k:=k-a[i];

end;

close(f);

end;

BEGIN

nhap;

sort;

xuli;

END

0,5

Câu 4(1 điểm) Quà tặng ngày 01-06

1, Viết chương trình giải bài toán trên với 𝑛 ≤ 100

Program cau4.1;

Var max,I,j,k:integer;

T: longint;

Begin

Writeln(‘nhap n=’); readln(n);

For i:=1 to n do readln(a[i]);

max:=0;

for j:=1 to n do

for i:=1 to j do

begin

T:=0;

for k:=I to j do T:=T+a[k];

if T>max then max:=T;

end;

writeln(max);

End

2, Viết chương trình giải bài toán trên với 𝑛 ≤ 1000

Program cau4.2;

Var max,I,j,k:integer;

T: longint;

Begin

Writeln(‘nhap n=’); readln(n);

0.5

Trang 8

8

For i:=1 to n do readln(a[i]);

ds:=a[1];

s[0]:=0;

for i:=1 to n do s[i]:=s[i-1]+a[i];

for j:=1 to n do

for i:=1 to j do

if s[j]-s[i-1]>max then max:=s[j]-s[i-1];

writeln(max);

End

3, Viết chương trình giải bài toán trên với 𝑛 ≤ 10

Program cau4.3;

Var min,I,j,k:integer;

T,kq: longint;

Begin

Writeln(‘nhap n=’); readln(n);

For i:=1 to n do readln(a[i]);

min:=0; kq:=a[1];

s[0]:=0;

for i:=1 to n do s[i]:=s[i-1]+a[i];

for j:=1 to n do

begin

if s[j]-min>kq then kq:=s[j]-min;

if s[j]<min then min:=s[j];

end;

writeln(kq);

End

0.75

1.0

Câu 5:(1 điểm) Bắt tay

- Nếu học sinh làm theo cái NxN thì cho 0.75 điểm

Program battay;

Var a,b: array[1 1000000] of integer;

C,d: array[1 205] of integer;

Begin

Writeln(‘nhap n=’); readln(n);

For i:=1 to n do readln(a[i]);

For j:=1 to n do readln(b[i]);

For j:=1 to 205 do begin c[i]:=0; d[i]:=0; end;

For j:=1 to n do

begin c[a[i]]:= c[a[i]]+1; d[b[i]]:= d[b[i]]+1; end;

For j:=1 to 205 do Tong:=tong+ c[i]*d[i];

Writeln(tong);

End

0.5

0.5

Ngày đăng: 30/01/2023, 21:42

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

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