You are on page 1of 16

SỞ GD & ĐT HÀ NAM KIỂM TRA HẾT HỌC KÌ I - NĂM HỌC 2022 - 2023

TRƯỜNG THPT A THANH LIÊM MÔN TIN – 11


Thời gian làm bài : 45 Phút

Họ tên :............................................................... Lớp : ...................

I. PHẦN TRẮC NGHIỆM Mã đề 111


Câu 1: Phát biểu nào dưới đây là đúng ?
A. Có sử dụng dấu cách trong tên của biến
B. Cú pháp là bộ quy tắc dùng để viết chương trình
C. Bảng chữ cái trong ngôn ngữ Pascal gồm số và chữ
D. Nhấn tổ hợp phím Alt+F9 để thực hiện chương trình trong Pascal.
Câu 2: Biến x có thể nhận các giá trị 5.1;12.7;128.9;-43.6. Hãy chọn kiểu dữ liệu phù hợp của biến
x?
A. Char B. Longint C. Integer D. Real
Câu 3: Khai báo nào dưới đây đúng về biến kiểu mảng một chiều gồm 20 phần tử số nguyên?
A. Var D: ARRAY(0..10) : INTEGER; B. Var D : ARRAY[1..20] : INTEGER;
C. Var D : ARRAY[1..20] OF INTEGER; D. Var D : INTEGER OF ARRAY[0..10];
Câu 4: Trong ngôn ngữ lập trình Pascal, cách viết nào dưới đây là cách viết đúng của câu lệnh rẽ
nhánh?
A. If <điều kiện> then <câu lệnh 1> ; else <câu lệnh 2> ;
B. If <điều kiện> then <câu lệnh 1> else <câu lệnh 2> ;
C. If <điều kiện> ; then <câu lệnh 1> ; else <câu lệnh 2> ;
D. If <điều kiện> ; then <câu lệnh 1> else <câu lệnh 2> ;
Câu 5: Trong ngôn ngữ lập trình 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 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 6: Cho đoạn chương trình:
S:= 0; i:= 1;
while i<=5 do
Begin
S:= S + 10*i;
i:= i + 1;
end;
Xác định giá trị của S sau đoạn lệnh trên?
A. S=160 B. S=140 C. S=150 D. S=100
Câu 7: 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ứ 10 của mảng ?
A. A(9); B. A(10); C. A[9]; D. A[10];
Câu 8: Để khai báo mảng một chiều A gồm 5 phần tử kiểu nguyên, khai báo nào dưới đây là đúng?
A. Var A:array[1…5] of longint; B. Var A:array[1:5] of longint;
C. Var A:array[0..4] of longint; D. Var A:array[6..10] of longint;
Câu 9: Cho chương trình sau:
1
Program vidu;
Begin
Writeln(‘Xin chao cac ban’);
End.
Chương trình trên gồm những thành phần nào?
A. Phần khai báo tên chương trình và phần thân chương trình
B. Phần khai báo biến và khai báo thân chương trình
C. Phần khai báo thư viện chương trình và phần thân chương trình
D. Phần khai báo hằng và phần thân chương trình
Câu 10: Trong ngôn ngữ lập trình pascal, nếu X:=25 div 3 + 5 / 2 * 3; thì X nhận giá trị là?
A. 15.5; B. 8.0; C. 8.5; D. 15.0;
Câu 11: Trong ngôn ngữ lập trình pascal hàm cho giá trị bằng bình phương của x là?
A. Sqr(x); B. Sqrt(x); C. Exp(x); D. Abs(x);
Câu 12: Để 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 .
A. Var S : word; B. Var S : longint; C. Var S : real; D. Var S : Char;
Câu 13: Trong ngôn ngữ lập trình Pascal cách đặt tên nào sai?
A. _123abc B. 123_abc C. abc123 D. abc_123
Câu 14: Các thành phần của ngôn ngữ lập trình là?
A. Tên dành riêng, tên chuẩn và tên do người lập trình định nghĩa
B. Bảng chữ cái, cú pháp, ngữ nghĩa
C. Chương trình thông dịch và chương trình biên dịch
D. Chương trình dịch, bảng chữ cái, cú pháp, ngữ nghĩa
Câu 15: Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau thực hiện việc gì
For i := 1 to N do
if A[i] mod 2=0 then S:=S+A[i];
A. Tính tổng các phần tử có giá trị chẵn trong dãy số A1..AN
B. Tính tổng các số chẵn từ 1 đến N.
C. Tính tổng các phần tử có chỉ số chẵn của mảng A.
D. Tính tổng các phần tử của mảng A.
Câu 16: Trong ngôn ngữ lập trình pascal, kết quả đưa ra màn hình của chương trình sau là?
Var x: byte;
Begin
x:=6;
Writeln(‘Ket qua la:’,x*x); readln;
end.
A. Ket qua la: x B. Ket qua la:6 C. Ket qua la:x*x D. Ket qua la: 36
Câu 17: Trong ngôn ngữ lập trình Pascal, sau khi thực hiện các lệnh sau thì S=?
S := 0 ;
For i :=5 to 30 do
If (i mod 5 = 0) then S := S + i ;
A. 315 B. 30 C. 65 D. 105
Câu 18: Để khai báo biến trong ngôn ngữ lập trình pascal ta dùng từ khóa nào?
A. Sqrt B. Const C. Var D. Uses
Câu 19: Để viết ra màn hình 1 dãy gồm N số trên 1 hàng, ta viết như sau:
A. For i:=1 to N do writeln(A[i],’ ‘);
B. For i:=1 to 100 do write(A[i],’ ‘);
C. For i:=1 to N do write(A[i],’ ‘);
2
D. For i:=1 to N do Readln(A[i]);
Câu 20: Cách viết nào dưới đây nhập giá trị phần tử thứ i của mảng A vào từ bàn phím?
A. Readln(A[i]); B. Readln(A[‘i’]); C. Readln(A(i)); D. Readln(A{i});
Câu 21: Ngôn ngữ nào mà máy tính có thể trực tiếp hiểu và thực hiện được chương trình?
A. Hợp ngữ B. Ngôn ngữ máy
C. Ngôn ngữ lập trình bậc cao D. Ngôn ngữ khác
Câu 22: Chương trình mà có chức năng giúp chuyển đổi từ chương trình viết trên ngôn ngữ lập
trình bậc cao sang chương trình viết trên ngôn ngữ máy gọi là:
A. Chương trình nguồn B. Chương trình dịch
C. Chương trình đích D. Chương trình có mã nguồn mở
Câu 23: Cho biết câu lệnh sau sai chổ nào?
For i:=1.5 to 10 do write(i);
A. Giá trị đầu nhỏ hơn giá trị cuối
B. Không có biến đếm
C. Giá trị cuối nhỏ hơn giá trị đầu
D. Giá trị đầu và giá trị cuối không cùng kiểu dữ liệu
Câu 24: Cho biết câu lệnh sau thực hiện gì?
For i:=a to b do
if i mod 2=1 then d:=d+1;
A. Tính tổng các số lẻ B. Viết ra màn hình các số lẻ
C. Đếm các số lẻ từ a đến b D. Đếm các số lẻ
Câu 25: 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>;
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ị sai;
C. điều kiện không tính được;
D. điều kiện được tính toán và cho giá trị đúng;
Câu 26: Xét chương trình sau?
Var a, b,x: integer;
Begin
a:=10; b:=20;
if a<b then x:=b else x:=a;
write (x);
End.
Chương trình thu được gì trên màn hình
A. 10 B. x C. 20 D. a
Câu 27: Trong ngôn ngữ lập trình pascal, để nhập giá trị cho 2 biến a và b từ bàn phím ta dùng
lệnh?
A. Real(a,b); B. Readln(a,b); C. Read(‘a,b’); D. Write(a,b);
Câu 28: Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau thực hiện việc gì
Readln(N);
For i := 1 to N do Readln(A[i]);
A. Nhập vào N và dãy gồm N phần tử
B. Tính tổng các phần tử có chỉ số chẵn của mảng A.
C. Tính tổng các số chẵn từ 1 đến N.
D. Tính tổng các phần tử của mảng A.

