Đề 8 – Đề 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

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

1. Trong lập trình hướng đối tượng, tính chất nào cho phép một lớp kế thừa các thuộc tính và phương thức từ một lớp khác?

A. Đóng gói (Encapsulation)
B. Đa hình (Polymorphism)
C. Kế thừa (Inheritance)
D. Trừu tượng (Abstraction)

2. Đâu là mục đích chính của việc sử dụng `design patterns` (mẫu thiết kế) trong phát triển phần mềm?

A. Tăng tốc độ viết mã.
B. Giải quyết các vấn đề thiết kế lặp đi lặp lại một cách hiệu quả và đã được chứng minh.
C. Giảm kích thước của mã nguồn.
D. Làm cho mã nguồn trở nên khó hiểu hơn.

3. Phương pháp gỡ lỗi (debugging) nào hiệu quả nhất để tìm ra lỗi trong một đoạn mã?

A. Đọc mã nguồn một cách cẩn thận.
B. Sử dụng trình gỡ lỗi (debugger) để theo dõi giá trị của biến và luồng thực thi.
C. Thêm các câu lệnh in (print statements) để kiểm tra giá trị của biến tại các điểm khác nhau trong mã.
D. Tất cả các phương pháp trên đều hiệu quả.

4. Đâu là lợi ích chính của việc sử dụng cơ sở dữ liệu NoSQL so với cơ sở dữ liệu quan hệ (SQL)?

A. Hỗ trợ tốt hơn cho các giao dịch ACID.
B. Khả năng mở rộng (scalability) và hiệu suất tốt hơn cho các ứng dụng có lượng dữ liệu lớn và cấu trúc dữ liệu linh hoạt.
C. Dễ dàng hơn trong việc thực hiện các truy vấn phức tạp.
D. Tiêu chuẩn hóa dữ liệu tốt hơn.

5. Trong lập trình hướng đối tượng, `composition` (tập hợp) khác với `inheritance` (kế thừa) như thế nào?

A. Composition tạo mối quan hệ `is-a`, còn inheritance tạo mối quan hệ `has-a`.
B. Composition tạo mối quan hệ `has-a`, còn inheritance tạo mối quan hệ `is-a`.
C. Composition cho phép tái sử dụng mã, còn inheritance thì không.
D. Inheritance linh hoạt hơn composition.

6. Đâu là sự khác biệt chính giữa biên dịch (compilation) và thông dịch (interpretation) trong quá trình thực thi chương trình?

A. Biên dịch chuyển đổi mã nguồn thành mã máy trước khi thực thi, trong khi thông dịch thực thi mã nguồn từng dòng một.
B. Biên dịch thực thi mã nguồn từng dòng một, trong khi thông dịch chuyển đổi mã nguồn thành mã máy trước khi thực thi.
C. Biên dịch tạo ra mã trung gian, còn thông dịch tạo ra mã máy trực tiếp.
D. Biên dịch nhanh hơn thông dịch, nhưng thông dịch dễ gỡ lỗi hơn.

7. Sự khác biệt chính giữa `authentication` (xác thực) và `authorization` (ủy quyền) là gì?

A. Authentication xác định người dùng là ai, còn authorization xác định người dùng được phép làm gì.
B. Authorization xác định người dùng là ai, còn authentication xác định người dùng được phép làm gì.
C. Authentication là quá trình mã hóa dữ liệu, còn authorization là quá trình giải mã dữ liệu.
D. Không có sự khác biệt, cả hai đều liên quan đến việc bảo vệ dữ liệu.

8. Trong lập trình hướng đối tượng, `polymorphism` (đa hình) là gì?

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

9. Đâu là mục đích chính của việc sử dụng `comments` (chú thích) trong mã nguồn?

A. Để làm cho mã nguồn chạy nhanh hơn.
B. Để giải thích mã nguồn, giúp người khác (hoặc chính bạn trong tương lai) hiểu rõ hơn về chức năng và logic của mã.
C. Để bảo vệ mã nguồn khỏi bị sao chép.
D. Để giảm kích thước của mã nguồn.

10. Phương pháp nào sau đây giúp cải thiện khả năng đọc và bảo trì mã nguồn?

