Đầu ra của chương trình là gì? #include
Đáp án đúng: A
Chương trình sử dụng hàm sqrt()
để tính căn bậc hai của 36.0. Hàm sqrt()
trả về một giá trị kiểu double
. Trong hàm printf()
, định dạng %f
được sử dụng để in một số thực dấu phẩy động (float hoặc double). Do đó, kết quả sẽ là 6.000000.
Câu hỏi liên quan
* Ký hiệu ANSI (hay C89/C90): Đây là ký hiệu chuẩn hóa, trong đó kiểu dữ liệu của các tham số được khai báo trong danh sách tham số của hàm. Ví dụ: `int func(int a, int b)`.
* Ký hiệu KR (Kernighan & Ritchie): Đây là ký hiệu cũ hơn, được sử dụng trong phiên bản đầu tiên của ngôn ngữ C. Trong ký hiệu này, kiểu dữ liệu của các tham số được khai báo sau danh sách tham số. Ví dụ: `int func(a, b) int a; int b;`.
Dựa vào định nghĩa trên, ta thấy:
* Hàm `int func(int a, int b)` sử dụng ký hiệu ANSI.
* Hàm `int func(a, b) int a; int b;` sử dụng ký hiệu KR.
Vậy, đáp án đúng là C.
Đúng vậy. Mỗi khi một hàm đệ quy được gọi, một khung ngăn xếp (stack frame) mới được tạo để lưu trữ các biến cục bộ, tham số và địa chỉ trả về của hàm. Nếu một hàm đệ quy gọi chính nó quá nhiều lần mà không có điểm dừng (điều kiện cơ sở), số lượng khung ngăn xếp sẽ tăng lên liên tục. Cuối cùng, ngăn xếp sẽ hết dung lượng, dẫn đến lỗi "tràn ngăn xếp" (stack overflow).
1. Tránh dư thừa, lặp lại nhiều lần một đoạn lệnh: Hàm cho phép đóng gói một đoạn mã thực hiện một chức năng cụ thể. Thay vì viết lặp đi lặp lại đoạn mã đó ở nhiều nơi trong chương trình, ta chỉ cần gọi hàm đó. Điều này giúp giảm thiểu sự dư thừa và làm cho code gọn gàng hơn.
2. Dễ bảo trì: Khi cần thay đổi hoặc sửa lỗi trong một đoạn mã được sử dụng nhiều lần, ta chỉ cần sửa trong định nghĩa hàm. Thay đổi này sẽ tự động áp dụng cho tất cả các nơi gọi hàm đó, giúp việc bảo trì trở nên dễ dàng và ít tốn công sức hơn.
3. Khả năng sử dụng lại đoạn lệnh: Hàm cho phép sử dụng lại một đoạn mã đã được viết cho các mục đích khác nhau trong cùng một chương trình hoặc thậm chí trong các chương trình khác. Điều này giúp tiết kiệm thời gian và công sức viết mã.
Vì các đáp án A, B, và C đều là lợi ích của việc dùng hàm, nên đáp án D "Tất cả đều sai" là đáp án không đúng.
Phân tích câu hỏi:
Câu hỏi này kiểm tra sự hiểu biết về con trỏ và mảng trong C, đặc biệt là cách gán địa chỉ cho con trỏ.
Đánh giá các phương án:
- Phương án A: ptr = value;
Câu lệnh này sai.
value
là một biến kiểuchar
, chứa một ký tự. Khi gánvalue
choptr
(là một con trỏ kiểuchar *
), bạn đang cố gắng gán một giá trị (ký tự) cho một biến lưu địa chỉ. Điều này gây ra lỗi kiểu dữ liệu. - Phương án B: ptr = msg;
Câu lệnh này đúng.
msg
là một mảng kiểuchar
, và khi sử dụng tên mảng (msg
) mà không có chỉ số, nó sẽ tự động chuyển đổi thành một con trỏ đến phần tử đầu tiên của mảng. Vì vậy,ptr = msg
gán địa chỉ của phần tử đầu tiên trong mảngmsg
cho con trỏptr
. Kiểu dữ liệu phù hợp (char *
).
Kết luận:
Phương án B đúng, phương án A sai.

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.