Câu 1
Biến đếm của vòng lặp với số lần lặp biết trước thường có kiểu?
A. Ký tự
|
B. Số nguyên
|
C. Số thực
|
D. .Logic
|
Câu 2
Xác định giá trị của biểu thức:
S = (135 div 100) + (135 mod 100) div 10 + (135 mod 10)
A. S = 4
|
B. S=10
|
C. S=6
|
D. S=9
|
Câu 3
đoạn chương trình sau thực hiện công việc nào trong các công việc sau:
i:=pos(‘ ‘,S); {‘ ’ là 2 dấu cách}
While i<>0 do
Begin
Delete(s, i, 1);
i:=pos(‘ ‘, s);
End;
A. Xóa các dấu cách liền nhau cuối cùng trong xâu;
|
B. Xóa hai dấu cách liên tiếp nhau đầu tiên trong xâu;
|
C. Xóa đi 1 trong 2 dấu cách đầu tiên trong xâu;
|
D. Xóa đi 1 dấu cách trong 2 dấu cách liên tiếp trong xâu s để s không còn 2 dấu cách liền nhau;
|
Câu 4
Cho str là một xâu kí tự, đoạn chương trình sau thực hiện công việc gì ?
for i := length(str) downto 1 do write(str[i]) ;
A. In từng kí tự xâu ra màn hình
|
B. In từng kí tự ra màn hình theo thứ tự ngược, trừ kí tự đầu tiên.
|
C. In từng kí tự ra màn hình theo thứ tự ngược
|
D. In xâu ra màn hình
|
Câu 5
Hãy chọn phương án ghép đúng. Cho xâu S là ‘Hanoi-Vietnam’. Kết quả của hàm Pos(‘Vietnam’,S) là
Câu 6
Cho biết màn hình xuất hiện như thế nào với đoạn chương trình sau:
d:=0;
For i:=1 to 10 do
Begin
i:= i+1; Write(d,' ');
End;
A. 11
|
B. 1 2 3 4 5 6 7 8 9 10
|
C. 0 0 0 0 0
|
D. 10
|
Câu 7
Đoạn chương trình sau thực hiện việc nào trong các việc sau:
S:=0;
For i:= 1 to n do S:=S+ i;
A. Tính tổng các giá trị từ 1 đến n;
|
B. Không thực hiện việc nào trong 3 việc trên;
|
C. In ra màn hình các giá trị từ 1 đến n;
|
D. Đếm các giá trị từ 1 đến n;
|
Câu 8
Hãy điền vào chỗ (…)
S1:= ‘CDE'; S2:= 'ABG' ; Insert( S1,S2, ...);
để thu được kết quả S2= 'ABCDEG'
Câu 9
Khi điều kiện đúng, câu lệnh IF <điều kiện> Then <câu lệnh1> Else <Câu lệnh2>; sẽ thực hiện
A. Câu lệnh 1
|
B. Câu lệnh 2
|
C. Thực hiện câu lệnh 2 trước rồi đến câu lệnh 1
|
D. Thực hiện câu lệnh 1 trước rồi đến câu lệnh 2
|
Câu 10
Lệnh Write trong đoạn chương trình sau thực hiện bao nhiêu lần ?
FOR i:=1 TO 3 DO
FOR j:=2 TO 5 DO Write (i,' ',j);
A. 3 lần
|
B. 5 lần
|
C. 12 lần
|
D. 9 lần
|
Câu 11
Tên nào đặt Sai quy định của Pascal:
A. Giai_Ptrinh_Bac_2;
|
B. Ngaysinh;
|
C. Sv2000 ;
|
D. Noi sinh;
|
Câu 12
phần tử đầu tiên của xâu kí tự mang chỉ số là:
A. 0
|
B. 1
|
C. Do người lập trình khai báo
|
D. Không có chỉ số
|
Câu 13
sau khi thực hiện đoạn chương trình sau, giá trị của biến S là:
S:=’Ha Noi mua thu’;
Delete(S,7,8);
Insert(‘Mua thu ‘,S,1);
A. ‘Ha Noi’;
|
B. ‘Mua thu Ha Noi’;
|
C. ‘Mua thu Ha Noi mua thu’;
|
D. ‘Ha Noi Mua thu’;
|
Câu 14
đoạn chương trình sau thực hiện công việc nào trong các công việc sau:
i:=pos(‘ ‘,S); {‘ ’ là 2 dấu cách}
While i<>0 do
Begin
Delete(s, i, 1);
i:=pos(‘ ‘, s);
End;
A. Xóa các dấu cách liền nhau cuối cùng trong xâu;
|
B. Xóa đi 1 dấu cách trong 2 dấu cách liên tiếp trong xâu s để s không còn 2 dấu cách liền nhau;
|
C. Xóa đi 1 trong 2 dấu cách đầu tiên trong xâu;
|
D. Xóa hai dấu cách liên tiếp nhau đầu tiên trong xâu;
|
Câu 15
Câu lệnh lặp biết trước số lần lặp:
FOR <biến đếm> := <Giá trị đầu> to <giá trị cuối> do <câu lệnh>;
Thì số lần lặp được tính theo công thức nào sau đây?
A. Giá trị cuối – giá trị đầu + 1
|
B. Giá trị cuối + giá trị đầu + 1
|
C. Giá trị cuối – giá trị đầu – 1
|
D. Giá trị đầu – giá trị cuối + 1
|
Câu 16
Vòng lặp nào có biến đếm tự động tăng lên một đơn vị sau một lần thực hiện câu lệnh?
A. Repeat…Until…
|
B. For …to…do…
|
C. For …downto…do…
|
D. While…do…
|
Câu 17
Hằng xâu Le Minh Xuan được viết như thế nào?
A. "Le Minh Xuan"
|
B. ‘Le Minh Xuan"
|
C. Le Minh Xuan
|
D. ‘Le Minh Xuan’
|
Câu 18
Cho khai báo:
Var A: Array[1..4] of Real;
i : Integer ;
Ðể nhập dữ liệu cho A, chọn câu nào :
A. For i:=1 to 4 do Readln(‘ Nhập A[‘, i, ‘]:’);
|
B. For i:=1 to 4 do Write(‘ Nhập A[‘, i, ‘]:’); Readln(A[i]);
|
C. Write(‘ Nhập A:’); Readln(A);
|
D. For i:=1 to 4 do Begin Write(‘ Nhập A[‘, i, ‘]:’); Readln(A[i]); End;
|
Câu 19
với xâu kí tự ta có thể:
A. Gán biến xâu cho biến xâu và gán một kí tự cho biến xâu;
|
B. So sánh hai xâu kí tự, gán biến xâu cho biến xâu và gán một kí tự cho biến xâu;
|
C. So sánh và gán một biến xâu cho biến xâu.
|
D. So sánh hai xâu kí tự;
|
Câu 20
Cho xâu s = ‘123456789’, sau khi thực hiện thủ tục delete(s,3,4) thì:
A. S = ‘123789’;
|
B. S = ‘1256789’;
|
C. S = ‘’;
|
D. S = ‘12789’;
|
Câu 21
Cho St là biến xâu, sau khi thực hiện các lệnh:
St:=’TINHOC11’;
Delete(St, 4, 3);
-Kết qủa in lên màn hình là:
A. HOC11
|
B. TIN11
|
C. TINH1
|
D. TINHOC
|
Câu 22
Trong quá trình nhập dữ liệu của mảng một chiều, để giá trị i cũng tăng theo phần tử thứ i ta viết như sau:
A. Write(‘A[‘i’]=’); readln(A[i]);
|
B. Write(‘A[i]=’); readln(A[i]);
|
C. Write(“A[“,i,”]=”); readln(A[i]);
|
D. Write(‘A[‘,i,’]=’); readln(A[i]);
|
Câu 23
Cho sâu s1 = ‘123’; s2 = ‘abc’ sau khi thực hiện thủ tục Insert(s1, s2, 2) thì:
A. s1 = ‘123’; s2 = ‘12abc’
|
B. s1 = ‘ab123; s2 = ‘abc’
|
C. s1 = ‘1abc23’; s2 = ‘abc’
|
D. s1 = ‘123’; s2 = ‘a123bc’
|
Câu 24
Cho St là biến chuỗi, sau khi thực hiện bốn lệnh:
St:=’ABCDEF’;
Delete(St, 3, 2);
Insert(‘XYZ’, St, 2);
Write(St);
-Kết qủa in lên màn hình là:
A. AXYZBCDEF
|
B. ABXYZEF
|
C. AXYZ
|
D. AXYZBEF
|
Câu 25
Var A; string[20]; Xâu A có thể chứa?
A. 256 kí tự
|
B. 255 kí tự
|
C. 20 kí tự
|
D. Báo lỗi
|
Câu 26
Cho câu lệnh For i:= 5 to 10 do write(‘Chao ban’); Câu ‘Chao ban’ xuất ra mấy lần:
Câu 27
Hai xâu kí tự được so sánh dựa trên:
A. Độ dài tối đa của hai xâu;
|
B. Độ dài thực sự của hai xâu;
|
C. Mã của từng kí tự trong các xâu lần lượt từ trái sang phải;
|
D. Số lượng các kí tự khác nhau trong 2 xâu;
|
Câu 28
Trong các hàm sau, hàm nào cho kết quả là độ dài thực sự của xâu st
A. Length(st);
|
B. Pos(st1,st2);
|
C. Upcase(ch);
|
D. Copy(st1,m,n);
|
Câu 29
Cho xâu s = ‘123456789’, sau khi th ực hiện thủ tục delets(s,3,4) thì:
A. S = ‘12789’;
|
B. S = ‘1256789’;
|
C. S = ‘’;
|
D. S = ‘123789’;
|
Câu 30
Cho biết kết quả khi thực hiện đoạn chương trình sau:
d:=0;
For i:=1 to 10 do d:= d+1;
Write(d);
Câu 31
Cho St là biến chuỗi, sau khi thực hiện hai lệnh :
St:= Copy( 'PASCAL VERSION 5.5' , 8, 7) ;
Write(St);
- Kết qủa in lên màn hình là:
A. VERSION
|
B. 5.5
|
C. VERSION 5.5
|
D. PASCAL
|
Câu 32
hàm length(s) cho kết quả gì?
A. Số kí tự hiện có trong xâu S không tính các khoảng trắng(Kí tự trắng, khoảng cách);
|
B. Số kí tự hiện có của xâu S;
|
C. Độ dài xâu S khi khai báo;
|
D. Số các kí tự của xâu không tính dấu cách cuối cùng;
|
Câu 33
Cho a:=3; b:=5. Câu lệnh IF a>b Then a:=4 Else b:=1; Sau khi thực hiện đoạn chương trình trên đáp án nào đúng?
A. a=3
|
B. b=5
|
C. b=1
|
D. a=4
|
Câu 34
Cho s = ‘500 ki tu’, hàm Length(s) cho giá trị bằng:
A. 500
|
B. 9
|
C. ‘5’
|
D. ‘500’
|
Câu 35
Câu lệnh nào sau đây đúng?
A. for i:=1 to 5 do s:=s*i;
|
B. for i:=5 downto 1; do s:=s+i;
|
C. for i:= 1 to 4 do s= -i;
|
D. for i=1 to 5 do s=s+2;
|
Câu 36
Cho các biến St chuỗi và k nguyên. Sau khi gán:
St:='Sinh vien Tin hoc hoc Tin hoc';
k := Pos('Tin', ST) ;
- Giá trị của k là :
A. k=11
|
B. k=23
|
C. k=26
|
D. k=13
|
Câu 37
Đoạn chương trình sau đây dùng để thực hiện công việc gì?
For i:=1 to n do
If i mod 2 = 0 then Writeln(A[i],’ ‘);
A. In ra màn hình giá trị của các phần tử có chỉ số chẵn trong mảng
|
B. In ra màn hình giá trị của các phần tử có giá trị chẵn trong mảng
|
C. In ra màn hình tất cả các phần tử trong mảng
|
D. Tất cả đều đúng
|
Câu 38
Hãy cho biết giá trị của M sau khi thực hiện đoạn chương trình sau với a=19 và b=12 ?
M := a ;
If a<b then M := b ;
A. M = 19
|
B. M = 12
|
C. M nhận cả hai giá trị trên
|
D. M không nhận giá trị nào
|
Câu 39
Cho đoạn chương trình sau
If (a<>0) then x:=9 div a Else x:=-1;
Write(‘ x= ‘, x + 1);
Khi cho a=0 thị đoạn chương trình trên sẽ in ra màn hình giá trị x=?
A. x=0;
|
B. x= -1
|
C. x là không xác định
|
D. x=1
|
Câu 40
hàm Upcase(ch); cho kết quả là:
A. Chữ cái in hoa tương ứng với ch;
|
B. Xâu ch toàn chữ thương;
|
C. Xâu ch toàn chữ hoa;
|
D. Biến ch thành chữ thường;
|
Câu 41
Var A:Array[1..200] of real;
Nhóm lệnh nào sau đây dùng để nhập giá trị cho tất cả các phần tử trong mảng?
A. For i:= 1 to 200 do Writeln(A[i]);
|
B. For i:= 1 to 200 do Readln(A[i]);
|
C. For i:= 1 to 200 do Readln(A[1]);
|
D. For i:= 1 to 200 do Writeln(i);
|
Câu 42
Chương trình sau thực hiện công việc gì?
X:= length(s);
For i:=x downto 1 do
If S[i] =’ ‘ then delete(s,i,1); {‘ ’ là khoảng trắng}
A. Xóa khoảng trắng đầu tiên trong xâu kí tự S;
|
B. Xóa khoảng trắng tại vị trí cuối cùng trong xâu kí tự S;
|
C. Xóa khoảng trắng thừa trong xâu kí tự S;
|
D. Xóa mọi khoảng trắng trong xâu kí tự S;
|
Câu 43
đoạn chương trình sau thực hiện công việc gì?
S1:=’anh’; S2:=’em’; i:=Pos(s2,s);
While i<> 0 do
Begin
Delete(s, i, 2);
Insert(s1, s, i);
i:=pos(s2, s);
End;
A. Thay toàn bộ từ ‘anh’ đầu tiên trong xâu S bằng từ ‘em’;
|
B. Thay toàn bộ từ ‘em’ trong xâu S bằng từ ‘anh’;
|
C. Thay toàn bộ từ ‘em’ đầu tiên trong xâu S bằng từ ‘anh’;
|
D. Thay toàn bộ từ ‘anh’ trong xâu S bằng từ ‘em’;
|
Câu 44
Lệnh IF.. THEN.. ELSE…; thuộc lệnh nào sau đây?
A. Vòng lặp
|
B. Lệnh rẽ nhánh
|
C. Lệnh ghép
|
D. Lệnh chọn lựa
|
Câu 45
phần mở rộng của tập tin Pascal chứa tối đa bao nhiêu kí tự?
Câu 46
Sau khi thực hiện đoạn chương trình sau, thì biến X có giá trị là bao nhiêu?
A:= 4 ; B: = 1; X:= 2 ;
IF A + B > 5 THEN X := X + A + B; WRITE (X);
Câu 47
S:= 'ABCDEG ' ;
Delete ( S ,2, 3); thu được kết quả :
A. S=‘AEG’
|
B. S=‘ADEG’
|
C. S=‘ABG’
|
D. S=‘ABEG’
|
Câu 48
thủ tục chèn xâu S1 vào xâu S2 bắt đầu từ vị trí vt được viết:
A. Insert(vt,S1,S2);
|
B. Insert(S2,S1,vt);
|
C. Insert(S1,vt,S2);
|
D. Insert(S1,S2,vt);
|
Câu 49
Để tìm vị trí xuất hiện đầu tiên của xâu ‘hoa’ trong xâu s ta có thể viết?
A. S1:=’hoa’; I:=pos(s1,’hoa’);
|
B. I:=pos(‘hoa’,’hoa’);
|
C. I:=pos(’hoa’,s);
|
D. I:=pos(s,’hoa’);
|
Câu 50
Khai báo nào đúng:
A. Var A : array[1..n] of integer;
|
B. Var A: array[3, 2] of Integer;
|
C. Var n, m : integer ; A: array[1..n] of integer;
|
D. Const n=2; Var A: array[1..n] of integer;
|
code map thôi đủ mệt rồi =))
chán mí bạn ghê á!!!!
uses math;
var n,i:longint;
s:int64;
f:array[-10..1000000] of int64;
procedure dq(n:longint);
begin
if n<=1000000 then
begin
s:=s+f[n];
exit;
end
else
begin
dq(n div 2);
dq(n div 3);
dq(n div 4);
end;
end;
begin
assign(input,'dprc.inp');reset(input);
assign(output,'dprc.out');rewrite(output);
for i:=1 to 1000000 do
begin
f[i]:=max(i,f[i div 2]+f[i div 3]+f[i div 4]);
//write(f[i],' ');
end;
while not seekeof do
begin
readln(n);
s:=0;
dq(n);
writeln(s);
end;
end.