Font size
WorksheetsKỹ thuật lập trình TEL1340 — Trang bìa
Total questions: 116
Worksheet time: 58mins
Điều gì là cần thiết để đảm bảo rằng mã nguồn của bạn có thể dễ dàng kiểm tra và phát hiện lỗi?
Viết mã nguồn không theo cấu trúc
Viết mã nguồn một lần và không thay đổi
Tránh sử dụng bất kỳ công cụ kiểm thử nào
Sử dụng các công cụ kiểm thử tự động và viết kiểm thử đơn vị
Tính năng nào dưới đây thường có trong các IDE hiện đại?
Tự động hoàn thành mã nguồn (code auto-completion)
Chạy các ứng dụng di động mà không cần SDK
Tạo và chỉnh sửa đồ họa
Tự động tạo tài liệu thiết kế
Ngôn ngữ lập trình nào được thiết kế để gần gũi với ngôn ngữ máy và thường được sử dụng trong lập trình hệ thống và phần mềm nhúng?
Pascal
Swift
Assembly
R
Compiler có thể chuyển đổi mã nguồn từ ngôn ngữ bậc cao sang ngôn ngữ máy và tạo ra gì?
Tài liệu thiết kế
Tập tin hình ảnh
Tập tin văn bản
Tập tin thực thi (executable file)
Bước nào trong quá trình lập trình tập trung vào việc kiểm tra và xác nhận rằng phần mềm hoạt động đúng như mong đợi và đáp ứng yêu cầu người dùng?
Viết mã nguồn
Thiết kế hệ thống
Kiểm thử phần mềm
Phân tích yêu cầu
Trong tư tưởng thiết kế hướng đối tượng, khái niệm nào liên quan đến việc tạo ra các lớp con có các thuộc tính và hành vi từ lớp cha?
Tính đa hình
Tính trừu tượng
Tính đóng gói
Tính kế thừa
Ngôn ngữ lập trình nào dưới đây được phát triển đặc biệt cho việc xử lý dữ liệu và phân tích số liệu trong môi trường khoa học và học máy?
Java
C#
Python
Objective-C
Lợi ích chính của việc sử dụng một IDE là gì?
Giảm tốc độ xử lý của máy tính
Thay thế hoàn toàn ngôn ngữ lập trình
Cung cấp một môi trường phát triển tích hợp với các công cụ hỗ trợ lập trình
Tăng kích thước của mã nguồn
Điều nào mô tả chính xác hơn về Programming Techniques so với Analysis & Design?
Tập trung vào việc xác định yêu cầu và thiết kế hệ thống
Tập trung vào việc viết mã và tối ưu hóa phần mềm
Tập trung vào việc quản lý dự án và phân phối tài nguyên
Tập trung vào việc kiểm thử và bảo trì phần mềm
Điều nào là một phần của thực hành lập trình tốt khi làm việc trong nhóm?
Tạo ra mã nguồn không thể hiểu được cho người khác
Viết mã nguồn mà không tuân theo quy tắc đặt tên
Cung cấp tài liệu và comment đầy đủ cho mã nguồn
Sử dụng các thuật toán không được tài liệu hóa
Làm thế nào để đảm bảo rằng phần mềm của bạn hoạt động đúng và đáp ứng yêu cầu người dùng?
Chạy phần mềm mà không thực hiện bất kỳ kiểm thử nào
Viết mã nguồn mà không tham khảo yêu cầu người dùng
Xác định rõ yêu cầu người dùng và thực hiện kiểm thử đầy đủ
Chỉ kiểm tra phần mềm sau khi hoàn thành toàn bộ phát triển
Làm thế nào để đảm bảo mã nguồn có thể dễ dàng mở rộng trong tương lai?
Viết mã nguồn theo cách không có cấu trúc
Sử dụng các mẫu thiết kế (design patterns) và tổ chức mã nguồn thành các mô-đun
Để toàn bộ logic trong một hàm lớn
Tránh việc tổ chức mã nguồn thành các lớp và hàm nhỏ hơn
Trong quá trình thực thi chương trình máy tính, bước nào liên quan đến việc giải thích và thực hiện các lệnh từ mã?
Biên dịch
Tính toán
Dịch
Thực thi
Khi sử dụng interpreter, mã nguồn được xử lý như thế nào?
Được biên dịch toàn bộ trước khi thực thi
Được dịch và thực thi từng lệnh một
Được chuyển đổi thành mã máy và lưu trữ trên đĩa
Được lưu trữ dưới dạng tập tin nhị phân
Giai đoạn nào trong chu trình phát triển phần mềm (SDLC) tập trung vào việc xác định các yêu cầu và mục tiêu của hệ thống?
Thiết kế
Kiểm thử
Phát triển
Phân tích yêu cầu
Cách nào dưới đây giúp cải thiện khả năng đọc và bảo trì mã nguồn?
Sử dụng tên biến và hàm không có ý nghĩa
Viết mã nguồn mà không có tài liệu hoặc bình luận
Sử dụng tên biến và hàm mô tả rõ ràng và có ý nghĩa
Để toàn bộ logic trong một hàm duy nhất
Khi lập trình viên viết mã nguồn bằng một ngôn ngữ lập trình cấp cao, mã nguồn sẽ được chuyển đổi thành machine code bởi công cụ nào?
Trình biên dịch (compiler)
Trình thông dịch (interpreter)
Trình gỡ lỗi (debugger)
Trình soạn thảo văn bản
Thành phần nào của máy tính chịu trách nhiệm đọc các lệnh từ bộ nhớ và thực hiện chúng?
Bộ điều khiển (Control Unit)
Bộ xử lý trung tâm (CPU)
Bộ nhớ cache
Thiết bị nhập xuất
Khác biệt chính giữa interpreter và compiler là gì?
Interpreter biên dịch toàn bộ mã nguồn thành mã máy trong khi compiler chỉ dịch lệnh
Interpreter dịch mã nguồn từng lệnh một trong khi compiler biên dịch toàn bộ mã nguồn trước khi thực thi
Interpreter chỉ làm việc với ngôn ngữ bậc thấp, còn compiler làm việc với ngôn ngữ bậc cao
Interpreter cần phải tạo ra tập tin thực thi trong khi compiler không cần
Khi một chương trình đang chạy, nó thường tương tác với các phần nào của hệ thống máy tính?
Chỉ bộ nhớ
Bộ nhớ và các thiết bị nhập/xuất
Các thiết bị lưu trữ
Chỉ CPU
Machine code là gì?
Ngôn ngữ lập trình bậc cao
Mã lệnh được viết bằng ngôn ngữ hợp ngữ
Mã lệnh nhị phân mà bộ xử lý máy tính có thể trực tiếp thực hiện
Ngôn ngữ lập trình kịch bản
Mô thức lập trình nào dưới đây đặc biệt chú trọng vào việc chia chương trình thành các hàm và cấu trúc dữ liệu rõ ràng?
Lập trình hàm (Functional Programming)
Lập trình hướng đối tượng (Object-Oriented Programming)
Lập trình cấu trúc (Structured Programming)
Lập trình hợp ngữ (Assembly Programming)
Một IDE điển hình thường không bao gồm tính năng nào sau đây?
Trình biên dịch (compiler)
Trình soạn thảo mã nguồn
Trình duyệt web
Trình gỡ lỗi (debugger)
Hoạt động nào dưới đây không phải là một phần của chu trình thực thi lệnh trong một chương trình máy tính?
Lấy lệnh (Fetch)
Giải mã lệnh (Decode)
Ghi lệnh (Write)
Thực hiện lệnh (Execute)
Giai đoạn nào trong SDLC thường bao gồm việc viết mã nguồn và thực hiện lập trình?
Phân tích yêu cầu
Thiết kế
Phát triển
Triển khai
Khái niệm nào trong thiết kế phần mềm liên quan đến việc ẩn đi các chi tiết triển khai bên trong và chỉ cung cấp một giao diện công khai?
Tính trừu tượng
Tính kế thừa
Tính phân tách
Tính đồng nhất
Sự khác biệt chính giữa "Programming Techniques" và "Analysis & Design" là:
"Programming Techniques" tập trung vào việc viết mã, trong khi "Analysis & Design" tập trung vào việc lập kế hoạch và thiết kế hệ thống
"Analysis & Design" tập trung vào việc viết mã, trong khi "Programming Techniques" tập trung vào việc lập kế hoạch và thiết kế hệ thống
"Programming Techniques" liên quan đến kiểm thử phần mềm, còn "Analysis & Design" liên quan đến bảo trì phần mềm
"Analysis & Design" và "Programming Techniques" đều liên quan đến việc viết mã nguồn
Kỹ thuật nào được sử dụng trong "Programming Techniques" để cải thiện hiệu suất của phần mềm?
Tối ưu hóa mã nguồn
Thiết kế mô hình dữ liệu
Phân tích quy trình nghiệp vụ
Xác định yêu cầu phần mềm
Lập trình tốt yêu cầu mã nguồn phải có khả năng mở rộng và bảo trì dễ dàng. Đặc điểm nào dưới đây góp phần vào điều này?
Viết mã nguồn một cách ngẫu nhiên mà không có cấu trúc
Sử dụng các hàm và lớp để tổ chức mã nguồn một cách có cấu trúc
Tránh sử dụng các comments trong mã nguồn
Để tất cả các logic trong một hàm duy nhất
Giai đoạn nào trong SDLC bao gồm việc sửa lỗi và cải tiến phần mềm sau khi nó đã được triển khai và sử dụng?
Kiểm thử
Phát triển
Bảo trì
Thiết kế
Phương pháp nào dưới đây chủ yếu thuộc về "Analysis & Design" và không phải là một kỹ thuật lập trình?
Phân tích yêu cầu
Thiết kế đối tượng
Tối ưu hóa thuật toán
Tạo cấu trúc dữ liệu
Một trong các ưu điểm của việc sử dụng interpreter là gì?
Chạy chương trình nhanh hơn so với việc sử dụng compiler
Phát hiện lỗi dễ hơn trong mã nguồn khi chương trình đang chạy
Tạo ra các tập tin thực thi để phân phối dễ dàng
Biên dịch mã nguồn thành mã máy một lần và sử dụng lại
Hoạt động nào thường thuộc về "Analysis & Design" nhưng không thuộc về "Programming Techniques"?
Lập kế hoạch dự án phần mềm
Xây dựng mô hình dữ liệu
Viết và kiểm tra mã nguồn
Phát triển giao diện người dùng
Interpreter (trình thông dịch) là gì?
Một công cụ dịch mã nguồn từ ngôn ngữ bậc cao sang ngôn ngữ máy mà không tạo ra tập tin thực thi
Một công cụ để biên dịch mã nguồn thành mã máy
Một công cụ để tạo giao diện người dùng
Một phần mềm hỗ trợ gỡ lỗi mã nguồn
Kỹ thuật lập trình nào tập trung vào việc chia chương trình thành các hàm và thủ tục?
Lập trình hướng đối tượng
Lập trình hàm
Lập trình thủ tục
Lập trình logic
Khi một chương trình máy tính được chạy, bước đầu tiên mà hệ điều hành thực hiện là gì?
Thực hiện các lệnh trong chương trình
Đọc các tài liệu thiết kế
Xóa bộ nhớ cache
Nạp chương trình vào bộ nhớ chính
Ngôn ngữ lập trình bậc cao có đặc điểm gì nổi bật so với ngôn ngữ lập trình bậc thấp?
Cú pháp gần gũi với ngôn ngữ máy
Dễ đọc và viết hơn cho lập trình viên
Không cần phải biên dịch hoặc thông dịch
Hoạt động trực tiếp trên phần cứng
Bước nào trong quá trình lập trình liên quan đến việc sửa lỗi và cải thiện chương trình sau khi nó đã được triển khai và sử dụng?
Thiết kế hệ thống
Phân tích yêu cầu
Bảo trì phần mềm
Viết mã nguồn
Khi lập trình bằng ngôn ngữ bậc cao, mã nguồn thường được chuyển đổi thành machine code bởi công cụ nào?
Trình hợp ngữ (assembler)
Trình biên dịch (compiler)
Trình thông dịch (interpreter)
Trình viết mã (code writer)
Bước nào trong quá trình lập trình bao gồm việc viết mã lệnh để thực hiện các chức năng đã được thiết kế?
Thiết kế hệ thống
Viết mã nguồn
Phân tích yêu cầu
Kiểm thử phần mềm
Vai trò nào dưới đây không phải là một vai trò chính của lập trình trong phát triển phần mềm?
Tạo ra các ứng dụng và phần mềm
Phân tích yêu cầu và lập kế hoạch
Thiết kế giao diện người dùng
Quản lý tài chính và ngân sách dự án
Trong SDLC, giai đoạn nào được thực hiện sau khi hoàn thành việc phát triển phần mềm để đảm bảo chất lượng và chức năng của hệ thống?
Triển khai
Bảo trì
Phân tích yêu cầu
Kiểm thử
Lợi ích chính của việc sử dụng machine code là gì?
Dễ đọc và viết cho lập trình viên
Có thể thực hiện trực tiếp bởi CPU mà không cần chuyển đổi
Có thể chạy trên nhiều loại hệ điều hành
Hỗ trợ các tính năng lập trình hướng đối tượng
Một trong các chức năng chính của compiler là gì?
Kiểm tra và phát hiện lỗi cú pháp trong mã nguồn
Xử lý dữ liệu đầu vào từ người dùng
Tạo giao diện người dùng
Tự động hoàn thành mã nguồn
Trong ngành công nghiệp nào lập trình có vai trò quan trọng trong việc phát triển các hệ thống nhúng và thiết bị thông minh?
Ngành y tế
Ngành tài chính
Ngành công nghiệp điện tử và viễn thông
Ngành giải trí
Bước nào trong quá trình lập trình liên quan đến việc xác định những gì chương trình cần phải làm và các yêu cầu của người dùng?
Phân tích yêu cầu
Viết mã nguồn
Kiểm thử phần mềm
Thiết kế hệ thống
Bước nào trong quá trình lập trình bao gồm việc tạo ra các tài liệu kỹ thuật và mô hình thiết kế để hướng dẫn việc viết mã nguồn?
Phân tích yêu cầu
Thiết kế hệ thống
Kiểm thử phần mềm
Triển khai
Compiler (trình biên dịch) là gì?
Một công cụ để chạy mã nguồn mà không cần biên dịch
Một công cụ dịch mã nguồn từ ngôn ngữ bậc cao sang ngôn ngữ máy
Một công cụ thiết kế giao diện người dùng
Một phần mềm hỗ trợ gỡ lỗi mã nguồn
Ngôn ngữ lập trình nào dưới đây thường được sử dụng với interpreter?
C++
Java
Python
Fortran
Toán tử tăng một đơn vị ++ và giảm một đơn vị -- dùng để làm gì trong C++?
Gán giá trị cho biến
Tăng/giảm giá trị của biến lên 1 đơn vị
So sánh giá trị của biến với một giá trị khác
Không có tác dụng gì
Toán tử [] được sử dụng để làm gì trong C++?
Tham chiếu đến một phần tử trong một mảng
Thực hiện phép toán bit shift trái
Thực hiện phép toán bit shift phải
Tham chiếu đến một thuộc tính trong một đối tượng
Đoạn mã sau sẽ in ra kết quả gì? Mã giả lập: int a = 9, b = 4; int c = a % b; cout << "a%b=" << c;
a%b=2,5
a%b=2.5
a%b=2
a%b=1
Dòng lệnh nào bị lỗi trong đoạn mã bên dưới? Mã minh họa: int n = 1; do { cout << n << endl; n--; } while (n < 10);
1
3
5
không có lỗi
Trong cấu trúc switch-case, câu lệnh nào được thực thi nếu không có case nào khớp với giá trị đang được kiểm tra?
Default
Continue
Break
Exit
Đoạn mã sau sẽ in ra kết quả gì? Hình minh họa chương trình C++ tính tổng hoặc in chuỗi "Sum: ...".
Sum
sum
Sum: 110
Sum: 55
Dòng lệnh nào bị lỗi trong đoạn mã bên dưới? Mã minh họa: int sum = 0; for (int i = 1; i <= 10; i++) { sum += i; } cout << "Sum: " << sum;
1
4
7
không có lỗi
Đoạn code sau sẽ in ra gì? Hình minh họa: gọi hàm in hai giá trị a và b với a là số nguyên 5, b là số thực 5.5.
Integer number: 5 and double number: 5.5
Integer number: 5
Double number: 5.5
Không phương án nào đúng
Con trỏ trong ngôn ngữ C++ là gì?
Biến lưu trữ địa chỉ bộ nhớ
Biến lưu giá trị của biến khác
Biến lưu trữ kích thước bộ nhớ của biến
Biến lưu trữ giá trị của con trỏ khác
Đoạn mã sau sẽ in ra kết quả gì? Mã minh họa: int num = 5; if (num > 10) { cout << "Greater than 10"; } else { cout << "Less than or equal to 10"; }
Greater than 10
Less than or equal to 10
Không in ra gì cả
Lỗi biên dịch
Địa chỉ của một biến được xác định bởi gì?
Hằng số
Tham chiếu
Con trỏ
Kiểu dữ liệu
Đoạn mã sau sẽ in ra kết quả gì? Mã minh họa: int i = 0; while (i < 5) { cout << i << " "; i++; }
01234
12345
1234
0246
Dòng lệnh nào bị lỗi trong chương trình bên dưới? Mã minh họa: int x = 5; int y = 10; int sum = x + y; cout << "Tong cua x va y la: " << sum << endl; return 0;
2
7
8
9
Một hàm trong C++ bắt buộc phải có gì?
Tên hàm
Kiểu trả về
Tham số
Tất cả các phương án đều đúng
Phép gán giá trị cho một biến được thực hiện theo cú pháp nào?
Biến = giá trị;
giá_trị = biến;
Giá_trị + biến;
biến + giá_trị;
Dòng lệnh nào bị lỗi trong đoạn mã bên dưới?
2
5
8
Không có lỗi
Toán tử "<<" được sử dụng để làm gì trong C++?
In ra giá trị của biến trên màn hình
Gán giá trị của một biến cho một biến khác
So sánh giá trị của hai biến
Lấy địa chỉ của biến
Dòng lệnh nào bị lỗi trong chương trình bên dưới?
2
3
11
12
Đoạn chương trình sau sẽ in ra giá trị là gì?
Result: 1
Result: 0
Result: True
Result: False
Đoạn mã sau sẽ in ra kết quả gì?
0 1 2 3 4
1 2 3 4 5
1 2 3 4
0 2 4 6
Đoạn mã sau sẽ in ra kết quả gì?
Kích thước của kiểu dữ liệu này là: 2 byte
Kích thước của kiểu dữ liệu này là: 4 byte
Kích thước của kiểu dữ liệu này là: 8 byte
Kích thước của kiểu dữ liệu này là: 32 byte
Hàm là gì trong ngôn ngữ C++?
Một biến
Một khối lệnh
Một đối tượng
Một khối mã thực hiện một chức năng
Dòng lệnh nào bị lỗi trong đoạn mã bên dưới?
1
3
5
không có lỗi
Trong C++, cấu trúc lặp do-while thực hiện việc gì?
Lặp lại một phần của chương trình nếu điều kiện là đúng
Lặp lại một phần của chương trình nếu điều kiện là sai
Lặp lại toàn bộ chương trình nếu điều kiện là đúng
Lặp lại toàn bộ chương trình nếu điều kiện là sai
Cách khai báo biến trong C++?
Đoạn mã sau sẽ in ra kết quả gì?
A>B>C
A>B,C>=B
Không in ra gì cả
Lỗi biên dịch
Trong cấu trúc rẽ nhánh switch-case, trường hợp nào sẽ được thực hiện nếu không có trường hợp khớp với giá trị của biểu thức điều kiện?
Trường hợp đầu tiên sẽ được thực hiện
Trường hợp cuối cùng sẽ được thực hiện
Không có trường hợp nào được thực hiện
Trường hợp trước đó sẽ được thực hiện
Trong C++, break được sử dụng để làm gì trong cấu trúc vòng lặp?
Thoát khỏi chương trình
Chuyển sang vòng lặp tiếp theo
Thoát khỏi vòng lặp hiện tại
Chuyển đến câu lệnh tiếp theo bên dưới vòng lặp
Đoạn chương trình C++ sau sẽ in ra giá trị gì? In ra nội dung của cout khi x = true, y = false, và result = x + y trong hàm main.
Result: 1
Result: 0
Result: True
Lỗi biên dịch
Đoạn mã C++ sau sẽ in ra kết quả gì? Cho day = 3, sử dụng switch(day) với các case 1, 2, 3 và default in tên ngày.
Monday
Tuesday
Wednesday
Invalid day
Hàm được gọi bao nhiêu lần trong đoạn code sau? Cho hàm add(int a, int b) trả về a + b và trong main gọi add(1,2) gán cho x, gọi add(3,4) gán cho y.
Một lần
Hai lần
Ba lần
Không có hàm nào được gọi trong code trên
Đoạn mã C++ sau sẽ in ra kết quả gì? In kích thước kiểu dữ liệu short int bằng sizeof(short int) theo đơn vị byte.
Kích thước của kiểu dữ liệu này là: 2 byte
Kích thước của kiểu dữ liệu này là: 4 byte
Kích thước của kiểu dữ liệu này là: 8 byte
Kích thước của kiểu dữ liệu này là: 32 byte
Vòng lặp for trong ngôn ngữ C++ thường được sử dụng khi nào?
Khi số lần lặp không được biết trước
Khi cần lặp ít hơn 3 lần
Khi cần lặp vô hạn
Khi số lần lặp được biết trước
Đoạn mã C++ sau sẽ in ra kết quả gì? In kích thước kiểu dữ liệu double bằng sizeof(double) theo đơn vị byte.
Kích thước của kiểu dữ liệu này là: 2 byte
Kích thước của kiểu dữ liệu này là: 4 byte
Kích thước của kiểu dữ liệu này là: 8 byte
Kích thước của kiểu dữ liệu này là: 32 byte
Trong C++, kiểu dữ liệu nào được sử dụng để lưu trữ số nguyên không âm?
int
short
long
unsigned
Cấu trúc vòng lặp for trong C++ bao gồm các phần nào?
Biểu thức khởi tạo, điều kiện, và bước lặp
Biểu thức điều kiện và bước lặp
Biểu thức khởi tạo và điều kiện
Chỉ có biểu thức điều kiện
Kiểu dữ liệu nào sau đây không phải là kiểu dữ liệu cơ bản trong C++?
int
float
double
string
Thuật toán là gì?
Một quy trình thực hiện bài toán
Một quy trình máy tính thực hiện theo các bước
Một cách giải quyết vấn đề bằng code
Một cách vẽ lưu đồ
Tính chất nào của thuật toán đảm bảo rằng thuật toán sẽ kết thúc sau một số các bước?
Tính xác định
Tính đầu vào
Tính hữu hạn
Tính khả thi
Thuật toán có thể được biểu diễn bằng cách nào?
Lưu đồ
Ngôn ngữ tự nhiên
Pseudocode
Cả ba đáp án trên
Đệ quy là phương pháp gì trong thuật toán?
Lặp lại một bước nhiều lần
Gọi chính nó
Sắp xếp các bước theo thứ tự
So sánh các phần tử
Độ phức tạp thời gian của thuật toán sắp xếp nổi bọt (Bubble Sort) trong trường hợp xấu nhất là bao nhiêu?
O(n)
O(n2)
O(logn)
Lệnh nào sau đây không phải là phép tính cơ bản?
Câu lệnh gán
Phép cộng
Phép nhân
Lệnh lặp for
Đặc điểm nào sau đây không phải là tính chất của thuật toán?
Tính hiệu quả
Tính đúng đắn
Tính không xác định
Tính khả thi
Phép toán trong thuật toán có độ phức tạp O(1) thường gọi là?
Phép toán tuyến tính
Phép toán hằng số
Phép toán mũ N
Phép toán logarit
Khi phân tích thuật toán, mục tiêu chính là gì?
Đảm bảo tính chính xác
Tối ưu hóa hiệu suất
Tăng độ phức tạp của thuật toán
Giảm số dòng code
Khi nói độ phức tạp thời gian của thuật toán là O(logn) , điều đó có nghĩa là gì?
Thời gian thực hiện tăng theo lũy thừa của n
Thời gian thực hiện tăng tuyến tính theo n
Thời gian thực hiện tỷ lệ với Logarit của n
Thời gian thực hiện không đổi
Khi xếp hạng thuật toán dựa trên độ phức tạp thời gian, kí hiệu nào dùng để biểu diễn trường hợp xấu nhất?
O
θ
Ω
Δ
Độ phức tạp của thuật toán tìm kiếm nhị phân trong trường hợp xấu nhất là gì?
O(n)
O(n2)
O(logn)
O(1)
Big-O là gì?
đo độ phức tạp thời gian tốt nhất
đo độ phức tạp thời gian trung bình
đo độ phức tạp thời gian xấu nhất
đo độ phức tạp không gian tốt nhất
Thuật toán tìm kiếm tuần tự có độ phức tạp thời gian là bao nhiêu trong trường hợp xấu nhất?
O(n2)
O(logn)
O(n)
O(1)
Một thuật toán có thể có bao nhiêu đầu vào?
0
1
Không giới hạn
Chỉ 2
Trong quá trình phân tích thuật toán, thuật toán có bậc là g(n) nếu f(n) thoả mãn điều kiện nào?
f(n) = O(g(n))
f(n) = Ω(g(n))
f(n) = θ(g(n))
f(n) = O(g(n)) và f(n) = Ω(g(n))
Trong các phép toán cơ bản, câu lệnh nào được thực hiện n lần trong thuật toán đếm số phần tử chẵn trong một danh sách?
Gán giá trị
Phép toán cộng
Phép toán so sánh
Lặp for
Trong trường hợp tồi nhất, số lần so sánh tối thiểu cần để tìm kiếm phần tử trong danh sách đã sắp xếp bằng thuật toán nhị phân là bao nhiêu?
O(n)
O(logn)
O(1)
O(nlogn)
Trong sắp xếp chọn (Selection Sort), độ phức tạp thời gian là bao nhiêu?
O(nlogn)
O(n)
O(n2)
O(logn)
Đệ quy phải có yếu tố nào để đảm bảo kết thúc?
Điều kiện dừng
Vòng lặp vô hạn
Phép cộng
Phép gán
Trong thuật toán đệ quy mỗi lần gọi hàm có thể gây ra vấn đề gì?
Bộ nhớ không được giải phóng
Vòng lặp vô hạn
Phép tính dư thừa
Tạo ra stack overflow
Thuật toán tìm kiếm nhị phân yêu cầu gì về dữ liệu đầu vào?
Dữ liệu phải sắp xếp theo thứ tự
Dữ liệu có thể không sắp xếp
Dữ liệu phải chứa các phần tử giống nhau
Dữ liệu phải có số lượng phần tử chẵn
Trong thuật toán sắp xếp nổi bọt (Bubble Sort), các phần tử được sắp xếp như thế nào?
Đổi chỗ liên tiếp giữa các phần tử kề nhau
Chèn phần tử vào vị trí đúng
Phân mảng thành hai phần
Phân chia mảng theo pivot
Độ phức tạp thời gian của thuật toán Interchange Sort là bao nhiêu?
O(n)
O(n2)
O(logn)
O(nlogn)
Trong thuật toán đệ quy, nếu không có điều kiện dừng thì điều gì sẽ xảy ra?
Thuật toán sẽ dừng ngay lập tức
Thuật toán sẽ không bao giờ kết thúc
Thuật toán sẽ chạy ngẫu nhiên
Thuật toán sẽ trả về giá trị không đúng
Big-O của thuật toán tìm kiếm tuyến tính trong trường hợp tốt nhất là gì?
O(n)
O(logn)
O(1)
O(n2)
Trong thuật toán tìm kiếm nhị phân, khi so sánh với phần tử giữa mảng mà x nhỏ hơn, điều gì sẽ xảy ra?
Tiếp tục tìm kiếm trong nửa mảng phía trên
Tiếp tục tìm kiếm trong nửa mảng phía dưới
Tìm kiếm lại toàn bộ mảng
Kết thúc thuật toán
Để xác định độ phức tạp của một thuật toán, bước đầu tiên cần làm là gì?
Đếm số lần thực hiện các phép tính cơ bản
Đếm số dòng code
Xác định loại dữ liệu đầu vào
Xác định ngôn ngữ lập trình
Khi sử dụng thuật toán tìm kiếm nhị phân trên mảng có n phần tử, số lần so sánh tối đa là bao nhiêu?
O(n)
O(logn)
O(1)
O(n2)
Đối với thuật toán tìm kiếm nhị phân, khi kích thước mảng là n=2k , số lần so sánh là bao nhiêu?
k
n
2k
2k
