Đề 2 – Đề thi, câu hỏi trắc nghiệm online Cơ sở lập trình

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


Cơ sở lập trình

Đề 2 - Đề thi, câu hỏi trắc nghiệm online Cơ sở lập trình

1. Mục đích chính của việc sử dụng hệ thống quản lý phiên bản (version control system) như Git là gì?

A. Để tự động hóa quá trình triển khai ứng dụng.
B. Để quản lý và theo dõi các thay đổi trong mã nguồn.
C. Để tăng tốc độ biên dịch chương trình.
D. Để bảo vệ mã nguồn khỏi virus.

2. Phương pháp lập trình `chia để trị` (divide and conquer) hoạt động như thế nào?

A. Giải quyết vấn đề bằng cách thử tất cả các khả năng.
B. Chia nhỏ vấn đề thành các vấn đề con nhỏ hơn, giải quyết chúng một cách độc lập, sau đó kết hợp các kết quả.
C. Tìm kiếm giải pháp tối ưu bằng cách lặp đi lặp lại.
D. Sắp xếp dữ liệu theo thứ tự tăng dần.

3. Trong lập trình, thuật ngữ `đệ quy` (recursion) đề cập đến điều gì?

A. Một vòng lặp vô hạn.
B. Một hàm tự gọi chính nó.
C. Một cách để tối ưu hóa bộ nhớ.
D. Một kỹ thuật để sắp xếp dữ liệu.

4. Trong lập trình hướng đối tượng, tính đóng gói (encapsulation) nhằm mục đích chính là gì?

A. Tăng tốc độ thực thi chương trình.
B. Giảm thiểu việc sử dụng bộ nhớ.
C. Che giấu thông tin và bảo vệ dữ liệu khỏi truy cập trái phép.
D. Đơn giản hóa quá trình gỡ lỗi.

5. Sự khác biệt chính giữa `array` (mảng) và `linked list` (danh sách liên kết) là gì?

A. Mảng có kích thước cố định, trong khi danh sách liên kết có thể thay đổi kích thước động.
B. Danh sách liên kết có kích thước cố định, trong khi mảng có thể thay đổi kích thước động.
C. Mảng chỉ có thể chứa số, trong khi danh sách liên kết có thể chứa bất kỳ kiểu dữ liệu nào.
D. Danh sách liên kết nhanh hơn mảng trong việc truy cập các phần tử.

6. Trong lập trình bất đồng bộ (asynchronous programming), `callback` là gì?

A. Một hàm được gọi ngay lập tức sau khi một hàm khác bắt đầu thực thi.
B. Một hàm được truyền làm đối số cho một hàm khác và được gọi sau khi hàm đó hoàn thành.
C. Một biến toàn cục được sử dụng để theo dõi trạng thái của chương trình.
D. Một vòng lặp vô hạn.

7. Độ phức tạp thời gian (time complexity) của thuật toán được sử dụng để đánh giá điều gì?

A. Lượng bộ nhớ mà thuật toán sử dụng.
B. Thời gian chạy của thuật toán khi kích thước đầu vào tăng lên.
C. Độ phức tạp của mã nguồn.
D. Số lượng dòng mã trong thuật toán.

8. Trong cơ sở dữ liệu, ACID là viết tắt của những thuộc tính nào?

A. Atomicity, Consistency, Isolation, Durability.
B. Accuracy, Completeness, Integrity, Dependability.
C. Accessibility, Configuration, Interoperability, Distribution.
D. Authorization, Confidentiality, Identification, Detection.

9. Trong lập trình web, RESTful API là gì?

A. Một loại giao diện người dùng đồ họa.
B. Một kiến trúc thiết kế cho các ứng dụng mạng dựa trên các nguyên tắc của REST (Representational State Transfer).
C. Một ngôn ngữ lập trình phía máy khách.
D. Một công cụ để kiểm tra hiệu suất của trang web.

10. Trong lập trình, `memoization` là gì?

A. Một kỹ thuật để giảm kích thước mã nguồn.
B. Một kỹ thuật tối ưu hóa bằng cách lưu trữ kết quả của các cuộc gọi hàm tốn kém và trả về kết quả đã lưu trữ khi đầu vào tương tự xảy ra lại.
C. Một phương pháp để kiểm tra lỗi trong mã nguồn.
D. Một cách để tạo ra các biến toàn cục.

11. Trong lập trình, `code smell` (mùi mã) là gì?

A. Một loại virus máy tính.
B. Một dấu hiệu trong mã nguồn cho thấy có thể có vấn đề sâu sắc hơn về thiết kế.
C. Một phương pháp để tối ưu hóa mã nguồn.
D. Một công cụ để kiểm tra lỗi chính tả trong mã nguồn.

