Câu hỏi ôn tâp học kỳ 2
Để lưu trữ ngày, tháng, năm, một HS đã định nghĩa và khai báo biến 1 bản ghi như sau:
Type date = record
day, month, year : integer;
End;
Var D: date;
Câu 1)Để nhập giá trị cho trường day ta viết lệnh nào sau đây:
a) Readln(day);
b) Readln (date.day);
c) Readln (D.date);
d) Readln (D.day);
Câu 2)Lệnh gán nào sau đây là không hợp lệ:
a) D.day:= - 28;
b) D.year:= 2010;
c) D. Month:= 10.5;
d) D. Day:= 0;
Câu 3)Với khai báo Var birthdays : array[1 10] of date, lệnh gán nào sau đây không hợp lệ:
a) Birthdays.month := 3;
b) Birthdays[2].day := 26;
c) Birthday[1].year := birthdays[10].year;
d) Birthdays[4].month := 12;
Câu 4)Để lưu trữ danh sách học sinh gồm các thông tin: họ tên, lớp, điểm trung bình, ta dùng kiểu dữ liệu
nào sau đây:
a) Xâu, số nguyên, số thực.
b) Một mảng các xâu, số thực.
c) Một mảng các bản ghi.
d) Xâu và số thực.
Câu 5)Khai báo biến xâu nào sau đây là không hợp lệ:
a) Var st: string[1];
b) Var st:string [256];
c) Var st: string;
c) Tính tổng số chẵn trong dãy.
d) Tính tổng số lẻ trong dãy.
Câu 11) Trong NNLT 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 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 gì cả.
Câu 12) Trong NNLT Pascal để nhập các phần tử cho mảng hai chiều A, ta sử dụng lệnh nào sau đây?
a) for i:=1 to n do
for j:=1 to m do
begin
write(‘Phan tu o dong’, i, ’cot ‘,j);
readln(A[i,j]);
end;
b) for i:=1 to n do
for j:=1 to m do
begin
write(‘Phan tu o dong’, i, ’cot ‘,j);
write(A[i,j]);
end;
c) for i:=1 to n do
for j:=1 to m do
begin
write(‘Phan tu o dong’, i, ’cot ‘,j);
writeln(A[i,j]);
end;
d) for i:=1 to n do
a) for i:=1 to n do
begin
write(‘Phan tu thu: ‘,i, ‘ la’);
read(A.i);
end;
b) for i:=1 to n do
begin
write(‘Phan tu thu: ‘,i, ‘ la’);
read(A[i]);
end;
c) for i:=1 to n do
begin
write(‘Phan tu thu: ‘,i, ‘ la’);
read(A(i));
end;
d) for i:=1 to n do
begin
write(‘Phan tu thu: ‘,i, ‘ la’);
read(A-i);
3
end;
Câu 15) Trong NNLT Pascal, để in các phần tử cho mảng một chiều A ra màn hình, ta viết lệnh như thế
nào là đúng ?
a) for i:=1 to n do write(A[i]);
b) for i:=1 to n do read(A[i]);
c) for i:=1 to n do write(A.i);
d) for i:=1 to n do readln(A[i]);
Câu 16) Trong NNLT Pascal với việc khai báo như sau:Var A : array [1 100,1 100] of integer; Thì việc
truy xuất đến các phần tử như thế nào là đúng ?
a) A(i,j)
cột 9 của biến mảng ta viết:
a) arr[5,9]
b) A[1 5,1 9]
c) arr[1 5,1 9]
d) A[5,9]
Câu 23) Kết quả sau khi chạy đoạn chương trình sau là gì?
4
Uses crt;
Var f:text;
a, b, x, y: integer;
Begin
Assign (f, ‘d:\tep.txt’);
Rewrite (f);
a:= 5; b:=10;
write (f,a:4,b:4);
reset (f);
readln (f,x,y);
x:= x*2; y:= y*2;
write (x:4, y:4);
close (f);
readln;
end.
a) Ghi vào tep.txt giá trị 5 và 10.
b) Hiển thị ra màn hình giá trị 10 và 20.
c) Ghi vào tep.txt giá trị 5 và 10 đồng thời hiển thị ra màn hình giá trị 10 và 20.
d) Ghi vào tep.txt giá trị 5 và 10 và không hiển thị ra màn hình kết quả nào cả.
Câu 24) Kiểu phần tử của mảng 1 chiều là:
a) Kiểu nguyên.
b) Kiểu bản ghi.
c) Kiểu Mảng.
c) Dữ liệu kiểu bản ghi dùng để mô tả các đối tượng có các thuộc tính khác nhau.
d) Cả a, b, c đều sai.
Câu 29) Để gán tên tệp ta dùng thủ tục
a) Clrscr.
b) Readln
c) Assign
d) Close.
Câu 30) Để mở tệp ra chuẩn bị ghi, ta dùng thủ tục:
a) Reset.
b) Rewrite
c) Close
d) Writeln
Câu 31) Qui trình làm việc với tệp gồm các thủ tục
a) Gán tên tệp mở tệp chuẩn bị ghi ghi tệp đóng tệp.
b) Gán tên tệp mở tệp chuẩn bị đọc đọc tệp đóng tệp.
c) Gán tên tệp mở tệp đọc tệp ghi tệp đóng tệp.
d) Cả a và b đều đúng.
Câu 32) Để đọc dữ liệu từ tệp, ta dùng cú pháp:
a) Readln(<tên tệp>, <danh sách biến>);
b) Readln(< biến tệp>,< danh sách kết quả>);
c) Readln(<Biến tệp>,< danh sách biến>);
d) Readln(<tên tệp>, < danh sách kết quả>);
Câu 33) Để ghi dữ liệu vào tệp, ta dùng cú pháp nào sau đây:
a) Write/ writeln (<danh sách kết quả>);
b) Write/ writeln (< biến tệp>, <danh sách biến>);
c) Write/ writeln (<biến tệp>, <danh sách kết quả>);
d) Write/ writeln (<tên tệp>, <danh sách kết quả>);
Câu 34) Để đảm bảo đọc hết dữ liệu từ tệp ta dùng cú pháp nào sau đây:
a) While EOF (< biến tệp>) do readln(<biến tệp>, <danh sách biến>);
b) While not EOLN (< biến tệp>) do readln(<biến tệp>, <danh sách biến>);
Câu 39) Để nhập vào 1 mảng các số nguyên và tìm số lớn nhất của mảng số nguyên đó, ta dùng các
chương trình con nào sau đây:
a) Procedure nhap (var A: mang; N: integer); function max (A: mang; N: integer): integer;
b) Procedure nhap (var A: mang; Var N: integer); function max (A: mang; N: integer): integer;
c) Procedure nhap (A: mang; N: integer); function max (A: mang; N: integer): integer;
d) Cả a, b, c đều đúng.
Câu 40) Kết quả đoạn chương trình sau là gì? Nếu nhập x = 2, y = 3, z = 4
Program thamtri_thambien;
Var x, y: integer;
Procedure nhan ( var so2: integer ; so1, sonhan: integer);
Begin
So1:= so1*sonhan;
So2:=so2*sonhan;
End;
Begin
Write (‘nhap x, y, z:’);
Readln(x, y, z);
Nhan(x, y, z);
Write (x:4, y:4);
End.
a) 8 3
b) 8 12
c) 2 12
d) 2 3
Câu 41) Chọn phần đầu chương trình con sai:
a) Function f (r,i: real, t:integer): real;
b) Function f (a, b, c: integer): integer;
7
c) Function f ( x: real; var y: real): real;
d) Function f (var x, y: integer) : real;
Câu 46) Chọn phát biểu sai:
a) Chọn chương trình con là hàm nếu kết quả trả về là một kiểu xác định.
b) Khai báo phần đầu của hàm như sau: function <tên hàm> (<danh sách tham số>);
c) Trong phần thân của hàm cần có lệnh: <tên hàm>:= <kết quả trả về cuối cùng>.
d) Pascal dùng từ khóa var để phân biệt tham biến với tham trị
Câu 47) Khi chạy chương trình:
Var x, y: real;
Function f(x, y: real): real;
Begin
F:= x;
If x< y then f:= y;
End;
Begin
X:= 10;
8
Y:= 15;
Write ( f(x, y): 4:1);
End.
a) 10
b) 15.
c) 0
d) Một kết quả khác.
Câu 48) Xét thủ tục:
procedure hoandoi(var x, y: integer);
var tg: integer;
begin
tg:= x;
x:= y;
y:= tg;
end;