Đề thi học sinh giỏi Tin học 8 cấp huyện

7 10.3K 27
Đề thi học sinh giỏi Tin học 8 cấp huyện

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

Thông tin tài liệu

Trang 1

TỔNG QUAN BÀI THI

BàiTệp chương trìnhDữ liệu vàoDữ liệu raĐiểm

- Học sinh có thể sử dụng ngôn ngữ lập trình Pascal hoặc C++ để giải các bài toán Khi

đó dấu * trong Tệp chương trình sẽ là pas hoặc cpp.

- Trong ổ đĩa D, tạo thư mục với tên SBD* (với * là số báo danh của thí sinh), các tệp tinlưu vào thư mục này, tên tệp tin là tên từng câu trong đề thi (BAI1, BAI2, BAI3, BAI4,BAI5a, BAI5b).

Bài 2 (5,0 điểm): Dãy Fibonacci là dãy vô hạn các số tự nhiên bắt đầu bằng 1 và 1,

sau đó các số tiếp theo sẽ bằng tổng của 2 số liền trước nó Viết chương trình in ra màn hình dãy gồm N số Fibonacci đầu tiên với N là số nguyên nhập từ bàn phím

Bài 3 (4,0 điểm): Nhập vào một mảng có N số nguyên, in mảng vừa nhập ra màn hình

Đếm xem trong mảng vừa nhập có bao nhiêu số chính phương và đó là những số nào?

Ví dụ dữ liệu vào/ra:

12 22 25 35 36 42 Mang co 2 so chinh phuong, do la cac so: 25 36

ĐỀ THI CHÍNH THỨC KỲ THI CHỌN HỌC SINH GIỎI CẤP HUYỆN THCSNĂM HỌC 2021 - 2022

Môn: Tin học 8

Thời gian: 150 phút (không kể thời gian giao đề)Ngày thi:………… (Đề thi gồm: 02 trang, 05 Bài)

Trang 2

Bài 4 (4,0 điểm): Cho một xâu ký tự Đếm số lượng các ký tự số, số lượng các

ký tự chữ cái.

Ví dụ dữ liệu vào/ra:

Ky thi HSG nam hoc

2021 2022 So ky tu so: 8So ky tu chu cai: 14

Bài 5 (4,0 điểm): a (2,0 điểm):

Nhập vào một dãy N số nguyên, tìm kiếm và in các cặp 2 phần tử gần nhau có tổng chia hết cho 10 Thay thế các phần tử đó bằng tổng của chúng In lại dãy đã thay thế.

b (2,0 điểm): Một điệp viên muốn gửi tin nhắn mã hóa về cho cơ quan tình báo

Cách mã hóa tin nhắn S như sau: Chia tin nhắn thành hai đoạn liên tiếp Sa và Sb (Sb có độ dài là K ký tự), viết xâu Sa theo hướng ngược lại của các ký tự rồi ghép với xâu Sb (đã được viết ngược) thì được tin nhắn mã hóa A.

Ví dụ: Tin nhắn S có nội dung ban đầu là “insecurity” với khóa K=4 sẽ được chia thành hai đoạn Sb= “ytir”, Sa = “ucesni” Do đó tin nhắn mã hóa A là “ucesniytir”

Yêu cầu: Cho tin nhắn mã hóa A và khóa K (K>=0 và không vượt quá độ dài xâu

A) Hãy xác định xâu S.

-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

Trang 3

II, Quy trình chấm:

Bước 1: Chấm bài học sinh từ CD bằng phần mềm Themis

Bước 2: Xem lại những bài đúng 1 phần, chấm ý tưởng thuật toán với số

điểm không quá 70% số điểm tối đa.

Bước 3: Xem lại những bài 0 điểm, chấm ý tưởng thuật toán, số điểm

không quá 50% số điểm tối đa.

Bước 4: Điểm bài thi = tổng điểm của từng bài sau khi đã chấm bằng

Themis và chấm code.

Chú ý: Với những bài sai sót nhỏ : sai tên tệp, khai báo thiếu mảng, quá

mảng nếu sửa lỗi này chấm lại bài thí sinh bằng Themis được điểm tối đa thì trừ 0.5 điểm/ bài.

uses crt;var n:integer;begin clrscr;

write('Hay nhap so tu nhien N: '); readln(n);

if n mod 2 = 0 then write('So N la so chan ')

