Microsoft Word DE THI OLYMPIC TIN HOC 11 NAM 2009 2010 doc SỞ GIÁO DỤC VÀ ĐÀO TẠO HÀ NỘI CỤM THPT GIA LÂM – LONG BIÊN ĐỀ THI OLYMPIC HỌC SINH GIỎI LỚP 11 Năm học 2009 – 2010 Môn Tin học Thời gian 90 p[.]
Trang 1Thời gian: 90 phút Ngày thi: 16-03-2010 Chú ý: Đề thi này gồm có hai trang.
Đề 654 Phần trắc nghiệm: (8 điểm)
01 Trong ngôn ngữ lập trình Pascal, về mặt cú pháp câu lệnh nào sau đây sai?
A x:=12,7; B b:=(a=5)or(a=7); C c:=pi*12; D a:=3.12;
02 Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau làm công việc gì?
i:=pos(' ',st); {' ' là 2 dấu cách}
while i<>0 do
Begin
delete(st,i,1);
i:=pos(' ',st);
End;
A Xóa 2 dấu cách liền nhau xuất hiện đầu tiên trong xâu st
B Xóa đi một trong hai dấu cách liền nhau đầu tiên trong xâu st
C Xóa 2 dấu cách liền nhau cuối cùng trong xâu st
D Xóa đi các dấu cách trong xâu st để xâu st không còn 2 dấu cách liền nhau
03 Trong ngôn ngữ lập trình Pascal, phát biểu nào sau đây về câu lệnh WHILE - DO là sai?
A Câu lệnh sau DO có thể không được thực hiện lần nào
B Câu lệnh sau DO sẽ không được phép là một câu lệnh While-do
C Câu lệnh sau DO sẽ không được phép là một câu lệnh For-do
D Câu lệnh sau DO được thực hiện ít nhất một lần
04 Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau làm công việc gì?
if (ch>'A') and (ch<'Z') then ch:=chr(ord(ch)+32);
A Xóa ký tự có trong biến ch B Không thực hiện gì
C Biến ch thành chữ in hoa D Biến ch thành chữ thường nếu ch là chữ hoa
05 Trong ngôn ngữ lập trình Pascal, Kết quả biến x sẽ có giá trị nào?
S:='Hoang Thu Thuy'; x:='';i:=length(S);
while S[i] <> ' ' do begin x:=x+S[i]; i:=i-1; end;
A 'Thuy' B 'Hoang' C 'Thu' D Xâu rỗng
06 Cho S và i là biến kiểu nguyên Giá trị S in ra màn hình là số nào sau khi chạy đoạn chương
trình:
S:=0;
for i:=1 to 10 do S:=S+i; writeln(S);
07 Xét biểu thức Logic (m mod 100<10) and (m div 100>0) Kết quả nào thỏa mãn biểu thức trên?
08 Phép toán (105 div 10 +105 mod 5) có giá trị là
09 Trong ngôn ngữ lập trình Pascal, hàm Upcase(ch) cho kết quả là:
A Xâu ch toàn chữ in thường B Biến ch thành chữ in thường
C Chữ cái in hoa tương ứng với ch D Xâu ch toàn chữ in hoa
10 Sau khi chạy chương trình dưới đây, giá trị của S là
Var S, i : Integer;
Begin
i := 5; S:= 40;
Trang 2if ( i > 5 ) then S:= 5 * 3 + ( 6 - i ) * 2;
if ( i > 2 ) then S:= 5 * i
else S:= 0;
End
11 Trong ngôn ngữ lập trình Pascal, để hoán đổi giá trị 2 phần tử mảng một chiều A tại hai vị trí i và
j, ta viết mã lệnh như sau:
A A[i]:=Tag; A[i]:=A[j]; A[j]:=Tag; B Tag:=A[i]; A[j]:=A[i]; A[j]:=Tag;
C Tag:=A[i]; A[i]:=A[j]; A[j]:=Tag; D Tag:=A[i]; A[i]:=A[j]; Tag:=A[j];
12 Cho st là biến kiểu xâu Cho biết kết quả sau khi thực hiện đoạn chương trình sau?
st:='ABCDEF'; delete(st,3,2); insert('XYZ',st,2); write(st);
A AXYZBCDEF B AXYZBEF C AXYZ D ABXYZEF
13 Trong ngôn ngữ lập trình Pascal, biểu thức (55 div 3 + 5 / 2 * 3) có giá trị là?
14 Trong ngôn ngữ lập trình Pascal, thủ tục chèn xâu S2 vào xâu S1 bắt đầu từ vị trí vt được viết là:
A insert(S1,vt,S2); B insert(S2,S1,vt); C insert(vt,S1,S2); D insert(S2,vt,S1);
15 Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau làm công việc gì?
S:=0; for i:=1 to N do S:=S+A[i];
A Đếm số phần tử của mảng A B Không thực hiện công việc nào
C In ra màn hình mảng A D Tính tổng các phần tử của mảng A
16 Cho S,i và N (N>0) là các biến kiểu nguyên Để tính được giai thừa của N (S = N!), ta thực hiện:
A S:=1; for i:=1 to N do S:=S*i; B S:=0; for i:=1 to N do S:=S*i;
C S:=1; for i:=1 to N do S:=S+i; D S:=1; for i:=1 to N do S:=S*N;
Phần tự luận: (12 điểm)
Câu 1 (8 điểm) Nhập vào từ bàn phím số nguyên dương N (1 < N ≤ 20) và dãy gồm N số nguyên có giá trị
tuyệt đối ≤ 10 9
Xuất ra màn hình các kết quả sau đây:
+ Dòng 1: Hiện ra màn hình dãy số vừa nhập, mỗi số trong dãy cách nhau 2 ký tự trống
+ Dòng 2: Tìm và hiển thị giá trị âm lớn nhất (Maxam) và dương nhỏ nhất (Minduong)
+ Dòng 3: Tách lấy giá trị Minduong rồi chuyển giá trị đó sang Hệ nhị phân
+ Dòng 4: Từ số nhị phân có được đó hãy hoán đổi vị trí các bit sao cho dãy bit này có giá trị là lớn nhất trong hệ nhị phân rồi chuyển ngược về hệ thập phân đưa ra màn hình
Ví dụ: INPUT N=5
8 5 -3 12 -7 OUTPUT 8 5 -3 12 -7
-3 5
101
6
Câu 2 (4 điểm) Viết chương trình nhập vào một xâu ký tự rồi mã hóa lại xâu đó bằng cách thay mỗi
ký tự bằng một ký tự đứng ngay sau nó k vị trí trong bảng chữ cái Alphabet Giá trị k là số nguyên bất kỳ được nhập từ bàn phím
Ví dụ: INPUT k=3
‘QefEPDslkdExf’
OUTPUT ‘ThiHSGvonghai’
………Hết………
Ghi chú: Cán bộ coi thi không giải thích gì thêm!
Trang 3Môn: Tin học
Thời gian: 90 phút Ngày thi: 16-03-2010
Chú ý: Đề thi này gồm có hai trang.
Đề 598 Phần trắc nghiệm: (8 điểm)
01 Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau làm công việc gì?
if (ch>'A') and (ch<'Z') then ch:=chr(ord(ch)+32);
A Xóa ký tự có trong biến ch B Không thực hiện gì
C Biến ch thành chữ thường nếu ch là chữ hoa D Biến ch thành chữ in hoa
02 Cho S và i là biến kiểu nguyên Giá trị S in ra màn hình là số nào sau khi chạy đoạn chương
trình:
S:=0; for i:=1 to 10 do S:=S+i; writeln(S);
03 Xét biểu thức Logic (m mod 100<10) and (m div 100>0) Kết quả nào thỏa mãn biểu thức trên?
04 Trong ngôn ngữ lập trình Pascal, biểu thức (55 div 3 + 5 / 2 * 3) có giá trị là?
05 Trong ngôn ngữ lập trình Pascal, để hoán đổi giá trị 2 phần tử mảng một chiều A tại hai vị trí i và
j, ta viết mã lệnh như sau:
A Tag:=A[i]; A[i]:=A[j]; A[j]:=Tag; B Tag:=A[i]; A[i]:=A[j]; Tag:=A[j];
C A[i]:=Tag; A[i]:=A[j]; A[j]:=Tag; D Tag:=A[i]; A[j]:=A[i]; A[j]:=Tag;
06 Trong ngôn ngữ lập trình Pascal, hàm Upcase(ch) cho kết quả là:
A Xâu ch toàn chữ in thường B Chữ cái in hoa tương ứng với ch
C Biến ch thành chữ in thường D Xâu ch toàn chữ in hoa
07 Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau làm công việc gì?
i:=pos(' ',st); {' ' là 2 dấu cách}
while i<>0 do Begin
delete(st,i,1);
i:=pos(' ',st);
End;
A Xóa đi các dấu cách trong xâu st để xâu st không còn 2 dấu cách liền nhau
B Xóa 2 dấu cách liền nhau cuối cùng trong xâu st
C Xóa đi một trong hai dấu cách liền nhau đầu tiên trong xâu st
D Xóa 2 dấu cách liền nhau xuất hiện đầu tiên trong xâu st
08 Cho S,i và N (N>0) là các biến kiểu nguyên Để tính được giai thừa của N (S = N!), ta thực hiện:
A S:=1; for i:=1 to N do S:=S+i; B S:=1; for i:=1 to N do S:=S*i;
C S:=0; for i:=1 to N do S:=S*i; D S:=1; for i:=1 to N do S:=S*N;
09 Phép toán (105 div 10 +105 mod 5) có giá trị là
10 Trong ngôn ngữ lập trình Pascal, về mặt cú pháp câu lệnh nào sau đây sai?
A c:=pi*12; B a:=3.12; C b:=(a=5)or(a=7); D x:=12,7;
11 Sau khi chạy chương trình dưới đây, giá trị của S là
Var S, i : Integer;
Begin
i := 5; S:= 40;
Trang 4if ( i > 5 ) then S:= 5 * 3 + ( 6 - i ) * 2;
if ( i > 2 ) then S:= 5 * i
else S:= 0;
End
12 Cho st là biến kiểu xâu Cho biết kết quả sau khi thực hiện đoạn chương trình sau?
st:='ABCDEF';
delete(st,3,2);
insert('XYZ',st,2);
write(st);
A AXYZBEF B ABXYZEF C AXYZ D AXYZBCDEF
13 Trong ngôn ngữ lập trình Pascal, phát biểu nào sau đây về câu lệnh WHILE - DO là sai?
A Câu lệnh sau DO sẽ không được phép là một câu lệnh While-do
B Câu lệnh sau DO có thể không được thực hiện lần nào
C Câu lệnh sau DO được thực hiện ít nhất một lần
D Câu lệnh sau DO sẽ không được phép là một câu lệnh For-do
14 Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau làm công việc gì?
S:=0; for i:=1 to N do S:=S+A[i];
A Đếm số phần tử của mảng A B In ra màn hình mảng A
C Tính tổng các phần tử của mảng A D Không thực hiện công việc nào
15 Trong ngôn ngữ lập trình Pascal, thủ tục chèn xâu S2 vào xâu S1 bắt đầu từ vị trí vt được viết là:
A insert(S2,vt,S1); B insert(S2,S1,vt); C insert(S1,vt,S2); D insert(vt,S1,S2);
16 Trong ngôn ngữ lập trình Pascal, Kết quả biến x sẽ có giá trị nào?
S:='Hoang Thu Thuy'; x:='';i:=length(S);
while S[i] <> ' ' do begin x:=x+S[i]; i:=i-1; end;
A Xâu rỗng B 'Thu' C 'Hoang' D 'Thuy'
Phần tự luận: (12 điểm)
Câu 1 (8 điểm) Nhập vào từ bàn phím số nguyên dương N (1 < N ≤ 20) và dãy gồm N số nguyên có giá trị
tuyệt đối ≤ 10 9
Xuất ra màn hình các kết quả sau đây:
+ Dòng 1: Hiện ra màn hình dãy số vừa nhập, mỗi số trong dãy cách nhau 2 ký tự trống
+ Dòng 2: Tìm và hiển thị giá trị âm lớn nhất (Maxam) và dương nhỏ nhất (Minduong)
+ Dòng 3: Tách lấy giá trị Minduong rồi chuyển giá trị đó sang Hệ nhị phân
+ Dòng 4: Từ số nhị phân có được đó hãy hoán đổi vị trí các bit sao cho dãy bit này có giá trị là lớn nhất trong hệ nhị phân rồi chuyển ngược về hệ thập phân đưa ra màn hình
Ví dụ: INPUT N=5
8 5 -3 12 -7 OUTPUT 8 5 -3 12 -7
-3 5
101
6
Câu 2 (4 điểm) Viết chương trình nhập vào một xâu ký tự rồi mã hóa lại xâu đó bằng cách thay mỗi
ký tự bằng một ký tự đứng ngay sau nó k vị trí trong bảng chữ cái Alphabet Giá trị k là số nguyên bất kỳ được nhập từ bàn phím
Ví dụ: INPUT k=3
‘QefEPDslkdExf’
OUTPUT ‘ThiHSGvonghai’
………Hết………
Ghi chú: Cán bộ coi thi không giải thích gì thêm!
Trang 5Thời gian: 90 phút Ngày thi: 16-03-2010
Chú ý: Đề thi này gồm có hai trang
Đề 566 Phần trắc nghiệm: (8 điểm)
01 Trong ngôn ngữ lập trình Pascal, về mặt cú pháp câu lệnh nào sau đây sai?
A x:=12,7; B c:=pi*12; C a:=3.12; D b:=(a=5)or(a=7);
02 Trong ngôn ngữ lập trình Pascal, thủ tục chèn xâu S2 vào xâu S1 bắt đầu từ vị trí vt được viết là:
A insert(vt,S1,S2); B insert(S2,S1,vt); C insert(S1,vt,S2); D insert(S2,vt,S1);
03 Phép toán (105 div 10 +105 mod 5) có giá trị là
04 Trong ngôn ngữ lập trình Pascal, Kết quả biến x sẽ có giá trị nào?
S:='Hoang Thu Thuy'; x:='';i:=length(S);
while S[i] <> ' ' do begin x:=x+S[i]; i:=i-1; end;
A Xâu rỗng B 'Thuy' C 'Thu' D 'Hoang'
05 Trong ngôn ngữ lập trình Pascal, phát biểu nào sau đây về câu lệnh WHILE - DO là sai?
A Câu lệnh sau DO sẽ không được phép là một câu lệnh For-do
B Câu lệnh sau DO có thể không được thực hiện lần nào
C Câu lệnh sau DO sẽ không được phép là một câu lệnh While-do
D Câu lệnh sau DO được thực hiện ít nhất một lần
06 Xét biểu thức Logic (m mod 100<10) and (m div 100>0) Kết quả nào thỏa mãn biểu thức trên?
07 Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau làm công việc gì?
i:=pos(' ',st); {' ' là 2 dấu cách}
while i<>0 do
Begin
delete(st,i,1);
i:=pos(' ',st);
End;
A Xóa đi một trong hai dấu cách liền nhau đầu tiên trong xâu st
B Xóa 2 dấu cách liền nhau cuối cùng trong xâu st
C Xóa 2 dấu cách liền nhau xuất hiện đầu tiên trong xâu st
D Xóa đi các dấu cách trong xâu st để xâu st không còn 2 dấu cách liền nhau
08 Cho S,i và N (N>0) là các biến kiểu nguyên Để tính được giai thừa của N (S = N!), ta thực hiện:
A S:=1; for i:=1 to N do S:=S*i; B S:=1; for i:=1 to N do S:=S+i;
C S:=1; for i:=1 to N do S:=S*N; D S:=0; for i:=1 to N do S:=S*i;
09 Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau làm công việc gì?
if (ch>'A') and (ch<'Z') then ch:=chr(ord(ch)+32);
A Biến ch thành chữ in hoa B Không thực hiện gì
C Biến ch thành chữ thường nếu ch là chữ hoa D Xóa ký tự có trong biến ch
10 Sau khi chạy chương trình dưới đây, giá trị của S là
Var S, i : Integer;
Begin
i := 5; S:= 40;
if ( i > 5 ) then S:= 5 * 3 + ( 6 - i ) * 2;
Trang 6if ( i > 2 ) then S:= 5 * i
else S:= 0;
End
11 Trong ngôn ngữ lập trình Pascal, hàm Upcase(ch) cho kết quả là:
A Xâu ch toàn chữ in thường B Biến ch thành chữ in thường
C Xâu ch toàn chữ in hoa D Chữ cái in hoa tương ứng với ch
12 Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau làm công việc gì?
S:=0; for i:=1 to N do S:=S+A[i];
A Không thực hiện công việc nào B Đếm số phần tử của mảng A
C In ra màn hình mảng A D Tính tổng các phần tử của mảng A
13 Cho st là biến kiểu xâu Cho biết kết quả sau khi thực hiện đoạn chương trình sau?
st:='ABCDEF'; delete(st,3,2); insert('XYZ',st,2); write(st);
A ABXYZEF B AXYZ C AXYZBEF D AXYZBCDEF
14 Trong ngôn ngữ lập trình Pascal, biểu thức (55 div 3 + 5 / 2 * 3) có giá trị là?
15 Trong ngôn ngữ lập trình Pascal, để hoán đổi giá trị 2 phần tử mảng một chiều A tại hai vị trí i và
j, ta viết mã lệnh như sau:
A Tag:=A[i]; A[j]:=A[i]; A[j]:=Tag; B Tag:=A[i]; A[i]:=A[j]; Tag:=A[j];
C Tag:=A[i]; A[i]:=A[j]; A[j]:=Tag; D A[i]:=Tag; A[i]:=A[j]; A[j]:=Tag;
16 Cho S và i là biến kiểu nguyên Giá trị S in ra màn hình là số nào sau khi chạy đoạn chương trình
sau:
S:=0; for i:=1 to 10 do S:=S+i; writeln(S);
Phần tự luận: (12 điểm)
Câu 1 (8 điểm) Nhập vào từ bàn phím số nguyên dương N (1 < N ≤ 20) và dãy gồm N số nguyên có giá trị
tuyệt đối ≤ 109
Xuất ra màn hình các kết quả sau đây:
+ Dòng 1: Hiện ra màn hình dãy số vừa nhập, mỗi số trong dãy cách nhau 2 ký tự trống
+ Dòng 2: Tìm và hiển thị giá trị âm lớn nhất (Maxam) và dương nhỏ nhất (Minduong)
+ Dòng 3: Tách lấy giá trị Minduong rồi chuyển giá trị đó sang Hệ nhị phân
+ Dòng 4: Từ số nhị phân có được đó hãy hoán đổi vị trí các bit sao cho dãy bit này có giá trị là lớn nhất trong hệ nhị phân rồi chuyển ngược về hệ thập phân đưa ra màn hình
Ví dụ: INPUT N=5
8 5 -3 12 -7 OUTPUT 8 5 -3 12 -7
-3 5
101
6
Câu 2 (4 điểm) Viết chương trình nhập vào một xâu ký tự rồi mã hóa lại xâu đó bằng cách thay mỗi
ký tự bằng một ký tự đứng ngay sau nó k vị trí trong bảng chữ cái Alphabet Giá trị k là số nguyên bất kỳ được nhập từ bàn phím
Ví dụ: INPUT k=3
‘QefEPDslkdExf’
OUTPUT ‘ThiHSGvonghai’
………Hết………
Ghi chú: Cán bộ coi thi không giải thích gì thêm!
Trang 7Môn: Tin học
Thời gian: 90 phút Ngày thi: 16-03-2010 Chú ý: Đề thi này gồm có hai trang.
Đề 343 Phần trắc nghiệm: (8 điểm)
01 Trong ngôn ngữ lập trình Pascal, về mặt cú pháp câu lệnh nào sau đây sai?
A a:=3.12; B c:=pi*12; C x:=12,7; D b:=(a=5)or(a=7);
02 Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau làm công việc gì?
S:=0; for i:=1 to N do S:=S+A[i];
A In ra màn hình mảng A B Đếm số phần tử của mảng A
C Không thực hiện công việc nào D Tính tổng các phần tử của mảng A
03 Xét biểu thức Logic (m mod 100<10) and (m div 100>0) Kết quả nào thỏa mãn biểu thức trên?
04 Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau làm công việc gì?
if (ch>'A') and (ch<'Z') then ch:=chr(ord(ch)+32);
A Xóa ký tự có trong biến ch B Không thực hiện gì
C Biến ch thành chữ in hoa D Biến ch thành chữ thường nếu ch là chữ hoa
05 Trong ngôn ngữ lập trình Pascal, biểu thức (55 div 3 + 5 / 2 * 3) có giá trị là?
06 Trong ngôn ngữ lập trình Pascal, hàm Upcase(ch) cho kết quả là:
A Xâu ch toàn chữ in hoa B Chữ cái in hoa tương ứng với ch
C Xâu ch toàn chữ in thường D Biến ch thành chữ in thường
07 Trong ngôn ngữ lập trình Pascal, để hoán đổi giá trị 2 phần tử mảng một chiều A tại hai vị trí i và
j, ta viết mã lệnh như sau:
A A[i]:=Tag; A[i]:=A[j]; A[j]:=Tag; B Tag:=A[i]; A[i]:=A[j]; A[j]:=Tag;
C Tag:=A[i]; A[i]:=A[j]; Tag:=A[j]; D Tag:=A[i]; A[j]:=A[i]; A[j]:=Tag;
08 Cho st là biến kiểu xâu Cho biết kết quả sau khi thực hiện đoạn chương trình sau?
st:='ABCDEF'; delete(st,3,2); insert('XYZ',st,2); write(st);
A ABXYZEF B AXYZ C AXYZBCDEF D AXYZBEF
09 Cho S,i và N (N>0) là các biến kiểu nguyên Để tính được giai thừa của N (S = N!), ta thực hiện:
A S:=1; for i:=1 to N do S:=S*i; B S:=1; for i:=1 to N do S:=S+i;
C S:=1; for i:=1 to N do S:=S*N; D S:=0; for i:=1 to N do S:=S*i;
10 Trong ngôn ngữ lập trình Pascal, thủ tục chèn xâu S2 vào xâu S1 bắt đầu từ vị trí vt được viết là:
A insert(S2,vt,S1); B insert(vt,S1,S2); C insert(S1,vt,S2); D insert(S2,S1,vt);
11 Phép toán (105 div 10 +105 mod 5) có giá trị là
12 Cho S và i là biến kiểu nguyên Giá trị S in ra màn hình là số nào sau khi chạy đoạn chương
trình:
S:=0; for i:=1 to 10 do S:=S+i; writeln(S);
13 Sau khi chạy chương trình dưới đây, giá trị của S là
Var S, i : Integer;
Begin
i := 5; S:= 40;
if ( i > 5 ) then S:= 5 * 3 + ( 6 - i ) * 2;
if ( i > 2 ) then S:= 5 * i
Trang 8else S:= 0;
End
14 Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau làm công việc gì?
i:=pos(' ',st); {' ' là 2 dấu cách}
while i<>0 do
Begin
delete(st,i,1);
i:=pos(' ',st);
End;
A Xóa 2 dấu cách liền nhau xuất hiện đầu tiên trong xâu st
B Xóa đi một trong hai dấu cách liền nhau đầu tiên trong xâu st
C Xóa đi các dấu cách trong xâu st để xâu st không còn 2 dấu cách liền nhau
D Xóa 2 dấu cách liền nhau cuối cùng trong xâu st
15 Trong ngôn ngữ lập trình Pascal, phát biểu nào sau đây về câu lệnh WHILE - DO là sai?
A Câu lệnh sau DO sẽ không được phép là một câu lệnh For-do
B Câu lệnh sau DO có thể không được thực hiện lần nào
C Câu lệnh sau DO sẽ không được phép là một câu lệnh While-do
D Câu lệnh sau DO được thực hiện ít nhất một lần
16 Trong ngôn ngữ lập trình Pascal, Kết quả biến x sẽ có giá trị nào?
S:='Hoang Thu Thuy'; x:='';i:=length(S);
while S[i] <> ' ' do begin x:=x+S[i]; i:=i-1; end;
A Xâu rỗng B 'Hoang' C 'Thuy' D 'Thu'
Phần tự luận: (12 điểm)
Câu 1 (8 điểm) Nhập vào từ bàn phím số nguyên dương N (1 < N ≤ 20) và dãy gồm N số nguyên có giá trị
tuyệt đối ≤ 109
Xuất ra màn hình các kết quả sau đây:
+ Dòng 1: Hiện ra màn hình dãy số vừa nhập, mỗi số trong dãy cách nhau 2 ký tự trống
+ Dòng 2: Tìm và hiển thị giá trị âm lớn nhất (Maxam) và dương nhỏ nhất (Minduong)
+ Dòng 3: Tách lấy giá trị Minduong rồi chuyển giá trị đó sang Hệ nhị phân
+ Dòng 4: Từ số nhị phân có được đó hãy hoán đổi vị trí các bit sao cho dãy bit này có giá trị là lớn nhất trong hệ nhị phân rồi chuyển ngược về hệ thập phân đưa ra màn hình
Ví dụ: INPUT N=5
8 5 -3 12 -7 OUTPUT 8 5 -3 12 -7
-3 5
101
6
Câu 2 (4 điểm) Viết chương trình nhập vào một xâu ký tự rồi mã hóa lại xâu đó bằng cách thay mỗi
ký tự bằng một ký tự đứng ngay sau nó k vị trí trong bảng chữ cái Alphabet Giá trị k là số nguyên bất kỳ được nhập từ bàn phím
Ví dụ: INPUT k=3
‘QefEPDslkdExf’
OUTPUT ‘ThiHSGvonghai’
………Hết………
Ghi chú: Cán bộ coi thi không giải thích gì thêm!