ĐỀ CƯƠNG TIN HỌC
11 HỌC KỲ II NĂM HỌC 2020 – 2021
Phần trắc nghiệm:
Chương III. Vòng lặp While … do
Câu 1. Trong ngôn ngữ
lập trình Pascal, đoạn chương trình sau thực hiện công việc gì?
i := 0 ; while i <> 0 do
write(i, ‘ ’) ;
A. Đưa ra màn hình 10 chữ số 0. B. Đưa ra màn hình một chữ số 0.
C. Không đưa ra thông tin gì. D.
Lặp vô hạn việc đưa ra màn hình số 0.
Câu 2. Trong ngôn ngữ
lập trình Pascal, hãy cho biết đoạn chương trình sau làm công việc gì?
I := 0 ; T := 0 ;
While I < 10000 do
Begin
T
:= T + I ;
I
:= I + 2 ;
End ;
A. Tính tổng các số tự nhiên nhỏ hơn hoặc bằng 10000.
B. Tính tổng các số tự nhiên chẵn nhỏ hơn hoặc bằng 10000.
C. Tính tổng các số tự nhiên nhỏ hơn10000.
D. Tính tổng các số tự nhiên chẵn nhỏ hơn 10000.
Chương IV. Kiểu dữ liệu có cấu trúc
Bài 11 Kiểu mảng
Câu 3. Đâ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 4. 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 5. 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 6. 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 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 := 0 to 16 do write(a[k]);
Câu 7. Cho
khai báo mảng như sau : Var a : array[0..11] of integer ;
Phương án
nào dưới đây chỉ phần tử thứ 11 của mảng
A. a(11); B.
a[10]; C. a(11); D. a[11];
Câu 8.
Phát biểu nào sau đây
là đúng ?
A. Mảng một chiều là một
dãy hữu hạn các số nguyên.
B. Mảng một chiều là một
dãy hữu hạn các phần tử cùng kiểu dữ liệu
C. Có thể dùng bất cứ một
kiểu dữ liệu chuẩn nào để đánh chỉ số cho các phần tử của mảng một chiều.
D. Khi xây dựng kiểu mảng
một chiều, người lập trình không cần khai báo kiểu dữ liệu của phần tử của
mảng.
Câu 9. 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 10.
Phát biểu nào sau đây về
mảng là không chính xác ?
A. Chỉ số của mảng không
nhất thiết bắt đầu từ 1;
B. Có thể xây dựng
mảng nhiều chiều;
C. Xâu kí tự cũng có thể
xem như là một loại mảng;
D. Độ dài tối đa của
mảng là 255;
Câu 11. Cho
biến t := random(200) – random(200). Hỏi biến t không nhận giá trị nào?
A. 0. B.
200. C. -199. D. 199.
Câu 12. 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 13.
Trong ngôn ngữ lập
trình Pascal, đoạn chương trình sau thực hiện việc nào trong các việc sau (A là
mảng số có N phần tử) ?
S
:= 0 ;
For i := 1 to N do
S := S + A[i] ;
A. Tính tổng các phần
tử của mảng A.
B.
In ra màn hình mảng A.
C. Đếm số
phần tử của mảng A.
D.
Không làm gì.
Câu 14. 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 15. 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 16.
Trong ngôn ngữ lập
trình Pascal, xâu kí tự không có kí tự nào gọi là ?
A. Xâu không;
B. Xâu rỗng;
C. Xâu trắng;
D. Không phải là
xâu kí tự;
Câu 17. 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 18.
Biểu thức quan hệ nào dưới đây cho giá trị FALSE ?
A. “MOOR” <
“LOOK”;
B. “MOOR” <
“MOORK”;
C. “AB123CD” <
“ABCDAB”;
D. “ABCDOR” <
“ABDOR”;
Câu 19. 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 20. 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 21. 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 22.
Hãy chọn phương án ghép
đúng nhất. Thủ tục chuẩn Insert(S1,S2,vt) thực hiện
A. chèn xâu S1 vào S2
bắt đầu từ vị trí vt ;
B. chèn xâu S2 vào
S1 bắt đầu từ vị trí vt ;
C. nối xâu S2 vào
S1;
D. sao chép vào
cuối S1 một phần của S2 từ vị trí vt ;
Câu 23. Phát biểu nào dưới đây là sai ?
A. Xâu là một dãy các kí
tự trong bảng mã ASCII. Kiểu xâu là một kiểu dữ liệu có cấu trúc.
B. Có thể xem mỗi
xâu có cấu trúc giống như một mảng một chiều mà mỗi phần tử của mảng là một kí
tự trong bảng mã ASCII, được đánh chỉ số từ 1.
C. Số lượng kí tự
trong một xâu chính là độ dài của xâu.
D. Các phép toán thao
tác với xâu tương tự như các phép toán thao tác với mảng.
Câu 24. Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau thực hiện công việc
gì ? (giá trị của biến đếm)
dem := 0 ;
For ch := ‘a’ to ‘z’ do
If pos(ch,S) <> 0 then dem := + 1 ;
A.
Đếm số lượng ký tự khác dấu cách của xâu S.
B.
Đếm số lượng ký tự là chữ cái in hoa của xâu S.
C.
Đếm số lượng ký tự là chữ cái thường trong xâu S.
D. Đếm số lượng chữ
cái thường khác nhau có trong xâu S.
Câu 25.
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 := 1 to length(str) – 1 do
str[i+1] := str[i] ;
A. Dịch
chuyển các kí tự của xâu về sau 1 vị trí;
B. Dịch chuyển các kí tự
của sâu lên trước một vị trí;
C.
Khởi tạo lại mọi kí tự của xâu bằng kí tự đầu tiên;
D. Khởi
tạo lại mọi kí tự của xâu bằng kí tự cuối cùng;
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 26. Dữ liệu kiểu tệp
A. được lưu trữ trên ROM. B.
chỉ được lưu trữ trên đĩa cứng.
C. được lưu trữ trên RAM. D.
được lưu trữ trên bộ nhớ ngoài
Câu 27. Để
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 28. 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 29. Giả
sử a = 5; b = 9; c = 15; để ghi các giá trị trên vào tệp f có dạng là 5 9 15 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 30. 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 31. 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 32. 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 33. 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 34. 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 35. Để
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 36. Hãy chọn các
thao tác đọc trên tệp văn bản chứa dữ liệu là:
A. Thông báo mở file để ghi dữ liệu mới => Gán biến tệp với
tên tệp => Ghi dữ liệu mới => Đóng tệp.
B. Gán biến tệp với tên tệp => Thông báo mở tệp để đọc
=> Đọc dữ liệu trong tệp => Đóng tệp.
C. Thông báo mở file để ghi dữ liệu mới => Ghi dữ liệu mới
=> Gán biến tệp với tên tệp => Đóng tệp.
D. Gán biến tệp với tên tệp => Thông báo mở file để ghi dữ liệu
mới => Ghi dữ liệu mới => Đóng tệp.
Câu 37. Để
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);
Phần tự luận:
Câu 1.
Viết chương trình nhập sỉ số lớp theo từng khối. Thông báo ra
màn hình :
- Sỉ số lớp lớn nhất của từng khối. Liệt kê danh sách những lớp có sỉ số
lớn nhất?
- Tổng số học sinh từng khối.
Câu 2.
Viết chương tình nhập từ bàn phím một xâu kí tự S và thông
báo ra màn hình số lần xuất hiện của mỗi chữ cái tiếng Anh trong S (không phân
biệt chữ hoa hay chữ thường).
Câu 3.
Viết chương trình nhập từ bàn phím số nguyên dương N (N ≤100)
và dãy A gồm N số nguyên A1...AN có giá trị tuyệt đối không lớn hơn 1000. Hãy cho biết dãy A có phải là một cấp số cộng
hay không và thông báo kết quả ra màn hình.
Câu 4.
Dùng hàm Random tạo 1000 số ngẫu nhiên có giá trị tuyệt đối không lớn hơn 500 lưu vào mảng. Sau đó
ghi ra tệp văn bản SOCHAN.TXT các số chẳn và tệp SOLE.TXT các số lẻ theo cấu
trúc sau:
- Mỗi dòng có 8 số.
- Các số cách nhau 2 khoảng trắng.
Bài 1
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.
Program bai1;
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
var a:array[1..100] of integer;
i,n,d,dem:integer;
Begin
write('Nhap so phan tu cua day so:');
readln(n);
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
readln(a[i]);
while abs(a[i])>1000 do
begin
write('Nhap lai gia tri phan tu thu ',i,':');
readln(a[i]);
end;
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 cau4;
Var
f,g:text;
A:array[1..1000] of integer;
ch,le,i: integer;
Begin
Randomize;
For i:=1 to
1000 do
A[i]:=random(501)-random(501);
Assign(f,’sochan.txt’);
Assign(g,’sole.txt’);
Rewrite(f);
Rewrite(g);
ch:=0; le:=0;
For i:=1 to
1000 do
If (a[i] mod
2= 0) and then
begin
Write(f,a[i],' ');
ch:=ch+1;
If ch mod 8 = 0 then writeln(f);
end
else
begin
Write(g,a[i],' ');
le:=le+1;
If le mod 8 = 0 then writeln(g);
end;
Close(f);
Close(g);
End.
Không có nhận xét nào:
Đăng nhận xét