1. Trang chủ
  2. » Tất cả

Microsoft Word - DE THI OLYMPIC TIN HOC 11 NAM 2009-2010.doc

8 11 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Đề thi Olympic Tin học lớp 11 năm học 2009-2010
Trường học Trường Đại học Sư phạm Hà Nội
Chuyên ngành Tin học
Thể loại Đề thi
Năm xuất bản 2010
Thành phố Hà Nội
Định dạng
Số trang 8
Dung lượng 212,4 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 1

Thờ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 2

if ( 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 3

Mô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 4

if ( 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 5

Thờ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 6

if ( 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 7

Mô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 8

else 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!

Ngày đăng: 31/12/2022, 21:20

w