Câu 2: Biến x nhận giá trị nguyên trong đoạn [-300 ; 300], kiểu dữ liệu nào sau đây là phù hợp nhất để khai báo biến x?
A. Longint
B. Integer
C. Word
D. Real
Trả lời:
X thuộc kiểu nguyên [byte, integer, word, longint] nằm trong đoạn [-300 ; 300], kiểu dữ liệu phù hợp nhất để khai báo biến x là kiểu integer vì kiểu này nằm trong đoạn [-32768; 32767].
Đáp án: B
Câu 3: Trong ngôn ngữ lập trình Pascal, giả sử x:= a/b; thì x phải khai báo kiểu dữ liệu nào?
A. Longint
B. integer
C. word
D. real
Trả lời:
X:=a/b; thì x phải khai báo kiểu số thực Real vì a có thể chia hết hoặc không chia hết cho b. Còn các kiểu Longint, word, integer là kiểu số nguyên nên không được.
Đáp án: D
Câu 4: Bộ nhớ sẽ cấp phát cho các biến dưới đây tổng cộng bao nhiêu byte?
Var x,y: integer; c: char; ok: boolean; z: real;
A. 12
B. 14
C. 11
D. 13
Trả lời:
Kiểu Interger bộ nhớ lưu trữ một giá tri là 2 byte → 2 biến x, y cần 2 x 2= 4 byte
Kiểu Real bộ nhớ lưu trữ một giá tri là 6 byte → 1 biến z cần 1 x 6 = 6 byte
Kiểu char bộ nhớ lưu trữ một giá tri là 1 byte → 1 biến C cần 1 x 1 = 1 byte
Kiểu boolean bộ nhớ lưu trữ một giá tri là 1 byte → 1 biến ok cần 1 x 1 = 1 byte
Đáp án: A
Câu 5: Biến x có thể nhận các giá trị -5, 100, 15, 20. Hãy chọn kiểu dữ liệu phù hợp với biến x?
A. Char
B. LongInt
C. Integer
D. Word
Trả lời:
Các số -5, 100, 15, 20 là các số nguyên → kiểu dữ liệu của x là kiểu nguyên. Trong x có giá trị -5 → chỉ có thể là kiểu integer, longint [vì chứa giá trị âm]. Vì các giá trị này có giá trị nhỏ nên kiểu dữ liệu phù hợp với biến x là integer [longint sẽ chiếm bộ nhớ lớn].
Đáp án: C
Câu 6: Biến X có thể nhận các giá trị 1; 100; 150; 200 và biến Y có thể nhận các giá trị 1; 0.2; 0.3; 10.99. Khai báo nào trong các khai báo sau là đúng nhất?
A. Var X,,Y: byte;
B. Var X, Y: real;
C. Var X: real; Y: byte;
D. Var X: byte; Y: real;
Trả lời:
Các giá trị 1; 100; 150; 200 là các số nguyên→ kiểu dữ liệu của X là byte,
Các giá trị 1; 0.2; 0.3; 10.99 là các số thực → kiểu dữ liệu của Y là real.
Đáp án: D
Câu 7: Biến X nhận giá trị là 0.7. Khai báo nào sau đây là đúng?
A. var X: Boolean;
B. var X: real;
C. var X: char;
D. A và B đúng
Trả lời: Biến X nhận giá trị là 0.7 [là số thực]→ X nhận kiểu thực [real].
Đáp án: B
Câu 8: Trong ngôn ngữ lập trình Pascal, kiểu dữ liệu nào trong các kiểu sau có miền giá trị lớn nhất?
A. Byte
B. Longint
C. Word
D. Integer
Trả lời:
+ Byte có miền giá trị từ 0 đến 255.
+ Integer có miền giá trị từ -32768 đến 32767
+ Word có miền giá trị từ 0 đến 65535
+ Longint có miền giá trị từ -2147483648 đến 2147483647
Đáp án: B
Câu 9: Phạm vi giá trị của kiểu integer thuộc:
A. Từ 0 đến 255
B. Từ -215 đến 215 -1
C. Từ 0 đến 216 -1
D. Từ -231 đến 231 -1
Trả lời:
Phạm vi giá trị của kiểu integer Từ -215 [= -32768] đến 215 -1 [=32767].
Đáp án: B
Câu 10: Trong 1 chương trình, biến M có thể nhận các giá trị: 10, 15, 20, 30, 40⇒ Biến M kiểu nguyên và biến N có thể nhận các giá trị: 1.0 , 1.5, 2.0, 2.5 , 3.0 ⇒ Biến N kiểu thực.
I. CÁC KIỂU DỮ LIỆU CƠ BẢN
*Tổng quát: Các kiểu dữ liệu chuẩn
Kiểu
Loại giá trị
Phạm vi giá trị
Bộ nhớ [byte]
Real
Thực
11-12 chữ số
2.9e-39..1.7e38
6
Single
Thực
7 -8 chữ số
1.5e-45..3.4e38
4
Double
Thực
15-16 chữ số
5.0e-324..1.7e308
8
Extended
Thực
19-20 chữ số
3.4e-4932..1.1e4932
10
Comp
Thực
19-20 chữ số
-9.2e18..9.2e18
8
Shortint
Nguyên
-128..127
1
Integer
Nguyên
-32768..32767
2
Longint
Nguyên
-2147483648..2147483647
4
Byte
Nguyên
0..255
1
Word
Nguyên
0..65535
2
Char
Kí tự
Kí tự bất kì
1
Boolean
Lôgic
True, False
1
String
Xâu [chuỗi] kí tự
Chuỗi tối đa 255 kí tự
1..256
1. Kiểu logic- Từ khóa: BOOLEAN
- miền giá trị: [TRUE, FALSE].
- Các phép toán: phép so sánh [=, ] và các phép toán logic: AND, OR, XOR, NOT.
Trong Pascal, khi so sánh các giá trị boolean ta tuân theo qui tắc: FALSE < TRUE.
2. Kiểu số nguyên
2.1. Các kiểu số nguyên
Tên kiểu Phạm vi Dung lượng Shortint -128 → 127 1 byte Byte 0 → 255 1 byte Integer -32768 → 32767 2 byte Word 0 → 65535 2 byte LongInt -2147483648 → 2147483647 4 byte 2.2. Các phép toán trên kiểu số nguyên
2.2.1. Các phép toán số học:
+, -, *, / [phép chia cho ra kết quả là số thực].
Phép chia lấy phần nguyên: DIV [Ví dụ : 34 DIV 5 = 6].
Phép chia lấy số dư: MOD [Ví dụ: 34 MOD 5 = 4].
2.2.2. Các phép toán xử lý bit:
Trên các kiểu ShortInt, Integer, Byte, Word có các phép toán:
NOT, AND, OR, XOR.
A B A AND B A OR B A XOR B NOT A 11
1
1
0
0
1 00
1
1
0
01
0
1
1
1
00
0
0
01 SHL [phép dịch trái]: a SHL n ⇔ a × 2n
SHR [phép dịch phải]: a SHR n ⇔ a DIV 2n
3. Kiểu số thực
3.1. Các kiểu số thực Tên kiểu Phạm vi Dung lượng Single 1.5×10-45 → 3.4×10+38 4 byte Real 2.9×10-39 → 1.7×10+38 6 byte Double 5.0×10-324 → 1.7×10+308 8 byte Extended 3.4×10-4932 → 1.1×10+4932 10 byte
3.2. Các phép toán trên kiểu số thực: +, -, *, /
Chú ý: Trên kiểu số thực không tồn tại các phép toán DIV và MOD.
3.3. Các hàm số học thường sử dụng cho kiểu số nguyên và số thực:
SQR[x]: Trả về x2
SQRT[x]: Trả về căn bậc hai của x [x≥0]
ABS[x]: Trả về |x|
SIN[x]: Trả về sin[x] theo radian
COS[x]: Trả về cos[x] theo radian
ARCTAN[x]: Trả về arctang[x] theo radian
LN[x]: Trả về ln[x]
EXP[x]: Trả về ex
TRUNC[x]: Trả về số nguyên gần với x nhất nhưng bé hơn x.
INT[x]: Trả về phần nguyên của x
FRAC[x]: Trả về phần thập phân của x
ROUND[x]: Làm tròn số nguyên x
PRED[n]: Trả về giá trị đứng trước n
SUCC[n]: Trả về giá trị đứng sau n
ODD[n]: Cho giá trị TRUE nếu n là số lẻ.
INC[n]: Tăng n thêm 1 đơn vị [n:=n+1].
DEC[n]: Giảm n đi 1 đơn vị [n:=n-1].
4. Kiểu ký tự
- Từ khoá: CHAR.
- Kích thước: 1 byte.
- Để biểu diễn một ký tự, ta có thể sử dụng một trong số các cách sau đây:
+ Đặt ký tự trong cặp dấu nháy đơn. Ví dụ 'A', '0'.
+ Dùng hàm CHR[n] [trong đó n là mã ASCII của ký tự cần biểu diễn]. Ví dụ CHR[65] biễu diễn ký tự 'A'.
+ Dùng ký hiệu #n [trong đó n là mã ASCII của ký tự cần biểu diễn]. Ví dụ #65.
- Các phép toán: =, >, >=,