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 đề.
Danh sách câu hỏi
20/60 câuCòn 40
A721
B731
C739
D743
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "731". Mỗi bit trong 1011011011 mang một trọng số là luỹ thừa của 2, tính từ phải sang trái bắt đầu ở 1; các bit bằng 1 nằm tại trọng số 512, 128, 64, 16, 8, 2 và 1, cộng lại được 512 + 128 + 64 + 16 + 8 + 2 + 1 = 731. "721" nhỏ hơn kết quả 10 đơn vị, muốn có nó thì phải tắt hai bit trọng số 8 và 2 vốn đang bật. "739" lớn hơn 8 đơn vị, nghĩa là bit trọng số 8 phải được đếm hai lần, điều không thể xảy ra. "743" lớn hơn tới 12 đơn vị nên càng không ứng với mẫu bit đã cho.
AThe module's components are strongly related to its purpose
BThe module depends heavily on other modules
CThe module communicates frequently with external modules
DThe module relies on shared global data
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "The module's components are strongly related to its purpose". Cohesion, tức độ kết dính, đo mức độ các thành phần bên trong một module cùng phục vụ đúng một mục đích; kết dính cao nghĩa là mọi hàm và dữ liệu trong module đều xoay quanh một nhiệm vụ duy nhất, nhờ đó module dễ hiểu, dễ kiểm thử và dễ thay thế mà không kéo theo chỗ khác. Phương án "The module depends heavily on other modules" mô tả coupling, tức độ ghép nối, cao; đó là quan hệ giữa các module chứ không phải tính chất bên trong một module, và thiết kế tốt còn tìm cách giảm nó. Phương án "The module communicates frequently with external modules" cũng nói về lưu lượng giao tiếp ra bên ngoài, một dấu hiệu ghép nối chặt, nên không phản ánh kết dính nội bộ. Phương án "The module relies on shared global data" là kiểu ghép nối qua dữ liệu toàn cục dùng chung, bị xem là tệ vì hai module có thể vô tình sửa cùng một biến.
AIt loads only the required pages as needed
BIt requires the entire program to be in memory
CIt uses variable-sized memory sections
DIt prevents programs from being swapped
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "It loads only the required pages as needed". Phân trang theo yêu cầu chỉ nạp vào bộ nhớ những trang đang thực sự cần, các trang khác vẫn nằm trên đĩa và chỉ được mang vào khi xảy ra lỗi trang. Nhờ vậy chương trình bắt đầu chạy sớm hơn và một lượng bộ nhớ cho trước chứa được nhiều chương trình hơn. "It requires the entire program to be in memory" sai vì đòi cả chương trình phải ở trong bộ nhớ chính là cách làm của phân trang thông thường, đúng điều mà kỹ thuật này muốn tránh. "It uses variable-sized memory sections" sai vì khối có kích thước thay đổi là đặc điểm của phân đoạn; ở đây trang vẫn giữ kích thước cố định. "It prevents programs from being swapped" sai vì trang không hề được miễn thay ra, khi bộ nhớ thiếu chỗ hệ điều hành vẫn chọn trang để đẩy ra đĩa.
AHierarchical
BNetworking
CRelational
DObject-oriented
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Object-oriented". Ba mô hình cơ sở dữ liệu được xếp vào nhóm truyền thống là phân cấp, mạng và quan hệ; mô hình hướng đối tượng xuất hiện muộn hơn nhiều, khi người ta muốn lưu trực tiếp các đối tượng có phương thức và kế thừa, nên nó thuộc nhóm mô hình hiện đại chứ không nằm trong ba mô hình truyền thống. Phương án "Hierarchical" là mô hình phân cấp, tổ chức bản ghi thành cây cha con với mỗi con chỉ có một cha, nên đúng là một mô hình truyền thống. Phương án "Networking" chỉ mô hình mạng, nới lỏng ràng buộc trên bằng cách cho một bản ghi con có nhiều cha và biểu diễn dữ liệu như đồ thị, cũng thuộc nhóm truyền thống. Phương án "Relational" là mô hình quan hệ dựa trên các bảng hai chiều, dù ra đời sau hai mô hình kia nhưng vẫn được tính vào ba mô hình truyền thống và hiện là mô hình phổ biến nhất.
AInstruction register
BData register
CUser register
DProgram counter
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Program counter". Bộ đếm chương trình giữ địa chỉ của lệnh đang được thi hành rồi tự tăng để trỏ sang lệnh kế tiếp, nên nó chính là nơi máy theo dấu lệnh hiện hành trong suốt quá trình chạy, đúng như cách tài liệu môn này định nghĩa. Cần nói thẳng rằng đây là cặp gây tranh luận thật: phương án "Instruction register" cũng có cơ sở, vì thanh ghi lệnh giữ bản thân mã lệnh vừa nạp về để giải mã, và một số bộ khoá tham khảo chọn nó; điểm phân định nằm ở chỗ câu dẫn hỏi về việc theo dấu lệnh đang thi hành và lệnh sẽ thi hành tiếp, vốn là vai trò của bộ đếm chương trình. Phương án "Data register" chỉ nhóm thanh ghi chứa toán hạng và kết quả tính toán, không dính tới việc lần theo lệnh. Phương án "User register" là các thanh ghi để chương trình người dùng lưu biến trung gian, càng không có chức năng theo dấu lệnh.
6Which of the following statements is true in the context of different architectures of computers?4 lựa chọn
AProgramming in RISC is more difficult and time-consuming than in the other design
BProgramming in CISC is more difficult and time-consuming than in the other design
CThe strategy behind CISC architectures is to have a small set of instructions
DPrograms executed on RISC architecture tend to have more bugs because there are not enough instructions available for the programmer
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Programming in RISC is more difficult and time-consuming than in the other design". Kiến trúc tập lệnh thu gọn chỉ cung cấp một số ít lệnh rất đơn giản, nên một tác vụ phức tạp phải được ghép từ nhiều lệnh và gánh nặng ấy dồn sang người viết hợp ngữ hoặc trình biên dịch; kiến trúc tập lệnh phức hợp thì có sẵn những lệnh làm nhiều việc một lúc nên viết ngắn hơn. Nhận định "Programming in CISC is more difficult and time-consuming than in the other design" đảo ngược quan hệ vừa nêu. Nhận định "The strategy behind CISC architectures is to have a small set of instructions" gán chiến lược tập lệnh nhỏ cho bên sai, vì đó là chủ trương của kiến trúc thu gọn. Nhận định "Programs executed on RISC architecture tend to have more bugs because there are not enough instructions available for the programmer" suy diễn sai, vì tập lệnh nhỏ vẫn đủ sức biểu đạt mọi tính toán.
AFiles that store data in a fixed order
BFiles where data is stored based on a computed hash value, which determines the location of the data
CFiles that are encrypted for security purposes
DFiles that contain only textual information
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Files where data is stored based on a computed hash value, which determines the location of the data". Trong tệp băm, khoá của bản ghi được đưa qua một hàm băm và kết quả cho ra địa chỉ ô lưu trong tệp, nên việc tìm một bản ghi chỉ cần tính lại hàm băm trên khoá là tới đúng chỗ, không phải tra bảng hay quét tuần tự. Mô tả "Files that store data in a fixed order" ứng với tệp tuần tự được sắp theo khoá, nơi vị trí phụ thuộc thứ tự chứ không phải một phép tính. Mô tả "Files that are encrypted for security purposes" nhầm hàm băm địa chỉ với mã hoá, vì hàm băm ở đây dùng để định vị chứ không nhằm che nội dung. Mô tả "Files that contain only textual information" nói về kiểu nội dung của tệp, không nói gì về cách tổ chức lưu trữ.
ATo perform arithmetic and logic operations.
BTo store instructions.
CTo manage data flow inside the CPU.
DTo control peripheral devices.
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "To manage data flow inside the CPU.". Khối điều khiển không tự tính toán gì; nó lấy lệnh, giải mã rồi phát các tín hiệu điều khiển để điều phối hoạt động bên trong CPU, quyết định dữ liệu đi từ thanh ghi nào tới khối nào và vào thời điểm nào, nên vai trò của nó đúng là quản lý luồng dữ liệu nội bộ. Phương án "To perform arithmetic and logic operations." là việc của khối số học và luận lý, khối này chỉ thực hiện phép tính khi khối điều khiển ra lệnh. Phương án "To store instructions." thuộc bộ nhớ và thanh ghi lệnh; khối điều khiển đọc lệnh chứ không phải nơi lưu lệnh. Phương án "To control peripheral devices." nằm ở phân hệ vào ra với các bộ điều khiển thiết bị riêng, CPU chỉ phát yêu cầu rồi để chúng tự làm việc với thiết bị.
AProcedural
BObject-oriented
CFunctional
DDatabase-driven
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Database-driven". Bốn lối lập trình lớn mà môn này nêu là thủ tục, hướng đối tượng, hàm và khai báo; cách tổ chức công việc quanh một cơ sở dữ liệu không phải một lối tư duy lập trình riêng mà chỉ là một kiểu kiến trúc ứng dụng, có thể hiện thực bằng bất kỳ lối nào trong bốn lối kia. Phương án "Procedural" là lối thủ tục, chương trình là dãy lệnh thao tác trên dữ liệu, nên nằm trong bốn lối. Phương án "Object-oriented" là lối hướng đối tượng, gói dữ liệu cùng phương thức vào đối tượng, cũng là một lối chính thức. Phương án "Functional" là lối hàm, xây chương trình bằng cách ghép các hàm biến đổi dữ liệu, cũng thuộc bốn lối; lối còn lại là khai báo, và đây mới là chỗ trống mà phương án đúng không lấp được.
AElements are retrieved based on their priority
BElements can be accessed directly by their memory address
CIf data is inserted into a stack and then removed, the order of the data is reversed
DThe oldest element is always removed first.
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "If data is inserted into a stack and then removed, the order of the data is reversed". Ngăn xếp chỉ cho thêm và lấy ở một đầu gọi là đỉnh, nên thứ vào sau cùng lại ra đầu tiên; hệ quả thấy ngay là nếu đưa một dãy vào rồi lấy hết ra thì dãy nhận được là dãy ban đầu đảo ngược. Mục "Elements are retrieved based on their priority" mô tả hàng đợi ưu tiên, nơi thứ tự ra phụ thuộc mức ưu tiên gắn cho từng phần tử chứ không phụ thuộc lúc vào. Mục "Elements can be accessed directly by their memory address" là tính chất của mảng và của bộ nhớ nói chung; ngăn xếp cố ý chỉ cho chạm vào đỉnh. Mục "The oldest element is always removed first." đúng là nguyên tắc vào trước ra trước của hàng đợi, trái hẳn với ngăn xếp.
AOne place to the left
BOne place to the right
CTwo places to the left
DTwo places to the right
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Two places to the left". Muốn cộng hai số viết dưới dạng dấu phẩy động thì hai số mũ phải bằng nhau, và quy tắc là kéo số mũ nhỏ lên cho bằng số mũ lớn. Ở đây số mũ nhỏ là 7, cần lên 9, tức tăng thêm 2; để giá trị của số không đổi thì phần định trị phải nhỏ đi một trăm lần, nghĩa là dấu phẩy dịch hai chỗ sang trái. Cách "One place to the left" đúng hướng nhưng chỉ bù được một đơn vị số mũ, hai số mũ vẫn còn lệch nhau một bậc. Cách "One place to the right" sai cả hướng lẫn số bước, vì dịch sang phải làm số mũ giảm còn 6 nên khoảng lệch rộng thêm. Cách "Two places to the right" đúng số bước nhưng ngược hướng, nó đưa số mũ từ 7 xuống 5 và càng xa 9.
AReady state
BHold state
CRunning state
DTerminated state
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Ready state". Job còn chờ bên ngoài bộ nhớ nằm ở trạng thái giữ; khi hệ điều hành cấp đủ bộ nhớ và nạp nó vào, nó trở thành tiến trình ở trạng thái sẵn sàng, tức đã đủ điều kiện chạy và chỉ còn chờ bộ định thời cấp bộ xử lý. "Hold state" sai vì đó là trạng thái trước khi được nạp, lúc job còn xếp hàng chờ tài nguyên. "Running state" sai vì tiến trình chỉ bước vào trạng thái đang chạy khi thực sự được cấp bộ xử lý, mà nhiều tiến trình cùng sẵn sàng thì mỗi thời điểm trên một lõi chỉ một tiến trình được chạy. "Terminated state" sai vì đó là trạng thái cuối, khi tiến trình đã chạy xong hoặc bị huỷ và tài nguyên được thu hồi.
AManaging memory allocation for running processes
BInitializing the operating system into memory during startup
CScheduling processes for execution
DLoading device drivers
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Initializing the operating system into memory during startup". Bootstrapping là giai đoạn mồi máy: một đoạn mã nhỏ nằm sẵn trong ROM chạy trước, kiểm tra phần cứng rồi nạp phần cốt lõi của hệ điều hành từ đĩa vào bộ nhớ chính và trao quyền điều khiển cho nó, nhờ vậy hệ điều hành tự dựng được chính mình dù lúc đầu chưa có gì trong bộ nhớ. Phương án "Managing memory allocation for running processes" là công việc thường xuyên của bộ quản lý bộ nhớ sau khi hệ đã chạy, không phải bước mồi máy. Phương án "Scheduling processes for execution" là việc của bộ định thời, cũng chỉ diễn ra khi hệ điều hành đã nằm trong bộ nhớ. Phương án "Loading device drivers" có xảy ra trong tiến trình khởi động nhưng chỉ là một bước con, quá hẹp để định nghĩa bootstrapping.
ASequence, decision, and repetition
BVariables, loops, and conditions
CFunctions, arrays, and pointers
DCompilation, execution, and debugging
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Sequence, decision, and repetition". Lập trình có cấu trúc chứng minh rằng mọi thuật toán đều viết được bằng ba khối điều khiển: thực hiện tuần tự, rẽ nhánh theo điều kiện và lặp lại; chỉ cần ba khối này ghép lồng vào nhau là đủ, nhờ đó chương trình không cần lệnh nhảy tuỳ ý và luôn có một đường vào, một đường ra. Phương án "Variables, loops, and conditions" trộn lẫn hai thứ khác loại: biến là nơi chứa dữ liệu, không phải khối điều khiển, nên danh sách này không phải ba cấu trúc chuẩn. Phương án "Functions, arrays, and pointers" liệt kê các tiện ích của ngôn ngữ và cấu trúc dữ liệu, không phải cách điều khiển dòng thi hành. Phương án "Compilation, execution, and debugging" nói về các bước làm việc với chương trình, nằm ngoài bản thân cấu trúc chương trình.
ATo call Google's API efficiently.
BTo perform calculations on a set of data.
CTo locate a specific element within a data set.
DTo create new data elements based on existing ones.
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "To locate a specific element within a data set.". Thuật toán tìm kiếm nhận vào một danh sách và một khoá cần tìm, rồi trả lời khoá đó có nằm trong danh sách hay không và nếu có thì ở vị trí nào; bản chất của nó là định vị, chứ không làm thay đổi dữ liệu. Phương án "To call Google's API efficiently." nhầm khái niệm thuật toán với một ứng dụng cụ thể của việc tìm kiếm trên web, và việc gọi giao diện lập trình của một dịch vụ không phải nội dung môn học này bàn tới. Phương án "To perform calculations on a set of data." mô tả thuật toán tính toán hay tổng hợp số liệu, một nhóm việc khác. Phương án "To create new data elements based on existing ones." nói về sinh thêm dữ liệu, trong khi tìm kiếm chỉ đọc danh sách và không thêm phần tử nào.
A0 to 15
B-7 to +7
C-8 to +7
D-15 to +15
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "-8 to +7". Với bù hai trên 4 bit, 16 mẫu bit được chia đôi: 0000 đến 0111 biểu diễn 0 tới 7, còn 1000 đến 1111 biểu diễn -8 tới -1. Vì số 0 chỉ có một mẫu bit duy nhất nên phía âm nhận thêm được một giá trị, dải trở thành -8 tới +7. "0 to 15" là dải của số nguyên không dấu, nơi không bit nào dành cho dấu. "-7 to +7" là dải của biểu diễn dấu-và-độ-lớn, cách đó có hai mẫu bit cùng chỉ số 0 nên mất đi một giá trị. "-15 to +15" cần tới 31 mẫu bit khác nhau, vượt quá 16 tổ hợp mà 4 bit tạo ra được.
AAn interface between hardware and users
BA specific application program
CA document outlining system policies
DA type of computer hardware
ENone of the others
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "An interface between hardware and users". Hệ điều hành là phần mềm nằm giữa phần cứng và người dùng: nó quản lý CPU, bộ nhớ, tệp và thiết bị, đồng thời cung cấp giao diện cùng các lời gọi hệ thống để người dùng và chương trình khai thác phần cứng mà không phải điều khiển trực tiếp. Mục "A specific application program" hiểu sai vai trò, hệ điều hành không phải một ứng dụng cụ thể mà là nền để mọi ứng dụng chạy trên đó. Mục "A document outlining system policies" biến phần mềm thành tài liệu, trong khi hệ điều hành là mã thực thi được. Mục "A type of computer hardware" xếp nó vào phần cứng, trái với bản chất phần mềm. Mục "None of the others" không dùng được vì đã có một mô tả đúng trong danh sách.
AALU
Binput/output
Cmemory
Dcontrol unit
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "control unit". Trong mô hình von Neumann, máy tính gồm bốn phân hệ và phân hệ đóng vai người quản lý chính là khối điều khiển: nó lấy lệnh, giải mã rồi phát tín hiệu điều khiển để các phân hệ còn lại làm việc đúng thứ tự và đúng lúc, bản thân nó không tính toán cũng không lưu dữ liệu. Phương án "ALU" là khối số học và luận lý, nó chỉ thực hiện phép cộng, phép so sánh hay phép luận lý khi được yêu cầu, nên là nơi bị điều khiển. Phương án "input/output" là phân hệ vào ra, nhận lệnh để đưa dữ liệu vào hay đẩy kết quả ra, cũng chịu sự điều phối. Phương án "memory" chỉ lưu lệnh và dữ liệu rồi trả về khi được đọc, hoàn toàn thụ động nên không thể là bộ phận quản lý.
AHardware and software
BDatabase and operations
CData structure and algorithms
DData structure and operations
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Data structure and operations". Kiểu dữ liệu trừu tượng đóng gói hai thứ vào một khối: cách tổ chức dữ liệu bên trong, và tập các phép toán hợp lệ được công bố ra ngoài. Người dùng chỉ gọi các phép toán đó mà không cần và không được phụ thuộc vào cách hiện thực, nhờ vậy đổi cách lưu bên trong không làm vỡ chương trình đang dùng. Mục "Hardware and software" không thuộc phạm vi của mô hình dữ liệu này. Mục "Database and operations" đưa vào cơ sở dữ liệu, vốn là một hệ lưu trữ lớn chứ không phải thành phần bên trong một kiểu dữ liệu. Mục "Data structure and algorithms" gần đúng nhưng lệch một bước: thuật toán là cách hiện thực các phép toán và thuộc phần bị che đi, còn thứ được công bố cho người dùng chính là tập phép toán.
Aconfidentiality
Bintegrity
Cavailability
DNone of these above
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "integrity". Tính toàn vẹn nghĩa là thông điệp phải đến đúng như lúc được gửi, không bị thêm, bớt hay sửa đổi dọc đường; đây chính là mục tiêu mà các cơ chế như hàm băm, mã xác thực thông điệp và chữ ký số phục vụ. "confidentiality" bảo vệ ở khía cạnh khác, là giữ nội dung kín với người không được phép, nên kẻ chặn được bản mã vẫn không đọc ra nghĩa nhưng có thể vẫn can thiệp được vào nội dung. "availability" nói về việc thông tin và dịch vụ luôn sẵn sàng cho người dùng hợp pháp, thứ bị phá bởi tấn công từ chối dịch vụ chứ không bởi hành vi sửa đổi. "None of these above" không dùng được, vì yêu cầu chống sửa đổi thông điệp đã có tên riêng là toàn vẹn.