12. Trong lập trình, `mocking` (tạo đối tượng giả) được sử dụng để làm gì?

A. Để tạo ra các đối tượng có hành vi ngẫu nhiên.
B. Để thay thế các đối tượng thực bằng các đối tượng giả trong quá trình kiểm thử.
C. Để tối ưu hóa hiệu suất của chương trình.
D. Để bảo vệ mã nguồn khỏi truy cập trái phép.

13. Trong lập trình, `polymorphism` (tính đa hình) là gì?

A. Khả năng một đối tượng thuộc nhiều lớp khác nhau.
B. Khả năng một đối tượng có thể có nhiều hình thức hoặc hành vi khác nhau.
C. Khả năng một lớp kế thừa từ nhiều lớp khác.
D. Khả năng một hàm gọi chính nó.

14. Trong lập trình, `singleton pattern` (mẫu singleton) được sử dụng để làm gì?

A. Để tạo ra nhiều đối tượng của một lớp.
B. Để đảm bảo rằng chỉ có một đối tượng duy nhất của một lớp được tạo ra.
C. Để tạo ra các đối tượng có thuộc tính ngẫu nhiên.
D. Để tạo ra các đối tượng không thể thay đổi.

15. Kiểu dữ liệu `stack` hoạt động theo nguyên tắc nào?

A. FIFO (First In, First Out).
B. LIFO (Last In, First Out).
C. Ngẫu nhiên.
D. Ưu tiên theo giá trị.

16. Trong lập trình, `abstraction` (tính trừu tượng) là gì?

A. Ẩn các chi tiết phức tạp và chỉ hiển thị các thông tin cần thiết.
B. Tạo ra các đối tượng giống hệt nhau.
C. Kết hợp dữ liệu và phương thức vào một đơn vị duy nhất.
D. Cho phép một lớp kế thừa từ nhiều lớp khác.

17. Trong lập trình, `SOLID` là một tập hợp các nguyên tắc thiết kế hướng đối tượng. Chữ `L` trong SOLID đại diện cho nguyên tắc nào?

A. Liskov Substitution Principle.
B. Law of Demeter.
C. Least Astonishment Principle.
D. Lazy Initialization.

18. Trong lập trình, `refactoring` (tái cấu trúc) mã nguồn là gì?

A. Viết lại toàn bộ mã nguồn từ đầu.
B. Thay đổi cấu trúc bên trong của mã nguồn mà không thay đổi chức năng bên ngoài.
C. Thêm các tính năng mới vào mã nguồn.
D. Sửa lỗi trong mã nguồn.

19. Trong lập trình, mục đích chính của việc sử dụng một `linter` là gì?

A. Để tự động sửa lỗi trong mã nguồn.
B. Để phân tích mã nguồn và phát hiện các vấn đề về phong cách, lỗi tiềm ẩn và các thực hành lập trình không tốt.
C. Để tăng tốc độ biên dịch chương trình.
D. Để bảo vệ mã nguồn khỏi virus.

20. Trong lập trình web, CORS (Cross-Origin Resource Sharing) là gì?

A. Một phương pháp để tối ưu hóa tốc độ tải trang web.
B. Một cơ chế bảo mật trình duyệt web cho phép một trang web truy cập tài nguyên từ một nguồn gốc khác.
C. Một ngôn ngữ lập trình phía máy chủ.
D. Một công cụ để kiểm tra tính tương thích của trình duyệt.

21. Đâu là sự khác biệt chính giữa ngôn ngữ lập trình biên dịch (compiled) và ngôn ngữ lập trình thông dịch (interpreted)?

A. Ngôn ngữ biên dịch chạy nhanh hơn ngôn ngữ thông dịch.
B. Ngôn ngữ thông dịch yêu cầu trình biên dịch, trong khi ngôn ngữ biên dịch thì không.
C. Ngôn ngữ biên dịch dịch toàn bộ mã nguồn thành mã máy trước khi thực thi, trong khi ngôn ngữ thông dịch dịch và thực thi từng dòng mã nguồn.
D. Ngôn ngữ thông dịch sử dụng ít bộ nhớ hơn ngôn ngữ biên dịch.

22. Sự khác biệt chính giữa `==` và `===` trong JavaScript là gì?

A. `==` so sánh giá trị, trong khi `===` so sánh giá trị và kiểu dữ liệu.
B. `===` so sánh giá trị, trong khi `==` so sánh giá trị và kiểu dữ liệu.
C. Không có sự khác biệt, cả hai đều so sánh giá trị.
D. `==` chỉ dùng cho số, `===` chỉ dùng cho chuỗi.

