Câu hỏi: CSI106 Nhập môn khoa học máy tính – Bộ ôn tập thi lại số 2
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
AElements stored in contiguous memory locations
BEach element containing a data part and a link (pointer) to the next element.
CDirect access to any element using an integer index
DElements always being of the same data type
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Each element containing a data part and a link (pointer) to the next element." Danh sách liên kết gồm các nút rời nhau, mỗi nút chứa phần dữ liệu và một con trỏ chỉ tới nút kế tiếp, nhờ vậy thêm hay xoá chỉ cần sửa con trỏ mà không phải dồn dịch cả dãy. Mục "Elements stored in contiguous memory locations" mô tả mảng, nơi các phần tử nằm liền nhau trong bộ nhớ; danh sách liên kết thì các nút có thể nằm rải rác. Mục "Direct access to any element using an integer index" cũng là tính chất của mảng, vì địa chỉ tính được từ chỉ số; muốn đến nút thứ k của danh sách liên kết thì phải đi lần lượt từ nút đầu. Mục "Elements always being of the same data type" đúng với nhiều cấu trúc dữ liệu khác nên không phân biệt được gì, và nó không nói lên cách các nút nối với nhau.
A2 phases: implementation and testing
B3 phases: design, implementation and testing
C4 phases: analysis, design, implementation and testing
D5 phases: planning, analysis, design, implementation and testing
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "4 phases: analysis, design, implementation and testing". Quá trình phát triển trong vòng đời phần mềm gồm bốn pha nối tiếp: phân tích để xác định phần mềm phải làm gì, thiết kế để quyết định làm thế nào và chia mô-đun, cài đặt để viết mã, kiểm thử để tìm lỗi so với đặc tả. Mục "2 phases: implementation and testing" bỏ mất cả phân tích và thiết kế, tức viết mã khi chưa biết yêu cầu. Mục "3 phases: design, implementation and testing" thiếu pha phân tích, trong khi chính pha này sinh ra tài liệu đặc tả làm căn cứ cho thiết kế và cho việc kiểm thử sau cùng. Mục "5 phases: planning, analysis, design, implementation and testing" thêm việc lập kế hoạch, thứ thuộc quản lý dự án và nằm trước quá trình phát triển, không phải một pha của nó.
AQueue
BStack
CLinked List
DBinary Tree
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Stack". Ngăn xếp chỉ cho thêm và lấy ở một đầu gọi là đỉnh, nên phần tử vào sau cùng lại là phần tử ra đầu tiên; đó đúng là nguyên tắc vào sau ra trước, thấy rõ trong việc lưu địa chỉ trở về khi gọi hàm. Mục "Queue" chạy theo nguyên tắc ngược lại là vào trước ra trước, thêm ở một đầu và lấy ở đầu kia. Mục "Linked List" chỉ là cách tổ chức lưu trữ bằng các nút nối bởi con trỏ, nó không áp đặt luật truy cập nào, thậm chí người ta dùng nó để hiện thực cả ngăn xếp lẫn hàng đợi. Mục "Binary Tree" là cấu trúc phân cấp, việc truy cập đi theo đường từ gốc xuống các nút con nên không có khái niệm vào sau ra trước.
24What was the first type of programming language?4 lựa chọn
AAssembly language
BHigh-level language
CMachine language
DObject-oriented language
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Machine language". Thời kỳ đầu, muốn máy chạy thì phải nạp trực tiếp các mẫu bit mà bộ xử lý hiểu được, nghĩa là viết bằng chính ngôn ngữ máy của phần cứng đó, không có lớp dịch nào ở giữa. Mục "Assembly language" ra đời sau để thay mẫu bit bằng các từ gợi nhớ, nhưng vẫn cần một chương trình dịch hợp ngữ chuyển về mã máy, nên nó không thể có trước. Mục "High-level language" xuất hiện muộn hơn nữa, dùng câu lệnh gần ngôn ngữ tự nhiên và cần trình biên dịch. Mục "Object-oriented language" là một dòng của ngôn ngữ bậc cao, ra đời sau cùng trong bốn lựa chọn, khi người ta đã cần tổ chức chương trình lớn theo lớp và đối tượng.
A1
B0
C-1
D2
ENone of the other answers
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "1". Trong biểu diễn bù hai, bit trái nhất vừa là bit dấu vừa mang trọng số âm lớn nhất, nên bit này bằng 1 thì số là số âm, bằng 0 thì số không âm. Ví dụ với bốn bit, 1011 có bit đầu là 1 và thật sự bằng âm 5. Mục "0" cho biết số không âm, tức ngược với điều câu hỏi cần. Mục "-1" không dùng được vì một bit chỉ nhận hai giá trị là 0 hoặc 1, không có giá trị âm. Mục "2" cũng không phải giá trị mà một bit biểu diễn được, nó đã vượt ra ngoài hệ nhị phân. Mục "None of the other answers" không đúng vì giá trị 1 đã nằm trong danh sách và là giá trị đúng.
A
RouterB
SwitchC
FirewallD
HubLời giải
Mở trang câu hỏi này →Đáp án đúng: "Switch". Thiết bị chuyển mạch đọc địa chỉ MAC trong khung dữ liệu, tra bảng địa chỉ của mình rồi chỉ chuyển khung ra đúng cổng đích; địa chỉ MAC và khung đều là khái niệm của tầng liên kết dữ liệu. Mục "Router" làm việc ở tầng mạng, nó đọc địa chỉ IP để chọn đường đi giữa các mạng khác nhau. Mục "Firewall" lọc lưu lượng theo chính sách, thường xét địa chỉ IP, cổng và cả nội dung ứng dụng, nên nó không phải thiết bị chuyển khung theo địa chỉ vật lý. Mục "Hub" nằm ở tầng vật lý, chỉ khuếch đại và phát lại bit ra mọi cổng mà không đọc địa chỉ nào, vì vậy mọi máy đều nhận được mọi khung và dễ xảy ra xung đột.
ARunning a word processor
BControlling embedded systems like autopilots
CBrowsing the Internet
DEditing videos
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Controlling embedded systems like autopilots". Hệ điều hành thời gian thực được thiết kế để bảo đảm công việc hoàn tất trong khoảng thời gian xác định trước, vì vậy nó dùng cho các hệ nhúng điều khiển thiết bị, nơi trả lời chậm vài phần nghìn giây có thể gây tai nạn. Mục "Running a word processor" là ứng dụng tương tác bình thường, trễ vài trăm phần nghìn giây người dùng không hề thấy hậu quả. Mục "Browsing the Internet" phụ thuộc độ trễ mạng vốn không kiểm soát được, nên chẳng thể và chẳng cần ràng buộc hạn thời gian chặt. Mục "Editing videos" cần nhiều sức tính và dung lượng, nhưng chịu được việc chờ kết xuất, nên hệ điều hành đa dụng là đủ.
A0000 1111
B1111 0000
C0101 1000
D1010 0000
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "0000 1111". Muốn xoá một số bit về 0 mà giữ nguyên các bit còn lại thì dùng phép AND với mặt nạ có bit 0 ở những chỗ cần xoá và bit 1 ở những chỗ cần giữ. Bốn bit trái nhất phải bị xoá nên mặt nạ mang 0000 ở nửa trái và 1111 ở nửa phải; kết quả 1010 0111 AND 0000 1111 bằng 0000 0111. Mục "1111 0000" làm điều ngược lại, nó giữ nửa trái và xoá nửa phải, cho ra 1010 0000. Mục "0101 1000" đặt bit 0 và 1 lẫn lộn ở cả hai nửa, AND với mẫu đã cho còn ra 0000 0000, mất luôn cả phần cần giữ. Mục "1010 0000" giữ đúng những bit đáng lẽ phải xoá và xoá những bit đáng lẽ phải giữ, cũng cho 1010 0000.
29In 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.
A
InsertB
DeleteC
JoinD
SelectE
AddLời giải
Mở trang câu hỏi này →Đáp án đúng: "Insert". Trong SQL, lệnh dùng để đưa thêm một dòng dữ liệu vào bảng đang có là lệnh chèn, viết đủ là thêm vào bảng kèm danh sách giá trị cho các cột. Mục "Delete" làm điều trái lại, nó loại bỏ các dòng thoả điều kiện. Mục "Join" là phép ghép hai quan hệ theo thuộc tính chung để sinh ra một quan hệ kết quả, nó không ghi thêm dòng nào vào bảng nguồn. Mục "Select" chỉ truy vấn và trả về dữ liệu đang có, hoàn toàn không thay đổi nội dung bảng. Mục "Add" không phải một lệnh độc lập để thêm dòng; từ khoá này chỉ xuất hiện bên trong lệnh sửa cấu trúc bảng khi cần thêm một cột, tức thay đổi lược đồ chứ không thêm dữ liệu.
AIt does not depend on the position of digits.
BIt can represent numbers using symbols only.
CThe value of a digit is determined by its position and base.
DRoman numerals are an example of nonpositional systems.
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "The value of a digit is determined by its position and base." Câu hỏi tìm điều KHÔNG đúng, và mệnh đề này lại chính là định nghĩa của hệ có vị trí: ở đó giá trị một chữ số bằng chính nó nhân với cơ số luỹ thừa vị trí, nên số 2 trong 25 khác số 2 trong 52. Hệ không vị trí thì ngược lại, mỗi ký hiệu mang giá trị cố định dù đứng ở đâu. Mục "It does not depend on the position of digits." là mô tả đúng của hệ không vị trí nên không phải thứ cần chọn. Mục "It can represent numbers using symbols only." cũng đúng, vì số được viết bằng một tập ký hiệu rồi cộng trừ các ký hiệu đó lại. Mục "Roman numerals are an example of nonpositional systems." đúng nữa, số La Mã là ví dụ chuẩn, trong đó XII bằng mười cộng một cộng một.
ARectangles, circles, diamonds, lines
BRectangles, ellipses, diamonds, lines
CSquares, ellipses, diamonds, lines
DIt is up to the designer which geometry to use
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Rectangles, ellipses, diamonds, lines". Sơ đồ thực thể quan hệ dùng hình chữ nhật cho tập thực thể, hình bầu dục cho thuộc tính, hình thoi cho tập quan hệ, và các đoạn thẳng để nối những hình đó lại, thêm số hay ký hiệu trên đường nối để chỉ lực lượng quan hệ. Mục "Rectangles, circles, diamonds, lines" dùng hình tròn, vốn không phải ký hiệu quy ước; thuộc tính phải vẽ bằng hình bầu dục. Mục "Squares, ellipses, diamonds, lines" sai ở chỗ vẽ thực thể bằng hình vuông thay vì hình chữ nhật, trong khi tên thực thể thường dài nên quy ước là hình chữ nhật. Mục "It is up to the designer which geometry to use" phủ nhận giá trị của một ký hiệu chuẩn, trong khi sơ đồ chỉ hữu ích khi mọi người đọc cùng một quy ước.
A
FTPB
HTTPC
SMTPD
POP3Lời giải
Mở trang câu hỏi này →Đáp án đúng: "SMTP". Giao thức này chuyên việc chuyển thư từ máy khách lên máy chủ thư và giữa các máy chủ thư với nhau, tức lo chiều gửi đi của thư điện tử. Mục "FTP" là giao thức truyền tệp, dùng để tải tệp lên hoặc tải xuống giữa hai máy, không liên quan hộp thư. Mục "HTTP" là giao thức của web, dùng để lấy trang và tài nguyên từ máy chủ web; giao diện thư trên web chạy nhờ nó, nhưng khi thư thật sự rời đi thì phần dưới vẫn phải nhờ giao thức gửi thư. Mục "POP3" làm chiều ngược lại, nó cho máy khách lấy thư đã nằm trong hộp thư trên máy chủ về máy mình rồi thường xoá bản trên máy chủ, nên không dùng để gửi thư ra ngoài.
AThe act is approved by a majority of people in society
BThe act aligns with universally accepted moral principles
CThe act results in beneficial consequences for society
DThe act is based on personal secrecy
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "The act is approved by a majority of people in society". Thuyết khế ước xã hội coi đúng sai là sản phẩm của thoả thuận trong cộng đồng: con người đồng ý cùng tuân theo một bộ quy tắc để sống chung, nên hành vi được xem là có đạo đức khi nó phù hợp với điều đa số thành viên trong xã hội đó tán thành. Mục "The act aligns with universally accepted moral principles" là lập trường của thuyết đạo đức phổ quát, nơi chuẩn mực tồn tại độc lập và không phụ thuộc ai đồng ý. Mục "The act results in beneficial consequences for society" là cách xét của thuyết vị lợi, lấy hệ quả làm thước đo. Mục "The act is based on personal secrecy" không phải tiêu chuẩn của bất kỳ thuyết đạo đức nào, giữ kín một việc không làm cho việc đó đúng.
AThe CPU remains idle during input/output operations because no other program is in memory
BThe CPU continuously runs multiple programs, leading to overheating
CThe CPU is only able to process user requests but cannot manage system resources efficiency
DThe CPU cannot perform arithmetic operations when a program is executing or waiting
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "The CPU remains idle during input/output operations because no other program is in memory". Chế độ đơn chương trình chỉ nạp một chương trình vào bộ nhớ và chạy đến hết. Khi chương trình đó chờ nhập hay xuất dữ liệu, một việc chậm gấp nhiều lần tốc độ tính, trong bộ nhớ không còn chương trình nào khác để bộ xử lý chuyển sang, nên nó đứng không và hiệu suất rất thấp. Mục "The CPU continuously runs multiple programs, leading to overheating" trái ngay với định nghĩa, vì ở đây không có nhiều chương trình trong bộ nhớ. Mục "The CPU is only able to process user requests but cannot manage system resources efficiency" gán sai việc, quản lý tài nguyên là nhiệm vụ của hệ điều hành. Mục "The CPU cannot perform arithmetic operations when a program is executing or waiting" sai thực tế, bộ xử lý vẫn tính được, vấn đề chỉ là không có việc để làm.
36Which type of computer language was exclusively used at the very beginning of the computer age?4 lựa chọn
AHigh-level languages
BSymbolic languages
CMachine language using binary patterns
DObject-oriented languages
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Machine language using binary patterns". Ở buổi đầu của máy tính, mọi lệnh phải nạp trực tiếp dưới dạng các mẫu bit mà phần cứng giải mã được, người lập trình làm việc đúng theo tập lệnh của riêng chiếc máy đó. Mục "High-level languages" ra đời từ giữa thập niên 1950 trở đi, chúng cần trình biên dịch nên không thể có khi chưa có công cụ dịch nào. Mục "Symbolic languages" tức hợp ngữ, thay mẫu bit bằng các từ gợi nhớ, nhưng vẫn phải nhờ chương trình dịch hợp ngữ nên cũng xuất hiện sau. Mục "Object-oriented languages" là một dòng của ngôn ngữ bậc cao, ra đời muộn nhất khi người ta cần tổ chức chương trình lớn theo lớp và đối tượng.
37How many types of cyber attacks exist?4 lựa chọn
A2
B3
C4
D5
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "3". Các cuộc tấn công được xếp theo mục tiêu an toàn mà chúng nhắm vào, và vì chỉ có ba mục tiêu nền là giữ bí mật, giữ toàn vẹn và giữ khả dụng, nên tấn công cũng chia thành ba nhóm: nhóm làm lộ thông tin, nhóm sửa đổi thông tin, nhóm làm hệ thống không dùng được. Mục "2" bỏ sót một mục tiêu, chẳng hạn gộp việc làm lộ dữ liệu với việc đánh sập dịch vụ thì mất hẳn nhóm sửa đổi dữ liệu. Mục "4" thêm một nhóm không ứng với mục tiêu an toàn nào trong ba mục tiêu nền. Mục "5" càng xa cách chia này; chia nhỏ hơn thì thành liệt kê từng kiểu tấn công cụ thể như nghe trộm hay từ chối dịch vụ, chứ không còn là số nhóm.
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.
A-7
B7
C120
D134
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "134". Trong dạng dấu phẩy động, trường số mũ không lưu số mũ thật mà lưu số mũ đã cộng thêm một độ lệch để tránh phải ghi dấu. Với Excess-127, độ lệch là 127, số mũ thật ở đây là 7, nên giá trị lưu trong trường số mũ bằng 7 cộng 127, tức 134, viết nhị phân tám bit là 1000 0110. Mục "7" là số mũ thật chưa cộng độ lệch, nếu ghi 7 vào trường thì khi đọc ra máy hiểu số mũ là 7 trừ 127 bằng âm 120. Mục "-7" vừa sai dấu vừa không phải dạng lưu được, trường số mũ chỉ chứa số không âm. Mục "120" lấy 127 trừ 7, tức trừ thay vì cộng độ lệch, đó là cách tính cho số mũ âm 7.
AAn operation involving multiple operands.
BAn operation that always results in zero.
CAn operation with a single operand.
DAn operation performed on two different data types.
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "An operation with a single operand." Bậc của một phép toán đếm số toán hạng nó cần, nên phép một toán hạng là phép chỉ tác động lên duy nhất một giá trị, ví dụ phép đảo bit hay phép lấy số đối. Mục "An operation involving multiple operands." mô tả phép hai toán hạng như cộng, trừ, AND, OR, hoặc phép ba toán hạng, tức ngược với nghĩa của phép một toán hạng. Mục "An operation that always results in zero." nói về giá trị kết quả, trong khi bậc của phép toán không liên quan gì tới việc kết quả bằng mấy. Mục "An operation performed on two different data types." vừa đếm hai toán hạng, vừa chuyển sang chuyện kiểu dữ liệu; chuyện kiểu dữ liệu thuộc quy tắc chuyển đổi khi tính, không định nghĩa bậc của phép toán.