Viêt chưong trình Pasacl nhập vào một dãy số nguyên A gồm n phần tử với n nhập từ bàn phím.[r]
Trang 1PHÒNG GD&ĐT ĐẠI LỘC
ĐỀ THI HỌC SINH GIỎI LỚP 9 (NĂM HỌC 2013 - 2014)
Môn: Tin học : Thời gian: 150 phút Giáo Viên ra đề: Trần Đình Luận
Đơn vị: Trường THCS Lê Quý Đôn
I ĐỀ BÀI.
Bài 1 ( 4 điểm) Tính tổng
Viết chương trình nhập số tự nhiên n Tính các tổng sau::
a/ S1 = 1- 2 + 3 – 4 + + n
b/
1.2 2.3 3.4 ( 1)
3.4 4.5 5.6 ( 2)( 3)
n
n n S
( Sao cho 5 < n ≤100, nếu nhập sai yêu cầu nhập lại)
Ví du:
4 Nhap lai n thoa man 5 < n <=100, n =
Bài 2 (5 điểm)
Viết chương trình nhập vào hai số tự nhiên x, y sao cho chương trình chỉ cho nhập các số tự
nhiên x, y thỏa mãn 4 x < 53 và 59 < y 121
- In ra màn hình các số lẻ chia hết cho 3 trong khoảng từ x đến y và đếm có bao nhiêu số như vậy?
- In ra màn hình các số chính phương m sao cho x < m < y và đếm có bao nhiêu số m?
Ví du:
Bài 3 (6 điểm) Mảng
Viêt chưong trình Pasacl nhập vào một dãy số nguyên A gồm n phần tử với n nhập từ bàn phím.
a/ Hãy kiểm tra dãy số đã nhập có đối xưng hay không?
b/ Viết chương trình tạo dãy số B[1 n] Trong đó B[i] là tổng giá trị của i phần tử đầu tiên của dãy số A
Bài 4 (5 điểm) Ước nhiều nhất.
Viết chương trình để khi nhập số tự nhiên n từ bàn phím thì in ra màn hình số có nhiều ước nhất
trong các số từ 1 đến n và số ước của nó
Ví dụ: Nhập n=14 thi in ra:
Số có nhiều ước nhất từ 1 đến 14 là 12, có 6 ước số
ĐỀ ĐỀ NGHỊ
3 64
4 64 Nhap lai x, y thoa man 4<=x< 53 va 59<y<=121Cac so le chia het cho 3 thoa man la:
9 15 21 27 33 39 45 51 57 63
Co tat ca: 10 so le chia het cho 3 Cac so chinh phuong lon hon 4 va nho hon 64 la:
9 16 25 36 49
Co tat ca 5 so chinh phuong
Trang 2II ĐÁP ÁN – BIỂU ĐIỂM
Bài 1
a/
Var
BEGIN
Write(‘Nhap so tu nhien n=');Readln(n);
s:= 0; d:=1;
For i:=1 to n do begin s:=s+ d*i ; d:=-d; end;
Write(‘Tong la s=’,s);
Readln
END.
1
b/
Var
n,i:Integer;
s:Real;
0,5
BEGIN
Write(‘Nhap so tu nhien n=');Readln(n);
While ((n<=5) OR (n>100) do
Begin
Write(‘Nhap lai n thoa man 5 < n <=100, n = ');Readln(n);
end;
1
s:=0;
For i:=1 to n do s:=s+i*(i+1)/((i+2)*(i+3));
Write(‘tong la s=’,s:4:3);
Readln
END.
1
Bài 2
Uses Crt;
var x,y,i,d:longint;
BEGIN
ClrScr;
d:=0;
Write(‘Nhap so tu nhien x, y =');Readln(x,y);
While ((x<4) OR (x>=53) OR ( y<=59) OR (y>121) ) do
Begin
Write(‘Nhap lai x, y thoa man 4<=x< 53 va 59<y<=121’); Readln(n);
end;
writeln(‘Cac so le chia het cho 3 thoa man la:');
0,5
0,5
0,5
0,5 for i:=x to y do
if (i mod 2<>0)and(i mod 3=0) then
begin
0,5 0,5
Trang 3write(i:6);
writeln;
writeln('Co tat ca:',d,' so le chia het cho 3');
writeln('Cac so chinh phuong lon hon’, x:4,’va nho hon’, y:4, ‘la: ‘);
d:=0;
For i: = x +1 to y -1 do
IF sqr(trunc(sqrt(i))) = i then
Begin write (I: 7); d:=d+1; end;
writeln; writeln(‘ Co tat ca ‘,d:6,’ so chinh phuong’);
readln;
End.
0,5 0,5 0,5 0,5 0,5
Bài 3
Uses Crt;
Var
A,B: array[1 100] of Integer;i,j,n:integer; 0.5 Begin
Write(' nhap vao so phan tu cua mang'); Readln(n);
For i:= 1 to n do
Begin
Write('nhap phan tu a[',i,']='); readln(a[i]);
End;
0.5
I:=1;
While (i <= n div 2) and ( (a[i] = a[n-i +1]) do i:=i+1; 1.0
If i> (n div 2) then Writeln( ‘ Day da nhâp la day doi xung:’)
Else Writeln( ‘ Day da nhâp khong la day doi xung:’) 1.0 For i:= 1 to n do
For i:= 1 to n do
Begin
B[i]:= 0 ;
For j:=1 to i do
B[i]:=B[i]+a[j];
End; Writeln;
2,0
Writeln(‘ Day b[i] tổng giá trị của i phần tử đầu tiên của dãy số A la :');
For i:= 1 to n do
Write(B[i]:5);
Readln;
End.
0,5
Bài 4 (5 điểm)
var max,i,n,j,dem:integer;
Trang 4write('nhap so n:'); readln(n);
for i:= 1 to n do
begin
dem:=0;
1.0
for j:=1 to i do
if i mod j=0 then
dem:=dem+1; a[i]:=dem;
end;
1.0
max:=a[1];
for i:=1 to n do
if a[i]>max then max:=a[i];
1.0
for i:=1 to n do
if a[i]=max then writeln(' so co nhieu uoc nhat la ',i);
readln
end
1.0