Chọn câu có chương trình viết đúng: khi dịch không có lỗi, khi chạy không “bị treo” A... Chọn câu có chương trình viết đúng: khi dịch không có lỗi, khi chạy không “bị treo” A... Các câu
Trang 11 Cho chương trình:
var a,b:boolean;
begin
a:=false;b:=true;
write(not(1<>4 mod 3) or not (a or not b));
write((5 div 6<=3) and (not true and (not b or a)):12);
readln end
Chọn trả lời đúng:
A Chương trình in ra: TRUE
FALSE *
B Chương trình in ra: TRUE
TRUE
C Chương trình in ra: FALSE FALSE
D Chương trình báo lỗi
2 Xét chương trình:
var i,j:integer;
begin
i:=1;
j:=2;
if odd(i)and (j>=2)then
if (i>0)or(j<i)then write(i)
else write(4);
readln
End
Chọn khẳng định đúng:
A Khi thi hành, chương trình in ra 1
B Khi thi hành, chương trình in ra 4
C Khi thi hành, chương trình không in
gì cả
D Khi dịch, chương trình báo lỗi ngữ pháp
3 Chọn (các) phép gán hợp lệ:
A a:= sqrt(25) – 2;
B b:= True Or (4 div 3) And (1 <> 2);
C x:= ln(1) – 4 div 2;
D y:= round(ln(3)) – 4 div 2;
1
Trang 2trong đó, các biến được khai báo như sau: var a, y:byte; b: boolean; x: real;
4 Xét chương trình:
1 Var i,s,n:real;
2 Begin
3 S:=0;N:= 10;
4 For i:=2 to n do
5 S:=s+1/i;
6 i:= 1;
7 Write(‘i=’,i);
8 Write(‘Tong bang S’);
9 Begin End
10 End
Khi dịch, chương trình báo lỗi ở (những) dòng nào
A 9
B 4
C 7
D 5, 8
5 Chọn câu có chương trình viết đúng: khi dịch không có lỗi, khi chạy không “bị treo”
A Chương trình 1
const c=1; var i:byte;
begin
i:=1;
repeat
i:=i+1;
write(i);
until c:=1;
end
B
Chương trình 2
Var i,j:1 10;
Begin
for i:=1 to 5 do
For j:=1 to 2 do
writeln(i, ' ',j,': Turbo Pascal’) End
C Chương trình 3.
Var do:byte;radian:real;
Begin
Do:=30;
radian:=do*pi/180;
write(radian:1:2);
End
2
Trang 3D Chương trình 4
var diem:real;
begin readln(diem);
case round(diem) / 1 of
0 4: write(‘Khong dat!’);
5 10: begin write(‘Dat!’) end else write(‘Nhap diem
sai!!! ’) end; end
6 Cho chương trình sau giải phương trình ax 2 + bx + c = 0 (a, b, c R):
var a,b,c,x,x1,x2,delta:real;
begin
write('nhap vao he so a,b,c:='); readln(a,b,c);
if a=0 then {PT bac nhat}
if b=0 then
if c=0 then writeln('pt vo so nghiem')
else writeln('pt vo nghiem')
else
begin
x:=-c/b; writeln('pt co nghiem la', x:8:2)
end
else
begin {PT bac 2}
delta:=b*b-4*a*c;
if(delta<0) then
writeln('pt vo nghiem');
if(delta=0) then
begin
x:=-b/(2*a);
writeln('pt co nghiem kep x1=x2=',x:8:2)
end;
if(delta>0) then
x1:= (-b-sqrt(delta))/ 2/a;
x2:= (-b+sqrt(delta))/(2*a);
3
Trang 4writeln('pt co nghiem x1=',x1:8:2);
writeln('pt co nghiem x2=',x2:8:2);
end;
end
Chọn trả lời đúng:
A Khi dịch báo lỗi
B Kết quả in ra sai
C Kết quả in ra đúng
D Chương trình bị treo
7 Chọn câu có chương trình viết đúng: khi dịch không có lỗi, khi chạy không “bị treo”
A Chương trình 1
Const a=5;
Var x:byte;
Begin
Write(‘Nhap x = ’);
readln(x);
If x:=0 then
write(x)
Else
Begin
x:=a*10;
write(x)
end
End
B Chương trình 2
Var a,b: integer;
Begin
a:=1;b:=0;
while (a<>21) or (b<10) do Begin
a:=a+2; b:=b+1;
writeln(a,’ ’,b) end
End
C Chương trình 3
uses crt;
var x,y,i,s,t:integer;
begin clrscr;{xoa man hinh}
readln(x);
readln(y);
s:=0;
t:=abs(x+y);
for i:=1 to t do
if t mod i= 0 then begin
s:=s+i;
i:=i+1;
4
Trang 5end;
writeln(s:6);
readln;
end
8 Cho chương trình:
var i:shortint;
begin
repeat
i:=i+1;
writeln(i:8);
until i<=-1;
end
Chọn câu trả lời đúng:
A chương trình báo lỗi hoặc treo
B chương trình in ra các số -128 127
C chương trình in ra các số 1 127
D không câu trả lời nào đúng
Vì phụ thuộc vào TP/FP: nếu trong TP thì chương trình in ra 1 127, -128 và dừng.
Còn trong FP thì báo lỗi runtime.
9 Xét chương trình sau:
type chi_so=1 4;
MI=array[chi_so] of byte;
Var i:byte;
X: mi;
Function Min(x:Mi):byte;
Var i:chi_so;tam:byte;
Begin
Tam:=x[1];
For i:=2 to 4 do
If x[i]<tam then tam:=x[i];
Min:=tam End;
Begin
5
Trang 6For i:=1 to 4 do readln(x[i]);
Writeln(min(x));
Readln End
Hãy chọn câu trả lời đúng:
A Chương trình báo lỗi khi dịch
B Với dữ liệu vào là 5, 3, 7, 9 thì kết quả in ra 3
C Với dữ liệu vào là 5, 3, 7, 9 thì kết quả in ra 9
D Các câu trả lời trên đều sai
Câu 10 Cho chương trình sau:
var r:byte;n,m,sl,t:integer;
Begin
Write(‘m = ’);Readln(n);
m:=0;sl:=0;t:=0;
repeat
r:=n mod 10;
m:=m*10+ r;
sl:=sl+1; t:=t+r;
n:=n div 10;
until n=0;
write(m:4,sl:4,t:4)
End
Sau khi thực hiện biên dịch và chạy:
A Chương trình báo lỗi cú pháp lệnh
B Nhập n = 123, chương trình in ra 123 3 6
C Nhập n = 123, chương trình in ra 321 3 6
D Nhập n = 123, chương trình in ra 321 6 3
6
Trang 7Câu 11 Cho chương trình:
var i:byte;k:integer;
begin
repeat
i:=i+2;
K:=i*i;
if i = 100 then i := 0;
writeln(k,i:8);
until i>=100;
end
Chọn câu trả lời đúng:
A chương trình báo lỗi cú pháp
B chương trình báo lỗi runtime
C chương trình bị treo và k có giá trị cố định là 0
D chương trình bị treo và k có giá trị không cố định
Câu 12 Cho đề bài: Nhập vào một dãy số gồm 7 phần tử và cho biết dãy vừa nhập có phải là
cấp số cộng hay không? (BT5-SGK trang 79)
Chương trình của HS như sau:
Var a: array[1 7] of integer;
i, d: integer; kt: boolean;
Begin
Writeln('Nhap day so: ');
For i:=1 to 7 do
Begin
Write('a[',i,'] = ');Readln(a[i]);
End;
d:=a[2]-a[1]; kt:=true; i:=1;
while kt and (i<=7) do
if (a[i]-a[i-1] <> d) then
kt:=false
7
Trang 8else i:=i+1;
if kt then
writeln('Day tao thanh cap so cong') else
writeln(‘Day khong tao thanh cap so cong'); readln;
End
Chọn câu trả lời đúng:
A chương trình báo lỗi cú pháp
B chương trình báo lỗi runtime
C chương trình cho kết quả đúng
D chương trình cho kết quả sai
Chỉ số vượt ngoài phạm vi cho phép
Câu 13 Chương trình tính tổng S và đưa kết quả ra màn hình (với a>2)
S = 1/a + 1/(a+1) + 1/(a+2) +…+1/(a+100)
HS lập trình giải bài toán như sau:
Chương trình 1:
Var s,n,a:real;
Begin
Readln(a);S:=1/a; N:=1;
While ( N<=100) do;
Begin
S:=S+1/(a+N); N:=N+1 End;
Writeln(‘Tong la S=’, S:8:4);
End
Chương trình 2:
Var s,a:real;n:integer;
Begin
Readln(a);
S:=1/a;
For N:=1 to 1000 do
S:=S+1/(a+N);
If n = 100 then break;
Writeln(‘Tong la S=’, S:0:4);
End
8
Trang 9Chọn câu trả lời đúng:
A 2 chương trình đều có lỗi cú pháp
B 2 chương trình đều có lỗi runtime
C 2 chương trình đều cho kết quả đúng
D 2 chương trình đều cho kết quả sai
Câu 14 Tính giá trị đa thức
P(x) = 1+ x + x2 +… + x20 tại x = x0
HS lập trình giải bài toán như sau:
Var x0:real;
Function P:real;
Var k: integer;
Begin
P:=1;
For k:=1 to 20 do
P:=P*x0 + 1;
End;
Begin
Readln(x0);
Writeln(‘Gia tri da thuc la: ‘, P:0:3);Readln;
End
Chọn câu trả lời đúng:
A chương trình có lỗi cú pháp
B chương trình cho kết quả sai
C chương trình cho kết quả đúng
D các câu trả lời trên đều sai Vì chương trình lặp vô tận.
Câu 15 Cho đề bài: Viết chương trình con tính bội chung nhỏ nhất của hai số
nguyên dương a, b (BT4- SGK trang 117) HS lập trình giải bài toán như sau: Var a, b: integer;
Function bcnn(a, b:integer):integer;
Trang 10var ucln:integer;
begin
while (a<>b) do
if a > b then a:=a-b else b:=b-a;
ucln:=b;
bcnn:= (a*b) div ucln;
end;
Begin
Readln(a,b);
Writeln(‘BCNN la: ‘,bcnn(a,b));
readln End
Chọn câu trả lời đúng:
A chương trình có lỗi cú pháp
B chương trình có lỗi ngữ nghĩa
C chương trình cho kết quả đúng
D các câu trả lời trên đều sai
Câu 16 Cho đề bài: Nhập vào một xâu kí tự st, rồi xoá tất cả các kí tự trắng vô
nghĩa trong xâu (xoá bỏ mọi kí tự trắng, ngoại trừ một kí tự trắng giữa hai từ)
Có 03 chương trình con xóa xâu như sau:
procedure xoa1(var st:string);
var i:byte;
begin
while st[1]=' ' do delete(st,1,1);
while st[length(st)]=' ' do delete(st,length(st),1);
i:=1;
repeat
if (st[i]<>' ')and(st[i+1]=' ') then
while st[i+2]=' ' do delete(st,i+2,1);
i:=i+1;
Trang 11until i>length(st);
end;
procedure xoa2(var st:string);
var i:byte;
begin for i:=1 to length(st)-1 do
if (st[i]=' ')and(st[i+1]=' ') then st:=delete(st,i,1);
If st[1]= ' 'then Delete(st,1,1);
If st[length(st)]= ' 'then delete(st, length(st),1);
St:=s;
end;
procedure xoa3(var st:string);
var i:byte;
begin
for i:= length(st) downto 1 do
if (st[i]=' ')and(st[i-1]=' ') then delete(st,i,1);
If st[1]= ' 'then Delete(st,1,1);
If st[length(st)]= ' 'then delete(st, length(st),1); end;
Chọn câu trả lời đúng:
A Cả 3 chương trình đều cho kết quả đúng
B chương trình cho kết quả đúng chỉ là xoa2.
C chương trình cho kết quả đúng chỉ là xoa1 và xoa3
D chương trình cho kết quả đúng chỉ là xoa3.
Trang 12Câu 1:
Trong ngôn ngữ Pascal
a/ 15 47 -13 là các hằng nguyên b/ 4.0 3E-7 0.523 là các hằng thực c/ ‘a’ ‘+’ ‘ ‘ là các hằng kí tự d/ a,b,c sai
x e/ a,b,c đúng
Câu 2 :
Trong ngôn ngữ Pascal, với x,y thuộc loại integer
a/ x:=y là một biểu thức luận lý b/ x+2y-5 là một biểu thức luận lý
x c/ x+2<>y là một biểu thức luận lý
d/ not (x+y) là một biểu thức luận lý e/ các câu trên đều sai
câu 3:
Trong ngôn ngữ Pascal ,với x,y thuộc loại integer a/ x=y là một biểu thức luận lý
b/ (x<>0)or (2*y>5) là một biểu thức luận lý c/ x+2<>y+1 là một biểu thức luận lý
d/ not (x>y) là một biểu thức luận lý
x e/ các câu trên đều sai
Câu 4:
Xét chương trình Pascal sau:
PROGRAM vidu;
TYPE d=ARRAY [ 1 n] of integer;
VAR i:integer; a:=d;
Trang 13BEGIN Read(n);
FOR i:=1 TO n DO
END
x a/chương trình báo lỗi ngữ pháp khi dịch b/ chương trình báo lỗi khi thi hành
c/ cả hai câu trên đều sai
d/ cả hai câu trên đều đúng
câu 5:
cho khai báo sau:
TYPE th=SET OF char;
VAR I,j,n:integer;
x,y,z:real; k:boolean;
a,b:th;
Hãy cho biết câu lệnh nào dưới đây bị sai: a/ n:=I DIV j;
c/ k:=’c’ IN a d/ x:=i/j +1
x e/ n:=i/j
câu 6:
cho khai báo sau:
TYPE th=SET OF char;
VAR I,j,n:integer;
x,y,z:real; k:boolean;
a,b:th;
Trang 14u,v:array[1 3] of integer;
Hãy cho biết câu lệnh nào dưới đây bị sai: a/ n:=I DIV j;
b/ z:=x/y;
c/ k:=’c’ IN a d/ x:=i/j +1
x e/ a:=[‘a’,b]
câu 7:
cho khai báo sau:
TYPE th=SET OF char;
VAR I,j,n:integer;
x,y,z:real; k:boolean;
a,b:th;
u,v:array[1 3] of integer;
Hãy cho biết câu lệnh nào dưới đây bị sai: a/ n:=I DIV j;
b/ z:=x/y;
c/ k:=’c’ IN a
x d/b:=b+’b’
e/ a:=[‘a’,’A’]
câu 8:
cho khai báo sau:
TYPE th=SET OF char;
VAR I,j,n:integer;
x,y,z:real; k:boolean;
a,b:th;
Trang 15u,v:array[1 3] of integer;
Hãy cho biết câu lệnh nào dưới đây bị sai:
a/ n:=I DIV j;
b/ z:=x/y;
c/ k:=’c’ IN a
x d/ u:=u*v
e/ a:=[‘a’,’A’]
câu 9:
cho khai báo sau:
VAR i:integer; c:char ; r:real;
Hãy cho biết nhóm lệnh nào sau đây viết đúng ngữ pháp: a/ các lệnh r:=7; i:=r; write(r)
b/ các lệnh c:=’9’ ;i:=9; if i=c then write(‘hop le’)
x c/ các lệnh r:=7; c:=’9’; i:=ord(c)
d/ cả ba nhóm lệnh trên đều có lỗi sai e/ cả ba nhóm lệnh trên đều có lỗi đúng
Câu 10:
cho khai báo sau:
VAR i:integer; c:char ; r:real;
Hãy cho biết nhóm lệnh nào sau đây viết đúng ngữ pháp: a/ các lệnh r:=7; i:=r; write(r)
b/ các lệnh c:=’9’ ;i:=9; if i=c then write(‘hop le’) c/ các lệnh r:=7; c:=ord(r); i:=ord(c)
x d/ cả ba nhóm lệnh trên đều có lỗi sai
e/ cả ba nhóm lệnh trên đều có lỗi đúng
Câu 11:
Trang 16cho khai báo sau:
VAR i:integer; c:char ; r:real;
Hãy cho biết nhóm lệnh nào sau đây viết đúng ngữ pháp:
x a/ các lệnh i:=7; r:=i; write(r)
b/ các lệnh c:=’9’ ;i:=9; if i=c then write(‘hop le’) c/ các lệnh i:=7; c:=ord(r); i:=ord(c)
d/ cả ba nhóm lệnh trên đều có lỗi sai e/ cả ba nhóm lệnh trên đều có lỗi đúng
Câu 12:
cho khai báo sau:
VAR i:integer; c:char ; r:real;
Hãy cho biết nhóm lệnh nào sau đây viết đúng ngữ pháp: a/ các lệnh i:=7; r:=9; writeln((r>i+1)
x b/ các lệnh c:=’9’ ;i:=9; if i=ord(c) then write(‘hop le’) c/ các lệnh i:=7; c:=ord(r); r:=ord(c)
d/ cả ba nhóm lệnh trên đều có lỗi sai e/ cả ba nhóm lệnh trên đều có lỗi đúng
Câu 13:
Cho x,y,z và t có loại integer.sau khi thi hành các lệnh: x:=5; y:=3; z:=5; t:=6;
If x>y then
If y>z then t:=y
ELSE
t:=x giá trị của t là bao nhiêu?
Trang 17x a/ t:=5
b/ t:=6 Câu 14:
Cho x,y ,z,t thuộc kiểu integer.Sau khi thi hành các lệnh: x:=5; y:=3; z:=5; t:=4;
IF x>=y THEN
IF y>z-1 THEN
t:=y
ELSE t:=x+1 giá trị của t là bao nhiêu?
x a/ t:=6
b/ t:=4 Câu 15:
Cho x,y ,z,t thuộc kiểu integer.Sau khi thi hành các lệnh: x:=5; y:=3; z:=5; t:=1;
IF x>=y THEN
IF y>=z-2 THEN
t:=y+2
ELSE t:=x-1 giá trị của t là bao nhiêu?
x a/ t:=5
b/ t:=1 Câu 16:
Cho x,y ,z,t thuộc kiểu integer.Sau khi thi hành các lệnh: x:=5; y:=3; z:=5; t:=5;
Trang 18IF x>=y THEN
IF y+2>=z THEN
t:=y-1
ELSE t:=x-1 giá trị của t là bao nhiêu?
x a/ t:=2
b/ t:=4 Câu 17:
Xét chương trình Pascal sau đây:
PROGRAM thi;
VAR I,j:integer;
BEGIN i:=1; j:=2;
IF (i<=1) AND (j>2) THEN
IF (i>0) OR (j<i) THEN
Write(3) ELSE Write(4) END
a/Khi thi hành ,chương trình in ra 3 b/Khi thi hành ,chương trình in ra 4
x c/Khi thi hành ,chương trình không in ra gì cả d/Khi dịch,chương trình báo lỗi ngữ pháp Câu 18:
Xét chương trình Pascal sau đây:
PROGRAM thi;
Trang 19VAR I,j:integer;
BEGIN i:=1; j:=3;
IF (i<=1) AND (j>2) THEN
IF (i:=0) OR (j<i) THEN
Write(3) ELSE Write(4) END
a/Khi thi hành ,chương trình in ra 3 b/Khi thi hành ,chương trình in ra 4 c/Khi thi hành ,chương trình không in ra gì cả
x d/Khi dịch,chương trình báo lỗi ngữ pháp Câu 19:
Xét chương trình Pascal sau đây:
PROGRAM thi;
VAR I,j:integer;
BEGIN i:=1; j:=3;
IF (i=1) AND (j>2) THEN
IF (i>0) OR (j<i) THEN
Write(3) ELSE Write(4) END
a/Khi thi hành ,chương trình in ra 3
x b/Khi thi hành ,chương trình in ra 4
Trang 20c/Khi thi hành ,chương trình không in ra gì cả d/Khi dịch,chương trình báo lỗi ngữ pháp Câu 20:
Cho khai báo sau trong ngôn ngữ Pascal:
TYPE a=record Hoten:array[0 40] of char;
Tuoi:integer END;
Pt=^b;
b=RECORD
info:a;
last:pt;
next:pt;
END;
VAR p1,p2:pt; x:a; y:=b;
Hãy chọn lệnh viết sai trong các lệnh sau: a/ new(p1)
b/ new(p1^.next) c/ new(p1^.next.last)
x d/ new(p1^.info)