Đề thi chọn học sinh giỏi cấp huyện môn Tin học lớp 9

doc 4 trang Người đăng dothuong Lượt xem 633Lượt tải 4 Download
Bạn đang xem tài liệu "Đề thi chọn học sinh giỏi cấp huyện môn Tin học lớp 9", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Đề thi chọn học sinh giỏi cấp huyện môn Tin học lớp 9
Bài 1: (3 đ ) Tính tổng các số nguyên dương có trong một chuỗi. 
Nhiệm vụ của chương trình:
- Tên tập tin: Bai_1.pas
- Chương trình cho phép nhập vào một chuỗi gồm nhiều ký tự và có ít nhất một số nguyên dương
- Xuất ra màn hình chuỗi đã nhập
- Xuất tổng các số nguyên dương có trong chuỗi
Ví dụ:
Input
Output
abcAcb90acgH3abcb12bdcnhag
Chuoi da nhap: abcAcb90acgH3abcb12bdcnhag
Tong cac so co trong chuoi: 105
bacDgfhrthg
Nhap sai! Yeu cau nhap lai:
Bài 2: (3đ) Sắp xếp các số nguyên dương theo thứ tự giảm dần theo số ước của chúng. 
Nhiệm vụ của chương trình:
- Tên tập tin: Bai_2.pas
- Chương trình tạo ra 20 số nguyên dương ngẫu nhiên trong khoảng [20..100] 
- Xuất ra màn hình các số đã tạo
- Xuất ra màn hình các số đã tạo sau khi đã sắp xếp các số đó theo thứ tự giảm dần theo số ước của chúng.
Ví dụ:
Input
Output
47; 78; 32; 38; 30; 56; 35; 31; 51; 66;
Cac so da tao:
47; 78; 32; 38; 30; 56; 35; 31; 51; 66;
Cac so sau khi da sap xep giam dan theo so uoc:
78; 30; 56; 66; 32; 35; 51; 38; 47; 31; 
Bài 3 (3đ)
Nhập vào một dãy số nguyên 
Cho biết dãy đã sắp xếp chưa tăng dần hay giảm dần
Nếu dãy dã sắp xếp hãy cho nhập số n bất kì và chèn vào dãy sao cho dãy vẫn bảo đảm được sắp xếp (không được xếp lại sau khi chèn thêm).
Nếu dãy chưa sắp xếp thì sắp xếp lại dãy tăng dần
Nhiệm vụ của chương trình:
- Tên tập tin: Bai_3.pas
- Dữ liệu vào là dãy số nguyên
- Dữ liệu ra dãy vừa nhập
- Nếu dãy đã được sắp xếp thì xuất dãy sau khi chèn thêm n 
- Nếu dãy chưa được sắp xếp thì xuất dãy đã sắp xếp lại 
Ví dụ
dữ liệu vào
5 6 7 8 9
N =6
dữ liệu ra
dãy đã được sắp xếp tăng dần 
dãy sau khi chèn thêm n là
5 6 6 7 8 9
dữ liệu vào
3 8 9 5 7
dữ liệu ra
dãy chưa được sắp xếp
sắp xếp lại dãy là 
3 5 7 8 9 
Bài 1: 
program bai1;
Uses crt;
Var
 st,s1,tam:string;
 i,n,e,tong:integer;
 kt:boolean;