23. Trong lập trình, `design pattern` (mẫu thiết kế) là gì?

A. Một khuôn mẫu thiết kế giao diện người dùng.
B. Một giải pháp đã được chứng minh cho một vấn đề thiết kế phần mềm thường gặp.
C. Một phương pháp để tối ưu hóa mã nguồn.
D. Một tiêu chuẩn để viết tài liệu kỹ thuật.

24. Trong lập trình, `dependency injection` (tiêm phụ thuộc) là gì?

A. Một kỹ thuật để tạo ra các đối tượng phụ thuộc lẫn nhau.
B. Một mẫu thiết kế trong đó các phụ thuộc của một đối tượng được cung cấp cho nó thay vì đối tượng tự tạo ra chúng.
C. Một phương pháp để giảm kích thước mã nguồn.
D. Một cách để bảo vệ mã nguồn khỏi bị sao chép.

25. Trong lập trình, `deadlock` (bế tắc) là gì?

A. Một lỗi cú pháp trong mã nguồn.
B. Một tình huống trong đó hai hoặc nhiều tiến trình bị chặn vĩnh viễn vì mỗi tiến trình đang chờ một tài nguyên mà tiến trình khác đang giữ.
C. Một lỗi tràn bộ nhớ.
D. Một tình huống trong đó một chương trình chạy quá chậm.

26. Trong lập trình, `continuous integration` (tích hợp liên tục) là gì?

A. Một phương pháp để liên tục thêm các tính năng mới vào chương trình.
B. Một quy trình tự động hóa việc tích hợp mã nguồn từ nhiều nhà phát triển vào một kho lưu trữ chung một cách thường xuyên.
C. Một kỹ thuật để mã hóa dữ liệu.
D. Một cách để bảo vệ mã nguồn khỏi bị đánh cắp.

27. Trong ngữ cảnh của lập trình hướng đối tượng, `inheritance` (kế thừa) có nghĩa là gì?

A. Một lớp có thể truy cập trực tiếp vào dữ liệu của một lớp khác.
B. Một lớp có thể kế thừa các thuộc tính và phương thức từ một lớp khác.
C. Một đối tượng có thể thay đổi kiểu dữ liệu của nó.
D. Một hàm có thể gọi một hàm khác một cách đệ quy.

28. Đâu là lợi ích chính của việc sử dụng `hàm thuần` (pure function) trong lập trình?

A. Hàm thuần luôn trả về cùng một kết quả cho cùng một đầu vào và không có tác dụng phụ.
B. Hàm thuần có thể thay đổi các biến bên ngoài.
C. Hàm thuần luôn chạy nhanh hơn các hàm khác.
D. Hàm thuần không cần tham số đầu vào.

29. Trong lập trình, `garbage collection` (thu gom rác) là gì?

A. Một quá trình để xóa các tệp tạm thời.
B. Một quá trình tự động giải phóng bộ nhớ không còn được sử dụng bởi chương trình.
C. Một phương pháp để nén mã nguồn.
D. Một công cụ để tìm và sửa lỗi trong mã nguồn.

30. Trong lập trình, `Technical Debt` (Nợ kỹ thuật) là gì?

A. Số tiền mà một công ty nợ các nhà phát triển của mình.
B. Hàm ý của việc chọn một giải pháp dễ dàng triển khai trong ngắn hạn thay vì một cách tiếp cận tốt hơn sẽ mất nhiều thời gian hơn.
C. Tổng số lỗi trong một ứng dụng.
D. Số lượng tài liệu kỹ thuật bị thiếu.

1 / 30

Category: Cơ sở lập trình

Tags: Bộ đề 2

1. Mục đích chính của việc sử dụng hệ thống quản lý phiên bản (version control system) như Git là gì?

2 / 30

Category: Cơ sở lập trình

Tags: Bộ đề 2

2. Phương pháp lập trình 'chia để trị' (divide and conquer) hoạt động như thế nào?

3 / 30

Category: Cơ sở lập trình

Tags: Bộ đề 2

3. Trong lập trình, thuật ngữ 'đệ quy' (recursion) đề cập đến điều gì?

4 / 30

Category: Cơ sở lập trình

Tags: Bộ đề 2

4. Trong lập trình hướng đối tượng, tính đóng gói (encapsulation) nhằm mục đích chính là gì?

5 / 30

Category: Cơ sở lập trình

Tags: Bộ đề 2

