Câu hỏi: CSI106 Nhập môn khoa học máy tính – Bộ ôn tập thi lại số 4
60 câu trắc nghiệm kèm lời giải của môn Introduction to Computer Science, xếp đúng thứ tự trong đề. Trang 2/3 — câu 21–40.
Danh sách câu hỏi
40/60 câuCòn 20
ARadio and Microwaves
BInfrared wave and twisted-pair cable
CCoaxial cable and Fiber-optic cable
DWater and air
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Coaxial cable and Fiber-optic cable". Môi trường có dẫn hướng là môi trường dẫn tín hiệu đi trong một vật dẫn vật lý: cáp đồng trục dẫn tín hiệu điện trong lõi đồng có lưới chắn bọc ngoài, còn cáp quang dẫn tín hiệu ánh sáng trong lõi thuỷ tinh nhờ phản xạ toàn phần. "Radio and Microwaves" sai vì sóng vô tuyến và vi ba lan truyền tự do trong không gian, thuộc nhóm không dẫn hướng và dùng ăng ten thay vì dây. "Infrared wave and twisted-pair cable" sai vì dù cáp xoắn đôi đúng là môi trường có dẫn hướng, hồng ngoại lại là sóng truyền trong không khí, nên cặp này lẫn hai nhóm vào nhau. "Water and air" sai vì nước và không khí chỉ là môi trường tự nhiên, không phải vật dẫn được chế tạo để truyền tín hiệu trong viễn thông.
ADevelopers can test and add functionality in steps.
BIt requires all requirements up front before development.
CIt involves minimal testing.
DIt completes design and implementation simultaneously.
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Developers can test and add functionality in steps.". Khi hệ thống được dựng dần theo từng phần rồi tích hợp, mỗi phần vừa xong là đã chạy và kiểm thử được, nên lỗi và sai lệch yêu cầu lộ ra sớm, người dùng thấy sản phẩm chạy thật từ giai đoạn đầu và việc thêm chức năng về sau dựa trên nền đã được kiểm chứng. Phương án "It requires all requirements up front before development." mô tả đòi hỏi của mô hình thác nước, hơn nữa đây là một ràng buộc bất lợi chứ không phải lợi ích. Phương án "It involves minimal testing." sai ngược chiều: cách làm từng phần kiểm thử nhiều lần hơn vì mỗi lần tích hợp đều phải kiểm lại. Phương án "It completes design and implementation simultaneously." không phải đặc trưng của cách làm này, và gộp thiết kế với hiện thực cũng chẳng phải điều đáng coi là ưu điểm.
Aunion
Bjoin
Cproject
Dall of these above
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "project". Phép chiếu là phép toán một ngôi: nó nhận đúng một quan hệ làm đầu vào và sinh ra quan hệ mới chỉ gồm những cột được chọn, số dòng không đổi. "union" cần hai quan hệ có cùng cấu trúc để gộp các dòng của chúng lại, nên là phép hai ngôi. "join" cũng lấy hai quan hệ rồi ghép từng cặp dòng theo điều kiện trên thuộc tính chung, tức hai ngôi. "all of these above" chỉ đúng nếu mọi phép được liệt kê đều một ngôi, nhưng phép gộp và phép ghép vừa nêu đều đòi hai bảng đầu vào.
AA stack follows FIFO, and a queue follows LIFO
BA stack is a hierarchical data structure, and a queue is not
CA stack is LIFO, and a queue is FIFO
DThere is no difference between a stack and a queue
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "A stack is LIFO, and a queue is FIFO". Ngăn xếp chỉ cho thêm và lấy ở cùng một đầu nên phần tử vào sau ra trước, giống chồng đĩa; hàng đợi thêm ở một đầu và lấy ở đầu kia nên phần tử vào trước ra trước, giống dòng người xếp hàng. Phương án "A stack follows FIFO, and a queue follows LIFO" đảo ngược đúng hai quy tắc đó, nên sai hoàn toàn. Phương án "A stack is a hierarchical data structure, and a queue is not" gán sai bản chất: cả hai đều là cấu trúc tuyến tính, phần tử nối nhau thành dãy; cấu trúc phân cấp là cây, nơi một nút có nhiều nút con. Phương án "There is no difference between a stack and a queue" bỏ qua đúng điểm phân biệt cốt lõi, trong khi thứ tự lấy phần tử ra là lý do người ta chọn cấu trúc này thay cho cấu trúc kia.
25In the context of software design, what is the significance of the "Software Architecture"?4 lựa chọn
AIt focuses on coding individual functions and procedures.
BIt defines the overall structure and organization of the software system.
CIt is a tool for project management.
DIt involves testing the software against user requirements.
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "It defines the overall structure and organization of the software system.". Kiến trúc phần mềm là bản mô tả ở mức cao về cấu trúc tổng thể của hệ thống: có những module hay thành phần nào, mỗi thành phần chịu trách nhiệm gì và chúng nối với nhau ra sao. Đây là loại quyết định rất khó sửa về sau nên phải chốt ngay trong pha thiết kế. "It focuses on coding individual functions and procedures." sai vì viết mã cho từng hàm, từng thủ tục là công việc ở mức chi tiết của pha cài đặt, nằm dưới mức kiến trúc. "It is a tool for project management." sai vì kiến trúc là sản phẩm thiết kế kỹ thuật, không phải công cụ lập kế hoạch hay theo dõi tiến độ dự án. "It involves testing the software against user requirements." sai vì đối chiếu sản phẩm với yêu cầu người dùng là việc của pha kiểm thử và nghiệm thu, diễn ra sau khi đã có mã chạy được.
26In the physical layer, what hardware has a mission to convert signal from analog to digital signal4 lựa chọn
ADiscrete Filter Transform
BADC
CDAC
DQuantization filtering circuits
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "ADC". Bộ chuyển đổi tương tự sang số lấy tín hiệu liên tục theo thời gian, lấy mẫu tại những mốc cách nhau đều đặn rồi lượng tử hoá mỗi mẫu thành một số nguyên và mã hoá thành chuỗi bit, nhờ đó âm thanh hay điện áp ngoài đời trở thành dữ liệu máy tính xử lý được. Phương án "DAC" làm đúng chiều ngược lại, dựng tín hiệu tương tự từ dữ liệu số để đưa ra loa hay màn hình, nên không đáp ứng yêu cầu của câu dẫn. Phương án "Quantization filtering circuits" gộp hai thứ khác nhau: lượng tử hoá chỉ là một bước bên trong quá trình chuyển đổi, không phải khối phần cứng đảm nhiệm cả phép chuyển đổi. Phương án "Discrete Filter Transform" không phải tên một khối phần cứng chuẩn nào; nó gợi tới các phép biến đổi dùng để phân tích phổ tín hiệu, một việc khác hẳn.
AFirst Normal Form (1NF)
BSecond Normal Form (2NF)
CThird Normal Form (3NF)
DBoyce-Codd Normal Form (BCNF)
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Second Normal Form (2NF)". Dạng chuẩn hai yêu cầu quan hệ đã ở dạng chuẩn một và mọi thuộc tính không thuộc khoá phải phụ thuộc hàm đầy đủ vào khoá chính, nghĩa là không được phụ thuộc vào chỉ một phần của khoá; điều này chỉ thành vấn đề khi khoá chính gồm nhiều thuộc tính. Phương án "First Normal Form (1NF)" chỉ đòi mỗi ô chứa một giá trị nguyên tử, không nói gì về phụ thuộc hàm. Phương án "Third Normal Form (3NF)" đi xa hơn bằng cách loại bỏ phụ thuộc bắc cầu giữa các thuộc tính không khoá, nên nó bao hàm yêu cầu trên nhưng không phải định nghĩa của yêu cầu đang hỏi. Phương án "Boyce-Codd Normal Form (BCNF)" còn chặt hơn nữa, buộc mọi định thức đều phải là siêu khoá, vượt quá điều câu dẫn nêu.
28In the File Structure, Hashing works by:4 lựa chọn
ASorting files by Index
BCompress a normal file
CCalculating a key
DAdding lines to the file
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Calculating a key". Tệp băm hoạt động bằng cách đưa giá trị khoá của bản ghi qua một hàm băm để tính ra địa chỉ khối trên đĩa, nhờ vậy tìm một bản ghi chỉ cần một phép tính rồi truy cập trực tiếp, không phải quét cả tệp. Mục "Sorting files by Index" mô tả tệp chỉ mục, nơi người ta giữ một bảng khoá đã sắp xếp kèm địa chỉ rồi tìm trên bảng đó, cơ chế khác hẳn việc tính địa chỉ. Mục "Compress a normal file" nói về nén dữ liệu, mục đích là giảm kích thước chứ không phải định vị bản ghi. Mục "Adding lines to the file" chỉ là một thao tác cập nhật nội dung, nó không nói gì về cách tổ chức và tra cứu tệp.
ARecursive algorithms are harder to implement.
BRecursive algorithms always have higher time complexity.
CRecursive algorithms use more memory due to stack calls.
DRecursive algorithms cannot solve sorting problems.
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Recursive algorithms use more memory due to stack calls.". Mỗi lần gọi đệ quy, máy phải đẩy một bản ghi kích hoạt chứa tham số, biến cục bộ và địa chỉ trở về lên ngăn xếp; độ sâu đệ quy càng lớn thì ngăn xếp càng phình, và nếu quá sâu thì chương trình tràn ngăn xếp, trong khi vòng lặp chỉ dùng một khung duy nhất. Phương án "Recursive algorithms are harder to implement." không đúng nói chung: với bài toán có cấu trúc tự lặp như duyệt cây hay tháp Hà Nội thì bản đệ quy ngắn và sáng hơn bản vòng lặp. Phương án "Recursive algorithms always have higher time complexity." sai ở chữ luôn luôn, vì cùng một thuật toán viết đệ quy hay vòng lặp đều cho cùng độ phức tạp. Phương án "Recursive algorithms cannot solve sorting problems." trái thực tế, bởi sắp xếp trộn và sắp xếp nhanh đều là thuật toán đệ quy.
AThe edges have no direction
BIt has one-way connections between nodes.
CThe edges have a specific starting and ending point
DA node only has one parent
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "The edges have no direction". Trong đồ thị vô hướng, một cạnh chỉ nói hai đỉnh có liên hệ với nhau mà không chỉ chiều, nên đi được từ đỉnh này sang đỉnh kia và ngược lại. Mục "It has one-way connections between nodes." mô tả đồ thị có hướng, nơi mỗi cung chỉ cho đi một chiều. Mục "The edges have a specific starting and ending point" cũng là đặc trưng của đồ thị có hướng, vì chỉ ở đó cạnh mới có đỉnh đầu và đỉnh cuối phân biệt. Mục "A node only has one parent" dùng khái niệm cha con của cây; đồ thị vô hướng không có gốc nên không có quan hệ cha con, hơn nữa một đỉnh có thể kề với bao nhiêu đỉnh khác cũng được.
AIt is efficient when searching small or unsorted datasets
BIt is the fastest search method for large datasets
CIt can only be used on sorted lists
DIt requires dividing the dataset into halves at every step
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "It is efficient when searching small or unsorted datasets". Tìm kiếm tuần tự quét lần lượt từng phần tử nên không đòi hỏi dữ liệu phải sắp xếp trước và cũng không cần chuẩn bị gì; với danh sách ngắn hoặc danh sách chưa có thứ tự, chi phí sắp xếp để dùng cách nhanh hơn còn đắt hơn chính việc quét, nên cách này lại là lựa chọn hợp lý. Phương án "It is the fastest search method for large datasets" sai vì số phép so sánh tăng tỉ lệ với số phần tử, chậm hơn hẳn tìm kiếm nhị phân với dữ liệu lớn đã sắp xếp. Phương án "It can only be used on sorted lists" nói ngược đúng ưu thế của nó: không cần sắp xếp mới là điều kiện tự do của tìm kiếm tuần tự. Phương án "It requires dividing the dataset into halves at every step" mô tả tìm kiếm nhị phân, một cách làm khác hẳn.
32What is the result of 7 XOR 3 in binary?4 lựa chọn
A100
B111
C011
D101
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "100". Viết hai số bằng ba bit, 7 là 111 và 3 là 011, rồi lấy phép hoặc loại trừ theo từng cặp bit cùng vị trí: bit trái 1 với 0 cho 1, bit giữa 1 với 1 cho 0, bit phải 1 với 1 cho 0, nên kết quả là 100, tức số 4 trong hệ mười. Phương án "111" là chính số 7 và cũng là kết quả của phép hoặc giữa hai số này, nhưng phép hoặc loại trừ phải cho 0 ở những vị trí hai bit giống nhau. Phương án "011" là chính số 3 và là kết quả của phép và theo bit, không phải phép đang hỏi. Phương án "101" bằng 5, không ứng với phép toán bit nào giữa 7 và 3; nhìn vào từng vị trí bit cũng thấy không thể có bit 1 ở vị trí phải, vì hai số đều mang bit 1 ở đó.
ASlash (/)
BBackslash (\)
CDash (-)
DUnderscore (_)
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Slash (/)". Trong UNIX, cây thư mục bắt đầu từ thư mục gốc được viết bằng một dấu gạch chéo, và mỗi cấp thư mục tiếp theo trong đường dẫn tuyệt đối cũng được tách bằng chính dấu đó. Ký tự "Backslash (\)" là dấu phân cách đường dẫn của dòng hệ điều hành DOS và Windows, còn trong UNIX nó mang nghĩa khác là ký tự thoát. Ký tự "Dash (-)" được dùng để mở đầu các tuỳ chọn của lệnh và có thể xuất hiện trong tên tệp, nó không chia cấp thư mục. Ký tự "Underscore (_)" chỉ là một ký tự thường trong tên tệp hay tên thư mục, hay dùng thay cho dấu cách, và cũng không phân cấp đường dẫn.
A
DivisionB
MultiplicationC
AdditionD
SubtractionLời giải
Mở trang câu hỏi này →Đáp án đúng: "Division". Để chuyển một số nguyên hệ mười sang hệ hai, ta chia liên tiếp cho 2, ghi lại số dư mỗi lần rồi đọc dãy số dư theo chiều ngược từ lần chia cuối về lần đầu; mỗi số dư chính là một bit, và phép chia là thao tác sinh ra chúng. Phương án "Multiplication" là thủ tục dành cho phần lẻ sau dấu phẩy, nơi ta nhân liên tiếp với 2 và lấy phần nguyên, nên không phải phép dùng cho phần nguyên mà câu dẫn nhắm tới. Phương án "Addition" chỉ xuất hiện khi ta kiểm tra lại kết quả bằng cách cộng các luỹ thừa của 2, chứ không sinh ra chữ số nhị phân nào. Phương án "Subtraction" là thao tác phụ nằm bên trong phép chia; tự nó không cho ra dãy số dư, nên không phải phép toán đặc trưng của việc chuyển đổi này.
AThere are two representations for zero.
BSimplifies addition and subtraction.
CIt uses floating-point numbers.
DIt uses more bits for the sign.
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Simplifies addition and subtraction." Trong biểu diễn bù hai, phép trừ được đưa về phép cộng bằng cách cộng với bù hai của số bị trừ, và phép cộng thì làm giống nhau bất kể hai toán hạng âm hay dương, nên phần cứng chỉ cần một mạch cộng duy nhất và không phải so dấu hay so độ lớn trước khi tính. Nhận định "There are two representations for zero." là nhược điểm của biểu diễn dấu và độ lớn cùng biểu diễn bù một, còn bù hai chỉ có duy nhất một mẫu bit cho số không. Nhận định "It uses floating-point numbers." lẫn sang cách biểu diễn số thực, trong khi bù hai dùng cho số nguyên có dấu. Nhận định "It uses more bits for the sign." sai vì bù hai không thêm bit nào, dấu nằm sẵn trong bit trái cùng.
AMachine language uses symbols, while high-level languages use binary patterns
BMachine language is directly understood by a computer, while high-level languages must be converted
CMachine language is portable, while high-level languages are machine-dependent.
DHigh-level languages are tedious to write, while machine language is easier.
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Machine language is directly understood by a computer, while high-level languages must be converted". Ngôn ngữ máy là dãy mẫu bit mà mạch điều khiển của bộ xử lý giải mã trực tiếp; chương trình viết bằng ngôn ngữ cấp cao phải qua trình biên dịch hoặc trình thông dịch để thành mã máy mới chạy được. "Machine language uses symbols, while high-level languages use binary patterns" sai vì nói ngược: ngôn ngữ cấp cao mới dùng từ khoá và ký hiệu gần với tiếng người, còn mã máy là mẫu bit. "Machine language is portable, while high-level languages are machine-dependent." sai vì mã máy gắn chặt với tập lệnh của một kiến trúc nên không khả chuyển, trong khi ngôn ngữ cấp cao chính là thứ cho phép mang mã nguồn sang máy khác rồi dịch lại. "High-level languages are tedious to write, while machine language is easier." sai vì viết mã máy khó và dễ sai hơn nhiều, hơn nữa độ tiện tay không phải khác biệt về việc máy hiểu được hay không.
ATo acknowledge the receipt of data segments
BTo synchronize sequence numbers and establish connection parameters
CTo request retransmission of lost segments
DTo terminate the connection
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "To synchronize sequence numbers and establish connection parameters". Bắt tay mở kết nối tồn tại để hai bên thống nhất số thứ tự khởi đầu dùng cho việc đánh số byte và thoả thuận các tham số kết nối như kích thước cửa sổ hay kích thước đoạn lớn nhất; đoạn mang đồng thời cờ đồng bộ và cờ báo nhận chính là bước giữa của quá trình đó. "To acknowledge the receipt of data segments" sai vì báo nhận dữ liệu đã tới là việc của cờ báo nhận trong pha truyền, còn bắt tay diễn ra trước khi có byte dữ liệu nào. "To request retransmission of lost segments" sai vì yêu cầu gửi lại đoạn bị mất được kích hoạt bởi hết thời gian chờ hoặc báo nhận trùng lặp, không phải bởi bắt tay. "To terminate the connection" sai vì đóng kết nối dùng cờ kết thúc theo một trình tự riêng.
38In a multiprogramming system, how are multiple programs typically managed in memory and executed?4 lựa chọn
AThey are loaded into memory simultaneously and executed concurrently.
BThey are loaded one after another sequentially.
CThey run sequentially, with each program completing before the next one starts.
DThey are stored in secondary storage until needed for execution.
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "They are loaded into memory simultaneously and executed concurrently.". Đa chương nghĩa là nhiều chương trình cùng tồn tại trong bộ nhớ chính một lúc, mỗi chương trình chiếm một vùng riêng; khi một chương trình phải chờ thao tác vào ra, bộ xử lý chuyển ngay sang chương trình khác, nên tính theo thời gian người dùng cảm nhận thì chúng chạy xen kẽ và đồng hành. Phương án "They are loaded one after another sequentially." chỉ nói về thứ tự nạp và hàm ý mỗi lúc bộ nhớ chỉ giữ một chương trình, đánh mất đúng điểm cốt lõi. Phương án "They run sequentially, with each program completing before the next one starts." là mô tả của đơn chương, cách làm mà đa chương ra đời để thay thế. Phương án "They are stored in secondary storage until needed for execution." nói về chương trình còn nằm trên đĩa, chưa được nạp, nên không trả lời câu hỏi về cách quản lý trong bộ nhớ.
AProcedural paradigm
BObject-oriented paradigm
CFunctional paradigm
DDeclarative paradigm
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Procedural paradigm". Mô thức thủ tục nhìn chương trình như một tác nhân chủ động: chính chương trình phát ra hành động, còn dữ liệu là những đối tượng bị động, chỉ thay đổi khi bị thủ tục tác động lên. "Object-oriented paradigm" đảo lại cách nhìn đó, vì mỗi đối tượng tự mang hành vi của mình và phản ứng khi nhận thông điệp, nên không có bên nào thuần bị động. "Functional paradigm" coi chương trình là sự kết hợp của các hàm, nhấn vào việc biến đầu vào thành đầu ra chứ không vào quan hệ điều khiển giữa bên chủ động và bên bị động. "Declarative paradigm" không mô tả ai tác động lên ai: người viết chỉ nêu sự kiện và luật, còn bộ suy diễn tự tìm câu trả lời.
40Which stage of the software development life cycle are data flow diagrams typically created?4 lựa chọn
A
TestingB
DesignC
AnalysisD
ImplementationLời giải
Mở trang câu hỏi này →Đáp án đúng: "Analysis". Lược đồ luồng dữ liệu là công cụ của pha phân tích theo lối hướng thủ tục: nó mô tả dữ liệu đi vào hệ thống từ đâu, bị những tiến trình nào biến đổi, lưu ở kho nào và đi ra đâu, tức trả lời hệ thống phải làm gì chứ chưa nói làm bằng cách nào. Phương án "Testing" là pha kiểm thử, dùng ca kiểm thử và dữ liệu thử để đối chiếu sản phẩm với yêu cầu, không phải nơi vẽ lược đồ này. Phương án "Design" là pha thiết kế, nơi người ta chuyển kết quả phân tích thành cấu trúc module, lược đồ cấu trúc hay thiết kế dữ liệu chi tiết, đi sau lược đồ luồng dữ liệu. Phương án "Implementation" là pha viết mã, chỉ hiện thực những gì đã phân tích và thiết kế xong.