Anh (Chị) hãy cho biết đoạn lệnh sau thực hiện công việc gì?
int i,j;
char c;
for (i = 2; i < 16; i++)
for (j = 0; j < 16; j++)
{
if (j == 0)
cout << endl;
c = i * 16 + j;
cout << " " << c;
}
Trả lời:
Đáp án đúng: B
Đoạn chương trình này in ra một bảng các ký tự dựa trên mã ASCII. Vòng lặp `for (i = 2; i < 16; i++)` duyệt qua các giá trị của `i` từ 2 đến 15. Vòng lặp `for (j = 0; j < 16; j++)` duyệt qua các giá trị của `j` từ 0 đến 15. Bên trong vòng lặp, biến `c` được gán giá trị bằng `i * 16 + j`, đây chính là mã ASCII của ký tự cần in. Dòng `cout << " " << c;` in ra ký tự tương ứng với mã ASCII `c`. Dòng `if (j == 0) cout << endl;` đảm bảo mỗi hàng của bảng bắt đầu trên một dòng mới. Như vậy, chương trình in ra một phần của bảng mã ASCII, bắt đầu từ các ký tự có mã 32 (2*16 + 0) đến 255 (15*16 + 15).
Câu hỏi liên quan
Lời giải:
Đáp án đúng: C
Lời giải:
Đáp án đúng: E
Đoạn chương trình trên có một số vấn đề sau:
1. **Biến chưa được khởi tạo:** Trong hàm `main`, các biến `a` và `b` kiểu `complex` được khai báo nhưng không được khởi tạo giá trị. Do đó, giá trị của `a.thuc`, `a.ao`, `b.thuc`, `b.ao` là không xác định.
2. **Hàm `tich` trả về giá trị không xác định:** Hàm `tich` tạo ra một biến `c` kiểu `complex` nhưng không gán giá trị nào cho `c.thuc` và `c.ao` trước khi trả về. Vì vậy, giá trị trả về của hàm `tich` là không xác định.
3. **Hàm `print_complex` in ra giá trị không xác định:** Hàm `print_complex` in ra các giá trị `c.thuc` và `c.ao`, nhưng vì `c` nhận giá trị không xác định từ hàm `tich`, kết quả in ra sẽ là các giá trị không dự đoán được.
Vì các biến không được khởi tạo và hàm trả về giá trị không xác định, chương trình sẽ không cho ra một kết quả cụ thể nào cả, hoặc có thể gây ra lỗi khi chạy (tùy thuộc vào trình biên dịch và môi trường thực thi). Do đó, đáp án chính xác nhất là chương trình sẽ báo lỗi hoặc in ra những giá trị không xác định.
Trong các lựa chọn được đưa ra, lựa chọn A. "Chương trình báo lỗi" là phù hợp nhất, vì chương trình có khả năng cao sẽ gặp lỗi do sử dụng các biến chưa được khởi tạo.
Lời giải:
Đáp án đúng: D
Đoạn code trên thực hiện việc chuyển đổi một số từ hệ cơ số `n` sang hệ cơ số `m`. Hàm `functionD` nhận vào một chuỗi `number` biểu diễn số ở hệ cơ số `n`, và trả về một chuỗi biểu diễn số đó ở hệ cơ số `m`.
Cụ thể, code thực hiện các bước sau:
1. Tính giá trị thập phân của số ở hệ cơ số `n`.
2. Chuyển đổi giá trị thập phân này sang hệ cơ số `m`.
3. Trả về chuỗi biểu diễn số ở hệ cơ số `m`.
Ví dụ, nếu `number` là "123", `n` là 10 và `m` là 2, thì hàm sẽ chuyển đổi số 123 từ hệ thập phân sang hệ nhị phân.
Lời giải:
Đáp án đúng: A
Đoạn code thực hiện chuyển đổi một chuỗi số từ hệ cơ số n sang hệ cơ số m. Trong hàm `functionD`, chuỗi `number` được chuyển đổi từ hệ cơ số `n` sang giá trị thập phân `giatri`. Sau đó, giá trị `giatri` này được chuyển đổi sang hệ cơ số `m` và lưu vào chuỗi `ketqua`.
Trong hàm `main`, `number` là "123", `n` là 10 và `m` là 2.
Bước 1: Chuyển "123" từ hệ 10 sang giá trị thập phân:
`giatri = 0`
`i = 0`, `number[0] = '1'`, `giatri = 0 * 10 + (1 - 0) = 1`
`i = 1`, `number[1] = '2'`, `giatri = 1 * 10 + (2 - 0) = 12`
`i = 2`, `number[2] = '3'`, `giatri = 12 * 10 + (3 - 0) = 123`
Bước 2: Chuyển 123 từ hệ 10 sang hệ 2:
`i = 16`
`ketqua[17] = 0` (Có lỗi ở đây, `ketqua` chỉ có 17 phần tử từ 0 đến 16, truy cập `ketqua[17]` gây ra lỗi)
`ketqua[16] = chuso[123 % 2] = chuso[1] = '1'`, `giatri = 123 / 2 = 61`, `i = 15`
`ketqua[15] = chuso[61 % 2] = chuso[1] = '1'`, `giatri = 61 / 2 = 30`, `i = 14`
`ketqua[14] = chuso[30 % 2] = chuso[0] = '0'`, `giatri = 30 / 2 = 15`, `i = 13`
`ketqua[13] = chuso[15 % 2] = chuso[1] = '1'`, `giatri = 15 / 2 = 7`, `i = 12`
`ketqua[12] = chuso[7 % 2] = chuso[1] = '1'`, `giatri = 7 / 2 = 3`, `i = 11`
`ketqua[11] = chuso[3 % 2] = chuso[1] = '1'`, `giatri = 3 / 2 = 1`, `i = 10`
`ketqua[10] = chuso[1 % 2] = chuso[1] = '1'`, `giatri = 1 / 2 = 0`, `i = 9`
Chuỗi kết quả sẽ là "1111011". Tuy nhiên, code có lỗi truy cập mảng `ketqua[17]` nên kết quả thực tế có thể không chính xác. Mặc dù vậy, trong các đáp án thì "1111011" có vẻ hợp lý nhất nếu bỏ qua lỗi tràn bộ nhớ.
Lưu ý rằng code có lỗi truy cập bộ nhớ ngoài mảng, nên hành vi thực tế có thể không như mong đợi. Tuy nhiên, nếu ta bỏ qua lỗi này và giả sử code vẫn chạy tiếp, kết quả sẽ là "1111011".
Lời giải:
Đáp án đúng: C
Đoạn code thực hiện chuyển đổi một số từ hệ cơ số n sang hệ cơ số m.
Trong hàm `functionD`:
1. **`char chuso[] = “0123456789ABCDEF”`**: Mảng này chứa các ký tự số sử dụng trong các hệ cơ số từ 2 đến 16.
2. **`len = strlen(number)`**: Tính độ dài chuỗi `number`.
3. **`while (i < len)`**: Vòng lặp này chuyển đổi chuỗi `number` từ hệ cơ số `n` sang hệ cơ số 10 (giá trị `giatri`).
- `strchr(chuso, number[i]) - chuso` trả về vị trí của ký tự `number[i]` trong chuỗi `chuso`, tương ứng với giá trị số của ký tự đó trong hệ cơ số `n`.
- `giatri = giatri * n + ...` cập nhật giá trị `giatri` bằng cách nhân giá trị hiện tại với `n` và cộng thêm giá trị số của ký tự hiện tại.
4. **`ketqua[17] = 0`**: Gán ký tự null vào cuối chuỗi `ketqua` để đảm bảo nó là một chuỗi C hợp lệ.
5. **`do { ... } while (giatri > 0)`**: Vòng lặp này chuyển đổi giá trị `giatri` (hệ cơ số 10) sang hệ cơ số `m` và lưu vào chuỗi `ketqua`.
- `ketqua[i] = chuso[giatri % m]` gán ký tự tương ứng với phần dư của `giatri` khi chia cho `m` vào vị trí `i` của chuỗi `ketqua`.
- `giatri /= m` cập nhật giá trị `giatri` bằng cách chia cho `m`.
- `i--` giảm chỉ số `i` để ghi các chữ số tiếp theo vào chuỗi `ketqua` từ phải sang trái.
6. **`return (ketqua + i + 1)`**: Trả về con trỏ đến ký tự đầu tiên của chuỗi `ketqua` (bỏ qua các ký tự 0 ở đầu nếu có).
Trong hàm `main`:
- `n = 10`, `m = 9`, `number = "123"`
- Gọi hàm `functionD(number, n, m)` để chuyển số "123" từ hệ cơ số 10 sang hệ cơ số 9.
- "123" (hệ 10) = 1 * 10^2 + 2 * 10^1 + 3 * 10^0 = 100 + 20 + 3 = 123.
- Chuyển 123 sang hệ 9:
- 123 / 9 = 13 dư 6
- 13 / 9 = 1 dư 4
- 1 / 9 = 0 dư 1
Vậy 123 (hệ 10) = 146 (hệ 9).
Vậy đáp án đúng là C. 146
Câu 47:
Anh (Chị) hãy cho biết kết quả của dòng lệnh 7 là gì?
1: int a[] = {3,1,7,0,10};
2: int n=5,k,max;
3: max=a[0]
4: for(k=0;k 5: if(max max=a[k] 7: cout << max; 8: for(k=0;k 9: if(max==a[k ]) 10: cout << k;
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
Câu 48:
Anh (Chị) hãy cho biết kết quả của đoạn lệnh sau là gì?
1: int [] a={3,1,7,0,10};
2: int n=5,k,max;
3: max=a[0]
4: for(k=0;k 5: if(max max=a[k] 7: cout << max; 8: for(k=0;k 9: if(max==a[k ]) 10: cout << k;
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