wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Kỹ thuật lập trình TEL1340 — Trang bìa

Total questions: 116

Worksheet time: 58mins

Name
Class
Date
1.

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

a)

Viết mã nguồn không theo cấu trúc

b)

Viết mã nguồn một lần và không thay đổi

c)

Tránh sử dụng bất kỳ công cụ kiểm thử nào

d)

Sử dụng các công cụ kiểm thử tự động và viết kiểm thử đơn vị

2.

Tính năng nào dưới đây thường có trong các IDE hiện đại?

a)

Tự động hoàn thành mã nguồn (code auto-completion)

b)

Chạy các ứng dụng di động mà không cần SDK

c)

Tạo và chỉnh sửa đồ họa

d)

Tự động tạo tài liệu thiết kế

3.

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?

a)

Pascal

b)

Swift

c)

Assembly

d)

R

4.

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

a)

Tài liệu thiết kế

b)

Tập tin hình ảnh

c)

Tập tin văn bản

d)

Tập tin thực thi (executable file)

5.

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?

a)

Viết mã nguồn

b)

Thiết kế hệ thống

c)

Kiểm thử phần mềm

d)

Phân tích yêu cầu

6.

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?

a)

Tính đa hình

b)

Tính trừu tượng

c)

Tính đóng gói

d)

Tính kế thừa

7.

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?

a)

Java

b)

C#

c)

Python

d)

Objective-C

8.

Lợi ích chính của việc sử dụng một IDE là gì?

a)

Giảm tốc độ xử lý của máy tính

b)

Thay thế hoàn toàn ngôn ngữ lập trình

c)

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

d)

Tăng kích thước của mã nguồn

9.

Điều nào mô tả chính xác hơn về Programming Techniques so với Analysis & Design?

a)

Tập trung vào việc xác định yêu cầu và thiết kế hệ thống

b)

Tập trung vào việc viết mã và tối ưu hóa phần mềm

c)

Tập trung vào việc quản lý dự án và phân phối tài nguyên

d)

Tập trung vào việc kiểm thử và bảo trì phần mềm

10.

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

a)

Tạo ra mã nguồn không thể hiểu được cho người khác

b)

Viết mã nguồn mà không tuân theo quy tắc đặt tên

c)

Cung cấp tài liệu và comment đầy đủ cho mã nguồn

d)

Sử dụng các thuật toán không được tài liệu hóa

11.

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?

a)

Chạy phần mềm mà không thực hiện bất kỳ kiểm thử nào

b)

Viết mã nguồn mà không tham khảo yêu cầu người dùng

c)

Xác định rõ yêu cầu người dùng và thực hiện kiểm thử đầy đủ

d)

Chỉ kiểm tra phần mềm sau khi hoàn thành toàn bộ phát triển

12.

Làm thế nào để đảm bảo mã nguồn có thể dễ dàng mở rộng trong tương lai?

a)

Viết mã nguồn theo cách không có cấu trúc

b)

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

c)

Để toàn bộ logic trong một hàm lớn

d)

Tránh việc tổ chức mã nguồn thành các lớp và hàm nhỏ hơn

13.

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

a)

Biên dịch

b)

Tính toán

c)

Dịch

d)

Thực thi

14.

Khi sử dụng interpreter, mã nguồn được xử lý như thế nào?

a)

Được biên dịch toàn bộ trước khi thực thi

b)

Được dịch và thực thi từng lệnh một

c)

Được chuyển đổi thành mã máy và lưu trữ trên đĩa

d)

Được lưu trữ dưới dạng tập tin nhị phân

15.

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?

a)

Thiết kế

b)

Kiểm thử

c)

Phát triển

d)

Phân tích yêu cầu

16.

Cách nào dưới đây giúp cải thiện khả năng đọc và bảo trì mã nguồn?

a)

Sử dụng tên biến và hàm không có ý nghĩa

b)

Viết mã nguồn mà không có tài liệu hoặc bình luận

c)

Sử dụng tên biến và hàm mô tả rõ ràng và có ý nghĩa

d)

Để toàn bộ logic trong một hàm duy nhất

17.

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?

a)

Trình biên dịch (compiler)

b)

Trình thông dịch (interpreter)

c)

