Chương IV. Kiểu dữ liệu có cấu trúc
Bài 11 Kiểu mảng
Câu 1. Đâu là khai báo trực tiếp đúng cho biến mảng 1 chiều:
A. var <tên biến mảng> : array <kiểu chỉ số> of <kiểu phần tử>;
B. type <tên biến mảng> : array[kiểu chỉ số] of <kiểu phần tử>;
C. var <tên biến mảng> : array[kiểu chỉ số] of <kiểu mảng>;
D. var <tên biến mảng> : array[kiểu chỉ số] of <kiểu phần tử>;
Câu 2. Phát biểu nào dưới đây về chỉ số của mảng là phù hợp nhất ?
A. Dùng trong vòng lặp với mảng để quản lí kích thước của mảng.
B. Dùng để quản lí kích thước của mảng.
C. Dùng trong vòng lặp với mảng.
D. Dùng để truy cập đến một phần tử bất kì trong mảng.
Câu 3. Phương án nào dưới đây là khai báo mảng hợp lệ ?
A. var mang : integer of array[0..10]; B. var mang : array[0..10] of integer;
C. var mang : array[0..10] : integer; D. var mang : array(0..10) : integer;
Câu 4. Cho khai báo sau: var a : array[0..16] of integer ;
Câu lệnh nào dưới đây sẽ in ra tất cả các phần tử của mảng trên ?
A. for k := 16 down to 0 write(a[k]); B. for k := 1 to 16 do write(a[k]);
C. for k:= 0 to 15 do write(a[k]); D. for k := 16 downto 0 do write(a[k]);
Câu 5. Cho khai báo mảng như sau : Var m : array[0..10] of integer ;
Phương án nào dưới đây chỉ phần tử thứ 10 của mảng
A. a(10); B. a[9]; C. a(10); D. a[10];
Câu 6. Phát biểu nào dưới đây về kiểu mảng là phù hợp ?
A. Là một dãy hữu hạn các phần tử cùng kiểu.
B. Độ dài tối đa của mảng là 255.
C. Là một tập hợp các số nguyên.
D. Mảng không thể chứa kí tự.
Câu 7. Cho biến t := random(300) – random(300). Hỏi biến t không nhận giá trị nào?
A. 0. B. 300. C. -299. D. 299.
Câu 8. Thế nào là khai báo biến mảng gián tiếp ?
A. Khai báo mảng hai chiều. B. Khai báo mảng xâu kí tự.
C. Khai báo thông qua kiểu mảng đã có. D. Khai báo mảng của các bản ghi.
Câu 9. Cho biến temp cùng kiểu với hai phần tử A[5] và A[6] thuộc mảng. Đoạn chương trình tráo đổi giá trị A[5] và A[6] cho nhau là:
A. A[5] := temp; temp := A[6]; A[6] := A[5]; B. A[6] := A[5]; temp := A[6]; A[5] := temp;
C. temp := A[5]; A[5] := A[6]; A[6]:= temp; D. A[5] := A[6]; temp := A[5]; A[6]:= temp;
Câu 10. Hãy chọn phương án ghép đúng nhất. Để khai báo số phần tử của mảng trong PASCAL, người lập trình cần
A. khai báo một hằng số là số phần tử của mảng. B. khai báo chỉ số kết thúc của mảng.
C. khai báo chỉ số bắt đầu và kết thúc của mảng. D. không cần khai báo gì, hệ thống sẽ tự xác định.
Bài 12 Kiểu xâu
Câu 11. Biểu thức quan hệ nào dưới đây cho giá trị True?
A.‘large’ < ‘hight’; B.‘MOOK’ < ‘MOOKR’; C.‘ABC123CD’< ‘’; D.‘math’ < ‘biological’;
Câu 12. Cho khai báo sau: Var hoten : String;
Phát biểu nào sau đây là đúng?
A. Xâu có độ dài lớn nhất là 255. B. Cần phải khai báo kích thước của xâu sau đó.
C. Câu lệnh sai vì thiếu độ dài tối đa của xâu. D. Xâu có độ dài lớn nhất là 0.
Câu 13. Cho S=’tin_hoc_pascal’ hàm copy(s,5,3) cho giá trị bằng:
A. ‘n hoc’. B. ‘pascal’. C. ‘oc_’. D. ‘hoc’.
Câu 14. Cho xâu S là ‘Hanoi-Vietnam’. Kết quả của hàm Pos(‘Vietnam’,S) là:
A. 6. B. 7. C. 8. D. 5.
Câu 15. Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau thực hiện công việc: readln(s); k:=length(s); for i:= k downto 1 write (s[i]);
A. In ra màn hình xâu S. B. In ra xâu S.
C. In ra màn hình độ dài xâu S. D. In ra màn hình xâu S đảo ngược.
Chương V. Tệp và thao tác với tệp
Bài 14 Kiểu dữ liệu tệp
Bài 15. Thao tác với tệp
Câu 16. Để biết khi nào thì kết thúc tệp, người ta dùng hàm
A. eofln(f); B. eof(f); C. eoln(f); D. foe(f);
Câu 17. Khi sử dụng kiểu dữ liệu tệp. Câu lệnh dùng thủ tục ghi có dạng:
A. Writeln(<danh sách kết quả>,(<biến tệp>); B. Writeln(<danh sách kết quả>);
C. Writeln(<biến tệp>, <danh sách kết quả>); D. Writeln(<tên tệp>);
Câu 18. Giả sử a = 5; b = 9; c = 15; để ghi các giá trị trên vào tệp f có dạng là 5915 ta sử dụng thủ tục ghi:
A. Write(f, a ‘’, b‘’, c); B. Write(a, ‘ ’, b, ‘ ’, c); C. Write(f, a, ‘ ’, bc); D. Write(f, a,b,c);
Câu 19. Trong Pascal để đóng tệp ta dùng thủ tục
A. Stop(<tên tệp>); B. Close(<danh sách biến tệp>);
C. Close(<tên tệp>); D. Close(<tên biến tệp>);
Câu 20. Khi sử dụng kiểu dữ liệu tệp. Câu lệnh dùng thủ tục đọc có dạng:
A. Read(<danh sách biến>, <biến tệp>); B. Read(<danh sách biến>);
C. Read(<biến tệp>); D. Read(<biến tệp>,<danh sách biến>);
Câu 21. Dữ liệu kiểu tệp:
A. Không bị mất khi tắt máy hoặc mất điện. B. Sẽ mất hết khi tắt điện đột ngột.
C. Sẽ mất hết khi tắt máy. D. Sẽ bị mất khi tắt trình biên dịch Pascal.
Câu 22. Vị trí của con trỏ tệp sau lời gọi thủ tục Reset
A. Nằm ở cuối tệp. B. Nằm ở đầu tệp. C. Nằm ở giữa tệp. D. Nằm ngẫu nhiên ở bất kỳ vị trí nào.
Câu 23. Trong Pascal, khi khai báo tệp văn bản ta sử dụng cú pháp?
A. Var <tên tệp> : Text; B. Var <tên tệp> : String;
C. Var <tên biến tệp> : String; D. Var <tên biến tệp> : Text;
Câu 24. Để gắn tệp output.txt cho biến tệp f1ta sử dụng lệnh:
A. Assign(f1,‘output.txt’); B. Assign(‘output.txt’,f1);
C. output.txt := f1; D. f1 := ‘output.txt’;
Câu 25. Để biết con trỏ tệp đã ở cuối dòng của tệp f hay chưa, ta sử dụng hàm:
A. eof(f, ‘trai.txt’); B. eof(f); C. foe(f); D. eoln(f);
Chương VI. Chương trình con và lập trình có cấu trúc
Bài 17. Chương trình con và phân loạiBài 18 Ví dụ về cách viết và sử dụng chương trình con
Câu 26. Trong các cách sử dụng thủ tục sau, cách nào là phù hợp nhất?
A. Khai báo lại thủ tục và gọi nó mỗi khi cần sử dụng.
B. Khai báo thủ tục một lần và gọi nó trong thân chương trình mỗi khi muốn sử dụng.
C. Chỉ cần khai báo.
D. Khai báo thủ tục duy nhất một lần và gọi nó một lần duy nhất.
Câu 27. Khẳng định nào sau đây là đúng?
A. Lời gọi hàm nhất định phải có tham số thực sự còn lời gọi thủ tục không nhất thiết phải có tham số thực sự.
B. Cả lời gọi hàm và lời gọi thủ tục đều phải có tham số thực sự.
C. Lời gọi hàm và lời gọi thủ tục có thể có tham số thực sự hoặc không có tham số thực sự tùy thuộc vào từng thủ tục.
D. Lời gọi thủ tục nhất thiết phải có tham số thực sự còn lời gọi hàm không nhất thiết phải có tham số thực sự.
Câu 28. Kiểu dữ liệu của hàm:
A. Có thể là các kiểu integer, real, char, boolean, string.
B. Có thể là integer, real, char, boolean, string, record, kiểu mảng.
C. Chỉ có thể là kiểu integer.
D. Chỉ có thể là kiểu real.
Câu 29. Nói về cấu trúc của một chương trình con, khẳng định nào sau đây là không đúng?
A. Phần đầu có thể có hoặc không có cũng được.
B. Phần đầu và phần thân nhất thiết phải có, phần khai báo có thể có hoặc không.
C. Phần khai báo có thể có hoặc không có tùy thuộc vào từng chương trình cụ thể.
D. Phần đầu nhất thiết phải có để khai báo tên chương trình con.
Câu 30. Khẳng định nào sau đây là đúng?
A. Chỉ có thủ tục mới có thể có tham số hình thức.
B. Cả thủ tục và hàm đều có thể có tham số hình thức.
C. Chỉ có hàm mới có thể có tham số hình thức.
D. Thủ tục và hàm nào cũng phải có tham số hình thức.
Câu 31. Mô tả nào dưới đây về tham số là sai ?
A. Một hàm có thể có cả tham số giá trị và tham số biến. B. Có thể truyền giá trị cho tham số biến.
C. Có thể truyền biến số cho tham số giá trị. D. Có thể dùng tham số biến để nhận kết quả.
Câu 32. Khẳng định nào sau đây là đúng?
A. Biến cục bộ là biến được dùng trong chương trình con chứa nó và trong chương trình chính.
B. Biến cục bộ là biến chỉ được dùng trong chương trình con chứa nó.
C. Biến cục bộ là biến chỉ được dùng trong chương trình chính.
D. Biến toàn bộ chỉ được sử dụng trong chương trình chính và không được sử dụng trong các chương trình con.
Câu 33. Muốn khai báo x là tham số giá trị và y, z là tham số biến (x, y, z thuộc kiểu Byte) trong thủ tục“ViduTT” th́ì khai báo nào sau đây là sai
A. Procedure ViduTT( Var y : Byte ; x : Byte ; Var z : Byte) ;.
B. Procedure ViduTT( x : Byte ; Var y : Byte ; z : Byte) ;.
C. Procedure ViduTT( x : Byte ; Var y : Byte ; Var z : Byte);.
D. Procedure ViduTT( x : Byte ; Var y, z : Byte);.
Câu 34. Hàm chuẩn nào dưới đây biến giá trị thực 6.6 thành 7?
A. Round. B. Odd. C. Trunc. D. Abs.
Câu 35. Lợi ích của việc sử dụng chương trình con?
A. Tất cả đều đúng.
B. Phục vụ quá trình trừu tượng hóa.
C. Hỗ trợ việc thực hiện các chương trình lớn.
D. Tránh được việc phải viết lặp đi lặp lại cùng một dãy lệnh.
Câu 36. Để khai báo hàm trong Pascal bắt đầu bằng từ khóa?
A. Program. B. Procedure. C. Var. D. Function.
Câu 37. Hãy chọn phương án ghép đúng. Kiểu của một hàm được xác định bởi:
A. Kiểu của các tham số. B. Địa chỉ mà hàm trả về.
C. Kiểu giá trị trả về. D. Tên hàm.
Câu 38. Mô tả nào dưới đây về hàm là sai?
A. Trong hàm có thể gọi lại chính hàm đó. B. Phải trả lại kết quả.
C. Phải có tham số. D. Có thể có các biến cục bộ.
Câu 39. Phát biểu nào dưới đây về biến là sai?
A. Biến toàn cục có thể được sử dụng ở trong một thủ tục.
B. Biến cục bộ có thể có kiểu khác với kiểu của biến toàn cục có cùng tên.
C. Biến cục bộ phải có tên khác với tên của biến toàn cục.
D. Một hàm có thể có nhiều tham số biến.
Câu 40. Trong các chương trình chuẩn sau đây, chương trình chuẩn nào là thủ tục chuẩn?
A. Delete(S,5,1); B. Sqrt(x)
C. Sin(x) D. Length(S)
var lop:array[1..50] of byte;
i,n,max:byte;
tong:integer;
Begin
write('Nhap so lop cua khoi 11');
readln(n);
writeln('Nhap si so cua tung lop');
for i:=1 to n do
begin
write('Nhap si so lop 11A',i,':');
readln(lop[i]);
end;
max:=lop[1];
for i:=2 to n do
if max<lop[i] then max:=lop[i];
Writeln('Lop co so hoc sinh nhieu nhat la: ',max);
tong:=0;
Writeln('Danh sach cac lop co si so hoc sinh nhieu nhat:');
for i:=1 to n do
begin
tong := tong + lop[i];
if lop[i]=max then write('11A',i,' ');
end;
writeln;
write('Tong so hoc sinh cua toan khoi 11 la:', tong);
readln;
End.
var s:string;
a:array['A'..'Z']of byte;
i:byte; j:char;
Begin
write('Nhap xau ki tu:');
readln(s);
for i:=1 to length(s) do
s[i]:=upcase(s[i]);
for i:=1 to length(s) do
if (s[i]>='A') and (s[i]<='Z') then a[s[i]]:=a[s[i]]+1;
for j:='A' to 'Z' do
if a[j]>0 then writeln('Ki tu ',j,' xuat hien ',a[j], ' lan');
readln;
End.
var a:array[1..100] of integer;
i,n,d,dem:integer;
Begin
write('Nhap so phan tu cua day so:');
readln(n);
while not( (n>1) and (n<=100)) do
begin
write('Nhap lai so phan tu cua day so:');
readln(n);
end;
writeln('Nhap gia tri tung phan tu cua day so');
for i:=1 to n do
begin
write('Nhap gia tri phan tu thu ',i,':');
readln(a[i]);
end;
d:=a[2]-a[1];
dem:=0;
for i:=2 to n do
if a[i]-a[i-1]= d then dem :=dem +1;
if dem=n-1 then writeln('Day so vua nhap la cap so cong')
else writeln('Day so vua nhap khong la cap so cong');
readln;
End.
var f:text;
i:integer;
Begin
assign(f,'kq.txt');
rewrite(f);
randomize;
for i:=1 to 3000 do
begin
write(f,random:8:6);
write(f,' ');
if i mod 8 = 0 then writeln(f);
end;
close(f);
writeln('Da tao xong tep ket qua');
readln;
End.
Phần chương trình - tự luận
Bài 1
Program bai1;var lop:array[1..50] of byte;
i,n,max:byte;
tong:integer;
Begin
write('Nhap so lop cua khoi 11');
readln(n);
writeln('Nhap si so cua tung lop');
for i:=1 to n do
begin
write('Nhap si so lop 11A',i,':');
readln(lop[i]);
end;
max:=lop[1];
for i:=2 to n do
if max<lop[i] then max:=lop[i];
Writeln('Lop co so hoc sinh nhieu nhat la: ',max);
tong:=0;
Writeln('Danh sach cac lop co si so hoc sinh nhieu nhat:');
for i:=1 to n do
begin
tong := tong + lop[i];
if lop[i]=max then write('11A',i,' ');
end;
writeln;
write('Tong so hoc sinh cua toan khoi 11 la:', tong);
readln;
End.
Bài 2:
Program bai2;var s:string;
a:array['A'..'Z']of byte;
i:byte; j:char;
Begin
write('Nhap xau ki tu:');
readln(s);
for i:=1 to length(s) do
s[i]:=upcase(s[i]);
for i:=1 to length(s) do
if (s[i]>='A') and (s[i]<='Z') then a[s[i]]:=a[s[i]]+1;
for j:='A' to 'Z' do
if a[j]>0 then writeln('Ki tu ',j,' xuat hien ',a[j], ' lan');
readln;
End.
Bài 3
Program bai3;var a:array[1..100] of integer;
i,n,d,dem:integer;
Begin
write('Nhap so phan tu cua day so:');
readln(n);
while not( (n>1) and (n<=100)) do
begin
write('Nhap lai so phan tu cua day so:');
readln(n);
end;
writeln('Nhap gia tri tung phan tu cua day so');
for i:=1 to n do
begin
write('Nhap gia tri phan tu thu ',i,':');
readln(a[i]);
end;
d:=a[2]-a[1];
dem:=0;
for i:=2 to n do
if a[i]-a[i-1]= d then dem :=dem +1;
if dem=n-1 then writeln('Day so vua nhap la cap so cong')
else writeln('Day so vua nhap khong la cap so cong');
readln;
End.
Bài 4
Program bai4;var f:text;
i:integer;
Begin
assign(f,'kq.txt');
rewrite(f);
randomize;
for i:=1 to 3000 do
begin
write(f,random:8:6);
write(f,' ');
if i mod 8 = 0 then writeln(f);
end;
close(f);
writeln('Da tao xong tep ket qua');
readln;
End.
Không có nhận xét nào:
Đăng nhận xét