Trả lời:
Đáp án đúng: A
Kiểu dữ liệu `char` trong C/C++, Java và nhiều ngôn ngữ lập trình khác thường được sử dụng để biểu diễn một ký tự đơn. Nó thường chiếm 1 byte (8 bits) trong bộ nhớ. Vì vậy, đáp án đúng là 1 byte.
Câu hỏi liên quan
Lời giải:
Đáp án đúng: D
Đoạn mã C++ này sử dụng một vòng lặp `for` để tính và in ra bình phương của các số từ 0 đến 3.
Vòng lặp `for (int i = 0; i <= 3; i++)` khởi tạo biến `i` bằng 0, tiếp tục lặp khi `i` nhỏ hơn hoặc bằng 3, và tăng `i` lên 1 sau mỗi lần lặp. Bên trong vòng lặp, `cout << i*i << ",";` tính bình phương của `i` (tức là `i*i`) và in ra giá trị này, sau đó in thêm dấu phẩy.
- Khi `i = 0`, `i*i = 0`, in ra `0,`
- Khi `i = 1`, `i*i = 1`, in ra `1,`
- Khi `i = 2`, `i*i = 4`, in ra `4,`
- Khi `i = 3`, `i*i = 9`, in ra `9,`
Vậy kết quả in ra sẽ là `0,1,4,9,`
Vòng lặp `for (int i = 0; i <= 3; i++)` khởi tạo biến `i` bằng 0, tiếp tục lặp khi `i` nhỏ hơn hoặc bằng 3, và tăng `i` lên 1 sau mỗi lần lặp. Bên trong vòng lặp, `cout << i*i << ",";` tính bình phương của `i` (tức là `i*i`) và in ra giá trị này, sau đó in thêm dấu phẩy.
- Khi `i = 0`, `i*i = 0`, in ra `0,`
- Khi `i = 1`, `i*i = 1`, in ra `1,`
- Khi `i = 2`, `i*i = 4`, in ra `4,`
- Khi `i = 3`, `i*i = 9`, in ra `9,`
Vậy kết quả in ra sẽ là `0,1,4,9,`
Lời giải:
Đáp án đúng: B
Ngôn ngữ lập trình có cấu trúc là ngôn ngữ cho phép chia chương trình thành các khối nhỏ hơn, dễ quản lý và bảo trì. Các ngôn ngữ C, Pascal và Cobol đều hỗ trợ lập trình cấu trúc. Assembler là ngôn ngữ lập trình bậc thấp, thường không được coi là ngôn ngữ có cấu trúc theo nghĩa chặt chẽ như C, Pascal hay Cobol. Vì cả C, Pascal và Cobol đều là ngôn ngữ lập trình có cấu trúc, đáp án đúng nhất là D.
Lời giải:
Đáp án đúng: B
`c = (a <<= b)` tương đương với `a = a << b; c = a;`. Với `a = 3` (0011 trong hệ nhị phân) và `b = 2`, ta có `a = 3 << 2 = 12` (1100 trong hệ nhị phân). Sau đó, `c = a = 12`. Vì không có đáp án nào là 12, nên có thể có lỗi trong các lựa chọn. Tuy nhiên, nếu coi như đây là một câu hỏi mẹo và dịch bit tràn số bit lưu trữ, kết quả có thể khác. Nhưng theo logic thông thường, đáp án phải là 12.
Lời giải:
Đáp án đúng: A
Chương trình C này sử dụng con trỏ và ép kiểu để truy cập và in ra các byte của một mảng ký tự.
1. Khai báo và khởi tạo: `char ch[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'};` khai báo một mảng ký tự `ch` chứa các ký tự số từ '0' đến '9'.
2. Ép kiểu và gán: `int *p = (int*)ch;` Khai báo một con trỏ kiểu `int` là `p` và gán địa chỉ của mảng `ch` cho nó. Việc ép kiểu `(int*)` cho phép con trỏ `p` coi vùng nhớ của `ch` như một mảng các số nguyên.
3. Tăng con trỏ: `p++;` Tăng con trỏ `p` lên một vị trí. Vì `p` là một con trỏ kiểu `int`, nó sẽ tăng lên một khoảng bằng kích thước của một số nguyên (thường là 4 bytes).
4. In giá trị: `printf("%x", *p);` In giá trị mà con trỏ `p` trỏ tới dưới dạng số hex. Vì con trỏ `p` đã được tăng lên 1, nó sẽ trỏ đến 4 bytes tiếp theo trong mảng `ch`.
Trên hầu hết các hệ thống, một số nguyên (int) chiếm 4 byte. Do đó, sau khi `p++`, `p` sẽ trỏ đến vị trí bắt đầu từ ký tự '4'. Giá trị của `*p` sẽ là một số nguyên được tạo thành từ 4 byte này. Thứ tự byte có thể khác nhau tùy thuộc vào kiến trúc (big-endian hoặc little-endian).
Giả sử hệ thống là little-endian (byte nhỏ nhất ở địa chỉ thấp nhất), thì 4 byte từ vị trí '4' sẽ là '4', '5', '6', '7'. Khi được đọc như một số nguyên, nó sẽ được hiểu là `0x34353637` (trong hệ thập phân là 875770423), vì mã ASCII của '4' là 0x34, '5' là 0x35, '6' là 0x36, và '7' là 0x37.
Vì vậy, kết quả in ra sẽ là `34353637`.
Nếu hệ thống là big-endian, kết quả sẽ là 0x37363534.
Trong các lựa chọn đưa ra, lựa chọn phù hợp nhất (dựa trên cách trình bày mã và giả định little-endian) là B.
1. Khai báo và khởi tạo: `char ch[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'};` khai báo một mảng ký tự `ch` chứa các ký tự số từ '0' đến '9'.
2. Ép kiểu và gán: `int *p = (int*)ch;` Khai báo một con trỏ kiểu `int` là `p` và gán địa chỉ của mảng `ch` cho nó. Việc ép kiểu `(int*)` cho phép con trỏ `p` coi vùng nhớ của `ch` như một mảng các số nguyên.
3. Tăng con trỏ: `p++;` Tăng con trỏ `p` lên một vị trí. Vì `p` là một con trỏ kiểu `int`, nó sẽ tăng lên một khoảng bằng kích thước của một số nguyên (thường là 4 bytes).
4. In giá trị: `printf("%x", *p);` In giá trị mà con trỏ `p` trỏ tới dưới dạng số hex. Vì con trỏ `p` đã được tăng lên 1, nó sẽ trỏ đến 4 bytes tiếp theo trong mảng `ch`.
Trên hầu hết các hệ thống, một số nguyên (int) chiếm 4 byte. Do đó, sau khi `p++`, `p` sẽ trỏ đến vị trí bắt đầu từ ký tự '4'. Giá trị của `*p` sẽ là một số nguyên được tạo thành từ 4 byte này. Thứ tự byte có thể khác nhau tùy thuộc vào kiến trúc (big-endian hoặc little-endian).
Giả sử hệ thống là little-endian (byte nhỏ nhất ở địa chỉ thấp nhất), thì 4 byte từ vị trí '4' sẽ là '4', '5', '6', '7'. Khi được đọc như một số nguyên, nó sẽ được hiểu là `0x34353637` (trong hệ thập phân là 875770423), vì mã ASCII của '4' là 0x34, '5' là 0x35, '6' là 0x36, và '7' là 0x37.
Vì vậy, kết quả in ra sẽ là `34353637`.
Nếu hệ thống là big-endian, kết quả sẽ là 0x37363534.
Trong các lựa chọn đưa ra, lựa chọn phù hợp nhất (dựa trên cách trình bày mã và giả định little-endian) là B.
Lời giải:
Đáp án đúng: A
Đoạn chương trình C++ này thực hiện việc hoán đổi hai chuỗi thông qua hàm `swap`. Tuy nhiên, cần lưu ý rằng trong C++, khi truyền con trỏ vào một hàm và thực hiện hoán đổi giá trị của con trỏ đó, sự thay đổi này chỉ ảnh hưởng đến phạm vi bên trong hàm `swap`. Do đó, giá trị của `pstr[0]` và `pstr[1]` trong hàm `main` không thay đổi.
Giải thích chi tiết:
1. `char *pstr[2] = {"LAPTRINHC++", ".NET"};`: Khai báo một mảng `pstr` gồm 2 con trỏ kiểu `char`, mỗi con trỏ trỏ đến một chuỗi ký tự hằng.
2. `swap(pstr[0], pstr[1]);`: Gọi hàm `swap` để hoán đổi giá trị của `pstr[0]` và `pstr[1]`. Trong hàm `swap`, các con trỏ `t1` và `t2` trỏ lần lượt đến `pstr[0]` và `pstr[1]`. Việc hoán đổi `t1` và `t2` chỉ thay đổi giá trị của chúng trong hàm `swap`, không ảnh hưởng đến `pstr[0]` và `pstr[1]` trong `main`.
3. `printf("%s%s", pstr[0], pstr[1]);`: In ra màn hình nội dung mà `pstr[0]` và `pstr[1]` trỏ tới. Vì `pstr[0]` vẫn trỏ đến "LAPTRINHC++" và `pstr[1]` vẫn trỏ đến ".NET", kết quả in ra sẽ là "LAPTRINHC++.NET".
Do đó, đáp án đúng là A. LAPTRINHC++.NET
Giải thích chi tiết:
1. `char *pstr[2] = {"LAPTRINHC++", ".NET"};`: Khai báo một mảng `pstr` gồm 2 con trỏ kiểu `char`, mỗi con trỏ trỏ đến một chuỗi ký tự hằng.
2. `swap(pstr[0], pstr[1]);`: Gọi hàm `swap` để hoán đổi giá trị của `pstr[0]` và `pstr[1]`. Trong hàm `swap`, các con trỏ `t1` và `t2` trỏ lần lượt đến `pstr[0]` và `pstr[1]`. Việc hoán đổi `t1` và `t2` chỉ thay đổi giá trị của chúng trong hàm `swap`, không ảnh hưởng đến `pstr[0]` và `pstr[1]` trong `main`.
3. `printf("%s%s", pstr[0], pstr[1]);`: In ra màn hình nội dung mà `pstr[0]` và `pstr[1]` trỏ tới. Vì `pstr[0]` vẫn trỏ đến "LAPTRINHC++" và `pstr[1]` vẫn trỏ đến ".NET", kết quả in ra sẽ là "LAPTRINHC++.NET".
Do đó, đáp án đúng là A. LAPTRINHC++.NET
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