A. Viết mã càng ngắn gọn càng tốt.
B. Sử dụng tên biến và hàm mô tả rõ ràng.
C. Không sử dụng comments để tránh làm rối mã.
D. Viết tất cả mã trên một dòng.

11. Đâu là lợi ích chính của việc sử dụng hệ thống quản lý phiên bản (Version Control System - VCS) như Git?

A. Tăng tốc độ thực thi của chương trình.
B. Cho phép nhiều người cùng làm việc trên một dự án mà không gây ra xung đột.
C. Tự động tạo tài liệu cho mã nguồn.
D. Giảm kích thước của tệp thực thi.

12. Trong lập trình, `data structure` (cấu trúc dữ liệu) được sử dụng để làm gì?

A. Để lưu trữ và tổ chức dữ liệu một cách hiệu quả, giúp tối ưu hóa việc truy cập và thao tác dữ liệu.
B. Để tạo giao diện người dùng.
C. Để tăng tốc độ thực thi của chương trình.
D. Để bảo vệ mã nguồn khỏi bị sao chép.

13. Trong lập trình, thuật ngữ `refactoring` (tái cấu trúc) có nghĩa là gì?

A. Viết lại toàn bộ mã nguồn từ đầu.
B. Thay đổi chức năng của chương trình để đáp ứng yêu cầu mới.
C. Cải thiện cấu trúc bên trong của mã nguồn mà không thay đổi hành vi bên ngoài.
D. Sửa lỗi trong mã nguồn.

14. Đâu là mục đích chính của việc sử dụng `caching` (bộ nhớ đệm) trong ứng dụng web?

A. Để tăng dung lượng lưu trữ của máy chủ.
B. Để giảm thời gian tải trang bằng cách lưu trữ các tài nguyên tĩnh và dữ liệu thường xuyên được truy cập.
C. Để bảo vệ ứng dụng khỏi các cuộc tấn công DDoS.
D. Để cải thiện khả năng tìm kiếm của trang web trên các công cụ tìm kiếm.

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

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

16. Sự khác biệt chính giữa `queue` (hàng đợi) và `stack` (ngăn xếp) là gì?

A. Queue hoạt động theo nguyên tắc LIFO, còn Stack hoạt động theo nguyên tắc FIFO.
B. Queue hoạt động theo nguyên tắc FIFO, còn Stack hoạt động theo nguyên tắc LIFO.
C. Queue cho phép truy cập ngẫu nhiên, còn Stack thì không.
D. Stack cho phép truy cập ngẫu nhiên, còn Queue thì không.

17. Đâu là lợi ích của việc sử dụng `virtual environment` (môi trường ảo) trong Python?

A. Tăng tốc độ thực thi của chương trình Python.
B. Cho phép quản lý các gói và thư viện riêng biệt cho từng dự án, tránh xung đột phiên bản.
C. Tự động tạo tài liệu cho mã nguồn Python.
D. Giảm kích thước của mã nguồn Python.

18. Kiểu dữ liệu trừu tượng (Abstract Data Type - ADT) là gì?

A. Một kiểu dữ liệu được định nghĩa bằng cách sử dụng các kiểu dữ liệu cơ bản.
B. Một kiểu dữ liệu chỉ có thể được sử dụng trong lập trình hướng đối tượng.
C. Một mô hình toán học cho các kiểu dữ liệu được định nghĩa bởi hành vi của chúng từ quan điểm của người dùng.
D. Một kiểu dữ liệu được định nghĩa bởi cách nó được lưu trữ trong bộ nhớ.

19. Trong cấu trúc dữ liệu, stack (ngăn xếp) hoạt động theo nguyên tắc nào?

A. FIFO (First-In, First-Out)
B. LIFO (Last-In, First-Out)
C. Random Access
D. Priority Queue

20. Trong bảo mật phần mềm, `SQL injection` là gì?

A. Một kỹ thuật tấn công bằng cách chèn mã SQL độc hại vào truy vấn cơ sở dữ liệu.
B. Một phương pháp để tối ưu hóa hiệu suất của cơ sở dữ liệu SQL.
C. Một loại lỗi xảy ra khi cơ sở dữ liệu SQL bị hỏng.
D. Một công cụ để quản lý cơ sở dữ liệu SQL.

