Một kiểu dữ liệu số có dấu có hai giá trị +0 và -0 bằng sau:
Đáp án đúng: B
Câu hỏi liên quan
Trong lập trình, tên biến phải tuân theo một số quy tắc:
- Phải bắt đầu bằng chữ cái hoặc dấu gạch dưới (_). Không được bắt đầu bằng số.
- Có thể chứa chữ cái, số và dấu gạch dưới.
- Phân biệt chữ hoa và chữ thường.
- Không được trùng với các từ khóa (keyword) của ngôn ngữ lập trình.
Phân tích các đáp án:
- A. Big01LongStringWidthMeaninglessName: Hợp lệ, vì bắt đầu bằng chữ cái và chỉ chứa chữ cái, số.
- B. $int: Không hợp lệ, vì bắt đầu bằng ký tự đặc biệt ($).
- C. bytes: Có thể hợp lệ hoặc không, tùy thuộc vào việc
bytes
có phải là từ khóa trong ngôn ngữ lập trình đang sử dụng hay không. Trong nhiều ngôn ngữ,bytes
là một kiểu dữ liệu dựng sẵn hoặc một từ khóa, do đó không thể dùng làm tên biến.
Vì vậy, đáp án chính xác nhất là A, với điều kiện 'bytes' là từ khóa của ngôn ngữ lập trình đang xét. Nếu 'bytes' không phải là keyword, đáp án D là đúng. Tuy nhiên, trong bối cảnh chung, 'bytes' thường là từ khóa hoặc kiểu dữ liệu dựng sẵn, nên A là lựa chọn tốt hơn.
Tuy nhiên, câu C có thể gây tranh cãi. Để rõ ràng, ta giả định đây là Python (ví dụ), thì 'bytes' là một kiểu dữ liệu và không nên dùng làm tên biến.
Kiểu byte trong lập trình thường được biểu diễn bằng 8 bit. Nếu byte được sử dụng để biểu diễn số không dấu (unsigned), miền giá trị của nó sẽ từ 0 đến 2^8 - 1 (tức là từ 0 đến 255). Nếu byte được sử dụng để biểu diễn số có dấu (signed), miền giá trị của nó thường từ -2^7 đến 2^7 - 1 (tức là từ -128 đến 127). Tuy nhiên, câu hỏi không chỉ rõ byte có dấu hay không dấu. Phương án B phù hợp với byte không dấu, phổ biến hơn khi nói về "kiểu byte" nói chung.
- Phương án A: Sai. Miền giá trị của kiểu byte không phụ thuộc vào nền phần cứng bên dưới một cách trực tiếp. Nó được định nghĩa bởi ngôn ngữ lập trình và cách biểu diễn dữ liệu.
- Phương án B: Đúng. Với byte không dấu, miền giá trị là từ 0 đến 2^8 - 1 (0 đến 255).
- Phương án C: Sai. Đây là miền giá trị của byte có dấu (signed byte), không phải byte nói chung.
- Phương án D: Sai. Đây là miền giá trị của kiểu short (2 byte) có dấu.
Phương án A đúng vì trong Java, khi so sánh một số nguyên int
với một số thực float
bằng toán tử ==
, Java sẽ tự động chuyển đổi số nguyên về kiểu float
trước khi so sánh. Trong trường hợp này, x
(100) sẽ được chuyển thành 100.0
(kiểu float), và do đó x == y
sẽ trả về true
, dẫn đến việc in ra "Equal".
Phương án B sai vì Integer
là một lớp wrapper cho kiểu int
. Khi so sánh hai đối tượng Integer
bằng toán tử ==
, ta thực chất so sánh địa chỉ của hai đối tượng trong bộ nhớ, chứ không phải giá trị của chúng. Trong trường hợp này, x
và y
là hai đối tượng khác nhau, do đó x == y
sẽ trả về false
mặc dù giá trị của chúng bằng nhau. Để so sánh giá trị của hai đối tượng Integer
, ta nên sử dụng phương thức .equals()
.
Phương án C sai vì tương tự như phương án B, String
là một lớp. Khi so sánh hai đối tượng String
bằng toán tử ==
, ta đang so sánh địa chỉ của chúng trong bộ nhớ. Trong trường hợp này, mặc dù giá trị của x
và y
giống nhau ("100"), chúng có thể là hai đối tượng khác nhau trong bộ nhớ (đặc biệt nếu chúng được tạo ra bằng new String("100")
). Do đó, x == y
có thể trả về false
. Để so sánh nội dung của hai chuỗi, ta nên sử dụng phương thức .equals()
.
Vì chỉ có phương án A đúng, nên phương án D sai.
Đoạn chương trình sử dụng một đối tượng StringBuffer s
khởi tạo với giá trị "Hello".
Dòng điều kiện if ((s.length() > 5) && (s.append("there").equals("False"))
được thực thi như sau:
s.length() > 5
: Kiểm tra xem độ dài của chuỗis
có lớn hơn 5 hay không. Ban đầu,s
là "Hello" có độ dài là 5. Vì vậy, điều kiệns.length() > 5
là sai (false).&&
: Toán tử&&
(AND) yêu cầu cả hai vế của nó phải đúng (true) thì toàn bộ biểu thức mới đúng. Nếu vế đầu tiên đã sai thì vế thứ hai sẽ không được đánh giá. Do đó,s.append("there").equals("False")
sẽ không được thực thi.- Vì điều kiện
if
là sai, nên phần thân củaif
(do nothing) không được thực thi. System.out.println("value is : " + s)
: Dòng này in ra giá trị củas
. Vìs.append("there")
không được gọi,s
vẫn giữ giá trị ban đầu là "Hello".
Do đó, kết quả in ra là "value is : Hello".
Trong Java, khi thực hiện phép toán trên các kiểu dữ liệu nhỏ hơn int
(như byte
, short
), kết quả sẽ được tự động nâng kiểu lên int
. Do đó, biểu thức b * b1
sẽ trả về một giá trị kiểu int
. Để gán giá trị int
này cho biến b
kiểu byte
, cần phải ép kiểu tường minh (explicit casting). Nếu không ép kiểu, trình biên dịch sẽ báo lỗi vì có thể gây mất dữ liệu. Dòng b = b * b1;
sẽ gây ra lỗi biên dịch vì không có ép kiểu tường minh từ int
về byte
.

Bộ Đồ Án Tốt Nghiệp Ngành Trí Tuệ Nhân Tạo Và Học Máy

Bộ 120+ Đồ Án Tốt Nghiệp Ngành Hệ Thống Thông Tin

Bộ Đồ Án Tốt Nghiệp Ngành Mạng Máy Tính Và Truyền Thông

Bộ Luận Văn Tốt Nghiệp Ngành Kiểm Toán

Bộ 370+ Luận Văn Tốt Nghiệp Ngành Kế Toán Doanh Nghiệp

Bộ Luận Văn Tốt Nghiệp Ngành Quản Trị Thương Hiệu
ĐĂNG KÝ GÓI THI VIP
- Truy cập hơn 100K đề thi thử và chính thức các năm
- 2M câu hỏi theo các mức độ: Nhận biết – Thông hiểu – Vận dụng
- Học nhanh với 10K Flashcard Tiếng Anh theo bộ sách và chủ đề
- Đầy đủ: Mầm non – Phổ thông (K12) – Đại học – Người đi làm
- Tải toàn bộ tài liệu trên TaiLieu.VN
- Loại bỏ quảng cáo để tăng khả năng tập trung ôn luyện
- Tặng 15 ngày khi đăng ký gói 3 tháng, 30 ngày với gói 6 tháng và 60 ngày với gói 12 tháng.