Trả lời:
Đáp án đúng: B
Biểu thức cần tính giá trị là: `!(1&&1||1&&0)`.
Bước 1: Tính `1&&1` kết quả là `1`.
Bước 2: Tính `1&&0` kết quả là `0`.
Bước 3: Biểu thức trở thành `!(1||0)`.
Bước 4: Tính `1||0` kết quả là `1`.
Bước 5: Biểu thức trở thành `!1`.
Bước 6: Tính `!1` kết quả là `0` (phép phủ định).
Vậy, giá trị của biểu thức là `0`.
Tổng hợp 600+ câu hỏi trắc nghiệm lập trình C có đáp án đầy đủ nhằm giúp các bạn dễ dàng ôn tập lại toàn bộ các kiến thức.
50 câu hỏi 60 phút
Câu hỏi liên quan
Lời giải:
Đáp án đúng: B
Chương trình này sử dụng vòng lặp `for` để in ra các giá trị của biến `n` sau mỗi lần chia cho 2.
Bước 1: `n` được khởi tạo là 18.
Bước 2: Vòng lặp `for` bắt đầu. Điều kiện lặp là `n > 0`.
Bước 3: Trong mỗi lần lặp, giá trị của `n` được in ra bằng `printf(" % 3 d", n);`. Định dạng `% 3 d` in ra một số nguyên với độ rộng tối thiểu là 3 ký tự, căn phải.
Bước 4: Sau khi in, `n` được gán bằng `n / 2`. Vì `n` là kiểu `int`, phép chia này là phép chia số nguyên, tức là phần thập phân bị bỏ đi.
Các lần lặp cụ thể:
- Lần 1: `n = 18`. In ra " 18". `n` trở thành `18 / 2 = 9`.
- Lần 2: `n = 9`. In ra " 9". `n` trở thành `9 / 2 = 4`.
- Lần 3: `n = 4`. In ra " 4". `n` trở thành `4 / 2 = 2`.
- Lần 4: `n = 2`. In ra " 2". `n` trở thành `2 / 2 = 1`.
- Lần 5: `n = 1`. In ra " 1". `n` trở thành `1 / 2 = 0`.
- Lần 6: `n = 0`. Điều kiện `n > 0` không còn đúng, vòng lặp kết thúc.
Kết quả in ra là: " 18 9 4 2 1"
Vậy đáp án đúng là B.
Bước 1: `n` được khởi tạo là 18.
Bước 2: Vòng lặp `for` bắt đầu. Điều kiện lặp là `n > 0`.
Bước 3: Trong mỗi lần lặp, giá trị của `n` được in ra bằng `printf(" % 3 d", n);`. Định dạng `% 3 d` in ra một số nguyên với độ rộng tối thiểu là 3 ký tự, căn phải.
Bước 4: Sau khi in, `n` được gán bằng `n / 2`. Vì `n` là kiểu `int`, phép chia này là phép chia số nguyên, tức là phần thập phân bị bỏ đi.
Các lần lặp cụ thể:
- Lần 1: `n = 18`. In ra " 18". `n` trở thành `18 / 2 = 9`.
- Lần 2: `n = 9`. In ra " 9". `n` trở thành `9 / 2 = 4`.
- Lần 3: `n = 4`. In ra " 4". `n` trở thành `4 / 2 = 2`.
- Lần 4: `n = 2`. In ra " 2". `n` trở thành `2 / 2 = 1`.
- Lần 5: `n = 1`. In ra " 1". `n` trở thành `1 / 2 = 0`.
- Lần 6: `n = 0`. Điều kiện `n > 0` không còn đúng, vòng lặp kết thúc.
Kết quả in ra là: " 18 9 4 2 1"
Vậy đáp án đúng là B.
Lời giải:
Đáp án đúng: C
Đáp án đúng là C. fgetc().
* fgetc(): Hàm này được sử dụng để đọc một ký tự duy nhất từ một tệp. Nó trả về ký tự đọc được (dưới dạng một số nguyên) hoặc EOF nếu đạt đến cuối tệp hoặc có lỗi xảy ra.
* getch(): Hàm này thường được sử dụng để đọc một ký tự từ bàn phím mà không cần nhấn Enter, và ký tự đó không hiển thị trên màn hình (thường dùng trong thư viện conio.h).
* fscanf(): Hàm này dùng để đọc dữ liệu đã được định dạng từ một tệp. Nó có thể đọc nhiều giá trị cùng một lúc, theo một định dạng chỉ định trước.
* scanf(): Hàm này dùng để đọc dữ liệu đã được định dạng từ đầu vào chuẩn (thường là bàn phím). Tương tự như `fscanf()`, nó có thể đọc nhiều giá trị theo định dạng cho trước.
* fgetc(): Hàm này được sử dụng để đọc một ký tự duy nhất từ một tệp. Nó trả về ký tự đọc được (dưới dạng một số nguyên) hoặc EOF nếu đạt đến cuối tệp hoặc có lỗi xảy ra.
* getch(): Hàm này thường được sử dụng để đọc một ký tự từ bàn phím mà không cần nhấn Enter, và ký tự đó không hiển thị trên màn hình (thường dùng trong thư viện conio.h).
* fscanf(): Hàm này dùng để đọc dữ liệu đã được định dạng từ một tệp. Nó có thể đọc nhiều giá trị cùng một lúc, theo một định dạng chỉ định trước.
* scanf(): Hàm này dùng để đọc dữ liệu đã được định dạng từ đầu vào chuẩn (thường là bàn phím). Tương tự như `fscanf()`, nó có thể đọc nhiều giá trị theo định dạng cho trước.
Lời giải:
Đáp án đúng: A
Trong chế độ văn bản (text mode), dấu hiệu kết thúc tệp (End-of-File) thường được biểu diễn bằng ký tự đặc biệt hoặc một tổ hợp phím cụ thể. Trong các hệ điều hành như MS-DOS và Windows, tổ hợp phím Ctrl+Z thường được sử dụng để báo hiệu kết thúc tệp khi nhập dữ liệu từ bàn phím. Trong ngôn ngữ lập trình C/C++, EOF (End-of-File) là một macro được định nghĩa trong thư viện stdio.h, thường có giá trị là -1 và được trả về bởi các hàm đọc tệp như getc(), fgetc() khi đạt đến cuối tệp. Do đó, Ctrl_Z là dấu hiệu kết thúc tệp trong chế độ văn bản, còn EOF là giá trị trả về để báo hiệu kết thúc tệp trong lập trình C/C++.
- A. EOF: EOF là một macro trong C/C++ biểu thị End-of-File, nhưng không phải là ký tự được nhập từ bàn phím để báo hiệu kết thúc tệp trong chế độ văn bản.
- B. NULL: NULL là một con trỏ null, không liên quan đến việc kết thúc tệp.
- C. \n: \n là ký tự xuống dòng, không phải là dấu hiệu kết thúc tệp.
- D. Ctrl_Z: Ctrl+Z (hoặc Ctrl+D trên Unix/Linux) là tổ hợp phím thường được sử dụng để báo hiệu kết thúc tệp trong chế độ văn bản, đặc biệt khi nhập dữ liệu từ bàn phím trong dòng lệnh hoặc một số trình soạn thảo văn bản.
- A. EOF: EOF là một macro trong C/C++ biểu thị End-of-File, nhưng không phải là ký tự được nhập từ bàn phím để báo hiệu kết thúc tệp trong chế độ văn bản.
- B. NULL: NULL là một con trỏ null, không liên quan đến việc kết thúc tệp.
- C. \n: \n là ký tự xuống dòng, không phải là dấu hiệu kết thúc tệp.
- D. Ctrl_Z: Ctrl+Z (hoặc Ctrl+D trên Unix/Linux) là tổ hợp phím thường được sử dụng để báo hiệu kết thúc tệp trong chế độ văn bản, đặc biệt khi nhập dữ liệu từ bàn phím trong dòng lệnh hoặc một số trình soạn thảo văn bản.
Lời giải:
Đáp án đúng: D
Đoạn code có lỗi cú pháp. Toán tử `.` (dot operator) được sử dụng để truy cập các thành phần của một struct thông qua một biến struct *trực tiếp*, không phải thông qua con trỏ. Khi sử dụng con trỏ, ta cần sử dụng toán tử `->` (arrow operator). Vì vậy, `p.d1++` gây ra lỗi biên dịch. Đáp án đúng là 'Đoạn code gây lỗi'.
Lời giải:
Đáp án đúng: C
Câu hỏi yêu cầu khai báo một cấu trúc (struct) để mô tả thông tin của sinh viên, bao gồm tên và điểm của 3 môn học. Chúng ta cần tìm khai báo đúng cú pháp trong C.
* A. structure STUDENT {char Name[] int s1,s2,s3;};
* Sai. Trong C, từ khóa để khai báo cấu trúc là `struct`, không phải `structure`. Ngoài ra, kiểu dữ liệu cho `Name[]` cần chỉ rõ kích thước mảng hoặc là con trỏ.
* B. struct STUDENT {char Name[] int s1, s2, s3;};
* Sai. Tương tự như A, `Name[]` cần chỉ rõ kích thước mảng hoặc là con trỏ.
* C. typedef struct STUDENT {char Name[] float s1,s2,s3;};
* Đúng. `typedef` cho phép ta tạo một bí danh (alias) cho kiểu cấu trúc, giúp sử dụng tên `STUDENT` trực tiếp sau này mà không cần `struct` ở phía trước. `char Name[]` cần chỉ rõ kích thước mảng hoặc là con trỏ. Kiểu `float` phù hợp để lưu điểm số.
* D. typedef STUDENT { char Name[] int s1, s2,s3;};
* Sai. Nếu sử dụng `typedef` để định nghĩa một cấu trúc, từ khóa `struct` phải xuất hiện trước tên cấu trúc trong phần định nghĩa.
Như vậy, đáp án C là đáp án đúng nhất, tuy nhiên, nó vẫn cần sửa đổi `Name[]` để chỉ rõ kích thước mảng hoặc sử dụng con trỏ. Trong các lựa chọn được đưa ra, C là lựa chọn phù hợp nhất.
* A. structure STUDENT {char Name[] int s1,s2,s3;};
* Sai. Trong C, từ khóa để khai báo cấu trúc là `struct`, không phải `structure`. Ngoài ra, kiểu dữ liệu cho `Name[]` cần chỉ rõ kích thước mảng hoặc là con trỏ.
* B. struct STUDENT {char Name[] int s1, s2, s3;};
* Sai. Tương tự như A, `Name[]` cần chỉ rõ kích thước mảng hoặc là con trỏ.
* C. typedef struct STUDENT {char Name[] float s1,s2,s3;};
* Đúng. `typedef` cho phép ta tạo một bí danh (alias) cho kiểu cấu trúc, giúp sử dụng tên `STUDENT` trực tiếp sau này mà không cần `struct` ở phía trước. `char Name[]` cần chỉ rõ kích thước mảng hoặc là con trỏ. Kiểu `float` phù hợp để lưu điểm số.
* D. typedef STUDENT { char Name[] int s1, s2,s3;};
* Sai. Nếu sử dụng `typedef` để định nghĩa một cấu trúc, từ khóa `struct` phải xuất hiện trước tên cấu trúc trong phần định nghĩa.
Như vậy, đáp án C là đáp án đúng nhất, tuy nhiên, nó vẫn cần sửa đổi `Name[]` để chỉ rõ kích thước mảng hoặc sử dụng con trỏ. Trong các lựa chọn được đưa ra, C là lựa chọn phù hợp nhất.
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

FORM.08: Bộ 130+ Biểu Mẫu Thống Kê Trong Doanh Nghiệp
136 tài liệu563 lượt tải

FORM.07: Bộ 125+ Biểu Mẫu Báo Cáo Trong Doanh Nghiệp
125 tài liệu585 lượt tải

FORM.06: Bộ 320+ Biểu Mẫu Hành Chính Thông Dụng
325 tài liệu608 lượt tải

FORM.05: Bộ 330+ Biểu Mẫu Thuế - Kê Khai Thuế Mới Nhất
331 tài liệu1010 lượt tải

FORM.04: Bộ 240+ Biểu Mẫu Chứng Từ Kế Toán Thông Dụng
246 tài liệu802 lượt tải

CEO.22: Bộ Tài Liệu Quy Trình Kiểm Toán, Kiểm Soát Nội Bộ Doanh Nghiệp
138 tài liệu417 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