PHN A: T LUN
Câu1 : Hãy chỉ ra input và output của cá bài toán sau:
a/ xác định số học sinh trong lớp cùng mang họ trần.
b/ Tính tổng của các phần tử lớn hơn 0 trong dãy n số cho trớc.
c/ Tìm các số có giá trị nhỏ nhất trong n số đã cho
Câu 2 . Hãy mô tả thuật toán giải bài toán tính tổng các phần tử của dãy số
A = { a
1
,a
2
, ,a
n
} cho trớc.
Câu . Hãy mô tả thuật toán tìm số lớn nhất trong bốn số a,b,c,d.
Câu 3 . Sau mỗi câu lệnh sau đây
a/ if (45 mod 3) = 0 then x:= x+2;
b/ if x> 10 then x:= x+1 ;
giá trị của x s là bao nhiêu, nếu trớc đó giá trị của x bằng 10
Câu 4 .Hãy cho biết các thành phần cơ bản của một ngôn ngữ lập trình.
Câu 5. Cho biết sự khác nhau giữa tên và từ khoá. Cho biết cách đặt tên trong ch-
ơng trình.
Câu 6. Hãy cho biết các thành phần chính trong cấu trúc của chơng trình.
Câu 7.Chuyển các biểu thức đợc viết trong pascal sau đây thành các biểu thức
toán:
a/ (a+b)*(a+b)-x/y; b/ b/(a*a +c)
c/ a*a/((2*b+c)*(2*b+c)) d/ 1 + 1/ 2 +1 / (2*3) + 1 / (3*4) + 1 / (4*5).
Câu 8. Hãy mô tả thuật toán giá trị của hai biến x ,y cho nhau.
Câu 9 . Hãy viết các phép so sánh sau bằng kí hiệu pascal:
a/ (a + b > c ) và ( b + c > a) và (a + c > b )
b/ (x < a
1
máy tính và được bán cùng máy tính
c/ Khi thực hiện chương trình, máy tính sẽ thực hiện các lệnh có trong chương trình
theo thứ tự ngẫu nhiên và thứ tự thực hiện các lệnh không ảnh hưởng đến kết quả thực hiện
chương trình.
d/ Với ngôn ngữ lập trình chúng ta có thể viết được chương trình máy tính.
Câu 3: Máy tính có thể hiểu được trực tiếp ngôn ngữ nào trong các ngôn ngữ dưới
đây?
a/ Ngôn ngữ tự nhiên b/ Ngôn ngữ lập trình
c/ Ngôn ngữ máy d/ tất cả các ngôn ngữ nói trên
Câu 4: Điền các cụm từ sau vào những chỗ trống ( ) để được câu hoàn chỉnh:
ngôn ngữ lập trình, ngôn ngữ máy, chương trình, dãy bit, chương trình dịch.
a/ Các lệnh trong ngôn ngữ máy được viết dưới dạng
b/ được sử dụng để viết chương trình.
c/ Chương trình thường được viết bằng ngôn ngữ lập trình, sau đó được
chuyển đổi sang ngôn ngữ máy.
d/ là ngôn ngữ duy nhất máy tính có thể hiểu được trực tiếp
e/ Dãy các lệnh để máy thực hiện một nhiệm vụ nào đó được gọi là
Câu 5: Những phát biểu nào dưới đây là đúng?
a/ Việc viết nhiều lệnh và tập hợp lại thành một chương trình giúp con người điều
khiển máy tính thực hiện các công việc phức tạp một các hiệu quả hơn.
b/ Chương trình thực chất là một dãy các lệnh để hướng dẫn máy tính thực hiện.
Không nên viết gộp các lệnh thành chương trình vì sẽ phức tạp và nếu viết dài thì rất khó
kiểm tra. Vì thế tốt nhất là điều khiển máy tính theo từng lệnh.
c/ Khi thực hiện chương trình, máy tính sẽ thực hiện các lệnh có trong chương trình
một các tuần tự.
d/ Khi dịch chương trình, chương trình dịch chỉ dịch các lệnh viết đúng quy tắc. Các
lệnh viết sai quy tắc sẽ bị bỏ qua.
e/ “Chương trình” là từ gọi chung cho: Chương trình máy tính thể hiện bằng ngôn
ngữ mà máy hiểu được(ngôn ngữ máy) và chương trình viết bằng một ngôn ngữ lập trình
nào đó.
trỡnh quy nh m khụng cn quan tõm n ý ngha cỏc cõu lnh.
b/ Khi vit chng trỡnh, chỳng ta khụng ch phi tuõn th ỳng cỏc quy tc vit cỏc
cõu lnh do ngụn ng lp trỡnh quy nh
c/ Khi vit chng trỡnh chỳng ta khụng ch cn s dng cỏc cõu lnh cú ý ngha
ỳng nhn c li gii ca bi toỏn , chng trỡnh dch s t nhn bit v sa cỏc cõu
lnh vit sai quy tc ca ngụn ng lp trỡnh
Cõu 9: S bin cú th bỏo ti a trong chng trỡnh l bao nhiờu ?
a/ Ch 1 bin cho mi kiu d liu b/ 10 bin
c/ Ch hn ch bi dung lng nh d/ Khụng gii hn
câu1 0. Những tên có ý nghiã đợc xác định từ trớc và không đợc phép sử dụng có
mục đích khác đuợc gọi là gì ?
a/ Tên có sẵn; b/ Tên riêng;
c/ Từ khoá d/ Biến;
câu 11. Các ngôn ngữ lập trình phân chia dữ liệu thành các kiểu dữ liệu khác nhau
với mục gì?
a/ Sử dụng bộ nhớ máy tính một cách có hiệu quả.
b/ thực hiện các phép toán tơng ứng với từng kiểu dữ liệu.
c/ Tự động hoá việc viết chơng trình .
d/ Kiểm soát lỗi khi chơng trình thực hiện các phép toán không có nghĩa.
Hãy chọn phơng án sai.
Câu 12 Trong các câu sau hãy chọn câu có kết quả đúng.
a/ 14 / 5 = 2 ; 14 div 5 = 2 ; 14 mod 5 = 4;
b/ 14 / 5 = 2.8 ; 14 div 5 = 2 ; 14 mod 5 = 4;
c/ 14 / 5 = 2.8 ; 14 div 5 = 4 ; 14 mod 5 = 2;
d/ 14 / 5 = 3 ; 14 div 5 = 2 ; 14 mod 5 = 4;
câu 13. xác định đúng / sai cho những phác biểu dới đây:
đúng Sai
a/ Trong ngôn ngữ pascal, xâu kí tự chao cac ban
có thể viết giữa hai dấu nháy đơn hoặc kép . Tức
là hai cách viết đều đúng : chao cac ban hoặc
d/ Tên 4/ những đại lợng do ngời lập trình đặt tên
và có giá trịkhông thay đổi trong khi thực
hiện chơng trình.
Câu 16. Hãy chọn câu phát biểu đúng trong các câu d ới đây:
a/ Để có thể sử dụng đợc biến và hằng trong chơng trình, ta phảI khai báo
chúng trong phần khai báo.
b/ Ta chỉ cần khai báo tên biến mà không cần khai báo kiểu dữ liệu, chơng
trình dịch sẽ tự động xác dịnh kiểu dữ liệu mà biến có thể lu trữ .
c/ Để khai báo một biến , ta cần khai báo cả tên biến và kiểu dữ liệu mà biến
đó có thể lu trữ.
d/ giá trị của biến có thể thay đổi (đợc gán lại ) trong quá trình thực hiện ch-
ơng trình.
Câu 17 . Số biến có thể khai báo tối đa trong một chơng trình là bao nhiêu?
a/ Chỉ một biến cho mỗi kiểu dữ liệu b/ 10 biến.
c/ Chỉ hạn chế dung lợng bộ nhớ d/ không giới hạn
câu 18. Hãy chọn câu đúng trong các câu dới đây:
a/ Sau khi hằng đã đợc khai báo, ta có thể gán lại giá trị cho nó trong phần
thân chơng trình .
b/ Vì hằng và biến cùng lu trữ dữ liệu và giá trị của hằng không thể thay đổi
đợc, tốt nhất là dùng biến thay cho hằng.
c/ Cả tên của biến và hằng đều phải đợc đặt tuân thủ các quy định chung về
tên của ngôn ngữ lập trình.
d/ cũng giống nh biến, không đợc phép khai báo hai hằng có cùng tên nhng
với giá trị khác nhau
Câu18.khi ta khai báo một biến:
a/ Máy tính dành riêng một phần bộ nhớ để lu trữ giá trị của biến trong suốt
quá trình hoạt động của chơng trình.
b/ Máy tự động in ra tên của biến.
c/Biến đó phảI đợc sử dụng trong chơng trình
d/ không đợc sử dụng biến đó trong chơng trình
bài toán đó trên máy tính.
d/ Với bài toán cụ thể , chúng ta phảI lựa chọn ngôn nữ lập trình phù hợp rồi
mới xây dựng thuật toán giảI bài toán đó.
Câu 23 .Trong các tên sau đây , tên nào là hợp lệ trong ngôn ngữ pascal?
a/ lop8a; b/ Tamgiac;
c/ 8a; d/Tam giac;
e/ beginprogram f/ end;
Câu 24 Hãy ghép mõi kiểu dữ liệu đúng với phạm vi giá trị của nó:
Kiểu tên Phạm vi giá trị ghép
a/char 1/ số nguyên trong khoảng từ -32000
đến + 32000.
b/ string 2/ Só thực trong khoảng 10
-38
đến
10
38
.
C/ Integer 3/ Một kí tự trong bảng chữ cái.
d/ Real 4/ Xâu kí tự, tối đa gồm 255kí tự.
Câu 25. Khi khai báo biến ta cần khai báo:
a/ khai báo tên biến b/ khai báo kiểu dữ liệu của biến
c/ Tên biến và kiểu dữ liệu của biến d/ Các tên biến và các kiểu dữ
liệu của biến
Câu 26 . Trong các cách khai báo sau đây khai báo nào là đúng:
a/ Var : a, b ; integer; b/ Var a, b := integer ;
c/ Var a , b :integer; d/ Var a , b : interger ;
Câu 27. Giả sử A đựoc khai báo là biến với kiểu dữ liệu số thực , X là biến với kiểu
dữ liệu xâu. các phép gán sau đây có hợp lệ không ?
Hợp lệ Không hợp lệ
a/ A:= 4;
If x > 10 then x := x +10 ;
End.
X có giá trị là mấy
a/ 3 b/ 5
c/ 15 d/10
Câu32. trong chơng trình pascal sau đây:
program hcn;
var a, b :integer;
s,cv :real ;
begin
a:= 10;
b:= 5;
s:= a*b ;
cv:= (a +b ) * 2 ;
writeln( dien tich hcn la: , s );
writeln( chu vi hcn la : , cv ) ;
readln;
end.
Biến s và cv có giá trị là mấy:
a/ s = 10 ; cv = 5 ; b/ s= 30 ; cv = 50 ;
c/ s = 50 ; cv = 40 ; d/ s = 50 ; cv = 30 ;
Câu 33: sau mỗi câu lệnh trong pascal sau đây x sẽ có giá trị là bao nhiêu , nế tr-
ớc đó giá trị của x bằng 5: sau thực hiện các lệnh x có các giá tri ( 0; -10 ; 5 ; 6
12 )
Câu lệnh Giá trị của x
a/ if x mod 3 = 2 then x:= x +1;
b/ if (x mod 3 =0) or (x>=5) then x:= 2*x;
c/ if (x mod 2 =1 ) and (x>10 ) then x:=0 ;
d/ if x mod 5 = 0 then begin x:=x*x ; x:=x -10;
x:= x+ y ;
y:= x y;
x := x y;
writeln ( x= , x, y= , y);
readln;
end.
X, y có giá trị là mấy:
a/ x= 10 ;b= 15 b/ x=25 ; y= 15;
c / x= 25 ; b=10 d/ x=15 ; y= 10;
Cõu 37: Cỏc thnh phn c bn ca mt ngụn ng lp trỡnh l ?
a/ Cỏc t khoỏ v tờn
b/ bng ch cỏi, cỏc t khoỏ v tờn
c/ Bng ch cỏi v cỏc quy tt vit cỏc cõu lnh sau cho cú th to thnh mt
chng trỡnh hon chnh v cú th chy c trờn mỏy tớnh.
d/ Ch bng ch v cỏc t khoỏ
Cõu 38: Mỏy tớnh cú th hiu c trc tip ngụn ng no trong cỏc ngụ ng di
õy ?
a/ Ngụn ng t nhiờn b/ Ngụ ng lp trỡnh
c/ Ngụn ng mỏy d/ Tt c cỏc ngụn ng núi trờn
Cõu 39: Trong khỏi bỏo sau õy kai bỏo no l ỳng nht:
a/ Var tb: real b/ Var 4hs: Interger
c/ Const x: = real d/ Var R=30
Cõu 40: Hóy ghộp mừi kiu d liu ỳng vi phm vi giỏ tr ca nú :
Tờn kiu Phm vi giỏ tr Ghộp
a/ Char 1/ S nguyờn trong khon t -32000-32000
b/ String 2/ Số thực trong khoảng -10
-38
đến 10
37
c/ Interger 3/ Một ký tự trong dãy chử cái
- Cách đặt tên không được bắt đầu bằng số và không được chứa dấu
cách, không được trùng với tên từ khoá
2đ
Câu 6 Cấu trúc của chương trình gồm 2 phần: phần khai báo và phần thân
chương trình chương trình
+ Phần khai báo: gồm phần khai báo tên chương trình và khai báo
các thư viện và một số khai báo khác.
+ Phần thân chương trình: gồm các câu lệnh mà máy tính cần thực
hiện và được bắt đầu bằng từ khoá bigin và kết thúc là end. Đây
là phần bát buộc phải có
2đ
Câu 7 a/ (a + b)
2
– x/y b/ b / (a
2
+c)
c/ a
2
/ (2b + c)
2
d/ 1 + 1/2 + 1 / (2x3) + 1/ (3.4) + 1/(4.5)
2đ
Câu 8 B1 z: = x
B2 x: = y
B3 Y: = z
1,5đ
Câu 9 a/ (a + b ) and (b + c > a) and ( a + c > b);
b/ (x < a1) OR (x > a2);
c/ (diem >= 6 ) and ( diem < 8);
C©u 14
D 0.5 ®
C©u 15
(a-4 , b- 3, c-2 , d -1 ) 1®
C©u 16
(a,c,d) 0.5®
C©u 17
C 0.5®
C©u 18
(a, d) 0.5 ®
C©u 19
(a, c) 0.5®
C©u 20
B 0.5®
C©u 21
C 0.5®
C©u 22
(a,c,d) 0.5®
C©u 23
( a,b) 0.5®
C©u 24
(a,b, e) 0.5®
C©u 25
(a-3,b-4, c-1, d- 2) 1®
C©u 26
D 0.5®
C©u 27
C 0.5®
C©u 28
(a-hlÖ, b- k/hîp lÖ, c- hlÖ ,d- khlÖ) 1®