Cho khối lệnh sau: int s = 0; for (int i = 0; i <= 10; i++) s += i; Sau khi chạy khối lệnh s = ?
=>
Đáp án đúng: B
Câu hỏi liên quan
Đầu tiên, cần lưu ý rằng biến nextId
được khai báo là private, do đó nó chỉ có thể truy cập bên trong class KiemTra
. Tuy nhiên, đoạn code cho thấy trong phương thức setId()
, biến id
lại được gán giá trị từ nextId
. Biến id
chưa được khai báo trong class KiemTra
. Do đó đoạn code này sẽ không biên dịch được. Trong trường hợp nó là một biến thành viên của class thì nó phải được khai báo trước đó. Khi đó, mỗi khi một đối tượng (A hoặc B) được tạo ra, phương thức setId()
sẽ được gọi. Giá trị của nextId
sẽ được gán cho id
của đối tượng và sau đó nextId
tăng lên. Vì nextId
là biến thành viên của class KiemTra
, nên nó sẽ được khởi tạo mặc định là 0. Khi đối tượng A được tạo và setId()
được gọi, id
của A sẽ là 0 và nextId
sẽ tăng lên 1. Khi đối tượng B được tạo và setId()
được gọi, id
của B sẽ là 1 và nextId
sẽ tăng lên 2. Như vậy, id của đối tượng A là 0.
Đề bài yêu cầu xác định giá trị của thuộc tính id
của đối tượng B
sau khi khởi tạo hai đối tượng A
và B
từ class kế thừa KiemTra
.
Phân tích:
nextId
là biến static, nên nó được chia sẻ giữa tất cả các đối tượng của classKiemTra
và các class con của nó.- Khi một đối tượng được tạo, phương thức
setId()
gán giá trị củanextId
cho thuộc tínhid
của đối tượng đó, sau đó tăngnextId
lên 1.
Quá trình thực thi:
- Khởi tạo đối tượng
A
:nextId
ban đầu là 1, sau khi gọisetId()
,A.id
sẽ là 1 vànextId
tăng lên 2. - Khởi tạo đối tượng
B
:nextId
hiện tại là 2, sau khi gọisetId()
,B.id
sẽ là 2 vànextId
tăng lên 3.
Do đó, giá trị id
của đối tượng B
là 2.
Ngoài ra, cần khai báo biến tong ở dòng 9 là kiểu float.
Xét các dòng được đề cập:
- Dòng 3: Khai báo biến `N` và `k` kiểu `int` là hợp lệ.
- Dòng 4: Vòng lặp `for` với điều kiện `k <= N` là hợp lệ.
- Dòng 12: Trả về giá trị `tong` từ hàm `sum` là hợp lệ.
- Dòng 16: Vòng lặp `for` với điều kiện `j <= x` là hợp lệ.
- Dòng 2: Khai báo biến S là kiểu float là hợp lệ.
- Dòng 18: Trả về giá trị t từ hàm `tich` là hợp lệ.
Như vậy, đáp án đúng nhất là A.3, 9 (dù dòng 5 cũng có lỗi). Cần sửa dòng 5 thành S += 1.0/sum(k); và dòng 9 thành float tong = 0.0f;

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.