Trình gỡ lỗi (debugger)

d)

Trình soạn thảo văn bản

18.

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?

a)

Bộ điều khiển (Control Unit)

b)

Bộ xử lý trung tâm (CPU)

c)

Bộ nhớ cache

d)

Thiết bị nhập xuất

19.

Khác biệt chính giữa interpreter và compiler là gì?

a)

Interpreter biên dịch toàn bộ mã nguồn thành mã máy trong khi compiler chỉ dịch lệnh

b)

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

c)

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

d)

Interpreter cần phải tạo ra tập tin thực thi trong khi compiler không cần

20.

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?

a)

Chỉ bộ nhớ

b)

Bộ nhớ và các thiết bị nhập/xuất

c)

Các thiết bị lưu trữ

d)

Chỉ CPU

21.

Machine code là gì?

a)

Ngôn ngữ lập trình bậc cao

b)

Mã lệnh được viết bằng ngôn ngữ hợp ngữ

c)

Mã lệnh nhị phân mà bộ xử lý máy tính có thể trực tiếp thực hiện

d)

Ngôn ngữ lập trình kịch bản

22.

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?

a)

Lập trình hàm (Functional Programming)

b)

Lập trình hướng đối tượng (Object-Oriented Programming)

c)

Lập trình cấu trúc (Structured Programming)

d)

Lập trình hợp ngữ (Assembly Programming)

23.

Một IDE điển hình thường không bao gồm tính năng nào sau đây?

a)

Trình biên dịch (compiler)

b)

Trình soạn thảo mã nguồn

c)

Trình duyệt web

d)

Trình gỡ lỗi (debugger)

24.

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?

a)

Lấy lệnh (Fetch)

b)

Giải mã lệnh (Decode)

c)

Ghi lệnh (Write)

d)

Thực hiện lệnh (Execute)

25.

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?

a)

Phân tích yêu cầu

b)

Thiết kế

c)

Phát triển

d)

Triển khai

26.

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?

a)

Tính trừu tượng

b)

Tính kế thừa

c)

Tính phân tách

d)

Tính đồng nhất

27.

Sự khác biệt chính giữa "Programming Techniques" và "Analysis & Design" là:

a)

"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

b)

"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

c)

"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

d)

"Analysis & Design" và "Programming Techniques" đều liên quan đến việc viết mã nguồn

28.

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?

a)

Tối ưu hóa mã nguồn

b)

Thiết kế mô hình dữ liệu

c)

Phân tích quy trình nghiệp vụ

d)

Xác định yêu cầu phần mềm

29.

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?

a)

Viết mã nguồn một cách ngẫu nhiên mà không có cấu trúc

b)

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

c)

Tránh sử dụng các comments trong mã nguồn

d)

Để tất cả các logic trong một hàm duy nhất

30.

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?

a)

Kiểm thử

b)

Phát triển

c)

Bảo trì

d)

Thiết kế

31.

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?

a)

Phân tích yêu cầu

b)

Thiết kế đối tượng

c)

Tối ưu hóa thuật toán

d)

Tạo cấu trúc dữ liệu

32.

Một trong các ưu điểm của việc sử dụng interpreter là gì?

a)

Chạy chương trình nhanh hơn so với việc sử dụng compiler

b)

Phát hiện lỗi dễ hơn trong mã nguồn khi chương trình đang chạy

c)

Tạo ra các tập tin thực thi để phân phối dễ dàng

d)

Biên dịch mã nguồn thành mã máy một lần và sử dụng lại

33.

Hoạt động nào thường thuộc về "Analysis & Design" nhưng không thuộc về "Programming Techniques"?

a)

Lập kế hoạch dự án phần mềm

b)

Xây dựng mô hình dữ liệu

c)

Viết và kiểm tra mã nguồn

d)

Phát triển giao diện người dùng

34.

Interpreter (trình thông dịch) là gì?

a)

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

b)

Một công cụ để biên dịch mã nguồn thành mã máy

c)

Một công cụ để tạo giao diện người dùng

d)

Một phần mềm hỗ trợ gỡ lỗi mã nguồn

35.

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?

a)

Lập trình hướng đối tượng

b)

Lập trình hàm

c)

Lập trình thủ tục

d)

