Đáp án đúng: B
Trong ngôn ngữ lập trình C, dấu chấm phẩy (;) được sử dụng để kết thúc hầu hết các câu lệnh. Dấu chấm phẩy báo hiệu cho trình biên dịch C rằng một câu lệnh đã kết thúc và trình biên dịch có thể bắt đầu một câu lệnh mới.
Câu hỏi liên quan
Khi `switch(x)` được thực thi, chương trình sẽ tìm kiếm `case` nào có giá trị tương ứng với giá trị của `x`. Trong trường hợp này, `case 0:` sẽ được thực thi. Tuy nhiên, điểm quan trọng là trong C (và C++), nếu không có lệnh `break` ở cuối mỗi `case`, chương trình sẽ tiếp tục thực thi các `case` tiếp theo cho đến khi gặp lệnh `break` hoặc kết thúc khối `switch`.
Trong đoạn code này, sau khi `case 0:` được thực thi, `printf("Zero")` sẽ in ra "Zero". Vì không có lệnh `break`, chương trình sẽ tiếp tục thực thi `case 2:`, và `printf("Hello World")` sẽ in ra "Hello World".
Vì vậy, kết quả cuối cùng sẽ là "ZeroHello World".
* Phương án A: `y = (int)(x + 0,5)` là cách làm đúng. Đầu tiên, `x + 0,5` được tính. Sau đó, kết quả được ép kiểu về số nguyên, loại bỏ phần thập phân và thực hiện việc làm tròn theo quy tắc thông thường. Ví dụ: `x = 3.2` thì `x + 0.5 = 3.7`, `(int)(3.7)` sẽ là `3`. Nếu `x = 3.7` thì `x + 0.5 = 4.2`, `(int)(4.2)` sẽ là `4`.
* Phương án B: `y = int(x + 0,5)` đúng về mặt logic nhưng không phải là cú pháp chuẩn trong C/C++. Trong Python thì có thể đúng. Câu hỏi không chỉ rõ ngôn ngữ lập trình nên ta ưu tiên cách viết kiểu C/C++.
* Phương án C: `y = (int)x + 0,5` sai. Đầu tiên, `x` được ép kiểu về số nguyên (phần thập phân bị loại bỏ). Sau đó, `0,5` được cộng vào kết quả, nhưng kết quả cuối cùng vẫn là một số thực, không phải số nguyên đã làm tròn.
* Phương án D: `y = (int)((int)x + 0,5)` sai. `(int)x` sẽ loại bỏ phần thập phân của `x`. Sau đó, `0,5` được cộng vào, và kết quả lại được ép về số nguyên. Điều này tương đương với việc làm tròn xuống, không phải là làm tròn theo quy tắc thông thường.
Vậy đáp án đúng là A.
- `3.14` là một hằng số kiểu `double` theo mặc định, do đó `sizeof(3.14)` sẽ trả về kích thước của kiểu `double`. Trên nhiều hệ thống, kích thước của `double` là 8 byte.
- `3.14f` là một hằng số kiểu `float`, do đó `sizeof(3.14f)` sẽ trả về kích thước của kiểu `float`. Kích thước của `float` thường là 4 byte.
- `3.14l` là một hằng số kiểu `long double`, do đó `sizeof(3.14l)` sẽ trả về kích thước của kiểu `long double`. Kích thước của `long double` có thể khác nhau tùy theo trình biên dịch và hệ thống, nhưng thường là 8 byte hoặc 12 byte hoặc 16 byte. Trong trường hợp này, giả sử kích thước là 8 byte.
Vì vậy, kết quả in ra sẽ là `8 4 8`.
Trong hầu hết các ngôn ngữ lập trình, nếu một hàm chứa hai câu lệnh return liên tiếp, thì câu lệnh return thứ hai sẽ không bao giờ được thực thi. Khi gặp câu lệnh return đầu tiên, hàm sẽ kết thúc và trả về giá trị (nếu có). Trình biên dịch thường sẽ đưa ra cảnh báo (warning) hoặc lỗi (error) vì câu lệnh return thứ hai là code "chết" (dead code), tức là không bao giờ được chạy đến. Tuy nhiên, điều này còn tùy thuộc vào ngôn ngữ và trình biên dịch cụ thể.
Ví dụ:
int myFunction() {
return 1;
return 2; // Lệnh này không bao giờ được thực thi
}
Trong C++, trình biên dịch sẽ thường đưa ra cảnh báo về code không thể truy cập (unreachable code).

Bộ Đồ Án Tốt Nghiệp Ngành Trí Tuệ Nhân Tạo Và Học Máy

Bộ 120+ Đồ Án Tốt Nghiệp Ngành Hệ Thống Thông Tin

Bộ Đồ Án Tốt Nghiệp Ngành Mạng Máy Tính Và Truyền Thông

Bộ Luận Văn Tốt Nghiệp Ngành Kiểm Toán

Bộ 370+ Luận Văn Tốt Nghiệp Ngành Kế Toán Doanh Nghiệp

Bộ Luận Văn Tốt Nghiệp Ngành Quản Trị Thương Hiệu
ĐĂ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.