3
II. PHẦN TỰ LUẬN
Câu 1: Chỉ ra lỗi sai trong chương trình dưới đây? (1 điểm)
Program  Chuong_trinh;                                                          
Var  S, a, b, c := integer;                                             
Begin                                                                 
      writeln(‘Nhap vao so a va b=’);                     
      readln(a,b)                                                   
      S = a+b+c;                                     
      writeln(‘Ket qua:’ c);
readln                                 
End.   
Câu 2: Viết chương trình thực hiện nhập vào 2 số nguyên dương M và N. Tính và đưa ra màn hình
tổng các số tự nhiên chẵn trong phạm vi từ M đến N.
------ HẾT ------

4
SỞ GD & ĐT HÀ NAM KIỂM TRA HẾT HỌC KÌ I - NĂM HỌC 2022 - 2023
TRƯỜNG THPT A THANH LIÊM MÔN TIN – 11
Thời gian làm bài : 45 Phút

Họ tên :............................................................... Lớp : ...................

I. PHẦN TRẮC NGHIỆM Mã đề 112


Câu 1: Cho biết câu lệnh sau thực hiện gì?
For i:=a to b do
if i mod 2=1 then d:=d+1;
A. Viết ra màn hình các số lẻ B. Đếm các số lẻ từ a đến b
C. Đếm các số lẻ D. Tính tổng các số lẻ
Câu 2: Trong ngôn ngữ lập trình Pascal, cách viết nào dưới đây là cách viết đúng của câu lệnh rẽ
nhánh?
A. If <điều kiện> ; then <câu lệnh 1> else <câu lệnh 2> ;
B. If <điều kiện> ; then <câu lệnh 1> ; else <câu lệnh 2> ;
C. If <điều kiện> then <câu lệnh 1> ; else <câu lệnh 2> ;
D. If <điều kiện> then <câu lệnh 1> else <câu lệnh 2> ;
Câu 3: Ngôn ngữ nào mà máy tính có thể trực tiếp hiểu và thực hiện được chương trình?
A. Ngôn ngữ máy B. Ngôn ngữ lập trình bậc cao
C. Ngôn ngữ khác D. Hợp ngữ
Câu 4: Cho đoạn chương trình:
S:= 0; i:= 1;
while i<=5 do
Begin
S:= S + 10*i;
i:= i + 1;
end;
Xác định giá trị của S sau đoạn lệnh trên?
A. S=100 B. S=150 C. S=140 D. S=160
Câu 5: Trong ngôn ngữ lập trình 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 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 6: Trong ngôn ngữ lập trình pascal hàm cho giá trị bằng bình phương của x là?
A. Sqrt(x); B. Exp(x); C. Abs(x); D. Sqr(x);
Câu 7: Trong ngôn ngữ lập trình Pascal, sau khi thực hiện các lệnh sau thì S=?
S := 0 ;
For i :=5 to 30 do
If (i mod 5 = 0) then S := S + i ;
A. 105 B. 315 C. 30 D. 65
Câu 8: Để khai báo biến trong ngôn ngữ lập trình pascal ta dùng từ khóa nào?
A. Uses B. Sqrt C. Const D. Var
Câu 9: Cho biết câu lệnh sau sai chổ nào?
5
For i:=1.5 to 10 do write(i);
A. Không có biến đếm
B. Giá trị đầu nhỏ hơn giá trị cuối
C. Giá trị đầu và giá trị cuối không cùng kiểu dữ liệu
D. Giá trị cuối nhỏ hơn giá trị đầu
Câu 10: Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau thực hiện việc gì
Readln(N);
For i := 1 to N do Readln(A[i]);
A. Nhập vào N và dãy gồm N phần tử
B. Tính tổng các số chẵn từ 1 đến N.
C. Tính tổng các phần tử có chỉ số chẵn của mảng A.
D. Tính tổng các phần tử của mảng A.
Câu 11: Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau thực hiện việc gì
For i := 1 to N do
if A[i] mod 2=0 then S:=S+A[i];
A. Tính tổng các phần tử có giá trị chẵn trong dãy số A1..AN
B. Tính tổng các phần tử có chỉ số chẵn của mảng A.
C. Tính tổng các số chẵn từ 1 đến N.
D. Tính tổng các phần tử của mảng A.
Câu 12: Trong ngôn ngữ lập trình pascal, nếu X:=25 div 3 + 5 / 2 * 3; thì X nhận giá trị là?
A. 15.5; B. 8.5; C. 15.0; D. 8.0;
Câu 13: Xét chương trình sau?
Var a, b,x: integer;
Begin
a:=10; b:=20;
if a<b then x:=b else x:=a;
write (x);
End.
Chương trình thu được gì trên màn hình
A. x B. a C. 10 D. 20
Câu 14: Cách viết nào dưới đây nhập giá trị phần tử thứ i của mảng A vào từ bàn phím?
A. Readln(A{i}); B. Readln(A[‘i’]); C. Readln(A(i)); D. Readln(A[i]);
Câu 15: 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ứ 10 của mảng ?
A. A[10]; B. A(10); C. A[9]; D. A(9);
Câu 16: Các thành phần của ngôn ngữ lập trình là?
A. Chương trình dịch, bảng chữ cái, cú pháp, ngữ nghĩa
B. Tên dành riêng, tên chuẩn và tên do người lập trình định nghĩa
C. Bảng chữ cái, cú pháp, ngữ nghĩa
D. Chương trình thông dịch và chương trình biên dịch
Câu 17: Khai báo nào dưới đây đúng về biến kiểu mảng một chiều gồm 20 phần tử số nguyên?
A. Var D : INTEGER OF ARRAY[0..10]; B. Var D : ARRAY[1..20] OF INTEGER;
C. Var D : ARRAY[1..20] : INTEGER; D. Var D: ARRAY(0..10) : INTEGER;
Câu 18: 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>;
câu lệnh đứng sau THEN được thực hiện khi?
A. điều kiện được tính toán và cho giá trị đúng;
B. điều kiện không tính được;
6
C. điều kiện được tính toán xong;
D. điều kiện được tính toán và cho giá trị sai;
Câu 19: Trong ngôn ngữ lập trình pascal, kết quả đưa ra màn hình của chương trình sau là?
Var x: byte;
Begin
x:=6;
Writeln(‘Ket qua la:’,x*x); readln;
end.
A. Ket qua la: x B. Ket qua la:x*x C. Ket qua la:6 D. Ket qua la: 36
Câu 20: Biến x có thể nhận các giá trị 5.1;12.7;128.9;-43.6. Hãy chọn kiểu dữ liệu phù hợp của
biến x?
A. Integer B. Longint C. Real D. Char
Câu 21: Trong ngôn ngữ lập trình Pascal cách đặt tên nào sai?
A. _123abc B. abc123 C. 123_abc D. abc_123
Câu 22: Phát biểu nào dưới đây là đúng ?
A. Có sử dụng dấu cách trong tên của biến
B. Cú pháp là bộ quy tắc dùng để viết chương trình
C. Bảng chữ cái trong ngôn ngữ Pascal gồm số và chữ
D. Nhấn tổ hợp phím Alt+F9 để thực hiện chương trình trong Pascal.
Câu 23: Để viết ra màn hình 1 dãy gồm N số trên 1 hàng, ta viết như sau:
A. For i:=1 to N do Readln(A[i]);
B. For i:=1 to N do writeln(A[i],’ ‘);
C. For i:=1 to N do write(A[i],’ ‘);
D. For i:=1 to 100 do write(A[i],’ ‘);
Câu 24: Chương trình mà có chức năng giúp chuyển đổi từ chương trình viết trên ngôn ngữ lập
trình bậc cao sang chương trình viết trên ngôn ngữ máy gọi là:
A. Chương trình dịch B. Chương trình có mã nguồn mở
C. Chương trình nguồn D. Chương trình đích
Câu 25: Cho chương trình sau:
Program vidu;
Begin
Writeln(‘Xin chao cac ban’);
End.
Chương trình trên gồm những thành phần nào?
A. Phần khai báo biến và khai báo thân chương trình
B. Phần khai báo hằng và phần thân chương trình
C. Phần khai báo thư viện chương trình và phần thân chương trình
D. Phần khai báo tên chương trình và phần thân chương trình
Câu 26: Để 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 .
A. Var S : word; B. Var S : Char; C. Var S : longint; D. Var S : real;
Câu 27: Để khai báo mảng một chiều A gồm 5 phần tử kiểu nguyên, khai báo nào dưới đây là
đúng?
A. Var A:array[1…5] of longint; B. Var A:array[0..4] of longint;
C. Var A:array[6..10] of longint; D. Var A:array[1:5] of longint;
Câu 28: Trong ngôn ngữ lập trình pascal, để nhập giá trị cho 2 biến a và b từ bàn phím ta dùng
lệnh?
A. Readln(a,b); B. Write(a,b); C. Read(‘a,b’); D. Real(a,b);
7
II. PHẦN TỰ LUẬN
Câu 1: Chỉ ra lỗi sai trong chương trình dưới đây? (1 điểm)
Program  Chuong_trinh;                                                          
Var  S, a, b, c := integer;                                             
Begin                                                                 
      writeln(‘Nhap vao so a va b=’);                     
      readln(a,b)                                                   
      S = a+b+c;                                     
      writeln(‘Ket qua:’ c);