Lập trình logic

36.

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

a)

Thực hiện các lệnh trong chương trình

b)

Đọc các tài liệu thiết kế

c)

Xóa bộ nhớ cache

d)

Nạp chương trình vào bộ nhớ chính

37.

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?

a)

Cú pháp gần gũi với ngôn ngữ máy

b)

Dễ đọc và viết hơn cho lập trình viên

c)

Không cần phải biên dịch hoặc thông dịch

d)

Hoạt động trực tiếp trên phần cứng

38.

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?

a)

Thiết kế hệ thống

b)

Phân tích yêu cầu

c)

Bảo trì phần mềm

d)

Viết mã nguồn

39.

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?

a)

Trình hợp ngữ (assembler)

b)

Trình biên dịch (compiler)

c)

Trình thông dịch (interpreter)

d)

Trình viết mã (code writer)

40.

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

a)

Thiết kế hệ thống

b)

Viết mã nguồn

c)

Phân tích yêu cầu

d)

Kiểm thử phần mềm

41.

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?

a)

Tạo ra các ứng dụng và phần mềm

b)

Phân tích yêu cầu và lập kế hoạch

c)

Thiết kế giao diện người dùng

d)

Quản lý tài chính và ngân sách dự án

42.

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?

a)

Triển khai

b)

Bảo trì

c)

Phân tích yêu cầu

d)

Kiểm thử

43.

Lợi ích chính của việc sử dụng machine code là gì?

a)

Dễ đọc và viết cho lập trình viên

b)

Có thể thực hiện trực tiếp bởi CPU mà không cần chuyển đổi

c)

Có thể chạy trên nhiều loại hệ điều hành

d)

Hỗ trợ các tính năng lập trình hướng đối tượng

44.

Một trong các chức năng chính của compiler là gì?

a)

Kiểm tra và phát hiện lỗi cú pháp trong mã nguồn

b)

Xử lý dữ liệu đầu vào từ người dùng

c)

Tạo giao diện người dùng

d)

Tự động hoàn thành mã nguồn

45.

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?

a)

Ngành y tế

b)

Ngành tài chính

c)

Ngành công nghiệp điện tử và viễn thông

d)

Ngành giải trí

46.

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?

a)

Phân tích yêu cầu

b)

Viết mã nguồn

c)

Kiểm thử phần mềm

d)

Thiết kế hệ thống

47.

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?

a)

Phân tích yêu cầu

b)

Thiết kế hệ thống

c)

Kiểm thử phần mềm

d)

Triển khai

48.

Compiler (trình biên dịch) là gì?

a)

Một công cụ để chạy mã nguồn mà không cần biên dịch

b)

Một công cụ dịch mã nguồn từ ngôn ngữ bậc cao sang ngôn ngữ máy

c)

Một công cụ thiết kế giao diện người dùng

d)

Một phần mềm hỗ trợ gỡ lỗi mã nguồn

49.

Ngôn ngữ lập trình nào dưới đây thường được sử dụng với interpreter?

a)

C++

b)

Java

c)

Python

d)

Fortran

50.

Toán tử tăng một đơn vị ++ và giảm một đơn vị -- dùng để làm gì trong C++?

a)

Gán giá trị cho biến

b)

Tăng/giảm giá trị của biến lên 1 đơn vị

c)

So sánh giá trị của biến với một giá trị khác

d)

Không có tác dụng gì

51.

Toán tử [] được sử dụng để làm gì trong C++?

a)

Tham chiếu đến một phần tử trong một mảng

b)

Thực hiện phép toán bit shift trái

c)

Thực hiện phép toán bit shift phải

d)

Tham chiếu đến một thuộc tính trong một đối tượng

52.

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

a%b=2,5

b)

a%b=2.5

c)

a%b=2

d)

a%b=1

53.

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

a)

1

b)

3

c)

5

d)

không có lỗi

54.

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?

a)

Default

b)

Continue

c)

Break

d)

Exit

55.

Đ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: ...".

a)

Sum

b)

sum

c)

Sum: 110

d)

Sum: 55

56.

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;

a)

1

b)

4

c)

7

d)

không có lỗi

57.

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

a)

Integer number: 5 and double number: 5.5

b)

Integer number: 5