else write('So N la so le ');readln; end.

0,50,50,50,50,50,52 Uses crt;

Trang 4

sothunhat,sothuhai,sothuba:integer; i,n:integer;

Begin Clrscr; Repeat

Write('Nhap N (10<=N<=20): '); Readln(n);

Until (n>=10) and (n<=20); sothunhat:=1;

sothuhai:=1;

Writeln('Day so Fibonaci: '); Write(sothunhat:10);

Write(sothuhai:10); for i:= 3 to n do begin

sothuba:=sothunhat+sothuhai; sothunhat:=sothuhai;

sothuhai:=sothuba; write(sothuba:10); end;

0,5 0,250,50,250,250,250,250,250,250,50,50,50,25

Uses crt;Var

a:array[1 100] of integer; n,i,x,d:integer;

Begin Clrscr;

Write('Nhap N= ');

0,25

Trang 5

Readln(n); For i:=1 to N do Begin

Write('a[',i,']='); Readln(a[i]); End;

Writeln('Mang vua nhap: '); For i:=1 to n do Write(a[i]:4); Writeln;

Writeln('Cac so chinh phuong la: '); For i:=1 to n do

Begin

x:=trunc(sqrt(a[i])); if sqr(x)=a[i] then Begin

write(a[i]:4); d:=d+1; End; End; Writeln;

Write('Co tat ca ',d,' so chinh phuong'); Readln;

Uses crt;Var

st:string; so:char;

i,n,demso,demchu:integer;Begin clrscr;

Write('Nhap xau: ');

0,250,250,250,25

Trang 6

readln(st); demso:=0; demchu:=0;

for i:=1 to length(st) do begin

if (st[i] in ['0' '9']) then demso:=demso+1; if (upcase(st[i]) in ['A' 'Z']) then

demchu:=demchu+1; end;

{a}Uses crt;Var

n,i,sum:integer;

a:array[1 100] of integer;Begin clrscr;

Write('Nhap so N: '); Readln(n); For i:=1 to n do

Begin

Write('a[',i,']= '); Readln(a[i]); End;

Writeln('Cac cap co tong chia het cho 10 la: '); For i:=1 to n do

if (a[i]+a[i+1]) mod 10=0 then writeln(a[i],' va ',a[i+1]);

Readln; End.{b}

0,250,250,25

Trang 7

Uses crt;var

k,n,i:integer; S:string;Begin Clrscr;

Write('Nhap xau S: '); Readln(s); Write('Nhap khoa K: '); Readln(k); Writeln('Tin nhan ma hoa la: ');

For i:=length(s)-k downto 1 do Write(s[i]);

For i:=length(S) downto (length(s)-k+1) do Write(s[i]);

Readln;End.

Hết

Ngày đăng: 15/01/2022, 09:34

Mục lục

  • Bài 1. (3,0 điểm)

  • Ví dụ dữ liệu vào/ra:

  • Bài 2. (5,0 điểm): Dãy Fibonacci là dãy vô hạn các số tự nhiên bắt đầu bằng 1 và 1, sau đó các số tiếp theo sẽ bằng tổng của 2 số liền trước nó. Viết chương trình in ra màn hình dãy gồm N số Fibonacci đầu tiên với N là số nguyên nhập từ bàn phím (10≤N≤20).

  • Ví dụ dữ liệu vào/ra:

  • Bài 3. (4,0 điểm): Nhập vào một mảng có N số nguyên, in mảng vừa nhập ra màn hình. Đếm xem trong mảng vừa nhập có bao nhiêu số chính phương và đó là những số nào?

  • Ví dụ dữ liệu vào/ra:

  • Bài 4. (4,0 điểm): Cho một xâu ký tự. Đếm số lượng các ký tự số, số lượng các ký tự chữ cái.

  • Ví dụ dữ liệu vào/ra:

  • Bài 5. (4,0 điểm):

  • a. (2,0 điểm):

  • Nhập vào một dãy N số nguyên, tìm kiếm và in các cặp 2 phần tử gần nhau có tổng chia hết cho 10. Thay thế các phần tử đó bằng tổng của chúng. In lại dãy đã thay thế.

  • Ví dụ dữ liệu vào/ra:

  • Ví dụ dữ liệu vào/ra:

Tài liệu cùng người dùng

Tài liệu liên quan