Anh (Chị) hãy cho biết kết quả của đoạn lệnh sau là gì?
int s = 0; for (int i = 0; i
< 10; i++) s+=i; cout
<< s << endl;
Trả lời:
Đáp án đúng: A
Đoạn code này thực hiện một vòng lặp `for` từ `i = 0` đến `i < 10`. Trong mỗi lần lặp, giá trị của `i` được cộng vào biến `s`.
- Lần lặp 1: `s = 0 + 0 = 0`
- Lần lặp 2: `s = 0 + 1 = 1`
- Lần lặp 3: `s = 1 + 2 = 3`
- Lần lặp 4: `s = 3 + 3 = 6`
- Lần lặp 5: `s = 6 + 4 = 10`
- Lần lặp 6: `s = 10 + 5 = 15`
- Lần lặp 7: `s = 15 + 6 = 21`
- Lần lặp 8: `s = 21 + 7 = 28`
- Lần lặp 9: `s = 28 + 8 = 36`
- Lần lặp 10: `s = 36 + 9 = 45`
Vậy, sau khi vòng lặp kết thúc, giá trị của `s` là 45.
Câu hỏi liên quan
Lời giải:
Đáp án đúng: B
Đoạn code có lỗi cú pháp vì biến `i` được khai báo lại trong vòng lặp `for`. Ngoài ra, `end` không phải là một đối tượng hợp lệ để in ra màn hình trong C++. Nếu sửa lỗi cú pháp và giả sử ý định của người ra đề là in ra tổng các số từ 0 đến 9, thì đáp án sẽ là 45. Tuy nhiên, do có lỗi cú pháp nên chương trình sẽ báo lỗi và không biên dịch được. Vì thế đáp án đúng là chương trình báo lỗi.
Lời giải:
Đáp án đúng: B
Câu 1: define length(a) (sizeof(a) / sizeof(*a ))
Ở đây, define là một tiền xử lý (preprocessor directive) trong C/C++. Nó thực hiện thay thế văn bản. Khi bạn sử dụng length(mang) trong chương trình, nó sẽ thay thế bằng (sizeof(mang) / sizeof(*mang )). Trong hàm main(), sizeof(mang) sẽ trả về kích thước của toàn bộ mảng mang (tính bằng byte), và sizeof(*mang) sẽ trả về kích thước của một phần tử trong mảng (cũng tính bằng byte). Vì vậy, biểu thức này tính toán số lượng phần tử trong mảng. Dòng này đúng.
Câu 7: if (mang[i] = tk) {
Đây là lỗi phổ biến. Toán tử gán '=' được sử dụng thay vì toán tử so sánh '=='. Do đó, mang[i] được gán giá trị của tk (51), và biểu thức điều kiện sẽ đánh giá là true nếu tk khác 0. Điều này dẫn đến việc vòng lặp có thể không hoạt động như mong đợi và biến check có thể được gán giá trị không chính xác. Đây là một lỗi logic nghiêm trọng.
Câu 12: cout << i ;
Dòng 13 bị thiếu, dòng 14 lại là return 0;, dòng 12 không ảnh hưởng đến việc tìm kiếm giá trị trong mảng.
Câu 3, 5, 6 không có lỗi.
Kết luận: Chương trình sai ở dòng 7 do sử dụng toán tử gán '=' thay vì toán tử so sánh '=='. Dòng 1 cũng có thể gây ra lỗi nếu sử dụng sai cách nhưng ở bài này không sai.
Ở đây, define là một tiền xử lý (preprocessor directive) trong C/C++. Nó thực hiện thay thế văn bản. Khi bạn sử dụng length(mang) trong chương trình, nó sẽ thay thế bằng (sizeof(mang) / sizeof(*mang )). Trong hàm main(), sizeof(mang) sẽ trả về kích thước của toàn bộ mảng mang (tính bằng byte), và sizeof(*mang) sẽ trả về kích thước của một phần tử trong mảng (cũng tính bằng byte). Vì vậy, biểu thức này tính toán số lượng phần tử trong mảng. Dòng này đúng.
Câu 7: if (mang[i] = tk) {
Đây là lỗi phổ biến. Toán tử gán '=' được sử dụng thay vì toán tử so sánh '=='. Do đó, mang[i] được gán giá trị của tk (51), và biểu thức điều kiện sẽ đánh giá là true nếu tk khác 0. Điều này dẫn đến việc vòng lặp có thể không hoạt động như mong đợi và biến check có thể được gán giá trị không chính xác. Đây là một lỗi logic nghiêm trọng.
Câu 12: cout << i ;
Dòng 13 bị thiếu, dòng 14 lại là return 0;, dòng 12 không ảnh hưởng đến việc tìm kiếm giá trị trong mảng.
Câu 3, 5, 6 không có lỗi.
Kết luận: Chương trình sai ở dòng 7 do sử dụng toán tử gán '=' thay vì toán tử so sánh '=='. Dòng 1 cũng có thể gây ra lỗi nếu sử dụng sai cách nhưng ở bài này không sai.
Lời giải:
Đáp án đúng: B
Đoạn chương trình này thực hiện các bước sau:
1. Khai báo: Khai báo một mảng ký tự `str` có kích thước 40.
2. Nhập dữ liệu: Sử dụng `cin.getline(str, 40)` để đọc một chuỗi từ bàn phím và lưu vào mảng `str`. Hàm `cin.getline` đọc đến khi gặp ký tự newline (enter) hoặc đã đọc đủ 39 ký tự (chừa một vị trí cho ký tự null '\0' để kết thúc chuỗi).
3. So sánh chuỗi: Sử dụng hàm `strcmp(str, "Juliet")` để so sánh chuỗi vừa nhập (`str`) với chuỗi "Juliet". Hàm `strcmp` trả về 0 nếu hai chuỗi giống nhau, một giá trị âm nếu `str` nhỏ hơn "Juliet", và một giá trị dương nếu `str` lớn hơn "Juliet".
4. In kết quả:
* Nếu `strcmp` trả về 0 (tức là chuỗi nhập vào là "Juliet"), chương trình in ra "Same here".
* Ngược lại (chuỗi nhập vào khác "Juliet"), chương trình in ra chuỗi vừa nhập (`str`).
Trong trường hợp này, chuỗi nhập vào là "Rome". Vì "Rome" khác "Juliet", nên `strcmp` sẽ trả về một giá trị khác 0. Do đó, chương trình sẽ in ra chính chuỗi "Rome".
1. Khai báo: Khai báo một mảng ký tự `str` có kích thước 40.
2. Nhập dữ liệu: Sử dụng `cin.getline(str, 40)` để đọc một chuỗi từ bàn phím và lưu vào mảng `str`. Hàm `cin.getline` đọc đến khi gặp ký tự newline (enter) hoặc đã đọc đủ 39 ký tự (chừa một vị trí cho ký tự null '\0' để kết thúc chuỗi).
3. So sánh chuỗi: Sử dụng hàm `strcmp(str, "Juliet")` để so sánh chuỗi vừa nhập (`str`) với chuỗi "Juliet". Hàm `strcmp` trả về 0 nếu hai chuỗi giống nhau, một giá trị âm nếu `str` nhỏ hơn "Juliet", và một giá trị dương nếu `str` lớn hơn "Juliet".
4. In kết quả:
* Nếu `strcmp` trả về 0 (tức là chuỗi nhập vào là "Juliet"), chương trình in ra "Same here".
* Ngược lại (chuỗi nhập vào khác "Juliet"), chương trình in ra chuỗi vừa nhập (`str`).
Trong trường hợp này, chuỗi nhập vào là "Rome". Vì "Rome" khác "Juliet", nên `strcmp` sẽ trả về một giá trị khác 0. Do đó, chương trình sẽ in ra chính chuỗi "Rome".
Lời giải:
Đáp án đúng: D
Đầu tiên, biến `i` được khởi tạo với giá trị 10. Sau đó, biểu thức `++i%5` được tính. Toán tử `++i` là toán tử tăng trước (pre-increment), nghĩa là giá trị của `i` sẽ tăng lên 1 trước khi được sử dụng trong biểu thức. Do đó, `i` sẽ trở thành 11. Tiếp theo, `11%5` được tính, kết quả là 1 (vì 11 chia 5 dư 1). Vậy, `n` sẽ nhận giá trị 1. Cuối cùng, `i` có giá trị 11 và `n` có giá trị 1.
Lời giải:
Đáp án đúng: C
Đoạn code trên tìm giá trị nhỏ nhất trong mảng `seasonTemp`. Ban đầu, `m` được khởi tạo bằng 0. Sau đó, code duyệt qua từng phần tử của mảng `seasonTemp`. Nếu một phần tử nào đó nhỏ hơn `m`, `m` sẽ được cập nhật bằng giá trị của phần tử đó. Vì mảng `seasonTemp` chứa các giá trị dương, nên giá trị nhỏ nhất trong mảng sẽ luôn nhỏ hơn 0 (giá trị khởi tạo của `m`). Sau khi duyệt qua tất cả các phần tử, `m` sẽ bằng 13, là giá trị nhỏ nhất trong mảng. Do đó, kết quả trả về sẽ là 13.
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