Ở dạng lặp lùi câu lệnh sau DO được thực hiện tuần tự, với biến đếm lần lượt nhận giá trị từ giá trị đầu đến giá trị cuối.. Với mỗi giá trị của biến đếm trong khoảng từ giá trị đầu đến g
Trang 1ĐỀ CƯƠNG KHAM THẢO MÔN TIN HỌC 11
NĂM HỌC 2019 – 2020
Câu 01: Cho y là biến đã khai báo kiểu thực Sau khi thực hiện hai câu lệnh sau :
y := 10 ; Writeln(y:9:2);
thì kết quả dạng nào sẽ xuất hiện trên màn hình trong những dạng kết quả sau ?
Câu 02: Cú pháp của thủ tục đưa dữ liệu ra màn hình:
A Writeln(<Danh sách kết quả ra>); B Writeln(<Danh sách biến vào>);
C Readln <Danh sách kết quả ra>; D Readln(<Danh sách biến vào>);
Câu 03: Hãy chọn phát biểu đúng về hằng?
A Đại lượng không đổi trong quá trình thực hiện chương trình
B Đại lượng có thể thay đổi
C Không cần khai báo khi dùng
D Khai báo bằng từ khóa VAR
Câu 04: Biểu thức ((35 mod 9) div 2) có kết quả là mấy?
Câu 05: Trong các kiểu dữ liệu sau, kiểu nào dùng bộ nhớ lưư trữ là 4 byte?
Câu 06: Biến X có thể nhận giá trị: 0; 1; 3; 5; 7; 9 và biến Y có thể nhận các giá trị 0.5; 1.5; 2.5; 3.5; 4.5 Khai báo biến nào sau đây là đúng?
Câu 07: Hãy chọn phát biểu đúng về biến trong ngôn ngữ lập trình?
A Tên biến có thể được bắt đầu bằng chữ số B Tên biến được đặt tùy ý
C Biến là đại lượng có giá trị không đổi D Biến phải được khai báo trước khi sử dụng
Câu 08: Trong khai báo dưới đây bộ nhớ sẽ cấp phát cho các biến tổng cộng là bao nhiêu byte?
Var x,y,z : Integer;
c,h: Char;
ok: Boolean;
Câu 09: Trong các tên sau, đâu là tên dành riêng (từ khóa) trong ngôn ngữ lập trình Pascal?
Câu 10: Cho x là biến thực đã được gán giá trị 12.41235 Để thực hiện lên màn hình nội dung x=12.41 cần chọn câu lệnh nào sau đây?
A Writeln(x:5:2); B Writeln('x=' ,x:5:2); C Writeln(x:5); D Writeln(x);
Câu 11: Thoát khỏi phần mềm, ta nhấn tổ hợp phím:
Câu 12: Khẳng định nào sau đây là sai?
Trang 2A Phần thân chương trình có thể có hoặc không
B Phần tên chương trình không nhất thiết phải có
C Phần khai báo thư viện có thể có hoặc không
D Phần khai báo có thể có hoặc không
Câu 13: Để nhập dữ liệu vào từ bàn phím cho 2 biến a,b ta dùng lệnh?
A Writeln(a,b); B Readln(a;b); C Write(a;b); D Readln(a,b);
Câu 14: Trong NNLT Pascal, phát biểu nào sau đây đúng?
A Sau mỗi câu lệnh đều có dấu chấm phẩy ";"
B Trước lệnh else bắt buộc phải có dấu ";"
C Có phân biệt chữ hoa với chữ thường
D Câu lệnh trước câu lệnh END không nhất thiết phải có dấu chấm phẩy ";"
Câu 15: Trong NNLT Pascal, cho biết kết quả in ra màn hình của đoạn chương trình sau:
Var a,b: byte;
BEGIN
a:=5; b:=3; a:=b; b:=a;
write(b,a);
END
Câu 16: Tìm lỗi của chương trình sau:
Var
A, b, c : real ;
A := 1; b := 1; c := 5 ;
d := b*b – 4*a*c ;
writeln(‘d = ’,d);
END
Câu 17: Nếu nhập x = 2 thì giá trị của biến y bằng bao nhiêu qua chương trình
Var x,y : real;
Begin
Write(‘Nhap vao gia tri cua x = ’);
readln(x);
y := (x+2)*x – 5 ;
writeln(‘gia tri cua y = ’, y);
End
Câu 18: Trong Pascal, cú pháp để khai báo biến là:
A Var <danh sách biến>=<kiểu dữ liệu>; B Var <danh sách biến>:<kiểu dữ liệu>;
C <danh sách biến>: kiểu dữ liệu; D Var <danh sách biến>;
Câu 19: Trong ngôn ngữ Pascal, từ khóa USES dùng để khai báo
Câu 20: Cho xâu s=’123456789’ sau khi thực hiện thủ tục delete(s,3,4) thì:
Trang 3Câu 21: Với cấu trúc rẽ nhánh IF <điều kiện> THEN <câu lệnh>; <điều kiện> là:
A Phép toán logic B Biểu thức số học C Biểu thức quan hệ D Một câu lệnh
Câu 22: Với cấu trúc rẽ nhánh IF <điều kiện> THEN <câu lệnh>, câu lệnh đứng sau THEN
được thực hiện khi
A Điều kiện được tính toán xong;
B Điều kiện được tính toán và cho giá trị đúng;
C Điều kiện không tính được;
D Điều kiện được tính toán và cho giá trị sai;
Câu 23: Trong ngôn ngữ lập trình Pascal, câu lệnh nào sau đây là đúng ?
A If a = 5 then
a := d + 1 ;
b := 2 else
a := d + 2 ;
B If a = 5 then
Begin
a := d + 1 ;
b := 2 ; End ;
else
a := d + 2 ;
C If a = 5 then
Begin
a := d + 1 ;
b := 2 End
else
a := d + 2 ;
D If a = 5 then
Begin
a := d + 1 ;
b := 2 ; End
else
a := d + 2
Câu 24: Cho đoạn chương trình sau:
If (a<>1) then x:= 9 div a else x:= -2013;
write('x=',x+1);
Khi cho a = 1 thì đoạn chương trên sẽ in ra màn hình giá trị x bằng bao nhiêu?
Câu 25: Đoạn chương trình:
Min:=a;
If b < Min then Min:=b;
Hãy cho biết đoạn chương trình trên dùng để:
Trang 4A Tìm giá trị lớn nhất của 2 số a và b B Tìm giá trị bé nhất của 2 số a và b
Câu 26: Xét chương trình sau:
Var a,b: integer;
BEGIN
a:=575; b:=678;
if a<b then write('1');
if a=b then write('0');
if a>b then write('2');
END
Kết quả của chương trình trên là:
Câu 27: Cho đoạn chương trình dưới đây:
Var i,s: integer;
BEGIN
i:=7; s:=4;
if (i>5) then s:=s + (6 - i)*2
else if (i>3) then s:=s + 5*i
else s:=s+2;
write('Tong s la:',s);
END
Kết quả của chương trình trên là:
Câu 28: Trong NNLT Pascal, muốn kiểm tra đồng thời cả ba giá trị của A, B, C có cùng lớn hơn 0 hay không ta viết câu lệnh If thế nào cho đúng?
A If A, B, C >0 then B If (A>0) and (B>0) and (C>0) then
C If A>0 and B>0 or C>0 then D If (A>0) or (B>0) or (C>0) then
Câu 29: Trong ngôn ngữ lập trình Pascal, 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 ;
C M nhận cả hai giá trị trên D M không nhận giá trị nào
Câu 30: Xét chương trình sau?
Var a, b: integer;
Begin
a:=102;
write(‘b=’); readln(b);
if a<b then write(‘Xin chao cac ban!’);
end
Nhập giá trị cho b bao nhiêu để khi chạy chương trình nhận được kết quả ‘Xin chao cac ban!’?
Trang 5Câu 31: Hai dạng lặp FOR - DO trong PASCAL là dạng lặp tiến và dạng lặp lùi Chọn phát biểu đúng trong các phát biểu sau đây:
A Ở dạng lặp tiến câu lệnh sau DO luôn được thực hiện ít nhất một lần
B Ở dạng lặp lùi câu lệnh sau DO được thực hiện tuần tự, với biến đếm lần lượt nhận giá trị từ giá trị đầu đến giá trị cuối
C Ở dạng lặp lùi câu lệnh sau DO có thể không được thực hiện lần nào, đó là trường hợp giá trị cuối nhỏ hơn giá trị đầu
D Biểu thức giá trị đầu và biểu thức giá trị cuối có thể thuộc kiểu số thực
Câu 32: Trong NNLT Pascal, về mặc cú pháp câu lệnh nào sau đây là đúng với cấu trúc lặp FOR-DO?
A For i:=1 to 100 do a:= a - 1; B For i:=1 to 100 do; a:= a - 1;
C For i:=1 to 100 do a:= a - 1 D For i:=1; to 100 do a:= a - 1;
Câu 33: Trong NNLT Pascal, về măt cú pháp câu lệnh nào sau đây là đúng với cấu trúc lặp nhiều câu lệnh con?
A For i:=1 to 100 do
a:=a-1;
b:=a-c;
ENDFor;
B For i:=1 to 100 do
BEGIN
a:=a-1;
b:=a-c;
END;
C For i:=1 to 100 do
BEGIN
a:=a-1;
b:=a-c
END;
D For i:=1 to 100 do
a:=a-1;
b:=a-c
Câu 34: Trong NNLT, đoạn chương trình sau đưa ra kết quả gì?
For i:=10 downto 1 do write(i,' ');
Câu 35: Đoạn chương trình sau cho ra kết quả là gì?
For i:=M to N do If (i mod 3 = 0) or (i mod 5 = 0) then T:=T+i;
A Tính tổng các số chia hết cho 3 trong phạm vi M và N
B Tính tổng các số chia hết cho 5 trong phạm vi M và N
C Tính tổng các số chia hết cho 3 hoặc cho 5 trong phạm vi M và N
D Tính tổng các số chia hết cho 3 hoặc cho 5 trong phạm vi 3 và 5
Câu 36: Đoạn chương trình sau cho ra kết quả là gì?
For i:=1 to 999 do If (i mod 2 <>0) and (i mod 3 = 0) then writeln(i);
Trang 6A Tính tổng các số lẻ và chia hết cho 3 trong phạm vi từ 1 đến 999
B Tính tổng các số chẳn và chia hết cho 3 trong phạm vi từ 1 đến 999
C Liệt kê các số lẻ và chia hết cho 3 trong phạm vi từ 1 đến 999
D Liệt kê các số chẳn và chia hết cho 3 trong phạm vi từ 1 đến 999
Câu 37: Chọn phát biểu sai trong các phát biểu sau đây:
A Để mô tả việc lặp đi lặp lại một số thao tác (hoặc câu lệnh) trong một thuật toán ta có thể dùng cấu trúc lặp
B Tùy từng trường hợp cụ thể (khi mô tả một thuật toán), khi thì ta biết trước số lần lặp, khi thì ta không cần hoặc không xác định được trước số lần lặp các thao tác nào đó
C Có thể dùng cấu trúc lặp để thay cho cấu trúc rẽ nhánh trong mô tả thuật toán
D Không thể mô tả được mọi thuật toán bằng ngôn ngữ lập trình bậc cao nếu không dùng cấu trúc lặp
Câu 38: Cho hai dạng lặp FOR – DO trong PASCAL như sau :
Dạng lặp tiến :
FOR <biến đếm> := <giá trị đầu> TO <giá trị cuối> DO <câu lệnh> ;
Dạng lặp lùi :
FOR <biến đếm> := <giá trị cuối> DOWNTO <giá trị đầu> DO <câu lệnh> ;
Chọn phát biểu sai trong các phát biểu đưới dây :
A Biến đếm là biến đơn, thường có kiểu nguyên.
B Với mỗi giá trị của biến đếm trong khoảng từ giá trị đầu đến giá trị cuối, câu lệnh sau DO
được thực hiện một lần
C Phải có lệnh thay đổi biến đếm trong mỗi <câu lệnh> sau DO trong cấu trúc lặp này, vì giá trị của biến đếm không được tự động điều chỉnh sau mỗi lần thực hiện câu lệnh lặp
D Ở dạng lặp tiến câu lệnh sau DO được thực hiện tuần tự, với biến đếm lần lượt nhận giá trị
từ giá trị đầu đến giá trị cuối
Câu 39: Trong các ngôn ngữ lập trình bậc cao thường có cấu trúc lặp để mô tả việc lặp đi lặp lại một số thao tác nào đó khi một điều kiện cho trước được thỏa mãn
Để tổ chức việc lặp như vậy PASCAL dùng câu lệnh WHILE – DO có dạng :
WHILE <điều kiện> DO <câu lệnh>;
Chọn phát biểu sai trong các phát biểu dưới đây :
A Điều kiện là biểu thức cho giá trị logic.
B Về mặt cú pháp, những biểu thức có thể điền vào điều kiện trong cấu trúc WHILE – DO cũng có thể điền vào điều kiện trong cấu trúc rẽ nhánh IF – THEN
C Không cần có lệnh thay đổi điều kiện trong mỗi câu lệnh sau DO trong cấu trúc lặp này, vì giá trị của biểu thức điều kiện được tự động điều chỉnh sau mỗi lần thực hiện câu lệnh lặp
D Nếu không có lệnh nào thay đổi điều kiện trong mỗi câu lệnh sau DO thì có thể gặp hiện tượng lặp vô hạn khi thực hiện chương trình, nghĩa là lặp không dừng được,
Câu 40: 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 ;
Trang 7B Tính tổng các số tự nhiên chẵn nhỏ hơn 10000 ;
C Tính tổng các số tự nhiên chẵn nhỏ hơn hoặc bằng 10000 ;
D Tính tổng các số tự nhiên nhỏ hơn hoặc 10000 ;
Câu 41: Mảng một chiều là?
A Dãy hữu hạn các phần tử cùng kiểu số nguyên
B Dãy hữu hạn các phần tử cùng kiểu
C Dãy hữu hạn các phần tử khác kiểu
D Dãy hữu hạn các phần tử khác kiểu dữ liệu
Câu 42: 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ố bắt đầu và kết thúc của mảng;
C khai báo chỉ số 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;
Câu 43: Phương án nào dưới đây là khai báo mảng hợp lệ ?
A mang : ARRAY[0 10] OF INTEGER; B mang : ARRAY[0 10] : INTEGER;
C mang : INTEGER OF ARRAY[0 10]; D mang : ARRAY(0 10) : INTEGER;
Câu 44: Cho khai báo sau: 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 := 1 to 16 do write(a[k]); B for k := 16 downto 0 do write(a[k]);
C for k:= 0 to 15 do write(a[k]); D for k := 16 down to 0 write(a[k]);
Câu 45: 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?
Câu 46: Phát biểu nào sau đây là sai ?
A Mỗi phần tử của mảng một chiều đều được đánh chỉ số, được chỉ định nhờ chỉ số tương ứng của nó
B Với khai báo xây dựng kiểu mảng một chiều, không thể biết được mảng chứa tối đa bao nhiêu phần tử
C Trong khai báo xây dựng kiểu mảng một chiều, có thể biết được cách đánh chỉ số cho các phần tử của mảng
D Chỉ số được đánh tuần tự, liên tiếp cho các phần tử kề nhau của mảng một chiều, từ phần tử đầu tiên cho đến phần tử cuối
Câu 47: 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 thực hiện việc nào trong 3 việc trên
Câu 48: Cách tham chiếu đến phần tử của mảng:
A <Tên biến mảng>[<chỉ số>]; B <Tên biến mảng>[<kiểu chỉ số>];
Trang 8C <Tên biến mảng>[<kiểu mảng>]; D <Tên biến mảng>[<kiểu phần tử>];
Câu 49: 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ì?
d:=0; For i:= 1 to n do
If A[i] mod 2=0 then d:=d+1;
A Tính tổng các phần tử của mảng chia hết cho 2
B In ra màn hình các phần tử của mảng chia hết cho 2
C Đếm số phần tử của mảng chia hết cho 2
D Đếm số phần tử của mảng không chia hết cho 2
Câu 50: Hãy chọn phương án hợp lý nhất Trong ngôn ngữ lập trình Pascal
A Các phần tử của mảng một chiều được sắp thứ tự theo chỉ số;
B Các phần tử của mảng một chiều được sắp thứ tự theo giá trị giảm dần;
C Các phần tử của mảng một chiều được sắp thứ tự theo giá trị tăng dần;
D Các phần tử của mảng một chiều không sắp thứ tự
Câu 51: Hàm length(S,vt,n) dùng để
A Cho giá trị là chiều dài của xâu
B Cho giá trị là độ dài của xâu
C Thực hiện việc xóa n kí tự của biến xâu st bắt đầu từ vị trí vt
D Sai cú pháp
Câu 52: Hàm Copy(S,vt,n) dùng để
A Thực hiện việc xóa n kí tự của biến xâu st bắt đầu từ vị trí vt
B Copy n kí tự của xâu S
C Tạo xâu gồm n kí tự liên tiếp bắt đầu từ vị trí vt của xâu S
D Tạo xâu S gồm n kí tự liên tiếp bắt đầu từ vị trí vt
Câu 53: Đoạn chương trình sau in ra kết quả nào ?
Program Welcome ;
Var a : string[10];
Begin
a := ‘tin hoc’;
writeln(length(a));
Readln
End
Câu 54: 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 xâu ra màn hình;
B In từng kí tự xâu ra màn hình;
C In từng kí tự ra màn hình theo thứ tự ngược, trừ kí tự đầu tiên;
D In từng kí tự ra màn hình theo thứ tự ngược lại;
Câu 55: Cho khai báo sau:
Var hoten : String;
Phát biểu nào dưới đây là đúng ?
A Câu lệnh sai vì thiếu độ dài tối đa của xâu;
B Xâu có độ dài lớn nhất là 0;
Trang 9C Xâu có độ dài lớn nhất là 255;
D Cần phải khai báo kích thước của xâu sau đó;
Câu 56: Biểu thức quan hệ nào dưới đây cho giá trị TRUE ?
Câu 57: Trong ngôn ngữ lập trình Pascal, xâu kí tự không có kí tự nào gọi là?
Câu 58: Trong ngôn ngữ lập trình Pascal, sau khi chương trình thực hiện xong đ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);
Câu 59: 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 60: Trong ngôn ngữ lập trình Pascal, để xóa đi ký tự đầu tiên của xâu ký tự S ta viết:
A Delete(S, 1, 1);
B Delete(S, i, 1); { i là biến có giá trị bất kỳ }
C Delete(S, length(S), 1);
D Delete(S, 1, i); { i là biến có giá trị bất kỳ }
Câu 61: Dữ liệu kiểu tệp
C Chỉ được lưu trữ trên đĩa cứng D Được lưu trữ trên bộ nhớ ngoài
Câu 62: Phát biểu nào sau đây là sai ?
A Muốn đọc / ghi dữ liệu trong một tệp, sau khi gắn biến tệp với tên tệp cần phải thực hiện thao tác mở tệp đó;
B Trong lệnh mở tệp, cần khai báo tên tệp để xác định đúng vị trí tệp trên đĩa
C Trong lệnh gán tên tệp với biến tệp, cần khai báo tên tệp để xác định đúng vị trí tệp trên đĩa
D Sau khi mở tệp, con trỏ tệp ở vị trí đầu tệp
Câu 63: Hãy chọn thứ tự hợp lí nhất khi thực hiện các thao tác đọc dữ liệu từ tệp :
A Mở tệp => Gán tên tệp với biến tệp => Đọc dữ liệu từ tệp => Đóng tệp
B Mở tệp => Đọc dữ liệu từ tệp => Gán tên tệp với biến tệp => Đóng tệp
C Gán tên tệp với biến tệp => Mở tệp => Đọc dữ liệu từ tệp => Đóng tệp
D Gán tên tệp với biến tệp => Đọc dữ liệu từ tệp => Mở tệp => Đóng tệp
Trang 10Câu 64: Trong PASCAL mở tệp để đọc dữ liệu ta phải sử dụng thủ tục
A Reset(<tên tệp>); B Reset(<tên biến tệp>);
C Rewrite(<tên tệp>); D Rewrite(<tên biến tệp>);
Câu 65: Trong PASCAL, để khai báo hai biến tệp văn bản f1, f2 ta viết
Câu 66: Để gắn tệp KQ.TXT cho biến tệp f1 ta sử dụng câu lệnh
Câu 67: Nếu hàm eof(<tên biến tệp>) cho giá trị bằng true thì con trỏ tệp nằm ở vị trí
Câu 68: Trong Pascal, cho trước tệp văn bản BT2.TXT chỉ có một dòng, chứa dòng chữ :
CHAO MUNG BAN DEN VOI LAP TRINH ngay ở đầu dòng Thực hiện chương trình VD_bt2_txt , trên màn hìnhsẽ hiện kết quả nào trong các kết quả cho dưới đây?
Program VD_bt2_txt ;
Uses crt ;
Var f : text ;
S : string[13] ;
Begin
Clrscr;
Assign(f, ‘BT2.TXT ’) ;
Reset(f) ; Read(f, S) ; Write(S) ; Close(f) ;
End
Câu 69: Phát biểu nào sau đây là đúng với chương trình Vi_Du?
Program Vi_Du ;
Uses crt ; Var f : text ;
ch : char ; tenfile : string[30] ;
Begin
Write(‘ Nhap ten file : ’) ; readln(tenfile) ;
Assign(f, tenfile) ; Reset(f) ;
While not eof(f) do
Begin
Read(f, ch) ; Write(ch) ;
End ;