Professional Documents
Culture Documents
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
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
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
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