PHÒNG GD&ĐT BÌNH XUYÊN
TRƯỜNG THCS HƯƠNG SƠN
ĐỀ CHÍNH THỨC
|
ĐỀ THI KHẢO SÁT HSG CẤP TRƯỜNG THÁNG 12
NĂM HỌC 2014 - 2015
Môn: Tin học 8
Thời gian làm bài: 150 phút
|
Câu 1: (2đ)
Viết chương trình tìm các số hoàn hảo nhỏ hơn n (Với n được nhập từ bàn phím).
Ví dụ: 6 có các ước nhỏ hơn nó là 1, 2, 3. Tổng là 1 + 2 + 3 = 6.
Yêu cầu:
-
Dữ liệu vào: Nhập vào n
-
Dữ liệu ra: Các số hoàn hảo nhỏ hơn n là:
-
Ví dụ:
-
Dữ liệu vào
|
|
Dữ liệu ra
|
N=100
|
|
6 28
|
Câu 2: (2đ)
Một số tự nhiên được gọi là “may mắn” nếu các chữ số của nó được chia thành hai nhóm có tổng các chữ số bằng nhau .
VD : 44 là số may mắn vì 4 = 4
235 là số may mắn vì 2 + 3 = 5
1973 là số may mắn vì 1 + 9 = 7 + 3
Viết chương trình nhập vào số tự nhiên N < 10000 từ bàn phím . Kiểm tra xem N có phải là số may mắn hay không ? In kết quả ra màn hình .
Yêu cầu:
-
Dữ liệu vào: Nhập vào N
-
Dữ liệu ra: Thông báo số may mắn hoặc “không may mắn”
-
Ví dụ:
-
Dữ liệu vào
|
|
Dữ liệu ra
|
N=739
|
|
Không may mắn
|
Câu 3: (2đ)
Nhập vào một số nguyên dương N( 0
4!=1.2.3.4= 24
24 có các ước lớn hơn 1 là: 2,3,4,6,8,12,24
Số Lượng các ước lớn hơn 1 là: 7
Tổng các ước là: 59
Yêu cầu:
-
Dữ liệu vào: Nhập vào số N
-
Dữ liệu ra: Số lượng các ước lớn hơn 1 và tổng các ước
-
Ví dụ:
-
Dữ liệu vào
|
|
Dữ liệu ra
|
N= 4
|
|
Các ước lớn hơn 1 là: 2,3,4,6,8,12,24
Tổng các ước: 59
|
Câu 4: (2đ)
Tổng m số cuối của n trong lập trình pascal.
Nhập vào 1 số tự nhiên n và nhập vào m, sau đó tính tổng m các số tận cùng của n.
vd: n = 365 m =2 tổng = 5+6=11.
Yêu cầu:
-
Dữ liệu vào: Nhâp số N, M
-
Dữ liệu ra:
-
Ví dụ:
-
Dữ liệu vào
|
|
Dữ liệu ra
|
N=2475
M=3
|
|
16
|
Câu 5: (2đ)
Chữ số từ 0 đến 9, nếu 1 chữ số bất kì có 1 đườg khép kín thì chữ số đoá koá 1 lỗ hổg, 2 đườg khép kín-->2 lỗ hổg, khôg koá đườg khép kín-->0 lỗ hổg.
Vậy 0,4,6,9 có 1 lỗ hổg.
8 có 2 lỗ hổg.
1,2,3,5,7 có 0 lỗ hổg.
Cho 1 số nguyên dương N(1<=N<=2147483647), ta luôn đếm đc số lỗ hổg của các chữ số xuất hiện trong đó.
Ví dụ : N=388247 -->N có 5 lỗ hổng.
Họ và tên thí sinh: ..........................................................SBD: ......................
------------------------------Hết------------------------------
ĐÁP ÁN ĐỀ THI KHẢO SÁT HSG CẤP TRƯỜNG TIN 8- THÁNG 12/2014
NĂM HỌC 2014 – 2015
Câu 1: (2đ)
Program Tim_uoc_2;
uses crt;
Var S, n, i,j: longint;
Begin
clrscr;
Write('Nhap so n ='); readln(n);
For i:=1 to n do
Begin
S:=1;
For j:=2 to (i div 2 ) do if i mod j = 0 then S:=S+j;
if S = I then write(i:6,’ ‘,);
end;
readln
end.
Câu 2: (2đ)
-
Program KIEM_TRA_SO_MAY_MAN ;
USES Crt ;
VAR i,n ,s,a,b,s1 : longint;
st:string;
Begin
Clrscr ;
Write('Nhap vao 1 so nguyen bat ky :');Readln(n) ;
S:=0; a:=n ;S1:=0;
str(a,st); { Doi so n ra chuoi }
b:=length(st); { chieu dai cua chuoi }
If b=4 then
Begin
For i:=1 to b-2 do
Begin
S1:= S1 + n mod 10 ;
n:= n div 10 ;
End;
For i:=b-2 to b do
Begin
S:= S + n mod 10 ;
n:= n div 10 ;
End;
If s1 = s then Write(a,' la so may man')
Else Write(a,' khong la so may man ');
End;
If b=3 then
Begin
s1:= n mod 10 ;
For i:=1 to b do
Begin
S:= S + n mod 10 ;
n:= n div 10 ;
End;
If s-s1 = s1 then Write(a,' la so may man')
Else Write(a,' khong la so may man ');
End;
If b=2 then
Begin
S:= S + n mod 10 ;
n:= n div 10 ;
If s=n then Write(a,' la so may man ')
Else Write(a,' khong la so may man ');
End
Else Write(a,' lon hon 10000 khong tinh ');
Readln
End.
Câu 3: (2đ)
Program Tim_uoc_2;
uses crt;
Var S, n, p,i,j, dem: longint;
Begin
clrscr;
repeat
Write('Nhap so n ='); readln(n);
Until (n>0);
P:=1;
For i:=1 to n do
P:=p*i;
Write(N’!=’,p);
Dem:=0; s:=0;
For j:=2 to p do
If p mod j=0 then
Begin
Dem:=dem+1;
S:=s+j;
End; Write(‘so luong cac uoc cua’,N, ’! la:’, dem);
Write(‘ tong cac uoc cua ‘, N,’ ! =’,s);
Readln ; end.
Câu 4: (2đ)
uses crt;
var n: longint;
m,tong,i: integer;
BEGIN
clrscr;
write('Nhap n: '); readln(n);
write('Nhap m: '); readln(m);
tong:=0;
for i:=1 to m do
begin
tong:=tong+(n mod 10);
n:=n div 10;
end;
write('Tong ',m,' chu so cuoi cua so vua nhap = ',tong);
readln;
END.
Câu 5: (2đ)
var i,s:integer;
a:array[0..9] of byte;
n:longint
begin
a[8]:=2;a[0]:=1;a[4]:=1;a[6]:=1;a[9]:=1...
readln(n);
s:=0;
repeat
i:=n mod 10;
s:=s+a[i];
n:=n div 10;
until n=0;
writeln(s);
end.
Chia sẻ với bạn bè của bạn: |