c)

Double number: 5.5

d)

Không phương án nào đúng

58.

Con trỏ trong ngôn ngữ C++ là gì?

a)

Biến lưu trữ địa chỉ bộ nhớ

b)

Biến lưu giá trị của biến khác

c)

Biến lưu trữ kích thước bộ nhớ của biến

d)

Biến lưu trữ giá trị của con trỏ khác

59.

Đ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"; }

a)

Greater than 10

b)

Less than or equal to 10

c)

Không in ra gì cả

d)

Lỗi biên dịch

60.

Địa chỉ của một biến được xác định bởi gì?

a)

Hằng số

b)

Tham chiếu

c)

Con trỏ

d)

Kiểu dữ liệu

61.

Đoạn mã sau sẽ in ra kết quả gì? Mã minh họa: int i = 0; while (i < 5) { cout << i << " "; i++; }

a)

01234

b)

12345

c)

1234

d)

0246

62.

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;

a)

2

b)

7

c)

8

d)

9

63.

Một hàm trong C++ bắt buộc phải có gì?

a)

Tên hàm

b)

Kiểu trả về

c)

Tham số

d)

Tất cả các phương án đều đúng

64.

Phép gán giá trị cho một biến được thực hiện theo cú pháp nào?

a)

Biến = giá trị;

b)

giá_trị = biến;

c)

Giá_trị + biến;

d)

biến + giá_trị;

65.

Dòng lệnh nào bị lỗi trong đoạn mã bên dưới?

a)

2

b)

5

c)

8

d)

Không có lỗi

66.

Toán tử "<<" được sử dụng để làm gì trong C++?

a)

In ra giá trị của biến trên màn hình

b)

Gán giá trị của một biến cho một biến khác

c)

So sánh giá trị của hai biến

d)

Lấy địa chỉ của biến

67.

Dòng lệnh nào bị lỗi trong chương trình bên dưới?

a)

2

b)

3

c)

11

d)

12

68.

Đoạn chương trình sau sẽ in ra giá trị là gì?

a)

Result: 1

b)

Result: 0

c)

Result: True

d)

Result: False

69.

Đoạn mã sau sẽ in ra kết quả gì?

a)

0 1 2 3 4

b)

1 2 3 4 5

c)

1 2 3 4

d)

0 2 4 6

70.

Đoạn mã sau sẽ in ra kết quả gì?

a)

Kích thước của kiểu dữ liệu này là: 2 byte

b)

Kích thước của kiểu dữ liệu này là: 4 byte

c)

Kích thước của kiểu dữ liệu này là: 8 byte

d)

Kích thước của kiểu dữ liệu này là: 32 byte

71.

Hàm là gì trong ngôn ngữ C++?

a)

Một biến

b)

Một khối lệnh

c)

Một đối tượng

d)

Một khối mã thực hiện một chức năng

72.

Dòng lệnh nào bị lỗi trong đoạn mã bên dưới?

a)

1

b)

3

c)

5

d)

không có lỗi

73.

Trong C++, cấu trúc lặp do-while thực hiện việc gì?

a)

Lặp lại một phần của chương trình nếu điều kiện là đúng

b)

Lặp lại một phần của chương trình nếu điều kiện là sai

c)

Lặp lại toàn bộ chương trình nếu điều kiện là đúng

d)

Lặp lại toàn bộ chương trình nếu điều kiện là sai

74.

Cách khai báo biến trong C++?

a)

= ;

b)

= ;

c)

= ;

d)

= ;

75.

Đoạn mã sau sẽ in ra kết quả gì?

a)

A>B>C

b)

A>B,C>=B

c)

Không in ra gì cả

d)

Lỗi biên dịch

76.

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?

a)

Trường hợp đầu tiên sẽ được thực hiện

b)

Trường hợp cuối cùng sẽ được thực hiện

c)

Không có trường hợp nào được thực hiện

d)

Trường hợp trước đó sẽ được thực hiện

77.

Trong C++, break được sử dụng để làm gì trong cấu trúc vòng lặp?

a)

Thoát khỏi chương trình

b)

Chuyển sang vòng lặp tiếp theo

c)

Thoát khỏi vòng lặp hiện tại

d)

