CSI106Chưa đoKỳ 1Cơ sở ngành Cập nhật 2 ngày trước

Introduction to Computer Science - CSI106

Khoa học máy tính bắt đầu từ một câu hỏi đơn giản đến bất ngờ: làm sao một cỗ máy chỉ phân biệt được hai trạng thái lại xử lý nổi văn bản, hình ảnh, âm thanh và cả những suy luận phức tạp? CSI106 trả lời bằng cách đi dọc chiều sâu của một hệ máy tính, từ tầng bit lên tới tầng ứng dụng, để thấy rõ mỗi tầng được dựng trên tầng dưới nó ra sao. Chặng đầu là chuyện biểu diễn: quy số, chữ, ảnh và âm thanh về những dãy bit, các quy ước xử lý số âm và số có phần lẻ, rồi những phép toán logic tác động lên từng bit một. Chặng giữa bước vào cỗ máy thật — bộ xử lý, phân cấp bộ nhớ, đường truyền nối chúng — và vào lớp phần mềm điều phối tất cả, nơi hệ điều hành chia bộ nhớ, sắp lịch cho tiến trình và tạo ra ảo giác rằng nhiều chương trình đang chạy cùng lúc. Chặng sau mở ra ngoài phạm vi một máy đơn lẻ: nhiều máy nối nhau thành mạng theo lối phân tầng, khối dữ liệu lớn được tổ chức thành cơ sở dữ liệu quan hệ, và thông tin trên đường truyền được che bằng mã hoá. Xen giữa là bộ công cụ để viết phần mềm: cấu trúc dữ liệu, giải thuật cùng cách ước lượng chi phí chạy, các hệ hình ngôn ngữ lập trình, và quy trình làm phần mềm như một nghề có kỷ luật. Chặng cuối chạm tới trí tuệ nhân tạo cùng những ràng buộc pháp lý và đạo đức đi kèm. Cái môn này để lại là một tấm bản đồ, có trước khi người học đi sâu vào bất kỳ hướng nào. Sau đó, một dãy bit lạ, một thông báo lỗi mạng, một truy vấn chạy ì ạch hay một đoạn mã khó sửa đều thôi còn là hộp đen: người học biết hiện tượng nằm ở tầng nào, chịu ràng buộc gì, và nên tra tiếp ở đâu. Đó cũng là nền để bước tiếp vào những môn hẹp hơn về lập trình, hệ thống, mạng hay dữ liệu mà không phải quay lại học lại các khái niệm gốc.

359Câu hỏi
8Bộ đề
13Chủ đề

Câu hỏi của môn