readln                                 
End.   
Câu 2: Viết chương trình thực hiện nhập vào 2 số nguyên dương M và N. Tính và đưa ra màn hình
tổng các số tự nhiên chẵn trong phạm vi từ M đến N.
------ HẾT ------

8
SỞ GD & ĐT HÀ NAM KIỂM TRA HẾT HỌC KÌ I - NĂM HỌC 2022 - 2023
TRƯỜNG THPT A THANH LIÊM MÔN TIN – 11
Thời gian làm bài : 45 Phút

Họ tên :............................................................... Lớp : ...................

I. PHẦN TRẮC NGHIỆM Mã đề 113

Câu 1: Trong ngôn ngữ lập trình pascal hàm cho giá trị bằng bình phương của x là?
A. Exp(x); B. Sqr(x); C. Sqrt(x); D. Abs(x);
Câu 2: Trong ngôn ngữ lập trình Pascal, sau khi thực hiện các lệnh sau thì S=?
S := 0 ;
For i :=5 to 30 do
If (i mod 5 = 0) then S := S + i ;
A. 105 B. 30 C. 315 D. 65
Câu 3: Trong ngôn ngữ lập trình Pascal, cách viết nào dưới đây là cách viết đúng của câu lệnh rẽ
nhánh?
A. If <điều kiện> then <câu lệnh 1> else <câu lệnh 2> ;
B. If <điều kiện> ; then <câu lệnh 1> else <câu lệnh 2> ;
C. If <điều kiện> then <câu lệnh 1> ; else <câu lệnh 2> ;
D. If <điều kiện> ; then <câu lệnh 1> ; else <câu lệnh 2> ;
Câu 4: Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau thực hiện việc gì
For i := 1 to N do
if A[i] mod 2=0 then S:=S+A[i];
A. Tính tổng các phần tử có giá trị chẵn trong dãy số A1..AN
B. Tính tổng các phần tử có chỉ số chẵn của mảng A.
C. Tính tổng các phần tử của mảng A.
D. Tính tổng các số chẵn từ 1 đến N.
Câu 5: Cách viết nào dưới đây nhập giá trị phần tử thứ i của mảng A vào từ bàn phím?
A. Readln(A[‘i’]); B. Readln(A{i}); C. Readln(A(i)); D. Readln(A[i]);
Câu 6: Xét chương trình sau?
Var a, b,x: integer;
Begin
a:=10; b:=20;
if a<b then x:=b else x:=a;
write (x);
End.
Chương trình thu được gì trên màn hình
A. a B. 10 C. x D. 20
Câu 7: Trong ngôn ngữ lập trình 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 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 8: Biến x có thể nhận các giá trị 5.1;12.7;128.9;-43.6. Hãy chọn kiểu dữ liệu phù hợp của biến
9
x?
A. Char B. Real C. Integer D. Longint
Câu 9: Để viết ra màn hình 1 dãy gồm N số trên 1 hàng, ta viết như sau:
A. For i:=1 to 100 do write(A[i],’ ‘);
B. For i:=1 to N do write(A[i],’ ‘);
C. For i:=1 to N do writeln(A[i],’ ‘);
D. For i:=1 to N do Readln(A[i]);
Câu 10: 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ứ 10 của mảng ?
A. A[10]; B. A(10); C. A(9); D. A[9];
Câu 11: Để 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 .
A. Var S : Char; B. Var S : real; C. Var S : word; D. Var S : longint;
Câu 12: Trong ngôn ngữ lập trình pascal, kết quả đưa ra màn hình của chương trình sau là?
Var x: byte;
Begin
x:=6;
Writeln(‘Ket qua la:’,x*x); readln;
end.
A. Ket qua la: x B. Ket qua la: 36 C. Ket qua la:x*x D. Ket qua la:6
Câu 13: Cho đoạn chương trình:
S:= 0; i:= 1;
while i<=5 do
Begin
S:= S + 10*i;
i:= i + 1;
end;
Xác định giá trị của S sau đoạn lệnh trên?
A. S=150 B. S=100 C. S=160 D. S=140
Câu 14: Trong ngôn ngữ lập trình pascal, để nhập giá trị cho 2 biến a và b từ bàn phím ta dùng
lệnh?
A. Write(a,b); B. Read(‘a,b’); C. Real(a,b); D. Readln(a,b);
Câu 15: Chương trình mà có chức năng giúp chuyển đổi từ chương trình viết trên ngôn ngữ lập
trình bậc cao sang chương trình viết trên ngôn ngữ máy gọi là:
A. Chương trình dịch B. Chương trình đích
C. Chương trình có mã nguồn mở D. Chương trình nguồn
Câu 16: Phát biểu nào dưới đây là đúng ?
A. Cú pháp là bộ quy tắc dùng để viết chương trình
B. Nhấn tổ hợp phím Alt+F9 để thực hiện chương trình trong Pascal.
C. Bảng chữ cái trong ngôn ngữ Pascal gồm số và chữ
D. Có sử dụng dấu cách trong tên của biến
Câu 17: Cho biết câu lệnh sau thực hiện gì?
For i:=a to b do
if i mod 2=1 then d:=d+1;
A. Đếm các số lẻ B. Viết ra màn hình các số lẻ
C. Tính tổng các số lẻ D. Đếm các số lẻ từ a đến b
Câu 18: Cho chương trình sau:
10
Program vidu;
Begin
Writeln(‘Xin chao cac ban’);
End.
Chương trình trên gồm những thành phần nào?
A. Phần khai báo thư viện chương trình và phần thân chương trình
B. Phần khai báo tên chương trình và phần thân chương trình
C. Phần khai báo biến và khai báo thân chương trình
D. Phần khai báo hằng và phần thân chương trình
Câu 19: Ngôn ngữ nào mà máy tính có thể trực tiếp hiểu và thực hiện được chương trình?
A. Ngôn ngữ khác B. Hợp ngữ
C. Ngôn ngữ lập trình bậc cao D. Ngôn ngữ máy
Câu 20: Trong ngôn ngữ lập trình Pascal cách đặt tên nào sai?
A. 123_abc B. _123abc C. abc_123 D. abc123
Câu 21: Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau thực hiện việc gì
Readln(N);
For i := 1 to N do Readln(A[i]);
A. Tính tổng các phần tử của mảng A.
B. Nhập vào N và dãy gồm N phần tử
C. Tính tổng các số chẵn từ 1 đến N.
D. Tính tổng các phần tử có chỉ số chẵn của mảng A.
Câu 22: Các thành phần của ngôn ngữ lập trình là?
A. Chương trình dịch, bảng chữ cái, cú pháp, ngữ nghĩa
B. Chương trình thông dịch và chương trình biên dịch
C. Tên dành riêng, tên chuẩn và tên do người lập trình định nghĩa
D. Bảng chữ cái, cú pháp, ngữ nghĩa
Câu 23: Trong ngôn ngữ lập trình pascal, nếu X:=25 div 3 + 5 / 2 * 3; thì X nhận giá trị là?
A. 8.0; B. 15.0; C. 8.5; D. 15.5;
Câu 24: 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>;
câu lệnh đứng sau THEN được thực hiện khi?
A. điều kiện không tính được;
B. điều kiện được tính toán và cho giá trị đúng;
C. điều kiện được tính toán và cho giá trị sai;
D. điều kiện được tính toán xong;
Câu 25: Để khai báo mảng một chiều A gồm 5 phần tử kiểu nguyên, khai báo nào dưới đây là
đúng?
A. Var A:array[1…5] of longint; B. Var A:array[0..4] of longint;
C. Var A:array[1:5] of longint; D. Var A:array[6..10] of longint;
Câu 26: Cho biết câu lệnh sau sai chổ nào?
For i:=1.5 to 10 do write(i);
A. Không có biến đếm
B. Giá trị cuối nhỏ hơn giá trị đầu
C. Giá trị đầu nhỏ hơn giá trị cuối
D. Giá trị đầu và giá trị cuối không cùng kiểu dữ liệu
Câu 27: Để khai báo biến trong ngôn ngữ lập trình pascal ta dùng từ khóa nào?
A. Sqrt B. Var C. Uses D. Const
Câu 28: Khai báo nào dưới đây đúng về biến kiểu mảng một chiều gồm 20 phần tử số nguyên?
A. Var D : ARRAY[1..20] OF INTEGER; B. Var D : INTEGER OF ARRAY[0..10];
11
C. Var D: ARRAY(0..10) : INTEGER; D. Var D : ARRAY[1..20] : INTEGER;
II. PHẦN TỰ LUẬN
Câu 1: Chỉ ra lỗi sai trong chương trình dưới đây? (1 điểm)
Program  Chuong_trinh;                                                          
Var  S, a, b, c := integer;                                             
Begin                                                                 
      writeln(‘Nhap vao so a va b=’);                     
      readln(a,b)                                                   
      S = a+b+c;                                     
      writeln(‘Ket qua:’ c);
