Câu trả lời chính xác nhất:
Kiểu dữ liệu Char có phạm vi giá trị là -128 tới 127 hoặc 0 tới 255. Để hiểu rõ hơn câu trả lời trên đây, mời các bạn đọc thêm phần kiến thức khái quát và tham khảo các bài tập trắc nghiệm về Ngôn ngữ lập trình và các kiểu dữ liệu dưới đây nhé.
Một chương trình nếu chỉ hiển thị số thì người dùng có nhìn vào cũng không hiểu được, lúc này bạn sẽ cần những biến để lưu trữ ký tự, hay những câu thông báo cho người dùng. Để làm được điều đó, bạn cần học qua kiểu char trong C++.
Trong C++, char là một kiểu dữ liệu đặc biệt, nó vừa là kiểu số nguyên, cũng vừa là kiểu ký tự. Do đó, kiểu char tuân thủ tất cả các quy tắc của một số nguyên bình thường (+-*/…).
Một biến kiểu char sẽ có độ lớn 1 bytes (8 bits), dùng để lưu trữ một ký tự trong bảng mã ASCII như (a, b, c, … 1, 2, 3, …)
ASCII (American Standard Code for Information Interchange - Chuẩn mã trao đổi thông tin Hoa Kỳ) là bộ kí tự và bộ mã kí tự dựa trên bảng chữ cái La Tinh trong tiếng Anh.
>>> Xem thêm: Lệnh cout trong C++ có tác dụng gì?
Để khai báo biến kiểu kí tự trong C/C++, ta dùng từ khóa char như sau:
char character; //declare a variable type char
char ch(65); //declare a variable type char and initialze with ASCII code
char a = 'a'; //declare a variable type char and initialize with a symbol of ASCII table
Cú pháp hoàn toàn giống việc thực hiện khai báo biến thông thường.
Biến kiểu kí tự (char) thực tế cũng là một kiểu số nguyên kích thước 1 byte (tương đương với int8_t), nó lưu trữ giá trị là mã Code của kí tự đó, nhưng khi hiển thị lên màn hình, nó cho ra kết quả là kí tự (Symbol) chứ không in ra mã ASCII của kí tự đó.
Vì thế, chúng ta có thể khởi tạo cho biến kiểu char bằng cách gán một kí tự đặt giữa cặp dấu nháy đơn. Ví dụ:
char ch = 'a';
ch = 'b';
Hoặc cũng có thể gán trực tiếp mã Code của kí tự đó trong bảng mã ASCII. Ví dụ:
char ch = 97; //kí tự 'a' trong bảng mã ASCII có mã là 97
ch = 98; //kí tự 'b' trong bảng mã ASCII có mã là 98
Loại dữ liệu | Kiểu dữ liệu | Số ô nhớ | Miền giá trị |
---|---|---|---|
Boolean | bool | 1 byte | 0 hoặc 1. Trong đó 0 => FALSE và 1 => TRUE |
Ký tự | char | 1 byte | -128 ... 127 hoặc 0 ... 255 |
- | unsign char | 1 byte | 0 ... 255 |
- | sign char | 1 byte | -128 ... 127 |
Số nguyên | int | 4 byte | -2147483648 ... 2147483647 |
- | unsign int | 4 byte | 0 ... 4294967295 |
- | sign int | 4 byte | -2147483648 ... 2147483647 |
- | short | 2 byte | -32768 .. 32767 |
- | long | 4 byte | -215 ... 215 - 1 |
Số thực | float | 4 byte | ±10-37 ... ±10+38 |
- | double | 8 byte | ±10-307 ... ±10+308 |
Đây là các kiểu dữ liệu đơn giản có sẵn trong C++.
Các kiểu giữ liệu này giúp tiết kiệm bộ nhớ là linh động hơn trong việc lưu dữ liệu.
Ví dụ: khi lưu tuổi một người ta chỉ cần dùng kiểu char hoặc unsigned char. Vừa tiết kiệm bộ nhớ nhưng vẫn đảm bảo có thể lưu tất cả các tuổi có thể xảy ra. Nhưng với trường hợp dữ liệu lớn hơn, như số người trong một quốc gia thì lên tới con số hàng triệu. Do đó ta phải sử dụng loại dữ liệu khác như int.
Câu 1: Chương trình dịch Pascal sẽ cấp phát bao nhiêu byte bộ nhớ cho các biến trong khai báo sau?
VAR M, N, P: Integer; A. B: Real; C: Longint;
B. 24 byte
C. 22 byte
D. 18 byte
Trả lời:
Kiểu Interger bộ nhớ lưu trữ một giá tri là 2 byte → 3 biến M, N, P cần 3 x 2= 6 byte
Kiểu Real bộ nhớ lưu trữ một giá tri là 6 byte → 2 biến A. B cần 2 x 6 = 12 byte
Kiểu Longint bộ nhớ lưu trữ một giá tri là 4 byte → 1 biến C cần 1 x 4 = 4 byte
→ Vậy cần cấp 6+ 12+ 4 = 22 byte bộ nhớ cho các biến.
Đáp án: C
Câu 2: 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 3: 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 4: Chọn phát biểu đúng trong các phát biểu sau:
A. Dữ liệu kiểu byte có 256 giá trị từ 0, 1, 2, …, 255;
B. Dữ liệu kiểu kí tự chỉ có 256 giá trị;
C. Mọi ngôn ngữ lập trình đều có các kiểu dữ liệu chuẩn là: kiểu nguyên, kiểu thực, kiểu kí tự, kiểu logic;
D. Quy định về phạm vi giá trị và kích thước bộ nhớ lưu trữ một giá trị của các kiểu dữ liệu chuẩn trong mọi ngôn ngữ lập trình là như nhau;
Đáp án: A
Câu 5: Trong INTEGER và WORD, phạm vi giá trị của kiểu nào lớn hơn?
A. Kiểu INTEGER có phạm vi giá trị bằng với kiểu WORD.
B. Kiểu INTEGER có phạm vi giá trị lớn hơn kiểu WORD.
C. Kiểu WORD có phạm vi giá trị nhỏ hơn kiểu INTEGER.
D. Kiểu WORD có phạm vi giá trị lớn hơn kiểu INTEGER.
Đáp án: D
Như vậy, qua bài viết trên, các đã biết “Kiểu dữ liệu char có phạm vi giá trị là". Với những kiến thức khái quát về kiểu dữ liệu Char và các kiểu dữ liệu khác do Top lời giải tổng hợp, biên soạn, chúng tôi hi vọng các bạn đã có thêm nhiều kiến thức hữu ích phục vụ cho việc học. Chúc các bạn học tốt!