Tìm giá trị của biến k sau khi chạy đoạn chương trình sau: k := 1; while (k<=40) do begin if k mod 3 = 1 then k := k * 3 + 1 else if k mod 3 = 2 then k := k * 3 - 1; end;
A -
4
B -
40
C -
121
D -
Vòng lặp vô tận
2-
Tìm vòng lặp in ra kết quả sau:
10 10 20 10 20 30 10 20 30 40
A -
for i:=1 to 4 do for j:=1 to i do write(i*10);
B -
for i:=1 to 4 do for j:=1 to i do write(j*10);
C -
for i:=10 to 40 do for j:=10 to i do write(j);
D -
for i:=10 to 40 do for j:=10 to i do write(i);
3-
Tìm vòng lặp in ra kết quả sau:
10 20 20 30 30 30 40 40 40 40
A -
for i:=1 to 4 do for j:=1 to i do write(j*10);
B -
for i:=10 to 40 do for j:=10 to i do write(i);
C -
for i:=10 to 40 do for j:=10 to i do write(j);
D -
for i:=1 to 4 do for j:=1 to i do write(i*10);
4-
Một người viết lại cấu trúc lặp:
repeat { câu lệnh } until {biểu thức logic} thành dạng lặp while như sau.
Cho biết quan điểm của bạn, cách nào đúng :
A -
while not {biểu thức logic} do {câu lệnh}
B -
if not {biểu thức logic} then {câu lệnh}; while not {biểu thức logic} do {câu lệnh}
C -
{câu lệnh}; while not {biểu thức logic} do {câu lệnh}
D -
{câu lệnh}; while {biểu thức logic} do {câu lệnh}
5-
Một người viết lại cấu trúc lặp:
while {biểu thức logic} do { câu lệnh } thành dạng lặp repeat như sau.
Cho biết quan điểm của bạn, cách nào đúng :
A -
if {biểu thức logic} then repeat {câu lệnh} until {biểu thức logic}
B -
if not {biểu thức logic} then repeat {câu lệnh} until {biểu thức logic}
C -
if {biểu thức logic} then repeat {câu lệnh} until not {biểu thức logic}
D -
repeat {câu lệnh} until not {biểu thức logic}
6-
Tìm giá trị của xâu s sau khi chạy đoạn chương trình sau: s := Hello; for i:=1 to length(s) div 2 do s[i*2] := succ(s[i*2]);
A -
Hello
B -
Ifmmp
C -
Iemp
D -
Hflmo
7-
Tìm giá trị của xâu s sau khi chạy đoạn chương trình sau: s := Hello; for i:=1 to length(s) div 2 do s[i*2] := succ(s[i]);
A -
Hello
B -
HIlKo
C -
Iemp
D -
HIlko
8-
Biết thủ tục Delete(s,k,n) xoá n ký tự trong xâu s kể từ vị trí k. Cách nào cho phép xoá mọi ký tự a ra khỏi xâu S.
A -
for i:=1 to length(s) do if S[i]=a then Delete(S,i,1);
B -
for i:=length(s) downto 1 do if S[i]=a then Delete(S,1,i);
C -
for i:=length(s) downto 1 do if S[i]=a then Delete(S,i,1);
D -
for i:=1 to length(s) do if S[i]=a then Delete(S,1,i);
9-
Biết thủ tục Delete(s,k,n) xoá n ký tự trong xâu s kể từ vị trí k. Một người viết một đoạn chương trình để xoá hết các ký tự trống trong xâu S như sau : for i:=1 to length(s) do if s[i]=' ' then delete(s,i,1); Đoạn chương trình này có (những) lỗi gì?
A -
Có thể truy nhập ra ngoài xâu s ở cuối vòng lặp (do i vượt quá độ dài của xâu S), có trường hợp không xoá được hết các ký tự trống
B -
Có thể truy nhập ra ngoài xâu s ở cuối vòng lặp, xoá nhầm một số ký tự khác trống
C -
Chỉ có lỗi truy nhập ra ngoài xâu s
D -
Không có lỗi gì.
10-
Biết thủ tục Delete(s,k,n) xoá n ký tự trong xâu s kể từ vị trí k. Đoạn chương trình sau đây có nhiệm vụ xoá hết các ký tự trống trong xâu S. Nhưng nó chạy có lỗi, không xoá hết mà bỏ sót một số ký tự trống trong một số trường hợp. Phải sửa lỗi như thế nào? i:=1; While (i<=length(s)) do begin if s[i]=' ' then delete(s,i,1); i:=i+1; end;
A -
Đoạn chương trình trên chạy không hề có lỗi
B -
Lẽ ra phải dùng delete(s,i,2) thay vì delete(s,i,1)
C -
Không được tăng biến i trong vòng lặp
D -
Không được tăng biến i trong vòng lặp nếu xoá kí tự s[i]