BEGIN
 clrscr;
 kt:=false;
 repeat
 write('Nhap chuoi gom ky tu va so: '); readln(st);
 for i:=1 to length(st) do if st[i] in ['0'..'9'] then kt:=true;
 if kt = false then
 begin
 write('Nhap sai! Yeu cau nhap lai: '); readln(st)
 end;
 until kt=true;
 s1:=st;
 for i:=1 to length(s1) do if not(s1[i] in ['0'..'9']) then s1[i]:=#32;
 repeat
 delete(s1,pos(#32#32,s1),1);
 until pos(#32#32,s1) = 0;
 if s1[1]=#32 then delete(s1,1,1);
 if s1[length(s1)]=#32 then delete(s1,length(s1),1);
 tam:=''; s1:=s1+#32; tong:=0;
 for i:=1 to length(s1) do if s1[i]#32 then tam:=tam+s1[i]
 else begin
 val(tam,n,e);
 tong:=tong+n;
 tam:='';
 end;
 writeln('Chuoi da nhap: ',st);
 write('Tong cac so co trong chuoi: ', tong);
 readln
end.
Bài 2: 
program bai2;
Uses crt;
Type Data = record
 n,u:integer;
 end;
Var
 a:array[1..10] of Data; tam: Data;
 i, j, d: integer;
Begin
 clrscr;
 Randomize;
 writeln('Cac so ngau nhien da tao: ');
 For i:=1 to 10 do
 Begin
 a[i].n:=random(81)+20;
 write(a[i].n,'; ');
 end;
 d:=0;
 for i:=1 to 10 do
 begin
 d:=0;
 for j:=1 to a[i].n do if a[i].n mod j = 0 then inc(d);
 a[i].u:=d;
 end;
 for i:=1 to 9 do
 for j:=i+1 to 10 do if a[i].u < a[j].u then
 begin
 tam:=a[i];
 a[i]:=a[j];
 a[j]:=tam;
 end;
 writeln; writeln('Cac so sau khi da sap xep giam dan theo so uoc: ');
 for i:=1 to 10 do write(a[i].n,'; ');
 readln
 end.
Tổng điểm: 3 điểm
- Thực hiện đúng phần nhập theo nhiệm vụ của chương trình 	(0,75 điểm)
- Xác định được số ước của các số đã tạo 	(0,75 điểm)
- Sắp xếp được các số theo nhiệm vụ của chương trình và xuất kết quả ra màn hình 	(1,5 điểm)
Bài 3: 
program bai3;
uses crt;
var n,i,v,j,b,p,m:integer;
 a:array[1..50]of integer;
 kt:boolean;
begin
clrscr;
 write('ban dinh nhap day so co bao nhieu phan tu: ');
 readln(n);
 for i:=1 to n do
 begin
 write('a[',i,']=');
 readln(a[i]);
 end;
 write('day da nhap la:');
 for i:=1 to n do write(a[i]:3);
 writeln;
 kt:=true;
 for i:=1 to n-1 do
 if a[i]<a[i+1] then kt:=true else
 begin
 kt:=false;
 break; end;
 if kt=true then
 begin
 writeln('day da duoc sap xep theo chieu tang dan');
 m:=1;
 end;
 kt:=true;
 for i:=1 to n-1 do
 if a[i]>a[i+1] then kt:=true else
 begin
 kt:=false;
 break; end;
 if kt=true then
 begin
 writeln('day da duoc sap xep theo chieu giam dan');
 m:=2;
 end;
 if (m=1)or(m=2) then
 begin
 write('ban dinh chen vao day phan tu: ');
 readln(p);
 if m=1 then
 begin
 for i:=1 to n do
 if (p>=a[i])and(p<=a[i+1]) then break ;
 j:=i+1;
 for i:=n+1 downto j+1 do
 a[i]:=a[i-1];
 a[j]:=p;
 write('day sau khi chen la: ');
 for i:=1 to n+1 do write(a[i]:5);
 end;
 if m=2 then
 begin
 for i:=1 to n do
 if (p=a[i+1]) then break ;
 j:=i+1;
 for i:=n+1 downto j+1 do
 a[i]:=a[i-1];
 a[j]:=p;
 write('day sau khi chen la: ');
 for i:=1 to n+1 do write(a[i]:5);
 end;
 end;
 if (m1)and(m2) then
 begin
 writeln('day chua duoc sap xep');
 for i:=1 to n do
 for j:=i+1 to n do
 if a[i]>a[j] then
 begin
 b:=a[i];
 a[i]:=a[j];
 a[j]:=b;
 end;
 write('day sap xep theo chieu tang dan la:');
 for i:=1 to n do write(a[i]:3);
 end;
 readln;
 end.
Tổng điểm: 3 điểm
- Nhập được dữ liệu 	(0,5 điểm)
- Kiểm tra được dãy tăng hay giảm 	(0,5 điểm)
- Chèn được dữ liệu 	(1điểm)
- Sắp xếp và viết ra được dữ liệu 	(1điểm)

Tài liệu đính kèm:

  • docDe_hsg_Cap_huyen.doc