104/359 câuCòn 255
A1
B0
C-1
D2
ENone of the other answers
Lời giải
Đá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.
Mở trang câu hỏi này →
ARouter
BSwitch
CFirewall
DHub
Lời giải
Đá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.
Mở trang câu hỏi này →
ARunning a word processor
BControlling embedded systems like autopilots
CBrowsing the Internet
DEditing videos
Lời giải
Đá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à đủ.
Mở trang câu hỏi này →
A0000 1111
B1111 0000
C0101 1000
D1010 0000
Lời giải
Đá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.
Mở trang câu hỏi này →
ASorting files by Index
BCompress a normal file
CCalculating a key
DAdding lines to the file
Lời giải
Đá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.
Mở trang câu hỏi này →
AInsert
BDelete
CJoin
DSelect
EAdd
Lời giải
Đá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.
Mở trang câu hỏi này →
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
Đá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.
Mở trang câu hỏi này →
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
Đá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.
Mở trang câu hỏi này →
AFTP
BHTTP
CSMTP
DPOP3
Lời giải
Đá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.
Mở trang câu hỏi này →
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
Đá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.
Mở trang câu hỏi này →
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
Đá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.
Mở trang câu hỏi này →
AHigh-level languages
BSymbolic languages
CMachine language using binary patterns
DObject-oriented languages
Lời giải
Đá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.
Mở trang câu hỏi này →
A2
B3
C4
D5
Lời giải
Đá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.
Mở trang câu hỏi này →
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
Đá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.
Mở trang câu hỏi này →
A-7
B7
C120
D134
Lời giải
Đá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.
Mở trang câu hỏi này →
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
Đá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.
Mở trang câu hỏi này →
101What describes the hierarchical model?4 lựa chọn
AData is organized as a binary tree and each entity can have several children
BData is organized as a binary tree and each entity have only one children
CData is organized as an inverted tree and each entity can have several children
DData is organized as an inverted tree and each entity have only one child
Lời giải
Đáp án đúng: "Data is organized as an inverted tree and each entity can have several children". Mô hình phân cấp xếp dữ liệu như một cái cây úp ngược: có một bản ghi gốc trên cùng, từ đó toả xuống các bản ghi con, mỗi thực thể được phép có nhiều con nhưng chỉ có đúng một cha, nên đường từ gốc tới một bản ghi là duy nhất. Mục "Data is organized as a binary tree and each entity can have several children" tự mâu thuẫn, cây nhị phân khống chế mỗi nút tối đa hai con, còn mô hình phân cấp không giới hạn như vậy. Mục "Data is organized as a binary tree and each entity have only one children" sai cả hai chỗ, vừa áp cây nhị phân vừa bó mỗi thực thể một con, lúc đó cấu trúc thành một chuỗi thẳng. Mục "Data is organized as an inverted tree and each entity have only one child" đúng hình dạng nhưng đặt giới hạn sai phía, ràng buộc chỉ một nằm ở phía cha chứ không ở phía con.
Mở trang câu hỏi này →
A1011
B1101
C1110
D1100
Lời giải
Đáp án đúng: "1011". Cách tìm biểu diễn bù hai của một số âm gồm ba bước: viết trị tuyệt đối trên bốn bit được 0101, đảo tất cả các bit được 1010, rồi cộng thêm 1 được 1011. Kiểm lại theo trọng số, bit trái nhất mang trọng số âm 8 nên 1011 bằng âm 8 cộng 2 cộng 1, đúng bằng âm 5; phép kiểm hai chiều này khép kín nên kết quả không còn chỗ nghi ngờ. Mục "1101" bằng âm 8 cộng 4 cộng 1, tức âm 3. Mục "1110" bằng âm 8 cộng 4 cộng 2, tức âm 2. Mục "1100" bằng âm 8 cộng 4, tức âm 4. Cả ba đều có bit dấu bằng 1 nên đều là số âm, nhưng giá trị lệch so với yêu cầu.
Mở trang câu hỏi này →
103_______ is an arithmetic operation.4 lựa chọn
AThe exclusive OR
BThe unary NOT
CSubtraction
DThe binary AND
Lời giải
Đáp án đúng: "Subtraction". Phép trừ làm việc trên giá trị số của hai toán hạng và trả về một giá trị số, nên nó là phép toán số học; trong máy tính nó thường được thực hiện bằng cách cộng số thứ nhất với bù hai của số thứ hai, vì vậy chỉ cần một mạch cộng là đủ. Mục "The exclusive OR" là phép logic, nó xét từng cặp bit ở cùng vị trí và cho 1 khi hai bit khác nhau, không có nhớ sang vị trí bên cạnh. Mục "The unary NOT" cũng là phép logic, chỉ đảo từng bit của một toán hạng. Mục "The binary AND" là phép logic lấy giao từng bit, thường dùng để xoá bớt bit bằng mặt nạ. Dấu hiệu phân biệt là phép số học có nhớ lan giữa các vị trí bit, còn phép logic xử lý từng vị trí độc lập.
Mở trang câu hỏi này →
ATCP provides error recovery, congestion control, and flow control, while UDP provides none of these features
BUDP is connection-oriented and ensures data reliability, while TCP is connectionless and faster
CBoth TCP and UDP are connection-oriented protocols but differ in flow control mechanisms
DTCP is primarily used for real-time communication, while UDP is used for file transfers
Lời giải
Đáp án đúng: "TCP provides error recovery, congestion control, and flow control, while UDP provides none of these features". Giao thức hướng kết nối của tầng vận tải thiết lập kết nối trước khi truyền, đánh số thứ tự từng byte, chờ báo nhận, truyền lại khi mất, đồng thời điều tiết tốc độ theo sức bên nhận và mức tắc nghẽn của mạng; giao thức còn lại chỉ bọc dữ liệu vào một datagram rồi gửi, không có các cơ chế đó nên nhanh hơn. Mục "UDP is connection-oriented and ensures data reliability, while TCP is connectionless and faster" đảo vai trò của hai giao thức. Mục "Both TCP and UDP are connection-oriented protocols but differ in flow control mechanisms" sai vì giao thức nhẹ không thiết lập kết nối nào. Mục "TCP is primarily used for real-time communication, while UDP is used for file transfers" cũng ngược: truyền tệp cần đúng từng byte nên dùng loại tin cậy, còn thoại và video trực tiếp chịu được mất gói nhưng không chịu được chờ.
Mở trang câu hỏi này →