Câu 22đ: Viết chơng trình nhập số nguyên n có 9 chữ số.. Tính xem trong số nguyên đó chữ số a xuất hiện bao nhiêu lần với a là số nguyên có một chữ số đợc nhập từ bàn phím.
Trang 1Đề thi olympic tin học cấp huyện lần thứ nhất
năm học 2008-2009
Môn : Lập trình pascal (Thời gian : 90 phút)
Câu 1(1,5đ):Viết chơng trình tính giá trị của biểu thức sau và in kết quả ra màn hình.
S =
Với a, x đợc nhập từ bàn phím
Câu 2(2đ): Viết chơng trình nhập số nguyên n có 9 chữ số Tính xem trong số
nguyên đó chữ số a xuất hiện bao nhiêu lần (với a là số nguyên có một chữ số đợc nhập từ bàn phím)
Ví dụ: Nhập: N = 13213411
a=1 Kết quả: Số 1 xuất hiện 4 lần
Câu 3(3,5đ): Cho mảng một chiều gồm n phần tử (n nhập từ bàn phím, n <=100) là số
nguyên Hãy viết chơng trình nhập giá trị cho các phần tử của mảng và :
a Tính tổng các phần tử là số nguyên tố của mảng
b Tìm phần tử lớn nhất của mảng
c Sắp xếp mảng theo chiều tăng dần
Câu 4(3): Cho trớc một xâu kí tự bất kì Xâu gồm các phần tử là chữ cái tiếng anh từ
'a' đến 'z' và dấu cách Viết chơng trình chuẩn hoá xâu(xâu chuẩn hoá là xâu không có dấu cách ở đầu và cuối xâu, giữa các từ cách nhau đúng một dấu cách)
Ví dụ: Cho xau= " nguyen tuan anh "
Kết quả in ra : "Nguyen Tuan Anh"
-Hết -Câu 1(1,5đ):
const PI=3.14;
var s:real;
a,x:integer;
begin
write('Nhap gia tri cho a=');readln(a);
write('Nhap gia tri cho x=');readln(x);
ea + sin2(x)-x
0,5đ
0,5đ
Trang 2s:=exp(a+sin((x*PI)/180)*sin((x*PI)/180)-x);
writeln(s:4:2);
readln;
end
C©u 2(2®):
var n:longint;
k,a,i,j:byte;
begin
write('Nhap gia tri cho a=');readln(n);
write('Nhap gia tri cho x=');readln(a);
j:=0;
repeat
k:=n mod 10;
if k=a then j:=j+1;
n:=n div 10;
until n=0;
writeln('Chu so ',a,'xuat hien ',j,' lan');
readln;
end
C©u 3(3®):
program bt3;
var a:array[1 100] of integer;
kt,s,n,i,j,max,tg:integer;
begin
repeat
write('Nhap so phan tu cho mang n=');readln(n);
until (n>0) and (n<=100);
for i:=1 to n do
begin
write('Nhap gia tri cho phan tu a[',i,']=');
readln(a[i]);
end;
i:=1;
kt:=0;
0,5®
0,25®
0,25®
1,25®
0,25®
0,25®
0,25®
0,25® 1®
Trang 3for i:=1 to n do
begin
for j:=2 to a[i] div 2 do
if a[i] mod j = 0 then kt:=kt+1;
if kt=0 then s:=s+a[i];
kt:=0;
end;
max:=a[1];
for i:=2 to n do
if a[i]>max then max:=a[i];
for i:=1 to n-1 do
for j:=i+1 to n do if a[i]>a[j] then
begin
tg:=a[i];
a[i]:=a[j];
a[j]:=tg;
end;
writeln('Tong cac phan tu duong cua mang s=',s);
writeln('Phan tu lon nhat cua mang la : ',max);
writeln('Mang sau khi sap xep la : ');
for i:=1 to n do write(a[i]);
readln;
end
C©u 4(3®):
var st:string;
l,i:integer;
begin
write('Nhap mot xau can chuan hoa: ');readln(st);
while st[1]=' 'do delete(st,1,1);
l:=length(st);
while st[l]=' 'do
begin
delete(st,l,1);
l:=length(st);
end;
l:=length(st);
i:=1;
repeat
if( st[i]=' ') and (st[i+1]=' ') then
0,5®
1®
0,25®
0,25®
0,25®
0,5®
0,5® 0,75®
Trang 4begin
delete(st,i,1);
i:=i-1;
l:=length(st);
end;
inc(i);
until i=l;
st[1]:=upcase(st[1]);
for i:=1 to l-1 do
if (st[i]=' ') and (st[i+1]<>' ') then st[i+1]:=upcase(st[i+1]);
writeln('xau sau khi da chuan hoa : ', st);
readln;
end
0,5®
0,25®