WorksheetsÔn tập HKI Tin học 11 (lần 3)
Total questions: 55
Worksheet time: 2hrs 50mins
Chương trình dịch được chia làm?
Thông dịch và biên dịch.
Thông dịch và phiên dịch
Phiên dịch và thông dịch.
Thông dịch, phiên dịch và biên dịch.
Các thành phần cơ bản của ngôn ngữ lập trình:
Bảng chữ cái, cú pháp, ngữ nghĩa
Cú pháp, ngữ nghĩa
Bảng chữ cái, cú pháp
Bảng chữ cái, ngữ nghĩa
Chú thích trong Pascal được đặt giữa cặp dấu:
{ }
( )
(*)
{* *}
Chọn tên đúng trong Pascal:
Vi du2
Vi du
2AB
Bai1_mh
Chương trình sau có mấy lỗi?
Program vi du;
Begin
Writeln(' xin chao!);
End.
1
2
3
4
Cú pháp để khai báo biến là:
Var <danh sách biến>: <Kiểu dữ liệu>
Var <danh sách biến>: <Kiểu dữ liệu>;
Var <danh sách biến>:= <Kiểu dữ liệu>
Var <danh sách biến>:= <Kiểu dữ liệu>;
Khi khai báo các biến cùng kiểu dữ liệu thì các biến được viết cách nhau bởi dấu:
.
,
;
:
Trong khai báo dưới đây bộ nhớ cấp phát cho các biến tổng cộng bao nhiêu byte?
Var x,y,z: integer;
a,b: real;
10
12
14
18
Trong pascal, hàm abs(x) là hàm:
Trả về giá trị bình phương của x
Trả về giá trị căn bậc hai của x
Trả về giá trị tuyệt đối của x
Trả về giá trị loogarit tự nhiên của x
Trong NNLT Pascal, để chạy chương trình ta dùng tổ hợp phím:
Ctrl + F9
ALT+ F9
ALT + F3
Ctrl+ F3
Chức năng của lệnh Readln là:
Xuống dòng mới
Dừng chương trình
Đọc vào 1 số từ bàn phím
Kết thúc chương trình
Với cấu trúc rẽ nhánh if<điều kiện> then <câu lệnh 1> else <câu lệnh 2>;
Câu lệnh 1 được thực hiện khi nào?
Biểu thức điều kiện đúng
Câu lệnh 1 được thực hiện
Biểu thức điều kiện sai
Biểu thức điều kiện đúng và câu lệnh 1 thực hiện xong
Cho a:= 5, b:= 8. Hãy tính giá trị của a, b trong trường hợp sau?
If a > b Then
Begin
a:= b-a; b:= a+2;
End
Else a:= b- a;
a= 3, b=8
a=5, b=8
a=3, b=5
a=5, b=5
Cho biết chương trình sau có mấy lỗi?
Program vd
Var x, y : real;
Begin
Clrscr; x=7; y=9;
if x >=y then writeln(x);
else writeln(y);
end
3
4
5
6
Khai báo biến mảng một chiều có dạng:
Var <tên biến mảng>: array[kiểu chỉ số] of <kiểu phần tử>;
Type <tên biến mảng>: array[kiểu chỉ số] of <kiểu phần tử>;
Var <tên biến mảng>=array[kiểu chỉ số] of <kiểu phần tử>;
Type <tên biến mảng>=<tên kiểu mảng>;
Cho khai báo mảng như sau:
Var a : array[0..10] of integer ;
Phương án nào dưới đây chỉ phần tử thứ 2 của mảng ?
a[2]
a[3]
a[1]
a[4]
Để khai báo số phần tử của mảng trong PASCAL, người lập trình cần:
Khai báo một hằng số là số phần tử của mảng;
Khai báo chỉ số bắt đầu và kết thúc của mảng;
Khai báo chỉ số kết thúc của mảng;
Không cần khai báo gì, hệ thống sẽ tự xác định;
Để khai báo số phần tử của mảng trong PASCAL, người lập trình cần:
Khai báo một hằng số là số phần tử của mảng;
Khai báo chỉ số bắt đầu và kết thúc của mảng;
Khai báo chỉ số kết thúc của mảng;
Không cần khai báo gì, hệ thống sẽ tự xác định;
Câu lệnh lặp for..do kết thúc khi nào?
Khi biến đếm nhỏ hơn giá trị cuối
Khi biến đếm lớn hơn giá trị cuối
Khi biến đếm nhỏ hơn giá trị đầu
Khi biến đếm lớn hơn giá trị đầu
Vòng lặp While – do kết thúc khi nào?
Khi đủ số vòng lặp
Khi tìm được Output
Khi một điều kiện cho trước được thỏa mãn
Khi biểu thức điều kiện đúng
Cho đoạn chương trình sau:
For i:=1 to 15 do
Begin
If I mod 2 <>0 then write(i+1,’ ‘);
End;
1 2 3 4 5 5 6 7 8 9 10 1112 13 14 15
2 4 6 8 10 12 14 16
1 3 5 7 9 11 13 15
2 4 6 8 10 12 14
Trong Turbo Pascal, xác định tên đúng trong các tên sau:
10pro
Bai tap_1
Baitap
ngay sinh
Phát biểu nào dưới đây là đúng?
Phần khai báo có thể khai báo cho: Tên chương trình, hằng, biến và chương trình con.
Phần khai báo có thể khai báo cho: Tên chương trình, hằng, biến.
Phần khai báo có thể khai báo cho: Chương trình con, hằng, biến.
Phần khai báo có thể khai báo cho: Tên chương trình, thư viện, hằng, biến và chương trình con.
Trong 1 chương trình, biến M có thể nhận các giá trị: 10, 15, 20, 30, 40, và biến N có thể nhận các giá trị: 1.0 , 1.5, 2.0, 2.5 , 3.0, khai báo nào trong các khai báo sau là đúng?
Var M,N :Byte;
Var M: Real; N: Word;
Var M: Word; N: Real;
Var M, N: Longint;
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;
9 byte
10 byte
11 byte
12 byte
Kết quả của biểu thức sqr(abs(25-30) mod 3) trả về kết quả là :
1
2
6
4
Trong NNLT Pascal, giả sử x:= a/b; thì x phải khai báo kiểu dữ liệu nào?
word
real
integer
Byte
Xét biểu thức lôgic: (n >0) and (n mod 2 = 0). Khẳng định nào sau đây là đúng?
Kiểm tra n có chia hết cho 2 không
Kiểm tra xem n có là một số dương không
Kiểm tra xem n có là số dương chẵn không
Kiểm tra n là một số nguyên chẵn không
Trong Turbo Pascal, muốn biên dịch chương trình ta dùng tổ hợp phím:
Alt + F9
Ctrl + F9
Alt + F6
Alt + F8
Để tính diện tích S của hình vuông có cạnh A với giá trị nguyên nằm trong phạm vi từ 10 đến 100, cách khai báo S nào dưới đây là đúng và tốn ít bộ nhớ nhất
Var S : integer;
Var S : real;
Var S : longint;
Var S : word;
Trong ngôn ngữ lập trình Pascal, biểu thức số học nào sau đây là hợp lệ ?
5a + 7b + 8c;
5*a + 7*b + 8*c;
{a + b}*c;
X*y(x+y);
Trong ngôn ngữ lập trình 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 ?
If A . B . C > 0 then ……
If (A > 0) and (B > 0) and (C > 0) then ……
If A>0 and B>0 and C>0 then ……
If (A>0) or (B>0) or (C>0) then……
Hãy chọn kết quả đúng của đoạn chương trình sau.
a := 9; b := 7; c:=8;
if a > b then c:=7 else c := 5 then Write(c);
9
5
8
7
Lệnh nào sau đây dùng để in giá trị biến thực M ra màn hình có 2 chữ số thập phân và với độ rộng là 5?
write (M:2:5);
write (M,5,2);
writeln (M:2:5);
write (M:5:2);
Để thực hiện gán giá trị 10 cho biến X. Phép gán nào sau đây là đúng ?
X = 10;
X := 10;
X =: 10;
X : = 10;
Hàm cho giá trị bằng bình phương của x là :
Sqrt(x);
Sqr(x);
Abs(x);
Exp(x);
Trong Turbo Pascal, để thực hiện chương trình:
Nhấn tổ hợp phím Ctrl + F7;
Nhấn tổ hợp phím Alt + F9;
Nhấn phím Ctrl + F9;
Nhấn tổ hợp phím Shift + F9;
Chọn Câu phát biểu hợp lí nhất?
Trong Pascal, tất cả các biến trong chương trình đều phải đặt tên và khai báo cho chương trình dịch biết để lưu trữ và xử lí
Trong Pascal, tất cả các biến trong chương trình đều phải có một giá trị tại mỗi thời điểm thực hiện chương trình
Khai báo hằng thường được sử dụng cho kiểu của hằng
Biến đơn là biến chỉ nhận kiểu của hằng
Hãy chọn phương án ghép đúng . Với cấu trúc rẽ nhánh IF <điều kiện> THEN <câu lệnh 1> ELSE <câu lệnh 2>, câu lệnh 2 được thực hiện khi
biểu thức điều kiện đúng và câu lệnh 1 thực hiện xong;
câu lệnh 1 được thực hiện;
biểu thức điều kiện sai;
biểu thức điều kiện đúng;
Cho khai báo biến: Var A : array[1..5] of Integer; Chọn lệnh đúng:
A[1] := 6/2 ;
A[2] := -10 ;
A(3) := 6 ;
A := 10 ;
Cho biết ý nghĩa của đoạn khai báo sau:
Const Max = 100;
Type Dayso = ARRAY[1..Max] Of real;
Var A : Dayso;
Khai báo biến Dayso gồm max số nguyên.
Khai báo biến Dayso gồm 100 số thực.
Khai báo biến mảng A gồm max số nguyên.
Khai báo biến A gồm tối đa 100 số thực.
Chọn khai báo đúng:
Var A: array[1..20] of integer;
Var A= array[1..20] of integer;
Var A:= array[1..20] of integer;
Var A: array[1,20] of integer;
Cách làm việc với mảng một chiều như thế nào?
Thông qua tên biến và chỉ số của mảng.
Thông qua tên biến mảng.
Thông qua chỉ số của mảng.
Làm việc trực tiếp với mảng.
Mỗi phần tử của mảng phải:
Có kiểu dữ liệu khác nhau.
Có thể có kiểu dữ liệu giống hoặc khác nhau.
Có kiểu dữ liệu giống nhau.
Tất cả các phương án đều sai.
Các phần tử của mảng có thể thuộc các kiểu dữ liệu nào ?
Kiểu kí tự
Kiểu số thực
Kiểu logic
Cả ba kiểu trên
Khai báo biến mảng một chiều A gồm n số nguyên (0 < n <= 50) có dạng:
TYPE A : ARRAY [1..50] OF Integer;
Var A = ARRAY [1..50] OF Integer;
Var A : ARRAY[1..50] OF Integer;
TYPE A = ARRAY [1..50] OF Integer;
Lệnh nào in giá trị các phần tử trong mảng trên cùng một dòng?
For i:= n downto 1 do writeln(‘ ’, A[i]);
For i:= n downto 1 do write(A[i], ‘ ’);
For i:= 1 to n do write(‘ ’, A[i]);
For i:= 1 to n do writeln(‘ ’, A[i]);
Cho mảng A gồm N số nguyên. Đoạn chương trình sau thực hiện công việc gì?
FOR i:=1 TO N DO
IF A[i] < 0 THEN Write(A[i]);
In ra màn hình các số nguyên âm
In ra màn hình các số nguyên âm
Kiểm tra phần tử thứ i là dương hay âm
Không làm gì cả
Cho khai báo:
Var A: Array[1..4] of Integer;
i : Integer;
Sau khi thực hiện các lệnh:
For i:=1 to 4 do A[i]:= i;
For i:=1 to 4 do A[i]:= A[i]+1;
thì mảng A có giá trị là:
A[1]=0, A[2]=1, A[3]=2, A[4]=3
A[1]=1, A[2]=1, A[3]=1, A[4]=1
A[1]=1, A[2]=2, A[3]=3, A[4]=4
A[1]=2, A[2]=3, A[3]=4, A[4]=5
Để in giá trị phần tử thứ 10 của mảng một chiều A ra màn hình ta viết:
Write(A[10]);
Write(A(10));
Readln(A[10]);
Write([10]);
Cho khai báo:
Var A: Array[1..10] of Real;
i : Integer;
Ðể nhập dữ liệu cho A, chọn câu nào:
For i:=1 to 10 do Begin Write(‘ Nhập A[‘, i, ‘]:’); Readln(A[i]); End;
For i:=1 to 10 do Write(‘ Nhập A[‘, i, ‘]:’); Readln(A[i]);
For i:=1 to 10 do Readln(‘ Nhập A[‘, i, ‘]:’);
Write(‘ Nhập A:’); Readln(A);
Phương án nào dưới đây là khai báo mảng hợp lệ ?
mang : ARRAY[0..10] OF INTEGER;
mang : ARRAY[0..10] : INTEGER;
mang : INTEGER OF ARRAY[0..10];
mang : ARRAY(0..10) : INTEGER;
Tham chiếu đến phần tử thứ i của mảng A được biểu diễn:
A[i]
Ai
A{i}
A(i)
Để in giá trị phần tử thứ 20 của mảng một chiều A ra màn hình ta viết:
Write(A[20]);
Write(A(20));
Readln(A[20]);
Write([20]);
Cho khai báo mảng và đoạn chương trình như sau :
Var a : array[0..50] of real ;
k := 0 ;
for i := 1 to 50 do
if a[i] > a[k] then k:= i ;
Đoạn chương trình trên thực hiện công việc gì dưới đây?
Tìm phần tử nhỏ nhất trong mảng;
Tìm phần tử lớn nhất trong mảng;
Tìm chỉ số của phần tử lớn nhất trong mảng;
Tìm chỉ số của phần tử nhỏ nhất trong mảng;
