Tải bản đầy đủ (.doc) (20 trang)

bài tập trắc nghiệm lập trình pascal

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (123.97 KB, 20 trang )

1. 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
trong đó, 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
D. 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
writeln('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
end;
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
For 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
Câ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
else 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
Chọ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 + x
2
+… + x
20
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;

var 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;


until 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.

Câ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;

BEGIN
Read(n);
FOR i:=1 TO n DO
A[i]:=i+1;
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;
b/ z:=x/y;
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;

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
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;

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/ 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:

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:
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?

x 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;

IF 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;

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

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 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)

×