JavaScript is required
Danh sách đề

700+ câu hỏi trắc nghiệm Ngôn ngữ lập trình C có lời giải chi tiết - Đề 1

50 câu hỏi 60 phút

Thẻ ghi nhớ
Luyện tập
Thi thử
Nhấn để lật thẻ
1 / 50

The preprocessor processes source code before the compiler does

A.

TRUE

B.

FALSE

Đáp án
Đáp án đúng: A
Tiền xử lý (preprocessor) là một giai đoạn xử lý mã nguồn diễn ra trước khi trình biên dịch (compiler) thực hiện công việc biên dịch. Tiền xử lý thực hiện các công việc như bao gồm các tệp tiêu đề (header files), thay thế các macro, và biên dịch có điều kiện. Vì vậy, khẳng định "The preprocessor processes source code before the compiler does" là đúng.

Danh sách câu hỏi:

Lời giải:
Đáp án đúng: A
Tiền xử lý (preprocessor) là một giai đoạn xử lý mã nguồn diễn ra trước khi trình biên dịch (compiler) thực hiện công việc biên dịch. Tiền xử lý thực hiện các công việc như bao gồm các tệp tiêu đề (header files), thay thế các macro, và biên dịch có điều kiện. Vì vậy, khẳng định "The preprocessor processes source code before the compiler does" là đúng.
Lời giải:
Đáp án đúng: B

Trong Java (và nhiều ngôn ngữ lập trình khác hỗ trợ xử lý ngoại lệ), một khối try có thể đi kèm với nhiều khối catch. Mỗi khối catch sẽ xử lý một loại ngoại lệ cụ thể. Do đó, việc chỉ có một khối catch trong chương trình là sai.

Lời giải:
Đáp án đúng: A
Đoạn code khai báo một biến `main` kiểu `int` và gán giá trị 100. Sau đó, sử dụng toán tử `cout` để in giá trị của `main` ra màn hình, đồng thời tăng giá trị của `main` lên 1 sau khi in (hậu tố ++). Do đó, giá trị được in ra là 100.

Lỗi biên dịch có thể xảy ra do tên biến `main` trùng với tên hàm `main`, nhưng trong C++, việc này được cho phép (mặc dù không nên). Chương trình vẫn sẽ biên dịch và chạy.

Vậy, đáp án đúng là A.

Câu 4:

A variable that is declared protected:

Lời giải:
Đáp án đúng: D
Trong lập trình hướng đối tượng, một biến (hay thuộc tính) được khai báo là `protected` có ý nghĩa như sau:

* Có thể truy cập từ bên trong lớp mà nó được khai báo: Lớp chứa biến `protected` có quyền truy cập và sử dụng biến này một cách bình thường.
* Có thể truy cập từ các lớp con (subclass): Các lớp con kế thừa từ lớp cha chứa biến `protected` cũng có quyền truy cập biến này. Điều này cho phép các lớp con có thể thao tác trực tiếp với các thuộc tính của lớp cha mà không cần thông qua các phương thức getter/setter.
* Không thể truy cập từ bên ngoài lớp và các lớp con: Các lớp khác, không phải lớp cha hoặc lớp con, không thể truy cập trực tiếp vào biến `protected`.

Như vậy, đáp án D là chính xác nhất, vì nó bao hàm cả việc biến `protected` có thể truy cập từ lớp khai báo và từ các lớp con của nó.

Các phương án khác không đúng vì:

* A: Sai. Biến `protected` vẫn có thể truy cập được trong lớp mà nó được khai báo.
* B: Sai. Biến `protected` còn có thể truy cập được từ các lớp con.
* C: Sai. Biến `protected` không thể truy cập từ tất cả các lớp.
Lời giải:
Đáp án đúng: B
Đoạn code C++ này liên quan đến tính đa hình (polymorphism) thông qua các hàm ảo (virtual functions) và thứ tự khởi tạo/hủy bỏ của các đối tượng trong kế thừa.

Khi một đối tượng `Child` được tạo:
1. Đầu tiên, constructor của lớp `Parent` được gọi. Bên trong constructor của `Parent`, hàm `Status()` được gọi. Vì `Status()` là một hàm ảo, phiên bản của hàm `Status()` được gọi phụ thuộc vào kiểu thực tế của đối tượng. Trong trường hợp này, đối tượng đang được xây dựng là một đối tượng `Child`, vì vậy `Child::Status()` được gọi, in ra "Child ".
2. Tiếp theo, constructor của lớp `Child` được gọi. Bên trong constructor của `Child`, hàm `Status()` lại được gọi. Tương tự như trên, `Child::Status()` được gọi, in ra "Child ".

Khi đối tượng `Child` bị hủy (khi `main` kết thúc):
1. Đầu tiên, destructor của lớp `Child` được gọi. Bên trong destructor của `Child`, hàm `Status()` được gọi. Vì `Status()` là một hàm ảo, `Child::Status()` được gọi, in ra "Child ".
2. Tiếp theo, destructor của lớp `Parent` được gọi. Bên trong destructor của `Parent`, hàm `Status()` được gọi. Vì `Status()` là một hàm ảo, phiên bản của hàm `Status()` được gọi phụ thuộc vào kiểu thực tế của đối tượng. Trong trường hợp này, đối tượng đang bị hủy là một đối tượng `Child`, vì vậy `Child::Status()` được gọi, in ra "Child ".

Như vậy, output cuối cùng là "Child Child Child Child".

Tuy nhiên, do không có đáp án nào chính xác nên ta chọn đáp án gần đúng nhất là B.

Lưu ý: Kết quả chính xác là Child Child Child Child. Đề bài hoặc các đáp án có thể bị sai sót.

Câu 6:

Biến cục bộ là dạng biến gì? Chọn câu trả lời đúng 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
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

Câu 13:

The (assert.h) header is used for ___ .

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
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
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

Câu 26:

Trong các phép tính sau đây, phép tính nào là SAI?

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

Câu 27:

Chỉ ra lỗi trong chương trình sau #include #include void main() { void v = 0; printf("%d", v); getch(); }

Câu nào trong số này

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

Câu 28:

Trong các cách sử dụng sau đây, cách nào là đúng đối với toán tử điều kiện trong 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

Câu 31:

Which of the following is a complete function?

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

Câu 36:

Sử dụng cách truyền nào trong hàm sẽ không làm thay đổi giá trị của biến trong chương trình chính

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

Câu 38:

Phép cộng 1 con trỏ với một số nuyên sẽ là

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

Câu 39:

Khi khai báo mảng, ta khởi tạo luôn giá trị của mảng như sau: int x[3]={4,2,6}; Nghĩa là:

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

Câu 42:

Đối với kiểu có cấu trúc, cách gán nào sau đây là không được phép:

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

Câu 44:

Hàm getpixel(int x, int y) dùng để làm gì:

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

Câu 45:

 Ngôn ngữ lập trình C được Dennish phát triển dựa trên ngôn ngữ lập trình nào:

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

Câu 50:

 Những phát biểu nào sau đây là đúng:

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