Trả lời:
Đáp án đúng: B
Đoạn code trên thực hiện các phép toán bitwise. Ta xét từng bước:
1. `a = 8`: Khởi tạo biến `a` với giá trị 8 (trong hệ nhị phân là 00001000).
2. `a = a >> 2`: Dịch phải bit của `a` đi 2 vị trí. `a` trở thành 2 (00000010).
3. `a = a << 4`: Dịch trái bit của `a` đi 4 vị trí. `a` trở thành 32 (00100000).
4. `printf("%d", a)`: In giá trị của `a` ra màn hình.
Vậy kết quả in ra màn hình là 32.
Câu hỏi liên quan
Lời giải:
Đáp án đúng: C
The code initializes an integer array `arr` with values {1, 2, 3, 4, 5}. It then initializes an integer pointer `ptr` to point to the first element of the array. The expression `*(ptr + 3)` accesses the element at index 3 of the array (which is 4). The expression `*ptr` accesses the element at index 0 of the array (which is 1). Therefore, `*(ptr + 3) + *ptr` evaluates to 4 + 1 = 5. The code then prints the value of `*(ptr + 3)`, which is 4. Thus the output will be 54, since no endl is present.
Lời giải:
Đáp án đúng: A
Phân tích các phát biểu:
1. Đúng. Mảng `int num[26]` có thể chứa 26 phần tử kiểu `int`, với chỉ số từ 0 đến 25.
2. Sai. Trong C/C++, mảng bắt đầu từ chỉ số 0. Vì vậy, `num[1]` là phần tử thứ hai trong mảng, không phải phần tử đầu tiên.
3. Sai. Việc khởi tạo mảng ngay khi khai báo là không bắt buộc. Mảng có thể được khởi tạo sau khi khai báo, hoặc một số phần tử có thể được khởi tạo và các phần tử còn lại sẽ có giá trị mặc định (thường là 0 đối với kiểu số).
4. Đúng. Trong C/C++, việc khai báo mảng `num[SIZE]` là hợp lệ nếu `SIZE` là một macro (hằng số được định nghĩa bằng `#define`) hoặc một biến `const int` đã được khởi tạo với một giá trị không đổi. Trong trường hợp này, `SIZE` phải là một giá trị không đổi tại thời điểm biên dịch để trình biên dịch có thể xác định kích thước mảng.
Vậy, các phát biểu đúng là 1 và 4.
1. Đúng. Mảng `int num[26]` có thể chứa 26 phần tử kiểu `int`, với chỉ số từ 0 đến 25.
2. Sai. Trong C/C++, mảng bắt đầu từ chỉ số 0. Vì vậy, `num[1]` là phần tử thứ hai trong mảng, không phải phần tử đầu tiên.
3. Sai. Việc khởi tạo mảng ngay khi khai báo là không bắt buộc. Mảng có thể được khởi tạo sau khi khai báo, hoặc một số phần tử có thể được khởi tạo và các phần tử còn lại sẽ có giá trị mặc định (thường là 0 đối với kiểu số).
4. Đúng. Trong C/C++, việc khai báo mảng `num[SIZE]` là hợp lệ nếu `SIZE` là một macro (hằng số được định nghĩa bằng `#define`) hoặc một biến `const int` đã được khởi tạo với một giá trị không đổi. Trong trường hợp này, `SIZE` phải là một giá trị không đổi tại thời điểm biên dịch để trình biên dịch có thể xác định kích thước mảng.
Vậy, các phát biểu đúng là 1 và 4.
Lời giải:
Đáp án đúng: C
Đoạn code trên có một lỗi cú pháp (syntax error) nên sẽ không biên dịch được. Lỗi nằm ở dòng `cout << i = "laptrinhc++" << endl;`. Trong C++, biểu thức gán (`i = "laptrinhc++"`) trả về giá trị được gán, ở đây là một chuỗi ký tự (con trỏ `char*`). Tuy nhiên, biến `i` đã được khai báo là `int`, nên việc gán một chuỗi ký tự cho một biến kiểu `int` là không hợp lệ và gây ra lỗi biên dịch. Vì vậy, chương trình không thể chạy và không có output nào được in ra.
Lời giải:
Đáp án đúng: A
Kế thừa (Inheritance) cho phép tái sử dụng (reusability) mã nguồn đã được viết trước đó. Thay vì phải viết lại các đoạn mã tương tự, chúng ta có thể kế thừa các thuộc tính và phương thức từ các lớp (class) đã tồn tại, giúp tiết kiệm thời gian phát triển và khuyến khích sử dụng các phần mềm chất lượng cao đã được kiểm chứng trước đó.
- A. reusability: Đây là đáp án chính xác. Kế thừa là một cơ chế quan trọng để tái sử dụng mã trong lập trình hướng đối tượng.
- B. encapsulation: Đóng gói (encapsulation) là một khái niệm khác, liên quan đến việc che giấu thông tin và bảo vệ dữ liệu bên trong một đối tượng. Nó không trực tiếp liên quan đến việc tiết kiệm thời gian phát triển thông qua việc sử dụng lại mã nguồn.
- C. development: Phát triển (development) là một thuật ngữ chung chung và không đặc trưng cho lợi ích cụ thể mà kế thừa mang lại.
- A. reusability: Đây là đáp án chính xác. Kế thừa là một cơ chế quan trọng để tái sử dụng mã trong lập trình hướng đối tượng.
- B. encapsulation: Đóng gói (encapsulation) là một khái niệm khác, liên quan đến việc che giấu thông tin và bảo vệ dữ liệu bên trong một đối tượng. Nó không trực tiếp liên quan đến việc tiết kiệm thời gian phát triển thông qua việc sử dụng lại mã nguồn.
- C. development: Phát triển (development) là một thuật ngữ chung chung và không đặc trưng cho lợi ích cụ thể mà kế thừa mang lại.
Lời giải:
Đáp án đúng: A
Trong C++, có ba access specifier (chỉ định truy cập) được sử dụng để kiểm soát quyền truy cập của các thành viên (biến và hàm) của một lớp. Ba access specifier này là `public`, `private`, và `protected`.
- `public`: Các thành viên được khai báo là `public` có thể được truy cập từ bất kỳ đâu, cả bên trong và bên ngoài lớp.
- `private`: Các thành viên được khai báo là `private` chỉ có thể được truy cập từ bên trong lớp mà chúng được khai báo. Các lớp hoặc hàm bên ngoài không có quyền truy cập trực tiếp vào các thành viên `private`.
- `protected`: Các thành viên được khai báo là `protected` có thể được truy cập từ bên trong lớp mà chúng được khai báo, cũng như từ các lớp con (lớp kế thừa) của lớp đó. Các lớp hoặc hàm bên ngoài không có quyền truy cập trực tiếp vào các thành viên `protected`.
Đáp án A chính xác vì nó liệt kê đúng ba access specifier: `public`, `private`, và `protected`.
Đáp án B sai vì `protect` không phải là một access specifier hợp lệ, phải là `protected`.
Đáp án C sai vì `static` là một keyword dùng để khai báo biến hoặc hàm tĩnh, không phải là một access specifier.
- `public`: Các thành viên được khai báo là `public` có thể được truy cập từ bất kỳ đâu, cả bên trong và bên ngoài lớp.
- `private`: Các thành viên được khai báo là `private` chỉ có thể được truy cập từ bên trong lớp mà chúng được khai báo. Các lớp hoặc hàm bên ngoài không có quyền truy cập trực tiếp vào các thành viên `private`.
- `protected`: Các thành viên được khai báo là `protected` có thể được truy cập từ bên trong lớp mà chúng được khai báo, cũng như từ các lớp con (lớp kế thừa) của lớp đó. Các lớp hoặc hàm bên ngoài không có quyền truy cập trực tiếp vào các thành viên `protected`.
Đáp án A chính xác vì nó liệt kê đúng ba access specifier: `public`, `private`, và `protected`.
Đáp án B sai vì `protect` không phải là một access specifier hợp lệ, phải là `protected`.
Đáp án C sai vì `static` là một keyword dùng để khai báo biến hoặc hàm tĩnh, không phải là một access specifier.
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP

FORM.08: Bộ 130+ Biểu Mẫu Thống Kê Trong Doanh Nghiệp
136 tài liệu563 lượt tải

FORM.07: Bộ 125+ Biểu Mẫu Báo Cáo Trong Doanh Nghiệp
125 tài liệu585 lượt tải

FORM.06: Bộ 320+ Biểu Mẫu Hành Chính Thông Dụng
325 tài liệu608 lượt tải

FORM.05: Bộ 330+ Biểu Mẫu Thuế - Kê Khai Thuế Mới Nhất
331 tài liệu1010 lượt tải

FORM.04: Bộ 240+ Biểu Mẫu Chứng Từ Kế Toán Thông Dụng
246 tài liệu802 lượt tải

CEO.22: Bộ Tài Liệu Quy Trình Kiểm Toán, Kiểm Soát Nội Bộ Doanh Nghiệp
138 tài liệu417 lượt tải
ĐĂ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.
77.000 đ/ tháng