21. Trong ngữ cảnh của 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, Consistency, Integrity, Durability
C. Atomicity, Concurrency, Isolation, Distribution
D. Accuracy, Concurrency, Integrity, Distribution

22. Phương pháp kiểm thử phần mềm nào tập trung vào việc kiểm tra các đơn vị (units) nhỏ nhất của mã nguồn, ví dụ như hàm hoặc phương thức?

A. Kiểm thử tích hợp (Integration testing)
B. Kiểm thử hệ thống (System testing)
C. Kiểm thử đơn vị (Unit testing)
D. Kiểm thử chấp nhận (Acceptance testing)

23. Trong phát triển phần mềm, `agile methodology` (phương pháp luận agile) là gì?

A. Một phương pháp phát triển phần mềm tập trung vào việc lập kế hoạch chi tiết và tuân thủ nghiêm ngặt theo kế hoạch.
B. Một phương pháp phát triển phần mềm lặp đi lặp lại, linh hoạt và tập trung vào việc cung cấp giá trị cho khách hàng một cách nhanh chóng.
C. Một phương pháp phát triển phần mềm không yêu cầu kiểm thử.
D. Một phương pháp phát triển phần mềm chỉ phù hợp cho các dự án nhỏ.

24. Trong lập trình hàm, `pure function` (hàm thuần túy) là gì?

A. Một hàm không có tác dụng phụ và luôn trả về cùng một kết quả cho cùng một đầu vào.
B. Một hàm có thể có tác dụng phụ.
C. Một hàm được sử dụng để tạo giao diện người dùng.
D. Một hàm không trả về giá trị.

25. Đâu là mục đích chính của việc sử dụng `API` (Application Programming Interface)?

A. Để tạo giao diện người dùng đẹp mắt.
B. Để cho phép các ứng dụng khác nhau giao tiếp và trao đổi dữ liệu với nhau.
C. Để tăng tốc độ thực thi của chương trình.
D. Để bảo vệ mã nguồn khỏi bị sao chép.

26. Trong lập trình, `callback function` (hàm gọi lại) là gì?

A. Một hàm được gọi trước khi chương trình bắt đầu.
B. Một hàm được truyền như một đối số cho một hàm khác và được thực thi sau khi hàm đó hoàn thành.
C. Một hàm được gọi tự động khi có lỗi xảy ra.
D. Một hàm được sử dụng để tạo giao diện người dùng.

27. Trong lĩnh vực phát triển web, `RESTful API` là gì?

A. Một loại API sử dụng giao thức SOAP.
B. Một kiến trúc thiết kế API tuân theo các nguyên tắc của REST (Representational State Transfer).
C. Một API chỉ có thể được sử dụng bởi các ứng dụng web.
D. Một API không cần xác thực.

28. Độ phức tạp thời gian (Time complexity) của một 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 tăng lên như thế nào khi kích thước đầu vào tăng lên.
C. Độ chính xác của kết quả mà thuật toán trả về.
D. Sự dễ dàng trong việc hiểu và bảo trì mã nguồn của thuật toán.

29. Trong lập trình, `recursion` (đệ quy) là gì?

A. Một hàm gọi chính nó.
B. Một vòng lặp vô hạn.
C. Một hàm không trả về giá trị.
D. Một kỹ thuật để tối ưu hóa mã nguồn.

30. Trong lập trình đa luồng (multithreading), `deadlock` (bế tắc) là gì?

A. Một tình huống khi một luồng bị treo vô thời hạn vì chờ một tài nguyên mà một luồng khác đang giữ.
B. Một tình huống khi một luồng hoàn thành công việc quá nhanh.
C. Một tình huống khi có quá nhiều luồng chạy đồng thời.
D. Một tình huống khi một luồng cố gắng truy cập vào bộ nhớ không hợp lệ.

1 / 30

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

Tags: Bộ đề 6

1. Trong lập trình hướng đối tượng, tính chất nào cho phép một lớp kế thừa các thuộc tính và phương thức từ một lớp khác?

2 / 30

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

Tags: Bộ đề 6

2. Đâu là mục đích chính của việc sử dụng 'design patterns' (mẫu thiết kế) trong phát triển phần mềm?

3 / 30

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

Tags: Bộ đề 6

