Trả lời:
Đáp án đúng: D
Để trả lời câu hỏi này, cần cung cấp đoạn lệnh được đề cập. Nếu không có đoạn lệnh, không thể xác định kết quả chính xác. Do đó, không thể xác định đáp án đúng trong các lựa chọn đã cho.
Câu hỏi liên quan
Lời giải:
Đáp án đúng: B
Nguyên lý hoạt động của vòng lặp `while` là: chương trình sẽ thực hiện lặp đi lặp lại một khối lệnh cho đến khi biểu thức điều kiện trở nên sai (false). Khi biểu thức điều kiện còn đúng (true), khối lệnh bên trong `while` sẽ tiếp tục được thực thi. Khi biểu thức điều kiện sai, vòng lặp sẽ kết thúc và chương trình sẽ tiếp tục thực hiện các lệnh phía sau vòng lặp.
* Phương án A: Sai. Vòng lặp `while` tiếp tục khi điều kiện đúng (khác 0).
* Phương án B: Đúng. Vòng lặp `while` dừng khi điều kiện sai.
* Phương án C: Sai. Vòng lặp `while` tiếp tục khi điều kiện đúng.
* Phương án D: Sai. Vì có một đáp án đúng là phương án B.
* Phương án A: Sai. Vòng lặp `while` tiếp tục khi điều kiện đúng (khác 0).
* Phương án B: Đúng. Vòng lặp `while` dừng khi điều kiện sai.
* Phương án C: Sai. Vòng lặp `while` tiếp tục khi điều kiện đúng.
* Phương án D: Sai. Vì có một đáp án đúng là phương án B.
Lời giải:
Đáp án đúng: B
Chương trình này có lỗi nghiêm trọng liên quan đến việc sử dụng con trỏ `ptr1` và `ptr2` mà không được cấp phát bộ nhớ.
1. `char *ptr1 = NULL;` và `char *ptr2 = 0;`: Cả hai con trỏ đều được khởi tạo là `NULL`. Điều này có nghĩa là chúng không trỏ đến bất kỳ vùng nhớ hợp lệ nào.
2. `printf("\n%d", ptr2);`: Dòng này in giá trị của `ptr2` (là `NULL`, tương đương `0`) ra màn hình. Đây là một thao tác hợp lệ, nên sẽ không gây ra lỗi ngay lập tức.
3. `strcpy(ptr1, "c");`: Đây là nơi chương trình gặp lỗi nghiêm trọng. Hàm `strcpy` cố gắng sao chép chuỗi "c" vào vùng nhớ mà `ptr1` trỏ đến. Tuy nhiên, `ptr1` là `NULL`, nên việc sao chép sẽ gây ra lỗi segmentation fault (lỗi truy cập bộ nhớ không hợp lệ) và chương trình sẽ bị dừng. Lỗi này xảy ra do ta đang cố gắng ghi vào một địa chỉ bộ nhớ không được phép.
4. `strcpy(ptr2, "questions");`: Tương tự như trên, dòng này cũng gây ra lỗi segmentation fault vì `ptr2` cũng là `NULL`. Việc sao chép chuỗi "questions" vào một vùng nhớ không hợp lệ sẽ khiến chương trình bị crash.
5. `printf("\n%s %s", ptr1, ptr2);`: Dòng này sẽ không bao giờ được thực thi vì chương trình đã bị dừng ở một trong hai lệnh `strcpy` trước đó.
Như vậy, `strcpy(ptr1, "c")` là dòng lệnh đầu tiên gây ra lỗi và làm chương trình dừng lại.
1. `char *ptr1 = NULL;` và `char *ptr2 = 0;`: Cả hai con trỏ đều được khởi tạo là `NULL`. Điều này có nghĩa là chúng không trỏ đến bất kỳ vùng nhớ hợp lệ nào.
2. `printf("\n%d", ptr2);`: Dòng này in giá trị của `ptr2` (là `NULL`, tương đương `0`) ra màn hình. Đây là một thao tác hợp lệ, nên sẽ không gây ra lỗi ngay lập tức.
3. `strcpy(ptr1, "c");`: Đây là nơi chương trình gặp lỗi nghiêm trọng. Hàm `strcpy` cố gắng sao chép chuỗi "c" vào vùng nhớ mà `ptr1` trỏ đến. Tuy nhiên, `ptr1` là `NULL`, nên việc sao chép sẽ gây ra lỗi segmentation fault (lỗi truy cập bộ nhớ không hợp lệ) và chương trình sẽ bị dừng. Lỗi này xảy ra do ta đang cố gắng ghi vào một địa chỉ bộ nhớ không được phép.
4. `strcpy(ptr2, "questions");`: Tương tự như trên, dòng này cũng gây ra lỗi segmentation fault vì `ptr2` cũng là `NULL`. Việc sao chép chuỗi "questions" vào một vùng nhớ không hợp lệ sẽ khiến chương trình bị crash.
5. `printf("\n%s %s", ptr1, ptr2);`: Dòng này sẽ không bao giờ được thực thi vì chương trình đã bị dừng ở một trong hai lệnh `strcpy` trước đó.
Như vậy, `strcpy(ptr1, "c")` là dòng lệnh đầu tiên gây ra lỗi và làm chương trình dừng lại.
Lời giải:
Đáp án đúng: A
Chương trình khai báo hai biến nguyên `i` và `j`, cùng hai con trỏ `p` và `q` kiểu nguyên. `p` được gán địa chỉ của `i`, và `q` được gán địa chỉ của `j`. Biến `i` được khởi tạo giá trị là 5, và `j` cũng được khởi tạo giá trị là 5. Khi in ra giá trị của `*p`, ta được giá trị của `i` (là 5). Khi in ra giá trị của `*q`, ta được giá trị của `j` (là 5). Vậy nên, kết quả in ra sẽ là "5 5".
Lời giải:
Đáp án đúng: C
Đoạn mã sử dụng `#define` để định nghĩa một macro `ISEQUAL(X, Y)` so sánh `X` và `Y`. Tuy nhiên, khi sử dụng macro này trong `#if ISEQUAL(X, 0)`, `X` không được định nghĩa trước đó. Do đó, trình biên dịch sẽ hiểu `X` là một định danh chưa được khai báo. Việc sử dụng một định danh chưa được khai báo trong một biểu thức `#if` sẽ dẫn đến lỗi biên dịch. Vì vậy, chương trình sẽ báo lỗi biên dịch.
Lời giải:
Đáp án đúng: B
Toán tử `*` được gọi là toán tử dereference (giải tham chiếu). Nó được sử dụng để truy cập giá trị được lưu trữ tại địa chỉ mà một con trỏ trỏ tới. Ví dụ: nếu `p` là một con trỏ trỏ tới một biến số nguyên, thì `*p` sẽ trả về giá trị của biến số nguyên đó. Toán tử `&` là toán tử địa chỉ, trả về địa chỉ của một biến. Toán tử `&&` là toán tử AND logic.
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