5. Sự khác biệt chính giữa 'array' (mảng) và 'linked list' (danh sách liên kết) là gì?

6 / 30

Category: Cơ sở lập trình

Tags: Bộ đề 2

6. Trong lập trình bất đồng bộ (asynchronous programming), 'callback' là gì?

7 / 30

Category: Cơ sở lập trình

Tags: Bộ đề 2

7. Độ phức tạp thời gian (time complexity) của thuật toán được sử dụng để đánh giá điều gì?

8 / 30

Category: Cơ sở lập trình

Tags: Bộ đề 2

8. Trong cơ sở dữ liệu, ACID là viết tắt của những thuộc tính nào?

9 / 30

Category: Cơ sở lập trình

Tags: Bộ đề 2

9. Trong lập trình web, RESTful API là gì?

10 / 30

Category: Cơ sở lập trình

Tags: Bộ đề 2

10. Trong lập trình, 'memoization' là gì?

11 / 30

Category: Cơ sở lập trình

Tags: Bộ đề 2

11. Trong lập trình, 'code smell' (mùi mã) là gì?

12 / 30

Category: Cơ sở lập trình

Tags: Bộ đề 2

12. Trong lập trình, 'mocking' (tạo đối tượng giả) được sử dụng để làm gì?

13 / 30

Category: Cơ sở lập trình

Tags: Bộ đề 2

13. Trong lập trình, 'polymorphism' (tính đa hình) là gì?

14 / 30

Category: Cơ sở lập trình

Tags: Bộ đề 2

14. Trong lập trình, 'singleton pattern' (mẫu singleton) được sử dụng để làm gì?

15 / 30

Category: Cơ sở lập trình

Tags: Bộ đề 2

15. Kiểu dữ liệu 'stack' hoạt động theo nguyên tắc nào?

16 / 30

Category: Cơ sở lập trình

Tags: Bộ đề 2

16. Trong lập trình, 'abstraction' (tính trừu tượng) là gì?

17 / 30

Category: Cơ sở lập trình

Tags: Bộ đề 2

17. Trong lập trình, 'SOLID' là một tập hợp các nguyên tắc thiết kế hướng đối tượng. Chữ 'L' trong SOLID đại diện cho nguyên tắc nào?

18 / 30

Category: Cơ sở lập trình

Tags: Bộ đề 2

18. Trong lập trình, 'refactoring' (tái cấu trúc) mã nguồn là gì?

19 / 30

Category: Cơ sở lập trình

Tags: Bộ đề 2

19. Trong lập trình, mục đích chính của việc sử dụng một 'linter' là gì?

20 / 30

Category: Cơ sở lập trình

Tags: Bộ đề 2

20. Trong lập trình web, CORS (Cross-Origin Resource Sharing) là gì?

21 / 30

Category: Cơ sở lập trình

Tags: Bộ đề 2

21. Đâu là sự khác biệt chính giữa ngôn ngữ lập trình biên dịch (compiled) và ngôn ngữ lập trình thông dịch (interpreted)?

22 / 30

Category: Cơ sở lập trình

Tags: Bộ đề 2

22. Sự khác biệt chính giữa '==' và '===' trong JavaScript là gì?

23 / 30

Category: Cơ sở lập trình

Tags: Bộ đề 2

23. Trong lập trình, 'design pattern' (mẫu thiết kế) là gì?

24 / 30

Category: Cơ sở lập trình

Tags: Bộ đề 2

24. Trong lập trình, 'dependency injection' (tiêm phụ thuộc) là gì?

25 / 30

Category: Cơ sở lập trình

Tags: Bộ đề 2

25. Trong lập trình, 'deadlock' (bế tắc) là gì?

26 / 30

Category: Cơ sở lập trình

Tags: Bộ đề 2

26. Trong lập trình, 'continuous integration' (tích hợp liên tục) là gì?

27 / 30

Category: Cơ sở lập trình

Tags: Bộ đề 2

27. Trong ngữ cảnh của lập trình hướng đối tượng, 'inheritance' (kế thừa) có nghĩa là gì?

28 / 30

Category: Cơ sở lập trình

Tags: Bộ đề 2

28. Đâu là lợi ích chính của việc sử dụng 'hàm thuần' (pure function) trong lập trình?

29 / 30

Category: Cơ sở lập trình

Tags: Bộ đề 2

29. Trong lập trình, 'garbage collection' (thu gom rác) là gì?

30 / 30

Category: Cơ sở lập trình

Tags: Bộ đề 2

30. Trong lập trình, 'Technical Debt' (Nợ kỹ thuật) là gì?