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.. Câu[r]
Trang 1SỞ GIÁO DỤC VÀ ĐÀO TẠO HẢI PHÒNG ĐỀ KIỂM TRA 45’
Thời gian làm bài: 45 phút
(Không kể thời gian phát đề)
Số Câu hỏi: 20 câu
Họ tên thí sinh: ………
Ngày sinh: ……/……/……… Lớp:………
Câu 1: Khai báo mảng hai chiều nào sau đây là sai ?
A var m : array[1 9;1 9] of integer;
B var m : array[0 10,0 10] of char;
C var m : array[1 10] of array[0 9] of integer;
D var m : array[1 20,1 40] of real;
Câu 2: 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 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,
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 Điều kiện là biểu thức cho giá trị logic.
D 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
Câu 3: Phát biểu nào sau đây về mảng là không chính xác ?
A Có thể xây dựng mảng nhiều chiều;
B Độ dài tối đa của mảng là 255;
C Xâu kí tự cũng có thể xem như là một loại mảng;
D Chỉ số của mảng không nhất thiết bắt đầu từ 1;
Câu 4: Hãy chọn cách dùng sai Muốn dùng biến X lưu giá trị nhỏ nhất trong các giá trị của hai biến A,
B có thể dùng cấu trúc rẽ nhánh như sau :
A if A < B then X := A; B if A <= B then X := A else X := B;
C if A < B then X := A else X := B; D X := B; if A < B then X := A;
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?
Câu 6: 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;
Trang 2Câu 7: 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 đúng trong các phát biểu dưới đây :
A Biểu thức điều kiện được tính và kiểm tra, nếu biểu thức đó sai thì câu lệnh sau DO được thực hiện.
B điều kiện trong cấu trúc lặp WHILE – DO có thể là một biểu thức kiểu nguyên hoặc kiểu kí tự.
C Khi xác định được trước số lần lặp vẫn có thể dùng cấu trúc lặp WHILE – DO.
D Câu lệnh sau DO bao giờ cũng được thực hiện ít nhất một lần.
Câu 8: Chọn phát biểu đúng trong các phát biểu sau đây :
A Câu lệnh rẽ nhánh không được xuất hiện trong <câu lệnh> của một cấu trúc lặp.
B Một cấu trúc lặp có thể xuất hiện trong <câu lệnh> của một cấu trúc lặp khác.
C Có thể dùng câu lệnh FOR – DO để thay thế cho câu lệnh lặp WHILE – DO.
D Câu lệnh lặp không được xuất hiện trong <câu lệnh> đứng sau từ khóa THEN của cấu trúc rẽ nhánh Câu 9: 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 : ARRAY[0 10] : INTEGER; D mang : INTEGER OF ARRAY[0 10];
Câu 10: Cho chương trình viết bằng ngôn ngữ PASCAL sau đây :
Phát biểu nào dưới đây về chương trình trên là đúng?
A Đây là chương trình đếm số các số nguyên trong khoảng từ 1 đến 10000 là bội số của 3 và 5;
B Đây là chương trình đếm số các số nguyên nhỏ hơn 10000 và chia hết cho 3;
C Đây là chươngtrình đếm và thông báo ra mànhình rằng trong khoảng từ 1 đến 10000 có bao nhiêu số
nguyên là bội số của 3 và có bao nhiêu số là bội số chung của 3 và 5;
D Đây là chương trình đếm số các số nguyên trong khoảng từ 1 đến 10000 là bội số của 3;
Câu 11: Hãy chọn phương án ghép đúng nhất Để mô tả cấu trúc rẽ nhánh trong thuật toán, nhiều ngôn
ngữ lập trình bậc cao dùng câu lệnh IF – THEN, sau IF là <điều kiện> Điều kiện là
A biểu thức lôgic; B biểu thức số học; C biểu thức quan hệ; D một câu lệnh;
Câu 12: Phát biểu nào dưới đây về kiểu mảng là phù hợp ?
A Mảng không thể chứa kí tự; B Độ dài tối đa của mảng là 255;
C Là một dãy hữu hạn các phần tử cùng kiểu; D Là một tập hợp các số nguyên;
Trang 3Câu 13: Hãy chọn phương án ghép đúng nhất Mảng là kiểu dữ liệu biểu diễn một dãy các phần tử thuận
tiện cho
C truy cập đến phần tử bất kì; D chèn thêm phần tử và xóa phần tử;
Câu 14: 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 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
C Ở 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
D 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âu 15: 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 trong vòng lặp với mảng;
C Dùng để truy cập đến một phần tử bất kì trong mảng;
D Dùng để quản lí kích thước của mảng;
Câu 16: Phát biểu nào sau đây có thể lấy làm biểu thức điều kiện trong cấu trúc rẽ nhánh ?
Câu 17: Hãy chọn phương án ghép đúng Độ dài tối đa của xâu kí tự trong PASCAL là
Câu 18: Cho khai báo mảng và đoạn chương trình như sau :
Đoạn chương trình trên thực hiện công việc gì dưới đây?
A Tìm phần tử nhỏ nhất trong mảng; B Tìm chỉ số của phần tử nhỏ nhất trong mảng;
C Tìm phần tử lớn nhất trong mảng; D Tìm chỉ số của phần tử lớn nhất trong mảng; Câu 19: 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 đú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.
Trang 4B Ở 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 20: Cho chương trình viết bằng PASCAL sau đây:
PROGRAM giaiPT;
uses crt;
var A, B, C : real;
DELTA, X1, X2 : real;
BEGIN
write(‘ Nhap cac he so A, B, C : ’);
readln(A, B, C);
DELTA := B*B – 4*A*C;
if DELTA > 0 then
begin
X1 := ( – B – SQRT(DELTA) ) / (2*A);
X2 := – B / A – X1;
writeln(‘ X1 = ’, X1);
writeln(‘ X2 = ’, X2);
end;
readln
END.
Hãy chọn phát biểu sai trong các phát biểu sau đây :
A Đây là chương trình giải phương trình bậc hai nhưng không đưa ra thông báo gì khi chương trình có
nghiệm kép;
B Đây là chương trình giải và thông báo nghiệm của một phương trình bậc hai nếu phương trình đó có
nghiệm;
C Đây là chương trình giải phương trình bậc hai nhưng chưa xét hết các trường hợp;
D Đây là chương trình giải phương trình bậc hai, nhưng không đưa ra thông báo gì khi phương trình
vô nghiệm