readln                                 
End.   
Câu 2: Viết chương trình thực hiện nhập vào 2 số nguyên dương M và N. Tính và đưa ra màn hình
tổng các số tự nhiên chẵn trong phạm vi từ M đến N.
------ HẾT ------

12
SỞ GD & ĐT HÀ NAM KIỂM TRA HẾT HỌC KÌ I - NĂM HỌC 2022 - 2023
TRƯỜNG THPT A THANH LIÊM MÔN TIN – 11
Thời gian làm bài : 45 Phút

Họ tên :............................................................... Lớp : ...................

I. PHẦN TRẮC NGHIỆM Mã đề 114

Câu 1: Trong ngôn ngữ lập trình Pascal, cách viết nào dưới đây là cách viết đúng của câu lệnh rẽ
nhánh?
A. If <điều kiện> ; then <câu lệnh 1> else <câu lệnh 2> ;
B. If <điều kiện> ; then <câu lệnh 1> ; else <câu lệnh 2> ;
C. If <điều kiện> then <câu lệnh 1> ; else <câu lệnh 2> ;
D. If <điều kiện> then <câu lệnh 1> else <câu lệnh 2> ;
Câu 2: Khai báo nào dưới đây đúng về biến kiểu mảng một chiều gồm 20 phần tử số nguyên?
A. Var D: ARRAY(0..10) : INTEGER; B. Var D : INTEGER OF ARRAY[0..10];
C. Var D : ARRAY[1..20] OF INTEGER; D. Var D : ARRAY[1..20] : INTEGER;
Câu 3: Ngôn ngữ nào mà máy tính có thể trực tiếp hiểu và thực hiện được chương trình?
A. Ngôn ngữ máy B. Ngôn ngữ khác
C. Hợp ngữ D. Ngôn ngữ lập trình bậc cao
Câu 4: Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau thực hiện việc gì
Readln(N);
For i := 1 to N do Readln(A[i]);
A. Tính tổng các số chẵn từ 1 đến N.
B. Tính tổng các phần tử của mảng A.
C. Nhập vào N và dãy gồm N phần tử
D. Tính tổng các phần tử có chỉ số chẵn của mảng A.
Câu 5: Cách viết nào dưới đây nhập giá trị phần tử thứ i của mảng A vào từ bàn phím?
A. Readln(A[i]); B. Readln(A{i}); C. Readln(A(i)); D. Readln(A[‘i’]);
Câu 6: Xét chương trình sau?
Var a, b,x: integer;
Begin
a:=10; b:=20;
if a<b then x:=b else x:=a;
write (x);
End.
Chương trình thu được gì trên màn hình
A. x B. a C. 10 D. 20
Câu 7: Để khai báo biến trong ngôn ngữ lập trình pascal ta dùng từ khóa nào?
A. Sqrt B. Const C. Uses D. Var
Câu 8: Trong ngôn ngữ lập trình Pascal cách đặt tên nào sai?
A. abc_123 B. _123abc C. 123_abc D. abc123
Câu 9: Trong ngôn ngữ lập trình pascal hàm cho giá trị bằng bình phương của x là?
A. Exp(x); B. Abs(x); C. Sqr(x); D. Sqrt(x);
Câu 10: Cho biết câu lệnh sau sai chổ nào?
For i:=1.5 to 10 do write(i);
13
A. Giá trị cuối nhỏ hơn giá trị đầu
B. Không có biến đếm
C. Giá trị đầu nhỏ hơn giá trị cuối
D. Giá trị đầu và giá trị cuối không cùng kiểu dữ liệu
Câu 11: 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ứ 10 của mảng ?
A. A(9); B. A[9]; C. A(10); D. A[10];
Câu 12: Để khai báo mảng một chiều A gồm 5 phần tử kiểu nguyên, khai báo nào dưới đây là
đúng?
A. Var A:array[1…5] of longint; B. Var A:array[1:5] of longint;
C. Var A:array[0..4] of longint; D. Var A:array[6..10] of longint;
Câu 13: Cho đoạn chương trình:
S:= 0; i:= 1;
while i<=5 do
Begin
S:= S + 10*i;
i:= i + 1;
end;
Xác định giá trị của S sau đoạn lệnh trên?
A. S=160 B. S=150 C. S=140 D. S=100
Câu 14: Cho chương trình sau:
Program vidu;
Begin
Writeln(‘Xin chao cac ban’);
End.
Chương trình trên gồm những thành phần nào?
A. Phần khai báo thư viện chương trình và phần thân chương trình
B. Phần khai báo hằng và phần thân chương trình
C. Phần khai báo biến và khai báo thân chương trình
D. Phần khai báo tên chương trình và phần thân chương trình
Câu 15: Trong ngôn ngữ lập trình pascal, để nhập giá trị cho 2 biến a và b từ bàn phím ta dùng
lệnh?
A. Readln(a,b); B. Read(‘a,b’); C. Write(a,b); D. Real(a,b);
Câu 16: Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau thực hiện việc gì
For i := 1 to N do
if A[i] mod 2=0 then S:=S+A[i];
A. Tính tổng các phần tử có giá trị chẵn trong dãy số A1..AN
B. Tính tổng các phần tử của mảng A.
C. Tính tổng các phần tử có chỉ số chẵn của mảng A.
D. Tính tổng các số chẵn từ 1 đến N.
Câu 17: Phát biểu nào dưới đây là đúng ?
A. Bảng chữ cái trong ngôn ngữ Pascal gồm số và chữ
B. Cú pháp là bộ quy tắc dùng để viết chương trình
C. Có sử dụng dấu cách trong tên của biến
D. Nhấn tổ hợp phím Alt+F9 để thực hiện chương trình trong Pascal.
Câu 18: Để 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 .
14
A. Var S : word; B. Var S : Char; C. Var S : real; D. Var S : longint;
Câu 19: Trong ngôn ngữ lập trình 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 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 20: Các thành phần của ngôn ngữ lập trình là?
A. Bảng chữ cái, cú pháp, ngữ nghĩa
B. Tên dành riêng, tên chuẩn và tên do người lập trình định nghĩa
C. Chương trình thông dịch và chương trình biên dịch
D. Chương trình dịch, bảng chữ cái, cú pháp, ngữ nghĩa
Câu 21: Để viết ra màn hình 1 dãy gồm N số trên 1 hàng, ta viết như sau:
A. For i:=1 to N do write(A[i],’ ‘);
B. For i:=1 to N do Readln(A[i]);
C. For i:=1 to 100 do write(A[i],’ ‘);
D. For i:=1 to N do writeln(A[i],’ ‘);
Câu 22: Trong ngôn ngữ lập trình pascal, kết quả đưa ra màn hình của chương trình sau là?
Var x: byte;
Begin
x:=6;
Writeln(‘Ket qua la:’,x*x); readln;
end.
A. Ket qua la: 36 B. Ket qua la:x*x C. Ket qua la: x D. Ket qua la:6
Câu 23: Biến x có thể nhận các giá trị 5.1;12.7;128.9;-43.6. Hãy chọn kiểu dữ liệu phù hợp của
biến x?
A. Longint B. Integer C. Char D. Real
Câu 24: 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>;
câu lệnh đứng sau THEN được thực hiện khi?
A. điều kiện không tính được;
B. điều kiện được tính toán xong;
C. điều kiện được tính toán và cho giá trị sai;
D. điều kiện được tính toán và cho giá trị đúng;
Câu 25: Trong ngôn ngữ lập trình pascal, nếu X:=25 div 3 + 5 / 2 * 3; thì X nhận giá trị là?
A. 15.0; B. 15.5; C. 8.5; D. 8.0;
Câu 26: Trong ngôn ngữ lập trình Pascal, sau khi thực hiện các lệnh sau thì S=?
S := 0 ;
For i :=5 to 30 do
If (i mod 5 = 0) then S := S + i ;
A. 65 B. 315 C. 30 D. 105
Câu 27: Cho biết câu lệnh sau thực hiện gì?
For i:=a to b do
if i mod 2=1 then d:=d+1;
A. Viết ra màn hình các số lẻ B. Tính tổng các số lẻ
C. Đếm các số lẻ D. Đếm các số lẻ từ a đến b
Câu 28: Chương trình mà có chức năng giúp chuyển đổi từ chương trình viết trên ngôn ngữ lập
trình bậc cao sang chương trình viết trên ngôn ngữ máy gọi là:
A. Chương trình dịch B. Chương trình đích
15
C. Chương trình có mã nguồn mở D. Chương trình nguồn
II. PHẦN TỰ LUẬN
Câu 1: Chỉ ra lỗi sai trong chương trình dưới đây? (1 điểm)
Program  Chuong_trinh;                                                          
Var  S, a, b, c := integer;                                             
Begin                                                                 
      writeln(‘Nhap vao so a va b=’);                     
      readln(a,b)                                                   
      S = a+b+c;                                     
      writeln(‘Ket qua:’ c);
readln                                 
End.   
Câu 2: Viết chương trình thực hiện nhập vào 2 số nguyên dương M và N. Tính và đưa ra màn hình
tổng các số tự nhiên chẵn trong phạm vi từ M đến N.
------ HẾT ------

16

You might also like