Anh (Chị) hãy cho biết kết quả của đoạn lệnh sau là gì?
void indl (int *a) { cout << *a;
}
int main() {
int a = 10;
indl (&a);
return 0;
}
Trả lời:
Đáp án đúng: A
Đoạn mã C++ này thực hiện việc truyền địa chỉ của biến `a` vào hàm `indl`. Hàm `indl` nhận một con trỏ `a` kiểu `int*`, sau đó in ra giá trị mà con trỏ này trỏ tới (`*a`). Trong hàm `main`, biến `a` được khởi tạo với giá trị là 10. Khi `indl(&a)` được gọi, địa chỉ của `a` được truyền vào hàm, và `*a` trong hàm `indl` sẽ truy cập và in ra giá trị của `a`, tức là 10.
Câu hỏi liên quan
Lời giải:
Đáp án đúng: C
Đoạn code thực hiện một vòng lặp for từ i = 0 đến i < 5. Trong mỗi vòng lặp, biến k được gán bằng 0, sau đó cộng thêm i (k += i), và cuối cùng s được gán bằng k (s = k). Điều quan trọng là k được khởi tạo lại bằng 0 trong mỗi vòng lặp. Do đó, sau mỗi vòng lặp, giá trị của s sẽ bằng giá trị của i ở vòng lặp đó. Sau khi vòng lặp kết thúc, giá trị của k sẽ là giá trị của i ở vòng lặp cuối cùng, tức là k = 4. Sau đó, biểu thức điều kiện (k % 2) == 0 được đánh giá. Vì 4 chia hết cho 2, nên biểu thức này trả về true. Do đó, biến str được gán chuỗi "true". Cuối cùng, chương trình in ra giá trị của str, là "true".
Lời giải:
Đáp án đúng: A
Đoạn code C++ này tìm giá trị lớn nhất trong một mảng hai chiều (ma trận) các số nguyên.
1. Khởi tạo mảng: Mảng `seasonTemp` kích thước 3x4 được khởi tạo với các giá trị nhiệt độ.
2. Hàm `functionM`: Hàm này nhận một mảng hai chiều làm tham số (chú ý có lỗi biên dịch ở dòng khai báo vì thiếu kiểu dữ liệu của tham số temp, tuy nhiên nếu bỏ qua lỗi biên dịch và giả sử code chạy được). Hàm khởi tạo một biến `m` bằng 0, sau đó duyệt qua tất cả các phần tử của mảng. Nếu một phần tử lớn hơn `m`, `m` được cập nhật thành giá trị của phần tử đó. Cuối cùng, hàm trả về giá trị lớn nhất `m` tìm được.
3. Hàm `main`: Hàm `main` gọi hàm `functionM` với mảng `seasonTemp` và in kết quả trả về ra màn hình.
Trong mảng `seasonTemp`, giá trị lớn nhất là 38. Do đó, hàm `functionM` sẽ trả về 38.
1. Khởi tạo mảng: Mảng `seasonTemp` kích thước 3x4 được khởi tạo với các giá trị nhiệt độ.
2. Hàm `functionM`: Hàm này nhận một mảng hai chiều làm tham số (chú ý có lỗi biên dịch ở dòng khai báo vì thiếu kiểu dữ liệu của tham số temp, tuy nhiên nếu bỏ qua lỗi biên dịch và giả sử code chạy được). Hàm khởi tạo một biến `m` bằng 0, sau đó duyệt qua tất cả các phần tử của mảng. Nếu một phần tử lớn hơn `m`, `m` được cập nhật thành giá trị của phần tử đó. Cuối cùng, hàm trả về giá trị lớn nhất `m` tìm được.
3. Hàm `main`: Hàm `main` gọi hàm `functionM` với mảng `seasonTemp` và in kết quả trả về ra màn hình.
Trong mảng `seasonTemp`, giá trị lớn nhất là 38. Do đó, hàm `functionM` sẽ trả về 38.
Lời giải:
Đáp án đúng: D
Đề bài cho một đoạn code C++ và hỏi kết quả in ra màn hình. Hàm `functionSw` được định nghĩa để hoán đổi giá trị của hai biến nguyên được truyền vào thông qua con trỏ. Trong hàm `main`, hai biến `i` và `j` được khởi tạo với giá trị lần lượt là 10 và 20. Sau đó, hàm `functionSw` được gọi với địa chỉ của `i` và `j` làm tham số. Do đó, giá trị của `i` và `j` sẽ bị hoán đổi. Cuối cùng, chương trình in ra giá trị của `i` và `j` sau khi đã hoán đổi, kết quả là 20, 10.
Lời giải:
Đáp án đúng: A
Chương trình có một số lỗi sau:
* Dòng 3: `char ketqua = new char[len+1]`
* Lỗi: Cấp phát bộ nhớ bằng `new char[len+1]` trong C++ thì phải giải phóng bằng `delete[] ketqua` để tránh rò rỉ bộ nhớ. Tuy nhiên, chương trình không có dòng lệnh giải phóng này. Hơn nữa, kiểu trả về của hàm là `char` trong khi `ketqua` là một con trỏ (`char*`). Do đó, có sự không tương thích về kiểu dữ liệu. Sửa lại: `char* ketqua = new char[len+1];`
* Dòng 6: `return ketqua;`
* Lỗi: Hàm `ReChar` khai báo kiểu trả về là `char` (một ký tự), nhưng lại trả về `ketqua` là một con trỏ đến mảng các ký tự (chuỗi). Điều này gây ra lỗi biên dịch. Hơn nữa, sau khi hàm kết thúc, bộ nhớ được cấp phát cho `ketqua` sẽ không còn được quản lý (vì biến cục bộ `ketqua` biến mất), nhưng vùng nhớ đó vẫn còn tồn tại, dẫn đến rò rỉ bộ nhớ nếu không được giải phóng đúng cách. Để sửa lỗi này, ta nên thay đổi kiểu trả về của hàm thành `char*`.
* Dòng 9: `char p[] = 178892”`
* Lỗi: `char p[]` được khởi tạo bằng một số nguyên (`178892”`), trong khi nó phải là một chuỗi ký tự (ví dụ: `"178892"`).
* Dòng 4: Vòng lặp không kiểm tra điều kiện i < len. Sửa lại: `for (int i = 0; i < len; i++) ketqua[i] = str[len-i-1]`
Như vậy, các dòng 1 và 3 có lỗi về mặt kiểu dữ liệu trả về và cấp phát bộ nhớ không hợp lý.
* Dòng 3: `char ketqua = new char[len+1]`
* Lỗi: Cấp phát bộ nhớ bằng `new char[len+1]` trong C++ thì phải giải phóng bằng `delete[] ketqua` để tránh rò rỉ bộ nhớ. Tuy nhiên, chương trình không có dòng lệnh giải phóng này. Hơn nữa, kiểu trả về của hàm là `char` trong khi `ketqua` là một con trỏ (`char*`). Do đó, có sự không tương thích về kiểu dữ liệu. Sửa lại: `char* ketqua = new char[len+1];`
* Dòng 6: `return ketqua;`
* Lỗi: Hàm `ReChar` khai báo kiểu trả về là `char` (một ký tự), nhưng lại trả về `ketqua` là một con trỏ đến mảng các ký tự (chuỗi). Điều này gây ra lỗi biên dịch. Hơn nữa, sau khi hàm kết thúc, bộ nhớ được cấp phát cho `ketqua` sẽ không còn được quản lý (vì biến cục bộ `ketqua` biến mất), nhưng vùng nhớ đó vẫn còn tồn tại, dẫn đến rò rỉ bộ nhớ nếu không được giải phóng đúng cách. Để sửa lỗi này, ta nên thay đổi kiểu trả về của hàm thành `char*`.
* Dòng 9: `char p[] = 178892”`
* Lỗi: `char p[]` được khởi tạo bằng một số nguyên (`178892”`), trong khi nó phải là một chuỗi ký tự (ví dụ: `"178892"`).
* Dòng 4: Vòng lặp không kiểm tra điều kiện i < len. Sửa lại: `for (int i = 0; i < len; i++) ketqua[i] = str[len-i-1]`
Như vậy, các dòng 1 và 3 có lỗi về mặt kiểu dữ liệu trả về và cấp phát bộ nhớ không hợp lý.
Lời giải:
Đáp án đúng: B
Đoạn code trên thực hiện các bước sau:
1. `int val1, val2;`: Khai báo hai biến nguyên `val1` và `val2`. Cả hai biến này chưa được khởi tạo giá trị.
2. `int *pointer;`: Khai báo một con trỏ `pointer` trỏ đến một biến kiểu `int`.
3. `pointer = &val1;`: Gán địa chỉ của biến `val1` cho con trỏ `pointer`. Bây giờ `pointer` đang trỏ đến `val1`.
4. `*pointer = 10;`: Gán giá trị 10 cho vùng nhớ mà `pointer` đang trỏ tới. Vì `pointer` trỏ tới `val1`, nên `val1` bây giờ có giá trị là 10.
5. `pointer = &val2;`: Gán địa chỉ của biến `val2` cho con trỏ `pointer`. Bây giờ `pointer` đang trỏ đến `val2`.
6. `*pointer = 20;`: Gán giá trị 20 cho vùng nhớ mà `pointer` đang trỏ tới. Vì `pointer` trỏ tới `val2`, nên `val2` bây giờ có giá trị là 20.
7. `cout << val1 * val2 << endl;`: In ra tích của `val1` và `val2` (`10 * 20 = 200`) ra màn hình.
Vậy kết quả của đoạn code là 200.
1. `int val1, val2;`: Khai báo hai biến nguyên `val1` và `val2`. Cả hai biến này chưa được khởi tạo giá trị.
2. `int *pointer;`: Khai báo một con trỏ `pointer` trỏ đến một biến kiểu `int`.
3. `pointer = &val1;`: Gán địa chỉ của biến `val1` cho con trỏ `pointer`. Bây giờ `pointer` đang trỏ đến `val1`.
4. `*pointer = 10;`: Gán giá trị 10 cho vùng nhớ mà `pointer` đang trỏ tới. Vì `pointer` trỏ tới `val1`, nên `val1` bây giờ có giá trị là 10.
5. `pointer = &val2;`: Gán địa chỉ của biến `val2` cho con trỏ `pointer`. Bây giờ `pointer` đang trỏ đến `val2`.
6. `*pointer = 20;`: Gán giá trị 20 cho vùng nhớ mà `pointer` đang trỏ tới. Vì `pointer` trỏ tới `val2`, nên `val2` bây giờ có giá trị là 20.
7. `cout << val1 * val2 << endl;`: In ra tích của `val1` và `val2` (`10 * 20 = 200`) ra màn hình.
Vậy kết quả của đoạn code là 200.
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

Bộ Đồ Án Tốt Nghiệp Ngành Trí Tuệ Nhân Tạo Và Học Máy
89 tài liệu310 lượt tải

Bộ 120+ Đồ Án Tốt Nghiệp Ngành Hệ Thống Thông Tin
125 tài liệu441 lượt tải

Bộ Đồ Án Tốt Nghiệp Ngành Mạng Máy Tính Và Truyền Thông
104 tài liệu687 lượt tải

Bộ Luận Văn Tốt Nghiệp Ngành Kiểm Toán
103 tài liệu589 lượt tải

Bộ 370+ Luận Văn Tốt Nghiệp Ngành Kế Toán Doanh Nghiệp
377 tài liệu1030 lượt tải

Bộ Luận Văn Tốt Nghiệp Ngành Quản Trị Thương Hiệu
99 tài liệu1062 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