Đề thi HSG Tin 9 Huyện Châu Thành – Năm học 1718 – Có code tham khảo
Tổng quan bài thi:
Tên bài | Tên tệp chương trình | Dữ liệu vào | Kết quả ra | |
Bài 1 | Tính tổng | SBD_BAI1.PAS | Từ bàn phím | Màn hình |
Bài 2 | Thăm may mắn | SBD_BAI2.PAS | THAM.IN | THAM.OUT |
Bài 3 | Tấm Cám thời @ | SBD_BAI3.PAS | TAMCAM.IN | TAMCAM.OUT |
Ví dụ thí sinh có SBD:012; làm Bài 1 thì lưu lại ở ổ đĩa D:\ với tên: 012_BAI1.PAS |
Bài 1: TÍNH TỔNG (6 điểm)
Viết chương trình cho phép nhập vào từ bàn phím một số nguyên N khác 0 với giá trị của N trong khoảng (-999999999999 < N < 999999999999).
Xuất ra màn hình:
– Tổng các chữ số của số N
– Cho biết số N có bao nhiêu chữ số
Ví dụ:
Nhập vào số N | Xuất ra màn hình |
123 | – TONG CUA SO 123 LA : 6
– SO 123 CO : 3 CHU SO |
999999 | – TONG CUA SO 123 LA : 54
– SO 123 CO : 6 CHU SO |
-999999999999 | – TONG CUA SO 123 LA : -108
– SO 123 CO : 12 CHU SO |
Bài 2:Lá thăm may mắn (8 điểm)
Nhân dịp cuối năm siêu thị A tổ chức truy ân khách hàng bằng cách bốc thăm trúng thưởng với hình thức, mỗi khách hàng thân thiết được tặng một lá thăm trúng thưởng, khách hàng điền thông tin cá nhân của mình vào và gởi lại ban tổ chức. Lưu ý trên mỗi lá thăm có một số để “nhận dạng” số đặc biệt này là một số nguyên ngẫu nhiên khác 0 có N chữ số (1<= N < =3 ) không trùng nhau, siêu thị đã phát ra 999 lá thăm. Những lá thăm được khách hàng gởi lại để tham gia bốc thăm được giữ trong thùng kín và không thống kê được hiện có bao nhiêu lá.
Ban tổ chức sẽ mở thùng và lấy thăm ngẫu nhiên để nhập số “nhận dạng” có trên mỗi lá thăm vào máy tính theo thứ tự tăng dần để tiến hành bốc thăm tự động (số thứ tự của phiếu chính là số tiền được thưởng, ví dụ: Lá thăm có số “nhận dạng” là 99 nhập vào máy có số thứ tự là 10. Nếu lá thăm này được chọn là thăm may mắn sẽ nhận được phần thưởng là 10 triệu đồng).
Với cơ cấu giải thưởng như sau:
– Hai lá thăm có số “nhận dạng” lớn nhất và nhỏ nhất sẽ được chọn là “Lá thăm may mắn” với số tiền thưởng tương ứng với số thứ tự của mỗi lá thăm đó (đơn vị tính là triệu đồng).
– Giải “Lá thăm mai mắn nhất” là lá thăm có số “nhận dạng” bằng phần nguyên trung bình cộng của hai số “nhận dạng” lớn nhất và nhỏ nhất. Tiền thưởng bằng số “nhận dạng” nhân cho số thứ tự của lá thăm đó (đơn vị tính là triệu đồng).
Giã sử ban tổ chức đã có sẵn số liệu thống kê được lưu trong file. Hãy viết chương trình giúp ban tổ chức tìm ra các lá thăm mai mắn và số tiền thưởng tương ứng cho từng lá thăm đạt giải.
Bài 3. Tấm Cám thời @ (6 điểm)
Việt là học sinh giỏi và rất thích chuyện cổ tích đặc biệt cảm thông và yêu thích các nhân vật trong chuyện. Nhưng lại không thích học môn tin học, mẹ Việt nghĩ cách để thử thách nhằm giúp câu hứng thú và học tốt hơn với môn tin học. Bà dùng cách của mụ dì ghẻ dành cho cô Tấm (là trộn lúa với gạo rồi bắt Tấm lựa ra lúa theo lúa, gạo theo gạo nếu hạt gạo nào bị bẫn phải lau cho thật sạch và đếm xem có bao nhiêu hạt lúa, bao nhiêu hạt gạo).
Mẹ Việt tiến hành kế hoạch nhưng Bà dùng kí tự số (1,2..9) để thay cho lúa, kí tư(a,b,…z) để thay cho gạo bẩn, kí tự (A, B,..Z) để thay cho gạo sạch trộn cả ba loại lại với nhau để thử thách Việt.
Các bạn hãy giúp Việt vượt qua thử thách lần này nhé.
Code tham khảo Đề thi HSG Tin 9 Huyện Châu Thành – Năm học 1718
Bài 1 (Code Pascal)
PROGRAM TINHTONG; USES CRT; VAR N,A,S,DEM:INT64; BEGIN clrscr; WRITE('NHAP N: ' ); READLN(N); A:=N; S:=0; dem:=0; WHILE N <> 0 DO BEGIN S:= S + N MOD 10; dem:=dem+1; N:= N DIV 10; END; WRITELN('TONG CAC CHU SO CUA ',A, ' LA: ', S); WRITELN(' SO ',A, ' CO: ',DEM,' CHU SO'); READLN; END.
Bài 2
program THAM_MAY_MAN; uses crt; var i,j,k,n,x,tb:byte; tt,kt:boolean; A: array[1..100] of integer; F1,F2:text; Begin {nhap mang tu file} assign(F1,'c:\BTPASCAL\THAM.IN.txt');reset(F1); assign(F2,'c:\BTPASCAL\THAM.OUT.TXT');rewrite(F2); n:=0; while Not EOF(f1) do begin while Not EOLn(f1) do begin inc(n); read(F1,A[n] ); end; read(F1,k); end; {TIM MAX MIN} j:=1; K:=1; FOR I:= 2 TO N DO Begin if A[k] < A[i] then k:=i; if A[j] > A[i] then j:=i; end; tb:=(A[k] +A[j] ) div 2; {xuat ket qua} for i:=1 to n do begin Write(F2,A[i] ,' '); if A[i] = tb then begin tt:=true; x:=i; end else kt:= false; end; Writeln(f2); writeln(F2,'So nhan dang lon nhat la: ',A[k] , ' Tien thuong: ',k, ' trieu dong!'); Writeln(F2,'So nhan dang nho nhat la: ',A[j] , ' Tien thuong: ',j, ' trieu dong!'); if tt = true then Write(F2,'Tham may man nhat co so nhan dang la: ',tb,' Tien thuong: ',x*tb, ' trieu dong!') else Writeln(F2,'So dinh danh cua la tham may man nhat la: ',tb, ' khong duoc tim thay'); close(f1); close(f2); end.
Bài 3:
Program TAM_CAM; uses crt; var S,Ss,Sc:string; F1,F2:text; i:byte; Begin Assign(F1,'c:\BTPASCAL\TAMCAM.INT.TXT'); Reset(F1); Assign(F2,'c:\BTPASCAL\TAMCAM.OUT.TXT'); Rewrite(F2); Readln(F1,S); {chuoi so, chuoi ki tu in hoa} Ss:=''; Sc:=''; for i:=1 to length(s) do if S[i] in ['0'..'9'] then Ss:=Ss+S[i] else Sc:=Sc+upcase(S[i] ); Writeln(F2,S); Writeln(F2,' LUA: ',Ss); Writeln(F2,' Co ',length(Ss),' hat lua !'); Writeln(F2,' Gao da duoc lam sach: ',Sc); Writeln(F2,' Co ',length(Sc),' hat gao !'); close(f1); close(f2); End.