Chuyển đến câu lệnh tiếp theo bên dưới vòng lặp

78.

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

a)

Result: 1

b)

Result: 0

c)

Result: True

d)

Lỗi biên dịch

79.

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

a)

Monday

b)

Tuesday

c)

Wednesday

d)

Invalid day

80.

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.

a)

Một lần

b)

Hai lần

c)

Ba lần

d)

Không có hàm nào được gọi trong code trên

81.

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

a)

Kích thước của kiểu dữ liệu này là: 2 byte

b)

Kích thước của kiểu dữ liệu này là: 4 byte

c)

Kích thước của kiểu dữ liệu này là: 8 byte

d)

Kích thước của kiểu dữ liệu này là: 32 byte

82.

Vòng lặp for trong ngôn ngữ C++ thường được sử dụng khi nào?

a)

Khi số lần lặp không được biết trước

b)

Khi cần lặp ít hơn 3 lần

c)

Khi cần lặp vô hạn

d)

Khi số lần lặp được biết trước

83.

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

a)

Kích thước của kiểu dữ liệu này là: 2 byte

b)

Kích thước của kiểu dữ liệu này là: 4 byte

c)

Kích thước của kiểu dữ liệu này là: 8 byte

d)

Kích thước của kiểu dữ liệu này là: 32 byte

84.

Trong C++, kiểu dữ liệu nào được sử dụng để lưu trữ số nguyên không âm?

a)

int

b)

short

c)

long

d)

unsigned

85.

Cấu trúc vòng lặp for trong C++ bao gồm các phần nào?

a)

Biểu thức khởi tạo, điều kiện, và bước lặp

b)

Biểu thức điều kiện và bước lặp

c)

Biểu thức khởi tạo và điều kiện

d)

Chỉ có biểu thức điều kiện

86.

Kiểu dữ liệu nào sau đây không phải là kiểu dữ liệu cơ bản trong C++?

a)

int

b)

float

c)

double

d)

string

87.

Thuật toán là gì?

a)

Một quy trình thực hiện bài toán

b)

Một quy trình máy tính thực hiện theo các bước

c)

Một cách giải quyết vấn đề bằng code

d)

Một cách vẽ lưu đồ

88.

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?

a)

Tính xác định

b)

Tính đầu vào

c)

Tính hữu hạn

d)

Tính khả thi

89.

Thuật toán có thể được biểu diễn bằng cách nào?

a)

Lưu đồ

b)

Ngôn ngữ tự nhiên

c)

Pseudocode

d)

Cả ba đáp án trên

90.

Đệ quy là phương pháp gì trong thuật toán?

a)

Lặp lại một bước nhiều lần

b)

Gọi chính nó

c)

Sắp xếp các bước theo thứ tự

d)

So sánh các phần tử

91.

Độ 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?

a)

O(n)O(n)

b)

O(n2)O(n^2)

c)

O(logn)O(\log n)

92.

Lệnh nào sau đây không phải là phép tính cơ bản?

a)

Câu lệnh gán

b)

Phép cộng

c)

Phép nhân

d)

Lệnh lặp for

93.

Đặc điểm nào sau đây không phải là tính chất của thuật toán?

a)

Tính hiệu quả

b)

Tính đúng đắn

c)

Tính không xác định

d)

Tính khả thi

94.

Phép toán trong thuật toán có độ phức tạp O(1)O(1) thường gọi là?

a)

Phép toán tuyến tính

b)

Phép toán hằng số

c)

Phép toán mũ N

d)

Phép toán logarit

95.

Khi phân tích thuật toán, mục tiêu chính là gì?

a)

Đảm bảo tính chính xác

b)

Tối ưu hóa hiệu suất

c)

Tăng độ phức tạp của thuật toán

d)

Giảm số dòng code

96.

Khi nói độ phức tạp thời gian của thuật toán là O(logn)O(\log n) , điều đó có nghĩa là gì?

a)

Thời gian thực hiện tăng theo lũy thừa của n

b)

Thời gian thực hiện tăng tuyến tính theo n

c)

Thời gian thực hiện tỷ lệ với Logarit của n

d)

Thời gian thực hiện không đổi

97.

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?

a)

OO

b)

θ\theta

c)

Ω\Omega

