Câu hỏi: CSI106 Nhập môn khoa học máy tính – Bộ ôn tập thi lại số 3
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 3/3 — câu 41–60.
Danh sách câu hỏi
60/60 câuHết danh sách
A
PythonB
PrologC
SQLD
JavaLời giải
Mở trang câu hỏi này →Đáp án đúng: "Prolog". Mô thức khai báo dựa trên logic vị từ: người lập trình nêu các sự kiện và luật suy diễn, còn máy tự tìm cách trả lời truy vấn thay vì được chỉ dẫn từng bước, và Prolog là ngôn ngữ tiêu biểu của mô thức này. "SQL" cũng mang tinh thần khai báo vì ta mô tả kết quả muốn có chứ không mô tả cách lấy, nhưng nó là ngôn ngữ truy vấn chuyên dụng cho cơ sở dữ liệu, không phải ngôn ngữ lập trình đa dụng được xếp vào bảng bốn mô thức, nên trong cách phân loại này nó không được chọn. "Python" là ngôn ngữ mệnh lệnh đa mô thức, chủ yếu thủ tục và hướng đối tượng, chương trình là dãy lệnh làm thay đổi trạng thái. "Java" là ngôn ngữ hướng đối tượng thuần mệnh lệnh, mọi việc đều phải viết rõ từng bước trong thân phương thức.
ADividing memory into variable-sized partitions.
BKeeping only the essential parts of a program in the main memory to optimizing start time.
CDividing both memory and programs into fixed-size blocks.
DSwapping entire processes between memory and disk.
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Dividing both memory and programs into fixed-size blocks.". Phân trang chia bộ nhớ chính thành các frame có kích thước bằng nhau và chia chương trình thành các page cùng kích thước đó, nhờ vậy page nào cũng nạp được vào frame trống bất kỳ và chương trình không cần một vùng nhớ liền mạch. "Dividing memory into variable-sized partitions." là mô tả của kỹ thuật phân vùng hay phân đoạn, nơi mỗi khối có kích thước riêng theo nhu cầu và sinh ra phân mảnh ngoài. "Keeping only the essential parts of a program in the main memory to optimizing start time." là mô tả của phân trang theo yêu cầu, một cải tiến dựng trên phân trang chứ không phải định nghĩa của chính phân trang. "Swapping entire processes between memory and disk." là cơ chế hoán chuyển toàn bộ tiến trình, đưa cả chương trình ra đĩa rồi nạp lại, trong khi phân trang làm việc ở mức từng khối nhỏ.
A
PascalB
PascalineC
ABCD
EDVACLời giải
Mở trang câu hỏi này →Đáp án đúng: "EDVAC". EDVAC là máy tính đầu tiên được thiết kế theo nguyên lý chương trình lưu trữ mà von Neumann trình bày trong bản thảo năm 1945, tức lệnh và dữ liệu cùng nằm trong bộ nhớ. "Pascal" không phải máy tính mà là tên một ngôn ngữ lập trình, đặt theo tên nhà toán học Blaise Pascal. "Pascaline" là máy tính cơ khí cộng trừ do Pascal chế tạo ở thế kỷ mười bảy, nó không có bộ nhớ chương trình và chỉ làm được phép tính cố định. "ABC" là máy tính điện tử của Atanasoff cùng Berry, dùng để giải hệ phương trình, nhưng chương trình nằm trong cách đấu nối phần cứng nên nó không thuộc mô hình chương trình lưu trữ.
A(B6)₁₆
B(B5)₁₆
C(A6)₁₆
D(C5)₁₆
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "(B6)₁₆". Chuyển nhị phân sang hệ mười sáu chỉ cần tách dãy bit thành từng nhóm bốn bit tính từ phải sang, ở đây là 1011 và 0110. Nhóm 1011 có giá trị 11, ký hiệu hệ mười sáu của 11 là chữ B; nhóm 0110 có giá trị 6, nên ghép lại được chữ B rồi chữ số 6. "(B5)₁₆" sai ở nhóm thấp, vì chữ số 5 ứng với 0101 chứ không phải 0110. "(A6)₁₆" sai ở nhóm cao, vì chữ A ứng với 1010 trong khi dãy đã cho là 1011. "(C5)₁₆" sai cả hai nhóm, vì chữ C ứng với 1100 và chữ số 5 ứng với 0101, hoàn toàn khác mẫu bit ban đầu. Cách kiểm nhanh là tính giá trị thập phân: mẫu bit đã cho bằng 182, đúng bằng 11 nhân 16 cộng 6.
ATo encrypt the message for secure transmission
BTo verify the integrity and authenticity of the message
CTo compress the message for efficient storage
DTo generate a unique identifier for the message
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "To verify the integrity and authenticity of the message". Mã xác thực thông điệp được tính từ nội dung thông điệp cộng với một khoá bí mật mà hai bên cùng giữ; bên nhận tính lại giá trị đó rồi so sánh, trùng nhau nghĩa là thông điệp không bị sửa trên đường truyền và đúng do người giữ khoá tạo ra. "To encrypt the message for secure transmission" sai vì che giấu nội dung là việc của mã hoá; thông điệp đi kèm mã xác thực vẫn có thể ở dạng rõ, ai bắt được cũng đọc được. "To compress the message for efficient storage" sai vì tuy mã xác thực ngắn và có độ dài cố định, không cách nào khôi phục thông điệp gốc từ nó, nên nó không phải một dạng nén. "To generate a unique identifier for the message" sai vì mục đích ở đây không phải đặt tên hay định danh thông điệp; một hàm băm không khoá cũng tạo được dấu vân tay, nhưng khi đó kẻ sửa thông điệp sẽ tính lại được dấu vân tay mới, điều mà khoá bí mật ngăn lại.
AHard drive, monitor, keyboard, mouse
BMemory, ALU, control unit, I/O subsystem
CCompiler, operating system, application software, data
DProcessor, network card, graphics card, power supply
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Memory, ALU, control unit, I/O subsystem". Mô hình von Neumann định nghĩa bốn khối chức năng: bộ nhớ lưu lệnh và dữ liệu, đơn vị số học và logic thực hiện phép tính, đơn vị điều khiển điều phối hoạt động, và phân hệ vào ra trao đổi dữ liệu với bên ngoài. "Hard drive, monitor, keyboard, mouse" chỉ là các thiết bị cụ thể của một máy thương mại; ổ cứng thuộc lưu trữ, còn màn hình, bàn phím và chuột đều nằm trong phân hệ vào ra. "Compiler, operating system, application software, data" liệt kê các thành phần phần mềm, trong khi mô hình này nói về tổ chức phần cứng của máy tính. "Processor, network card, graphics card, power supply" trộn linh kiện bán lẻ với bộ nguồn; nguồn điện chỉ cấp năng lượng, không tham gia xử lý hay lưu trữ thông tin nên không thể là một khối chức năng của mô hình.
AProcedural programming uses functions, while object-oriented programming uses loops.
BObject-oriented programming organizes code into objects, while procedural programming uses a linear sequence of instructions.
CProcedural programming supports inheritance, while object-oriented programming does not.
DObject-oriented programming does not allow code reuse, while procedural programming does.
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Object-oriented programming organizes code into objects, while procedural programming uses a linear sequence of instructions.". Khác biệt cốt lõi nằm ở cách tổ chức mã: hướng đối tượng gom dữ liệu cùng các phép tác động lên dữ liệu đó vào trong đối tượng, còn thủ tục nhìn chương trình như một dãy lệnh và lời gọi hàm thi hành tuần tự trên dữ liệu rời bên ngoài. "Procedural programming uses functions, while object-oriented programming uses loops." sai vì vòng lặp là cấu trúc điều khiển có mặt ở mọi mô thức, và hướng đối tượng cũng dùng hàm dưới dạng phương thức. "Procedural programming supports inheritance, while object-oriented programming does not." sai vì nói ngược: kế thừa là đặc trưng riêng của hướng đối tượng, lập trình thủ tục không có cơ chế đó. "Object-oriented programming does not allow code reuse, while procedural programming does." sai vì hướng đối tượng tái dùng mã mạnh hơn nhờ kế thừa và đa hình.
48In 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.
AENIAC
BUNIVAC
CIBM PC
DApple I
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "ENIAC". ENIAC hoàn thành năm 1946 là máy tính điện tử đa dụng đầu tiên, dùng đèn điện tử thay cho cơ cấu cơ khí và lập trình được cho nhiều loại bài toán khác nhau, dù việc lập trình phải làm bằng cách cắm lại dây và đặt công tắc. "UNIVAC" ra sau, năm 1951, và điểm đáng nhớ của nó là máy tính thương mại đầu tiên được bán cho khách hàng chứ không phải máy điện tử đa dụng đầu tiên. "IBM PC" là máy vi tính cá nhân do hãng IBM đưa ra năm 1981, cách ENIAC ba mươi lăm năm. "Apple I" là máy vi tính do Steve Wozniak làm năm 1976, cũng thuộc thời kỳ vi xử lý nên không thể là máy đầu tiên.
50In the context of sequential search, what is the main criterion for stopping the search?4 lựa chọn
AWhen the target is found or the end of the list is reached
BWhen the middle of the list is reached
CWhen largest element of the list is found
DNone of the other answers
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "When the target is found or the end of the list is reached". Tìm kiếm tuần tự so khoá cần tìm với từng phần tử theo thứ tự xuất hiện, nên chỉ có hai lý do để dừng: hoặc đã gặp phần tử trùng khoá, hoặc đã đi hết danh sách mà không gặp và khi đó kết luận khoá không tồn tại. "When the middle of the list is reached" sai vì mốc giữa danh sách là cách làm của tìm kiếm nhị phân, thuật toán chia đôi vùng tìm và chỉ áp dụng được trên danh sách đã sắp. "When largest element of the list is found" sai vì phần tử lớn nhất không có vai trò gì ở đây; danh sách tìm tuần tự có thể chưa sắp nên gặp phần tử lớn nhất cũng không cho biết phần còn lại không chứa khoá. "None of the other answers" sai vì đã có một mô tả đúng điều kiện dừng nên không thể chọn cách phủ định tất cả.
A32
B12
C20
D28
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "32". Bộ nhớ cần cấp bằng tổng kích thước các biến đã khai báo: năm biến nguyên, mỗi biến 4 byte, cho 20 byte; ba biến thực, mỗi biến 4 byte, cho 12 byte; cộng lại là 32 byte. "20" chỉ là phần của năm biến nguyên, bỏ sót toàn bộ các biến thực. "12" chỉ là phần của ba biến thực, bỏ sót các biến nguyên. "28" là kết quả khi đếm thiếu một biến, tức chỉ cộng bảy biến thay vì tám. Điều dễ gây nhầm ở đây là kiểu thực cũng chiếm 4 byte đúng như kiểu nguyên, nên không có biến nào được tính nhẹ hơn và tổng số byte đúng bằng tám lần 4.
A6D
BDB
CD6
DB6
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "DB". Mỗi chữ số hệ mười sáu ứng với đúng bốn bit, nên tách dãy từ phải sang trái thành 1101 và 1011. Nhóm bên trái 1101 có giá trị 13 nên viết là chữ D, nhóm bên phải 1011 có giá trị 11 nên viết là chữ B, ghép theo đúng thứ tự đó được kết quả. "6D" là kết quả khi đảo vị trí hai nhóm, như thể đọc dãy bit từ phải sang. "D6" sai ở chữ số cuối, vì 6 ứng với 0110 chứ không phải 1011. "B6" ứng với mẫu bit 10110110, khác dãy đã cho ngay ở bốn bit đầu. Thứ tự nhóm phải giữ nguyên như trong dãy nhị phân, nhóm bit cao luôn đứng trước.
AComputer networks, where vertices represent nodes/hubs and edges represent routes.
BStoring student records in a school.
CImplementing stacks and queues.
DDecimal to binary conversion
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Computer networks, where vertices represent nodes/hubs and edges represent routes.". Đồ thị gồm các đỉnh và các cạnh nối chúng, rất tự nhiên để mô hình hoá mạng máy tính: mỗi nút hay bộ tập trung là một đỉnh, mỗi đường truyền là một cạnh, và bài toán tìm đường đi ngắn nhất cho gói tin trở thành bài toán trên đồ thị. "Storing student records in a school." sai vì hồ sơ học sinh là tập các bản ghi đồng dạng, phù hợp với bảng trong cơ sở dữ liệu hoặc với tệp, không cần quan hệ nối từng cặp đối tượng. "Implementing stacks and queues." sai vì ngăn xếp và hàng đợi được cài đặt bằng mảng hoặc danh sách liên kết, chúng là cấu trúc tuyến tính. "Decimal to binary conversion" sai vì đổi số thập phân sang nhị phân là thuật toán chia liên tiếp lấy số dư, không có đối tượng nào đóng vai trò đỉnh hay cạnh.
54What is the primary concern regarding the collection of personal information by private and public agencies?4 lựa chọn
AIt may pose some risks and be used commercially, conflicting with privacy rights.
BIt might be too costly to store
CIt always leads to identity theft.
DIt slows down computer systems.
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "It may pose some risks and be used commercially, conflicting with privacy rights.". Mối lo chính là thông tin cá nhân khi đã được thu thập có thể bị dùng vào mục đích ngoài mục đích ban đầu, bị đem bán hoặc khai thác thương mại, và điều đó xung đột với quyền được giữ kín đời tư của người bị thu thập. "It might be too costly to store" sai vì chi phí lưu trữ là bài toán kỹ thuật và tài chính của bên thu thập, nó không liên quan tới quyền riêng tư của người dùng. "It always leads to identity theft." sai ở chữ luôn luôn: đánh cắp danh tính là một rủi ro có thể xảy ra khi dữ liệu bị lộ, chứ không phải hậu quả tất yếu của mọi lần thu thập. "It slows down computer systems." sai vì tốc độ hệ thống máy tính là chuyện hiệu năng, hoàn toàn nằm ngoài phạm trù quyền riêng tư đang bàn.
A640,000 bits per second
B40,016 bits per second
C16,000 bits per second
D256,000 bits per second
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "640,000 bits per second". Tốc độ bit bằng số mẫu lấy trong một giây nhân với số bit mã hoá mỗi mẫu: 40.000 nhân 16 cho 640.000 bit mỗi giây. Đây chính là công thức dùng khi số hoá tín hiệu tương tự qua hai bước lấy mẫu và lượng tử hoá. "40,016 bits per second" là kết quả của phép cộng hai số liệu thay vì phép nhân, mà cộng số mẫu với số bit mỗi mẫu thì không có nghĩa gì về đơn vị. "16,000 bits per second" ứng với trường hợp mỗi giây chỉ lấy 1.000 mẫu 16 bit, nhỏ hơn dữ kiện bốn mươi lần. "256,000 bits per second" ứng với tốc độ lấy mẫu 16.000 mẫu mỗi giây, cũng không khớp với 40.000 mẫu đã cho trong đề.
AUsing a separate bit for the sign
BBy changing the least significant bit
CBy using a floating-point standard
DThrough the use of parity bits
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Using a separate bit for the sign". Trong định dạng dấu và độ lớn, người ta dành riêng bit bên trái nhất để ghi dấu, thường 0 cho số dương và 1 cho số âm, còn các bit còn lại ghi độ lớn tuyệt đối của số. Nhờ vậy đổi dấu một số chỉ cần đảo đúng bit đó, phần độ lớn không thay đổi. "By changing the least significant bit" sai vì bit thấp nhất quyết định số chẵn hay lẻ, sửa nó là sửa giá trị chứ không phải sửa dấu. "By using a floating-point standard" sai vì chuẩn dấu phẩy động là một cách biểu diễn khác dành cho số thực, nó cũng có bit dấu riêng nhưng câu hỏi đang nói về định dạng dấu và độ lớn. "Through the use of parity bits" sai vì bit chẵn lẻ chỉ phục vụ việc phát hiện lỗi khi truyền hoặc lưu, không mang thông tin về dấu.
AA job is a program in execution, while a process is stored on disk.
BA job is a program selected for execution, while a process is in execution.
CA job is a completed program, while a process is on disk.
DA job and a process are identical terms.
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "A job is a program selected for execution, while a process is in execution.". Một chương trình cùng dữ liệu của nó, khi còn chờ hệ điều hành chọn và cấp tài nguyên, được gọi là job; đến lúc đã được nạp vào bộ nhớ và thực sự đang chạy thì nó trở thành process. Cùng một thực thể nhưng khác giai đoạn trong vòng đời. "A job is a program in execution, while a process is stored on disk." sai vì nói ngược hoàn toàn: chương trình đang thi hành mới là process, còn thứ nằm chờ bên ngoài mới là job. "A job is a completed program, while a process is on disk." sai vì job không phải chương trình đã hoàn tất; khi kết thúc, tiến trình bị huỷ và tài nguyên được thu hồi. "A job and a process are identical terms." sai vì nếu hai khái niệm trùng nhau thì hệ điều hành không cần tách hai khâu quản lý: bộ phận xếp hàng chờ cho job và bộ định thời cấp bộ xử lý cho process.
AAll user input values
BAll independent paths in every module
CAll decision constructs on each branch.
DEach loop construct
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "All user input values". Kiểm thử hộp kính, tức hộp trắng, dựa trên cấu trúc bên trong của mã nguồn: phải phủ mọi đường đi độc lập, mọi nhánh của từng cấu trúc quyết định và mọi cấu trúc lặp. Thử hết mọi giá trị mà người dùng có thể nhập là bất khả thi về số lượng và thuộc hướng tiếp cận hộp đen, nên không nằm trong tiêu chí này. "All independent paths in every module" là tiêu chí bắt buộc, vì bỏ sót một đường đi là bỏ sót cả một khả năng chạy của chương trình. "All decision constructs on each branch." là tiêu chí bắt buộc, vì mỗi điều kiện phải được thử cả khi đúng lẫn khi sai. "Each loop construct" cũng bắt buộc, vì vòng lặp cần thử các trường hợp không chạy lần nào, chạy một lần và chạy nhiều lần để lộ lỗi biên.
AIt is easier for humans to read and understand.
BIt allows for a greater variety of symbols.
CComputers are made of electronic switches that can have only two states (on and off)
DBinary patterns are more efficient for complex arithmetic operations
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Computers are made of electronic switches that can have only two states (on and off)". Lý do gốc nằm ở vật liệu: máy tính được dựng từ những linh kiện điện tử hoạt động như công tắc, chỉ có hai trạng thái đóng hoặc mở, nên mọi dữ liệu và chương trình đều phải mã hoá thành dãy gồm hai ký hiệu. "It is easier for humans to read and understand." sai vì người đọc dãy bit khó hơn đọc số thập phân nhiều; chính vì vậy mới sinh ra cách viết hệ mười sáu cho gọn. "It allows for a greater variety of symbols." sai vì nhị phân là hệ có ít ký hiệu nhất, chỉ hai, trái hẳn với điều nó khẳng định. "Binary patterns are more efficient for complex arithmetic operations" sai vì mạch số học nhị phân đơn giản chỉ là hệ quả dễ chịu của việc chọn hai trạng thái, không phải nguyên nhân; nếu chế tạo được linh kiện ổn định với mười trạng thái thì máy tính thập phân vẫn khả thi về mặt số học.
A
INSERTB
DELETEC
UPDATED
JOINLời giải
Mở trang câu hỏi này →Đáp án đúng: "JOIN". Trong đại số quan hệ, phép nhị phân là phép nhận hai quan hệ làm đầu vào. Phép ghép nối lấy hai bảng rồi tạo ra bảng mới gồm các cặp bộ thoả điều kiện so khớp, nên nó cần đúng hai toán hạng mới chạy được. "INSERT" sai vì thêm một bộ mới chỉ tác động lên một bảng duy nhất, đây là phép một ngôi. "DELETE" sai vì xoá các bộ thoả điều kiện cũng chỉ làm việc trên một bảng. "UPDATE" sai vì sửa giá trị thuộc tính của các bộ vẫn diễn ra trong phạm vi một bảng. Ba phép vừa nêu đều đổi nội dung một quan hệ tại chỗ chứ không kết hợp hai quan hệ với nhau để sinh ra quan hệ mới.