Trong các hàm sau, hàm nào không định dạng để in một kí tự ra màn hình:
Trả lời:
Đáp án đúng: C
Phân tích các hàm:
- puts(): Hàm này được sử dụng để in một chuỗi kí tự ra màn hình, tự động thêm một dòng mới sau chuỗi.
- printf(): Hàm này là một hàm định dạng đầu ra rất mạnh mẽ, có thể in nhiều kiểu dữ liệu khác nhau (số nguyên, số thực, kí tự, chuỗi) ra màn hình theo một định dạng được chỉ định.
- putchar(): Hàm này được sử dụng để in một kí tự duy nhất ra màn hình.
Như vậy, cả printf()
và putchar()
đều được dùng để in kí tự ra màn hình. puts()
in chuỗi, không in kí tự đơn lẻ theo định dạng cụ thể.
Do đó, đáp án đúng là A.
Câu hỏi liên quan
Lời giải:
Đáp án đúng: D
Chương trình C này có một số vấn đề sau:
1. `clrscr()`: Hàm `clrscr()` không phải là một hàm chuẩn trong C. Nó thường được tìm thấy trong thư viện `conio.h`, vốn không phải là một phần của thư viện chuẩn C. Việc sử dụng nó có thể gây ra lỗi khi biên dịch trên một số hệ thống.
2. `chu[80]`: Mảng `chu` được khai báo nhưng không được khởi tạo giá trị. Do đó, nội dung của mảng là ngẫu nhiên.
3. `tong`: Biến `tong` không được khởi tạo trước khi sử dụng trong vòng lặp `for (dem = 0; dem < tong; dem++)`. Điều này dẫn đến việc vòng lặp có thể không chạy, chạy vô hạn hoặc chạy với số lần không xác định, tùy thuộc vào giá trị rác hiện tại của `tong`.
4. `for (dem = 0; dem < tong; ++dem) putchar(toupper(chu[dem]));`: Vòng lặp này cố gắng in các ký tự từ mảng `chu` sau khi chuyển chúng thành chữ hoa. Tuy nhiên, vì `chu` không được khởi tạo và `tong` có giá trị không xác định, kết quả in ra cũng sẽ không xác định. Nếu vòng lặp chạy, nó có thể in ra các ký tự rác.
5. `return`: Câu lệnh `return` trong hàm `void main()` không theo chuẩn C. Theo chuẩn C, hàm `main` nên trả về kiểu `int`.
Do các vấn đề trên, chương trình có khả năng cao là không chạy đúng như mong đợi hoặc thậm chí không biên dịch được. Vì vậy, không có đáp án nào trong các lựa chọn trên mô tả đúng hành vi của chương trình.
Vì các lỗi nghiêm trọng, chương trình không thực hiện việc nhập và chuyển đổi ký tự như mô tả trong các phương án A và B. Phương án C không liên quan vì cả A và B đều không đúng. Do đó, phương án D ("Kết quả khác") là đáp án hợp lý nhất, mặc dù chính xác hơn là chương trình có lỗi và không đưa ra kết quả xác định.
1. `clrscr()`: Hàm `clrscr()` không phải là một hàm chuẩn trong C. Nó thường được tìm thấy trong thư viện `conio.h`, vốn không phải là một phần của thư viện chuẩn C. Việc sử dụng nó có thể gây ra lỗi khi biên dịch trên một số hệ thống.
2. `chu[80]`: Mảng `chu` được khai báo nhưng không được khởi tạo giá trị. Do đó, nội dung của mảng là ngẫu nhiên.
3. `tong`: Biến `tong` không được khởi tạo trước khi sử dụng trong vòng lặp `for (dem = 0; dem < tong; dem++)`. Điều này dẫn đến việc vòng lặp có thể không chạy, chạy vô hạn hoặc chạy với số lần không xác định, tùy thuộc vào giá trị rác hiện tại của `tong`.
4. `for (dem = 0; dem < tong; ++dem) putchar(toupper(chu[dem]));`: Vòng lặp này cố gắng in các ký tự từ mảng `chu` sau khi chuyển chúng thành chữ hoa. Tuy nhiên, vì `chu` không được khởi tạo và `tong` có giá trị không xác định, kết quả in ra cũng sẽ không xác định. Nếu vòng lặp chạy, nó có thể in ra các ký tự rác.
5. `return`: Câu lệnh `return` trong hàm `void main()` không theo chuẩn C. Theo chuẩn C, hàm `main` nên trả về kiểu `int`.
Do các vấn đề trên, chương trình có khả năng cao là không chạy đúng như mong đợi hoặc thậm chí không biên dịch được. Vì vậy, không có đáp án nào trong các lựa chọn trên mô tả đúng hành vi của chương trình.
Vì các lỗi nghiêm trọng, chương trình không thực hiện việc nhập và chuyển đổi ký tự như mô tả trong các phương án A và B. Phương án C không liên quan vì cả A và B đều không đúng. Do đó, phương án D ("Kết quả khác") là đáp án hợp lý nhất, mặc dù chính xác hơn là chương trình có lỗi và không đưa ra kết quả xác định.
Câu 41:
Khai báo hàm tính tổng các phần tử trong một mảng các số nguyên dưới đây, khai báo nào đúng:
Lời giải:
Đáp án đúng: D
Câu hỏi yêu cầu khai báo hàm tính tổng các phần tử trong mảng số nguyên. Để tính tổng, ta cần biết mảng đó là mảng gì (kiểu dữ liệu, tên biến), và có bao nhiêu phần tử (nếu không có thông tin này thì không thể tính tổng một cách tổng quát).
* Phương án A: `void Sum( int a[]);` - Thiếu thông tin về số lượng phần tử của mảng. Hàm `Sum` không thể biết mảng `a` có bao nhiêu phần tử để tính tổng. Vì vậy, phương án này không đầy đủ.
* Phương án B: `long Sum( int *a);` - Tương tự như phương án A, thiếu thông tin về số lượng phần tử của mảng. Tuy `long` là kiểu trả về hợp lý cho tổng (để tránh tràn số nếu các phần tử lớn), nhưng việc thiếu kích thước mảng làm cho phương án này không hoàn chỉnh.
* Phương án C: `void Sum(int a[], int n);` - Khai báo này đầy đủ hơn. `int a[]` là mảng các số nguyên, và `int n` là số lượng phần tử của mảng. Như vậy, hàm `Sum` có thể duyệt qua `n` phần tử của mảng `a` và tính tổng. Lưu ý rằng kiểu trả về `void` có nghĩa là hàm này có thể in ra tổng, hoặc lưu tổng vào một biến toàn cục, hoặc truyền một con trỏ đến một biến để lưu tổng.
* Phương án D: `Cả 3 phương án trên đều sai.` - Phương án C đúng, do đó phương án này sai.
Như vậy, phương án C là khai báo đầy đủ nhất để thực hiện tính tổng các phần tử trong mảng.
* Phương án A: `void Sum( int a[]);` - Thiếu thông tin về số lượng phần tử của mảng. Hàm `Sum` không thể biết mảng `a` có bao nhiêu phần tử để tính tổng. Vì vậy, phương án này không đầy đủ.
* Phương án B: `long Sum( int *a);` - Tương tự như phương án A, thiếu thông tin về số lượng phần tử của mảng. Tuy `long` là kiểu trả về hợp lý cho tổng (để tránh tràn số nếu các phần tử lớn), nhưng việc thiếu kích thước mảng làm cho phương án này không hoàn chỉnh.
* Phương án C: `void Sum(int a[], int n);` - Khai báo này đầy đủ hơn. `int a[]` là mảng các số nguyên, và `int n` là số lượng phần tử của mảng. Như vậy, hàm `Sum` có thể duyệt qua `n` phần tử của mảng `a` và tính tổng. Lưu ý rằng kiểu trả về `void` có nghĩa là hàm này có thể in ra tổng, hoặc lưu tổng vào một biến toàn cục, hoặc truyền một con trỏ đến một biến để lưu tổng.
* Phương án D: `Cả 3 phương án trên đều sai.` - Phương án C đúng, do đó phương án này sai.
Như vậy, phương án C là khai báo đầy đủ nhất để thực hiện tính tổng các phần tử trong mảng.
Lời giải:
Đáp án đúng: A
Hai hàm `scanf()` và `printf()` được gọi là hàm nhập/xuất có định dạng vì chúng sử dụng chuỗi định dạng trong tham số để xác định kiểu dữ liệu và cách thức nhập/xuất dữ liệu. Chuỗi định dạng này chứa các ký tự đặc biệt (ví dụ: `%d`, `%f`, `%s`) cho biết kiểu dữ liệu sẽ được đọc hoặc ghi. Do đó, đáp án A là chính xác nhất.
Lời giải:
Đáp án đúng: A
Trong hầu hết các ngôn ngữ lập trình, tên biến phải tuân theo một số quy tắc nhất định. Quy tắc quan trọng nhất là tên biến phải bắt đầu bằng một chữ cái (a-z, A-Z) hoặc dấu gạch dưới (_). Các ký tự số (0-9) không được phép đứng đầu tên biến, và các toán tử (+, -, *, /...) cũng không được phép sử dụng trong tên biến.
* Đáp án A: Đúng. Biến có thể bắt đầu bằng một kí tự thường (chữ cái) hoặc dấu gạch dưới.
* Đáp án B: Sai. Biến có thể bắt đầu bằng dấu gạch dưới, nhưng cũng có thể bắt đầu bằng chữ cái.
* Đáp án C: Sai. Biến không thể bắt đầu bằng một kí tự kiểu số.
* Đáp án D: Sai. Biến không thể bắt đầu bằng một toán tử.
* Đáp án A: Đúng. Biến có thể bắt đầu bằng một kí tự thường (chữ cái) hoặc dấu gạch dưới.
* Đáp án B: Sai. Biến có thể bắt đầu bằng dấu gạch dưới, nhưng cũng có thể bắt đầu bằng chữ cái.
* Đáp án C: Sai. Biến không thể bắt đầu bằng một kí tự kiểu số.
* Đáp án D: Sai. Biến không thể bắt đầu bằng một toán tử.
Lời giải:
Đáp án đúng: B
Đoạn chương trình trên thực hiện việc mở hai file, "source" để đọc (chế độ "rt") và "TARGET" để ghi (chế độ "wt"). Sau đó, chương trình đọc từng byte từ file "source" và ghi byte đó vào file "TARGET" cho đến khi gặp ký tự EOF (End Of File) trong file "source".
Vì mỗi byte đọc từ "source" đều được ghi vào "TARGET", nên sau khi vòng lặp `while` kết thúc, số lượng byte trong hai file sẽ bằng nhau. Do đó, độ dài của file "source" sẽ bằng độ dài của file "TARGET".
Các phương án khác không đúng vì:
* A. Độ dài file “source” luôn bé hơn độ dài file “TARGET” - Sai, vì hai file có độ dài bằng nhau.
* C. Độ dài file “source” nói chung lớn hơn độ dài file “TARGET” - Sai, vì hai file có độ dài bằng nhau.
* D. Độ dài file “source” nói chung sẽ lớn hơn độ dài file “TARGET” 1 byte - Sai, vì hai file có độ dài bằng nhau.
Vì mỗi byte đọc từ "source" đều được ghi vào "TARGET", nên sau khi vòng lặp `while` kết thúc, số lượng byte trong hai file sẽ bằng nhau. Do đó, độ dài của file "source" sẽ bằng độ dài của file "TARGET".
Các phương án khác không đúng vì:
* A. Độ dài file “source” luôn bé hơn độ dài file “TARGET” - Sai, vì hai file có độ dài bằng nhau.
* C. Độ dài file “source” nói chung lớn hơn độ dài file “TARGET” - Sai, vì hai file có độ dài bằng nhau.
* D. Độ dài file “source” nói chung sẽ lớn hơn độ dài file “TARGET” 1 byte - Sai, vì hai file có độ dài bằng nhau.
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