d)

Δ\Delta

98.

Độ 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ì?

a)

O(n)O(n)

b)

O(n2)O(n^2)

c)

O(logn)O(\log n)

d)

O(1)O(1)

99.

Big-O là gì?

a)

đo độ phức tạp thời gian tốt nhất

b)

đo độ phức tạp thời gian trung bình

c)

đo độ phức tạp thời gian xấu nhất

d)

đo độ phức tạp không gian tốt nhất

100.

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?

a)

O(n2)O(n^2)

b)

O(logn)O(\log n)

c)

O(n)O(n)

d)

O(1)O(1)

101.

Một thuật toán có thể có bao nhiêu đầu vào?

a)

0

b)

1

c)

Không giới hạn

d)

Chỉ 2

102.

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?

a)

f(n) = O(g(n))O(g(n))

b)

f(n) = Ω(g(n))\Omega(g(n))

c)

f(n) = θ(g(n))\theta(g(n))

d)

f(n) = O(g(n))O(g(n)) và f(n) = Ω(g(n))\Omega(g(n))

103.

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?

a)

Gán giá trị

b)

Phép toán cộng

c)

Phép toán so sánh

d)

Lặp for

104.

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?

a)

O(n)O(n)

b)

O(logn)O(\log n)

c)

O(1)O(1)

d)

O(nlogn)O(n\log n)

105.

Trong sắp xếp chọn (Selection Sort), độ phức tạp thời gian là bao nhiêu?

a)

O(nlogn)O(n\log n)

b)

O(n)O(n)

c)

O(n2)O(n^2)

d)

O(logn)O(\log n)

106.

Đệ quy phải có yếu tố nào để đảm bảo kết thúc?

a)

Điều kiện dừng

b)

Vòng lặp vô hạn

c)

Phép cộng

d)

Phép gán

107.

Trong thuật toán đệ quy mỗi lần gọi hàm có thể gây ra vấn đề gì?

a)

Bộ nhớ không được giải phóng

b)

Vòng lặp vô hạn

c)

Phép tính dư thừa

d)

Tạo ra stack overflow

108.

Thuật toán tìm kiếm nhị phân yêu cầu gì về dữ liệu đầu vào?

a)

Dữ liệu phải sắp xếp theo thứ tự

b)

Dữ liệu có thể không sắp xếp

c)

Dữ liệu phải chứa các phần tử giống nhau

d)

Dữ liệu phải có số lượng phần tử chẵn

109.

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?

a)

Đổi chỗ liên tiếp giữa các phần tử kề nhau

b)

Chèn phần tử vào vị trí đúng

c)

Phân mảng thành hai phần

d)

Phân chia mảng theo pivot

110.

Độ phức tạp thời gian của thuật toán Interchange Sort là bao nhiêu?

a)

O(n)O(n)

b)

O(n2)O(n^2)

c)

O(logn)O(\log n)

d)

O(nlogn)O(n\log n)

111.

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?

a)

Thuật toán sẽ dừng ngay lập tức

b)

Thuật toán sẽ không bao giờ kết thúc

c)

Thuật toán sẽ chạy ngẫu nhiên

d)

Thuật toán sẽ trả về giá trị không đúng

112.

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

a)

O(n)O(n)

b)

O(logn)O(\log n)

c)

O(1)O(1)

d)

O(n2)O(n^2)

113.

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?

a)

Tiếp tục tìm kiếm trong nửa mảng phía trên

b)

Tiếp tục tìm kiếm trong nửa mảng phía dưới

c)

Tìm kiếm lại toàn bộ mảng

d)

Kết thúc thuật toán

114.

Để 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ì?

a)

Đếm số lần thực hiện các phép tính cơ bản

b)

Đếm số dòng code

c)

Xác định loại dữ liệu đầu vào

d)

Xác định ngôn ngữ lập trình

115.

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?

a)

O(n)O(n)

b)

O(logn)O(\log n)

c)

O(1)O(1)

d)

O(n2)O(n^2)

116.

Đối với thuật toán tìm kiếm nhị phân, khi kích thước mảng là n=2kn = 2^k , số lần so sánh là bao nhiêu?

a)

kk

b)

nn

c)

2k2k

d)

2k2^k