3. Phương pháp gỡ lỗi (debugging) nào hiệu quả nhất để tìm ra lỗi trong một đoạn mã?

4 / 30

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

Tags: Bộ đề 6

4. Đâu là lợi ích chính của việc sử dụng cơ sở dữ liệu NoSQL so với cơ sở dữ liệu quan hệ (SQL)?

5 / 30

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

Tags: Bộ đề 6

5. Trong lập trình hướng đối tượng, 'composition' (tập hợp) khác với 'inheritance' (kế thừa) như thế nào?

6 / 30

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

Tags: Bộ đề 6

6. Đâu là sự khác biệt chính giữa biên dịch (compilation) và thông dịch (interpretation) trong quá trình thực thi chương trình?

7 / 30

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

Tags: Bộ đề 6

7. Sự khác biệt chính giữa 'authentication' (xác thực) và 'authorization' (ủy quyền) là gì?

8 / 30

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

Tags: Bộ đề 6

8. Trong lập trình hướng đối tượng, 'polymorphism' (đa hình) là gì?

9 / 30

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

Tags: Bộ đề 6

9. Đâu là mục đích chính của việc sử dụng 'comments' (chú thích) trong mã nguồn?

10 / 30

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

Tags: Bộ đề 6

10. Phương pháp nào sau đây giúp cải thiện khả năng đọc và bảo trì mã nguồn?

11 / 30

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

Tags: Bộ đề 6

11. Đâu là lợi ích chính của việc sử dụng hệ thống quản lý phiên bản (Version Control System - VCS) như Git?

12 / 30

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

Tags: Bộ đề 6

12. Trong lập trình, 'data structure' (cấu trúc dữ liệu) được sử dụng để làm gì?

13 / 30

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

Tags: Bộ đề 6

13. Trong lập trình, thuật ngữ 'refactoring' (tái cấu trúc) có nghĩa là gì?

14 / 30

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

Tags: Bộ đề 6

14. Đâu là mục đích chính của việc sử dụng 'caching' (bộ nhớ đệm) trong ứng dụng web?

15 / 30

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

Tags: Bộ đề 6

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

16 / 30

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

Tags: Bộ đề 6

16. Sự khác biệt chính giữa 'queue' (hàng đợi) và 'stack' (ngăn xếp) là gì?

17 / 30

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

Tags: Bộ đề 6

17. Đâu là lợi ích của việc sử dụng 'virtual environment' (môi trường ảo) trong Python?

18 / 30

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

Tags: Bộ đề 6

18. Kiểu dữ liệu trừu tượng (Abstract Data Type - ADT) là gì?

19 / 30

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

Tags: Bộ đề 6

19. Trong cấu trúc dữ liệu, stack (ngăn xếp) hoạt động theo nguyên tắc nào?

20 / 30

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

Tags: Bộ đề 6

20. Trong bảo mật phần mềm, 'SQL injection' là gì?

21 / 30

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

Tags: Bộ đề 6

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

22 / 30

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

Tags: Bộ đề 6

22. Phương pháp kiểm thử phần mềm nào tập trung vào việc kiểm tra các đơn vị (units) nhỏ nhất của mã nguồn, ví dụ như hàm hoặc phương thức?

23 / 30

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

Tags: Bộ đề 6

23. Trong phát triển phần mềm, 'agile methodology' (phương pháp luận agile) là gì?

24 / 30

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

Tags: Bộ đề 6

24. Trong lập trình hàm, 'pure function' (hàm thuần túy) là gì?

25 / 30

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

Tags: Bộ đề 6

25. Đâu là mục đích chính của việc sử dụng 'API' (Application Programming Interface)?

26 / 30

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

Tags: Bộ đề 6

26. Trong lập trình, 'callback function' (hàm gọi lại) là gì?

27 / 30

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

Tags: Bộ đề 6

27. Trong lĩnh vực phát triển web, 'RESTful API' là gì?

28 / 30

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

Tags: Bộ đề 6

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

29 / 30

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

Tags: Bộ đề 6

29. Trong lập trình, 'recursion' (đệ quy) là gì?

30 / 30

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

Tags: Bộ đề 6

30. Trong lập trình đa luồng (multithreading), 'deadlock' (bế tắc) là gì?