Hàm func() trả về giá trị nào? float func() { int r = 0, d = 0, i = 0; for (i; i < 2; i++) { r += 5 / d; } return r; }
Trả lời:
Đáp án đúng: C
Hàm `func()` chứa một vòng lặp `for` chạy hai lần (i = 0 và i = 1). Bên trong vòng lặp, có phép chia `5 / d`. Ban đầu, `d` được khởi tạo bằng 0. Do đó, khi `i = 0`, phép chia `5 / 0` sẽ xảy ra, gây ra lỗi chia cho 0, dẫn đến một ngoại lệ (exception). Vì vậy, hàm sẽ không trả về giá trị nào cả mà sẽ phát sinh ngoại lệ.
Câu hỏi liên quan
Lời giải:
Đáp án đúng: A
Đoạn mã C sử dụng vòng lặp `do...while`. Vòng lặp này sẽ thực hiện ít nhất một lần trước khi kiểm tra điều kiện. Trong trường hợp này:
- `putchar(ch)`: In ký tự `ch` ra màn hình.
- `i++ < 5`: So sánh giá trị của `i` với 5, sau đó tăng `i` lên 1. Biểu thức này đúng (true) khi `i` nhỏ hơn 5.
- `++ch <= 'F'`: Tăng giá trị của `ch` lên 1, sau đó so sánh với 'F'. Biểu thức này đúng (true) khi `ch` nhỏ hơn hoặc bằng 'F'.
- `||`: Toán tử OR. Vòng lặp tiếp tục nếu một trong hai biểu thức trên đúng.
Bây giờ, hãy xem xét từng bước:
1. Lần lặp đầu tiên:
- `i = 0`, `ch = 'A'`
- In 'A'.
- `i++ < 5` là `0 < 5` (true), `i` trở thành 1.
- `++ch <= 'F'` là `'B' <= 'F'` (true), `ch` trở thành 'B'.
- Vì một trong hai biểu thức đúng, vòng lặp tiếp tục.
2. Lần lặp thứ hai:
- `i = 1`, `ch = 'B'`
- In 'B'.
- `i++ < 5` là `1 < 5` (true), `i` trở thành 2.
- `++ch <= 'F'` là `'C' <= 'F'` (true), `ch` trở thành 'C'.
- Vòng lặp tiếp tục.
3. Các lần lặp tiếp theo:
- Vòng lặp tiếp tục tương tự cho đến khi `ch` vượt quá 'F'.
4. Khi `ch = 'F'`:
- `i` có thể là bất kỳ giá trị nào đó nhỏ hơn 5.
- In 'F'.
- `i++ < 5` (có thể đúng hoặc sai, tùy thuộc vào giá trị của i)
- `++ch <= 'F'` là `'G' <= 'F'` (false), `ch` trở thành 'G'.
- Vòng lặp sẽ tiếp tục nếu `i++ < 5` đúng.
5. Khi `i = 5`:
- Giả sử vòng lặp tiếp tục đến khi i = 5 và ch = 'G'
- In 'G'
- `i++ < 5` là `5 < 5` (false), `i` trở thành 6.
- `++ch <= 'F'` là `'H' <= 'F'` (false), `ch` trở thành 'H'.
- Cả hai điều kiện đều sai. Vòng lặp kết thúc.
Kết quả in ra là ABCDEF. Do đó, đáp án đúng là C. ABCDEF
- `putchar(ch)`: In ký tự `ch` ra màn hình.
- `i++ < 5`: So sánh giá trị của `i` với 5, sau đó tăng `i` lên 1. Biểu thức này đúng (true) khi `i` nhỏ hơn 5.
- `++ch <= 'F'`: Tăng giá trị của `ch` lên 1, sau đó so sánh với 'F'. Biểu thức này đúng (true) khi `ch` nhỏ hơn hoặc bằng 'F'.
- `||`: Toán tử OR. Vòng lặp tiếp tục nếu một trong hai biểu thức trên đúng.
Bây giờ, hãy xem xét từng bước:
1. Lần lặp đầu tiên:
- `i = 0`, `ch = 'A'`
- In 'A'.
- `i++ < 5` là `0 < 5` (true), `i` trở thành 1.
- `++ch <= 'F'` là `'B' <= 'F'` (true), `ch` trở thành 'B'.
- Vì một trong hai biểu thức đúng, vòng lặp tiếp tục.
2. Lần lặp thứ hai:
- `i = 1`, `ch = 'B'`
- In 'B'.
- `i++ < 5` là `1 < 5` (true), `i` trở thành 2.
- `++ch <= 'F'` là `'C' <= 'F'` (true), `ch` trở thành 'C'.
- Vòng lặp tiếp tục.
3. Các lần lặp tiếp theo:
- Vòng lặp tiếp tục tương tự cho đến khi `ch` vượt quá 'F'.
4. Khi `ch = 'F'`:
- `i` có thể là bất kỳ giá trị nào đó nhỏ hơn 5.
- In 'F'.
- `i++ < 5` (có thể đúng hoặc sai, tùy thuộc vào giá trị của i)
- `++ch <= 'F'` là `'G' <= 'F'` (false), `ch` trở thành 'G'.
- Vòng lặp sẽ tiếp tục nếu `i++ < 5` đúng.
5. Khi `i = 5`:
- Giả sử vòng lặp tiếp tục đến khi i = 5 và ch = 'G'
- In 'G'
- `i++ < 5` là `5 < 5` (false), `i` trở thành 6.
- `++ch <= 'F'` là `'H' <= 'F'` (false), `ch` trở thành 'H'.
- Cả hai điều kiện đều sai. Vòng lặp kết thúc.
Kết quả in ra là ABCDEF. Do đó, đáp án đúng là C. ABCDEF
Lời giải:
Đáp án đúng: A
Đoạn code này sử dụng một vòng lặp `for` vô hạn. Vòng lặp `for` có dạng `for (initialization; condition; increment)`. Nếu bỏ trống cả ba phần như trong câu hỏi (`for (; ; ;)`) thì vòng lặp sẽ lặp mãi mãi vì điều kiện lặp luôn đúng. Do đó, dòng `printf("In for loop\n");` sẽ được in liên tục ra màn hình. Dòng `printf("After loop\n");` sẽ không bao giờ được thực thi vì vòng lặp không bao giờ kết thúc.
Lời giải:
Đáp án đúng: B
Đầu tiên, hàm `foo()` được gọi trong phần khởi tạo của vòng lặp `for`. Hàm này trả về 1, nhưng giá trị trả về không được gán cho biến nào, vì vậy nó không ảnh hưởng đến điều kiện vòng lặp. Điều kiện lặp là `i == 1`. Ban đầu, `i` được khởi tạo là 0. Do đó, điều kiện `i == 1` là sai ngay từ đầu, và vòng lặp `for` không được thực thi. Sau vòng lặp, dòng `printf("After loop\n");` được thực thi, in ra "After loop\n".
Vậy đáp án đúng là B.
Vậy đáp án đúng là B.
Lời giải:
Đáp án đúng: B
Đoạn code có một lỗi logic nghiêm trọng trong vòng lặp `while`. Biểu thức `i = 0` là một phép gán, không phải là một phép so sánh. Điều này có nghĩa là giá trị của `i` luôn được gán là 0, và biểu thức `i = 0` luôn trả về giá trị 0, tương đương với `false` trong ngữ cảnh boolean của vòng lặp `while`. Do đó, vòng lặp `while` sẽ không bao giờ được thực thi. Vì vậy, chương trình sẽ in ra "False" một lần duy nhất.
Phân tích:
- `int i = 0;`: Khởi tạo biến `i` bằng 0.
- `while (i = 0)`: Đây là phép gán `i` bằng 0, biểu thức trả về 0 (false), vòng lặp không thực hiện.
- `printf("False\n");`: In ra "False".
- `getch();`: Dừng chương trình cho đến khi người dùng nhấn một phím.
Phân tích:
- `int i = 0;`: Khởi tạo biến `i` bằng 0.
- `while (i = 0)`: Đây là phép gán `i` bằng 0, biểu thức trả về 0 (false), vòng lặp không thực hiện.
- `printf("False\n");`: In ra "False".
- `getch();`: Dừng chương trình cho đến khi người dùng nhấn một phím.
Lời giải:
Đáp án đúng: B
Đầu tiên, biến `x` được khởi tạo bằng `011`. Trong C, tiền tố `0` biểu thị một số bát phân. Vì vậy, `011` trong hệ bát phân tương đương với `1*8^1 + 1*8^0 = 8 + 1 = 9` trong hệ thập phân.
Vòng lặp `for` chạy từ `i = 0` đến khi `i < x` (tức là `i < 9`), với bước nhảy `i += 3`.
- Lần lặp 1: `i = 0`. In ra "Start ". Gặp lệnh `continue`, bỏ qua phần còn lại của vòng lặp và chuyển sang lần lặp tiếp theo.
- Lần lặp 2: `i = 3`. In ra "Start ". Gặp lệnh `continue`, bỏ qua phần còn lại của vòng lặp và chuyển sang lần lặp tiếp theo.
- Lần lặp 3: `i = 6`. In ra "Start ". Gặp lệnh `continue`, bỏ qua phần còn lại của vòng lặp và chuyển sang lần lặp tiếp theo.
Vì vậy, "Start " được in ra 3 lần. Lệnh `printf("End")` không bao giờ được thực thi vì lệnh `continue` luôn được gọi trước.
Vòng lặp `for` chạy từ `i = 0` đến khi `i < x` (tức là `i < 9`), với bước nhảy `i += 3`.
- Lần lặp 1: `i = 0`. In ra "Start ". Gặp lệnh `continue`, bỏ qua phần còn lại của vòng lặp và chuyển sang lần lặp tiếp theo.
- Lần lặp 2: `i = 3`. In ra "Start ". Gặp lệnh `continue`, bỏ qua phần còn lại của vòng lặp và chuyển sang lần lặp tiếp theo.
- Lần lặp 3: `i = 6`. In ra "Start ". Gặp lệnh `continue`, bỏ qua phần còn lại của vòng lặp và chuyển sang lần lặp tiếp theo.
Vì vậy, "Start " được in ra 3 lần. Lệnh `printf("End")` không bao giờ được thực thi vì lệnh `continue` luôn được gọi trước.
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