Tải bản đầy đủ (.doc) (3 trang)

ĐỀ THI học SINH GIỎI TIN học PASCAL 042 h huong tra 1213 YTB full

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (46.18 KB, 3 trang )

PHÒNG GD&ĐT HƯƠNG TRÀ
TRƯỜNG THCS HƯƠNG TOÀN

ĐỀ THI HỌC SINH GIỎI NĂM HỌC 2012-2013
MÔN: TIN HỌC 9
( Thời gian làm bài 90 phút)

Bài 1: Tìm các số trong khoảng từ 0 đến 999 bằng tổng lập phương các chữ số của nó (những
số này được gọi là số Amstrong)
Ví dụ 153 là số Amstrong vì 153= 13 + 53 + 33
Bài 2: Cho một dãy gồm n số thực. Viết chương trình nhập n số thực đó và đếm xem có bao
nhiêu số trong dãy không lớn hơn x.
Bài 3: Bạn An dùng 3 biến mảng lần lượt biểu diễn cước phí điện thoại, điện, dịch vụ Internet của gia
đình mình trong năm vừa qua.
Hãy giúp bạn An viết chương trình Pascal thực hiện các nhiệm vụ sau:
a) Nhập số tiền chi cho ba dịch vụ từng tháng từ bàn phím.
b) Tính và in ra màn hình tổng số tiền mà gia đình An phải trả cho các dịch vụ này trong năm vừa
qua.
c) Hãy cho biết dịch vụ nào có tổng chi lớn nhất?
d) Hãy cho biết trung bình mỗi tháng gia đình An phải trả bao nhiêu tiền cho các dịch vụ nói trên.

Bài 4:
Viết chương trình nhập vào một số nguyên.
a. In ra màn hình các ước của số đó.
b. Số đã cho có bao nhiêu ước.
Ví dụ: Nhập vào số nguyên: 28
Các ước của 28 là: 1
2
Sô 28 có 6 ước

4



7

14

28

1


ĐÁP ÁN:

Câu 1:
Giả sử abc (0 <= a, b, c <= 9) là số Amstrong, ta cần tìm a, b và c thỏa mãn:
100a + 10b + c = a3 + b3 + c3. Chương trình như sau:
Program Amstrong;
var a, b, c: integer;
begin
writeln( ‘ cac so Amstrong trong khoang tu 0-999 la’);
for a:= 0 to 9 do
for b:=0 to 9 do
for c:=0 to 9 do
if a*100 + b*10 +c = a*a*a + b*b*b + c*c*c
then writeln(a*100 +b*10 +c);
readln;
End.
*************************************************
Câu 2:
Program dem_so;
Var x: real; n, so_luong, i: integer;

A: array[1..100] of real;
begin
writeln( ‘nhap so phan tu cua day va so x de so sanh’);
readln(n,x);
writeln( ‘hay nhap’, n, ‘phan tu’);
for i:=1 to n do readln(a[i]);
so_luong:=0;
for i:=1 to n do if a[i] <= x then so_luong:= so_luong+1;
writeln( ‘trong day co’, so_luong, ‘phan tu <’, x:6:2);
readln;
End.
*************************************************
Câu 3:
Program phi_dichvu;
Const n =12;
Var a, b, c: array[1..n] of integer;
i, tong1, tong2, tong3, tong, max, k: integer;
begin
for i:=1 to n do
begin
writeln(‘ nhap cac khoan chi dich vu thang thu’,i);
write(‘tien dien thoai:’); readln(a[i]);
writeln(‘ tien dien tieu dung:’); readln(b[i]);
write(‘ tien internet:’); readln(c[i]);
end;
writeln;
2


tong1:= 0; tong2:=0; tong3:=0;

for i:=1 to n do
begin
tong1:=tong1 + a[i];
tong2:=tong2 + b[i];
tong3:=tong3 + c[i];
end;
tong:= tong1 + tong2 + tong3;
writeln( ‘tong so tien chi tra cho nam qua:’, tong);
writeln;
{tim dich vu co tong chi cao nhat}
max:= tong1; k:=1;
If max < tong2 then k:= 2;
If max< tong3 then k:= 3;
If k=1 then writeln( ‘tien chi cho dien thoai cao nhat’)
Else if k=2 then writeln( ‘tien chi cho dien cao nhat’);
Else writeln( ‘tien chi cho Internet cao nhat’);
Writeln;
Writeln(‘ phi dich vu trong binh hang thang la:’, tong div n);
Readln;
End.
******************************************************
Câu 4:

Program timuoc;
Uses CRT;
Var a,i,dem: integer;
Begin
Writeln(' nhap vao mot so nguyen ');
Readln(a);
dem:=0 ;

Write('cac uoc cua so ',a,' la:');
For i:=1 to a do
If ( a mod i = 0 ) then
Begin
Write(i,'');
dem:=dem + 1;
End;
Write(' so ',a,' co', dem,' uoc ');
Readln;
End.

3



×