Danh sách câu hỏi của đề

Câu hỏi: CSI106 Nhập môn khoa học máy tính – Bộ ôn tập cuối kỳ 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
A45
B46
C47
D48
Lời giải
Đáp án đúng: "45". Mã đối xứng dùng chung một khoá cho mỗi cặp bên giao tiếp, nên số khoá cần bằng số cặp khác nhau lấy từ 10 máy, tức 10 nhân 9 rồi chia 2 vì cặp gồm hai máy bị đếm hai lần, cho ra 45 khoá. Phương án "46" là 45 cộng thêm một khoá, có lẽ do cộng thêm một khoá dùng chung cho cả nhóm, nhưng khoá đó không gắn với cặp máy nào nên không thuộc số khoá tối thiểu. Phương án "47" dư hai khoá so với số cặp thực có; không có cách đếm cặp nào trên 10 máy cho ra con số này. Phương án "48" dư ba khoá, cũng không ứng với công thức nào; nếu quên chia đôi thì kết quả sẽ là 90, còn nếu tính thêm cả khoá tự nối với chính mình thì ra 55, không phải 48.
Mở trang câu hỏi này →
AProcesses voluntarily yield control of the CPU.
BThe scheduler forcibly takes control of the CPU from running processes.
CProcesses are executed in a round-robin manner only.
DIt is exclusively used in real-time operating systems.
Lời giải
Đáp án đúng: "The scheduler forcibly takes control of the CPU from running processes.". Đa nhiệm có trưng dụng nghĩa là hệ điều hành chủ động lấy lại bộ xử lý khi lượng thời gian cấp cho tiến trình hết hoặc khi có tiến trình ưu tiên cao hơn sẵn sàng, nhờ đó một tiến trình hỏng hay vòng lặp vô tận cũng không treo được cả máy. Phương án "Processes voluntarily yield control of the CPU." mô tả đa nhiệm hợp tác, đúng kiểu không trưng dụng, nơi hệ điều hành phải đợi tiến trình tự nhường. Phương án "Processes are executed in a round-robin manner only." sai ở chữ chỉ: quay vòng là một thuật toán định thời có trưng dụng, nhưng trưng dụng còn dùng với định thời theo ưu tiên hay theo thời gian còn lại ngắn nhất. Phương án "It is exclusively used in real-time operating systems." bó hẹp sai, vì mọi hệ điều hành đa nhiệm phổ thông hiện nay đều trưng dụng.
Mở trang câu hỏi này →
ATo eliminate repeating groups of data in a relation
BTo ensure that all attributes depend on a composite key
CTo reduce the need for complex SQL queries
DTo establish relationships between multiple relations
Lời giải
Đáp án đúng: "To eliminate repeating groups of data in a relation". Dạng chuẩn một đòi mỗi ô của quan hệ chỉ chứa một giá trị nguyên tử, nên bước này nhằm phá các nhóm lặp và thuộc tính đa trị, chẳng hạn việc nhét nhiều số điện thoại vào cùng một ô; khi còn nhóm lặp thì không thể tìm, sắp hay cập nhật từng giá trị một cách tin cậy. Mục tiêu "To ensure that all attributes depend on a composite key" là chuyện của dạng chuẩn hai, vốn xử lý phụ thuộc bộ phận vào khoá phức. Mục tiêu "To reduce the need for complex SQL queries" đi ngược thực tế, vì chuẩn hoá tách bảng nên truy vấn thường phải nối nhiều bảng hơn. Mục tiêu "To establish relationships between multiple relations" do khoá ngoại đảm nhiệm, không phải việc của dạng chuẩn một.
Mở trang câu hỏi này →
AFunctional programming
BImperative programming
CObject-oriented programming
DProcedural programming
Lời giải
Đáp án đúng: "Functional programming". Trong bốn lựa chọn, lối hàm là lối duy nhất mang tinh thần khai báo: chương trình được viết bằng cách định nghĩa các hàm và biểu thức mô tả kết quả cần có, không phải bằng chuỗi lệnh thay đổi trạng thái theo thời gian, nên nó nhấn vào cái gì cần tính thay vì tính theo bước nào. Phương án "Imperative programming" chính là cực đối lập, vì chương trình ở đó là dãy lệnh lần lượt làm thay đổi biến và trạng thái máy, tức mô tả cách làm. Phương án "Object-oriented programming" tổ chức mã quanh các đối tượng gói dữ liệu cùng phương thức, nhưng thân mỗi phương thức vẫn viết theo lối ra lệnh từng bước. Phương án "Procedural programming" là một nhánh của lối mệnh lệnh, chỉ thêm việc chia chương trình thành các hàm con nên vẫn thuộc nhóm mô tả cách làm.
Mở trang câu hỏi này →
AWhen a new record's key maps to an occupied address.
BThe process of converting a key into an address.
CThe method of sorting records alphabetically.
DThe use of an index file to find records.
Lời giải
Đáp án đúng: "When a new record's key maps to an occupied address.". Trong tệp băm, hàm băm biến khoá của bản ghi thành địa chỉ lưu trữ. Xung đột là tình huống hai khoá khác nhau cùng cho ra một địa chỉ, nên khi ghi bản ghi mới thì chỗ đó đã bị bản ghi khác chiếm và phải xử lý bằng vùng tràn, dò tuyến tính hay băm kép. "The process of converting a key into an address." sai vì đó là mô tả của chính hàm băm, công việc bình thường diễn ra ở mọi lần truy nhập chứ không phải một sự cố. "The method of sorting records alphabetically." sai vì sắp xếp bản ghi theo thứ tự chữ cái là cách tổ chức tệp tuần tự, không liên quan tới cơ chế băm. "The use of an index file to find records." sai vì dùng tệp chỉ mục để tìm bản ghi là một tổ chức tệp khác, nó tránh được chuyện trùng địa chỉ chứ không phải định nghĩa của chuyện đó.
Mở trang câu hỏi này →
AProcedural
BObject-oriented
CFunctional
DDeclarative
EMathematical
Lời giải
Đáp án đúng: "Mathematical". Các mô thức ngôn ngữ lập trình được phân loại theo cách người viết diễn đạt lời giải, và không có mô thức nào mang tên toán học; toán học là nền tảng lý thuyết chung cho cả ngành chứ không phải một kiểu tổ chức chương trình. "Procedural" là mô thức thủ tục, chương trình là dãy lời gọi thủ tục tác động lên dữ liệu bị động. "Object-oriented" xem chương trình là tập các đối tượng chủ động, mỗi đối tượng mang theo dữ liệu và phương thức của mình. "Functional" dựng chương trình bằng cách kết hợp các hàm, nhấn vào giá trị trả về thay vì trạng thái bị thay đổi. "Declarative" chỉ khai báo sự kiện và luật rồi để hệ thống tự suy diễn ra câu trả lời, tiêu biểu là lập trình logic.
Mở trang câu hỏi này →
AArithmetic logic unit (ALU)
BInput/Output (I/O)
CControl unit (CU)
DPower supply unit (PSU)
Lời giải
Đáp án đúng: "Power supply unit (PSU)". Mô hình von Neumann chia máy tính thành bốn hệ con: bộ nhớ, đơn vị số học và logic, đơn vị điều khiển, cùng khối vào ra. Bộ nguồn chỉ chuyển đổi và cấp điện, nó không lưu, không xử lý, không chuyển dữ liệu, nên không nằm trong mô hình xử lý này. Mục "Arithmetic logic unit (ALU)" là nơi thực hiện các phép tính số học và phép logic trên dữ liệu. Mục "Input/Output (I/O)" là hệ con nhận dữ liệu từ ngoài, xuất kết quả và nối với bộ nhớ phụ. Mục "Control unit (CU)" là hệ con giải mã lệnh rồi phát tín hiệu điều khiển cho ba hệ con còn lại phối hợp với nhau. Cả ba đều thuộc mô hình nên không thể là lựa chọn bị loại.
Mở trang câu hỏi này →
A1111100.01
B1111100.000001
C1111100.011001
D1111100.001001
Lời giải
Đáp án đúng: "1111100.000001". Phần nguyên 124 chia liên tiếp cho 2 cho dãy số dư đọc ngược là 1111100, kiểm lại bằng 64 cộng 32 cộng 16 cộng 8 cộng 4 đúng bằng 124. Phần lẻ 0,02 thì nhân liên tiếp với 2: năm lần đầu cho các giá trị 0,04 rồi 0,08 rồi 0,16 rồi 0,32 rồi 0,64 nên năm bit đầu đều là 0, lần thứ sáu cho 1,28 nên bit thứ sáu là 1, được 0,000001 tức 0,015625, xấp xỉ gần nhất. Phương án "1111100.01" có phần lẻ bằng 0,25, lệch hơn mười lần. Phương án "1111100.011001" có phần lẻ bằng 0,390625, lệch còn xa hơn nữa. Phương án "1111100.001001" có phần lẻ bằng 0,140625, vẫn lớn gấp bảy lần giá trị cần biểu diễn, do đặt sai bit 1 ở vị trí thứ ba.
Mở trang câu hỏi này →
AMantissa and Exponent
BReal and Imaginary
CSign and Magnitude
DBase and Variable
Lời giải
Đáp án đúng: "Mantissa and Exponent". Biểu diễn dấu phẩy động tách một số thành phần định trị, tức các chữ số có nghĩa sau khi chuẩn hoá, và phần số mũ cho biết phải dịch dấu phẩy bao nhiêu nấc; nhờ cặp này mà cùng một số lượng bit biểu diễn được cả số rất lớn lẫn số rất nhỏ. Phương án "Real and Imaginary" là hai phần của số phức, thuộc toán học chứ không phải cách máy lưu số thực. Phương án "Sign and Magnitude" là một cách biểu diễn số nguyên có dấu; dấu cũng có mặt trong dấu phẩy động nhưng chỉ chiếm một bit phụ, còn cặp này không nói được gì về việc dịch dấu phẩy. Phương án "Base and Variable" không đúng vì cơ số là hằng số ngầm định của chuẩn, thường là 2, nên không được lưu, và biến không phải một thành phần của khuôn dạng số.
Mở trang câu hỏi này →
ABy creating laws to balance the two
BBy banning all data collection
CBy allowing unlimited commercial use of collected data
DBy ignoring the right to privacy
Lời giải
Đáp án đúng: "By creating laws to balance the two". Nhà nước không thể dẹp hẳn việc thu thập dữ liệu vì nhiều dịch vụ cần nó để hoạt động, cũng không thể buông hoàn toàn vì quyền riêng tư là quyền cơ bản, nên cách làm phổ biến là ban hành luật đặt điều kiện: thu thập phải có mục đích rõ, có sự đồng ý, có giới hạn lưu trữ và có quyền khiếu nại. Phương án "By banning all data collection" bất khả thi trên thực tế và sẽ chặn luôn cả những ứng dụng chính đáng như y tế hay giao thông. Phương án "By allowing unlimited commercial use of collected data" bỏ hẳn một phía của xung đột nên không còn là cách dung hoà. Phương án "By ignoring the right to privacy" là phủ nhận vấn đề thay vì xử lý nó, và trái với các văn bản pháp luật về bảo vệ dữ liệu đang có ở nhiều nước.
Mở trang câu hỏi này →
AUDP
BTCP
CFTP
DHTTP
Lời giải
Đáp án đúng: "UDP". Giao thức này gửi từng gói dữ liệu độc lập, không bắt tay trước, không giữ trạng thái kết nối, không báo nhận và không truyền lại, nên nó là giao thức tầng giao vận không kết nối; bù lại nó nhẹ và nhanh, phù hợp cho truyền giọng nói hay hình ảnh trực tiếp. Giao thức "TCP" cũng ở tầng giao vận nhưng hướng kết nối, nó bắt tay ba bước và bảo đảm dữ liệu đến đủ, đúng thứ tự. Tên "FTP" là giao thức truyền tệp ở tầng ứng dụng và nó chạy dựa trên kết nối tin cậy của tầng dưới. Tên "HTTP" cũng thuộc tầng ứng dụng, dùng để trao đổi tài liệu web, nên nó không phải giao thức của tầng giao vận.
Mở trang câu hỏi này →
A1 and 255
B1 and 256
C0 and 255
D0 and 256
Lời giải
Đáp án đúng: "0 and 255". Tám bit tạo ra 2 luỹ thừa 8 bằng 256 mẫu bit khác nhau; nếu dùng toàn bộ chúng cho số nguyên không dấu thì mẫu nhỏ nhất gồm tám bit 0 biểu diễn giá trị 0 và mẫu lớn nhất gồm tám bit 1 biểu diễn 255, nên dải lưu được là từ 0 tới 255. Phương án "1 and 255" đúng mốc trên nhưng bỏ mất giá trị 0, trong khi 0 hoàn toàn biểu diễn được và vẫn là một số nguyên không dấu hợp lệ. Phương án "1 and 256" sai cả hai đầu: vừa bỏ mất 0 vừa thêm 256, con số cần tới chín bit. Phương án "0 and 256" nhầm số lượng mẫu bit với giá trị lớn nhất; có 256 mẫu nhưng vì đếm bắt đầu từ 0 nên giá trị cuối cùng chỉ là 255.
Mở trang câu hỏi này →
AA compiler translates the entire program before execution, while an interpreter translates one line at a time
BA compiler executes code line by line, while an interpreter translates the whole program at once
CA compiler does not check for errors, while an interpreter does
DA compiler continuously checks for errors line by line, while an interpreter does not, so an interpreter runs faster than a compiler
Lời giải
Đáp án đúng: "A compiler translates the entire program before execution, while an interpreter translates one line at a time". Trình biên dịch đọc toàn bộ mã nguồn, dịch thành mã máy rồi mới cho chạy, nên lỗi cú pháp lộ ra trước khi thi hành và chương trình đã dịch chạy nhanh; trình thông dịch đọc và thực hiện từng câu lệnh ngay lúc chạy, nên linh hoạt nhưng chậm hơn. Phương án "A compiler executes code line by line, while an interpreter translates the whole program at once" đổi chỗ vai trò của hai công cụ. Phương án "A compiler does not check for errors, while an interpreter does" sai hẳn, bởi kiểm tra cú pháp và kiểu dữ liệu chính là việc trình biên dịch làm trước tiên. Phương án "A compiler continuously checks for errors line by line, while an interpreter does not, so an interpreter runs faster than a compiler" sai cả mô tả lẫn kết luận về tốc độ.
Mở trang câu hỏi này →
ACPU scheduling
BFile access permissions
CFile creation and deletion
DFile storage and backups
Lời giải
Đáp án đúng: "CPU scheduling". Trình quản lý tệp chỉ lo phần lưu trữ: tổ chức thư mục, tạo và xoá tệp, kiểm soát ai được đọc ghi, cấp chỗ trên thiết bị lưu trữ; còn việc chia thời gian bộ xử lý cho các tiến trình thuộc trình quản lý tiến trình, một bộ phận khác của hệ điều hành. Nhiệm vụ "File access permissions" đúng là của trình quản lý tệp, nó quyết định người dùng nào được đọc, ghi hay thi hành từng tệp. Nhiệm vụ "File creation and deletion" cũng của nó, gồm cả việc cập nhật mục thư mục và thu hồi chỗ trống. Nhiệm vụ "File storage and backups" cũng vậy, nó quản lý việc đặt tệp lên thiết bị lưu trữ và phục vụ việc sao lưu.
Mở trang câu hỏi này →
AA physical path used for data transmission between components
BA type of memory
CA backup storage system
DA processor's internal clock
Lời giải
Đáp án đúng: "A physical path used for data transmission between components". Bus là tập các đường dẫn vật lý nối các bộ phận để truyền tín hiệu: bus dữ liệu chở dữ liệu, bus địa chỉ chở địa chỉ ô nhớ hay thiết bị, bus điều khiển chở tín hiệu chỉ huy giữa bộ xử lý, bộ nhớ và các khối vào ra. Mục "A type of memory" hiểu sai bản chất, bus chỉ dẫn dữ liệu đi qua chứ không giữ lại gì. Mục "A backup storage system" nói về thiết bị lưu dự phòng, hoàn toàn khác một đường truyền. Mục "A processor's internal clock" là xung nhịp dùng để đồng bộ thời gian trong máy; nhịp này có thể quy định tốc độ truyền trên bus, nhưng bản thân bus vẫn là đường dây chứ không phải cái đồng hồ đó.
Mở trang câu hỏi này →
Als
Bps
Cmv
Dcat
Lời giải
Đáp án đúng: "ps". Lệnh này in danh sách tiến trình đang chạy cùng mã số và trạng thái của chúng, nhờ đó người dùng biết tiến trình nào tồn tại để theo dõi hay kết thúc, nên nó thuộc nhóm lệnh quản lý tiến trình trong UNIX. Phương án "ls" liệt kê nội dung thư mục, tức làm việc với hệ thống tệp chứ không dính tới tiến trình. Phương án "mv" di chuyển hoặc đổi tên tệp và thư mục, cũng là lệnh của hệ thống tệp. Phương án "cat" nối và in nội dung tệp ra đầu ra chuẩn, thường dùng để xem nhanh một tệp văn bản; nó đọc dữ liệu tĩnh trên đĩa, không cho biết gì về các chương trình đang thi hành trong bộ nhớ.
Mở trang câu hỏi này →
A25
B32
C27
D26
Lời giải
Đáp án đúng: "32". Mỗi chữ số hệ tám ứng với đúng ba bit, nên ta chia số nhị phân thành nhóm ba bit tính từ bên phải: nhóm phải là 010 cho chữ số 2, nhóm còn lại là 11 cho chữ số 3, ghép lại được 32. Kiểm lại theo hệ mười: số nhị phân này bằng 26, và 26 bằng 3 nhân 8 cộng 2, đúng là 32 trong hệ tám. Phương án "25" ứng với giá trị 2 nhân 8 cộng 5 bằng 21, không khớp. Phương án "27" ứng với 2 nhân 8 cộng 7 bằng 23, cũng lệch, và chữ số 7 đòi nhóm bit 111 vốn không có ở đây. Phương án "26" chính là giá trị thập phân của số đã cho nên rất dễ bị chọn theo quán tính, nhưng đề hỏi cách viết trong hệ tám chứ không hỏi giá trị thập phân.
Mở trang câu hỏi này →
A.jpg
B.svg
C.gif
D.mp4
Lời giải
Đáp án đúng: ".svg". Ảnh vector được mô tả bằng các đối tượng hình học như đường, đa giác, đường cong cùng thuộc tính màu, nên phóng to bao nhiêu cũng không rỗ; khuôn dạng này lưu đúng kiểu mô tả đó dưới dạng văn bản đánh dấu, vì vậy nó là khuôn dạng vector quen dùng nhất trên web. Phương án ".jpg" là ảnh mành, lưu lưới điểm ảnh và nén có mất nên phóng to sẽ nhoè, thích hợp cho ảnh chụp. Phương án ".gif" cũng là ảnh mành, giới hạn bảng màu 256 màu và hỗ trợ hoạt ảnh đơn giản, vẫn không mô tả hình bằng công thức hình học. Phương án ".mp4" không phải khuôn dạng ảnh mà là khuôn dạng chứa video kèm âm thanh.
Mở trang câu hỏi này →
ABubble Sort
BSelection Sort
CInsertion Sort
DThey all require the same amount of additional memory
Lời giải
Đáp án đúng: "They all require the same amount of additional memory". Ba thuật toán được nêu đều sắp xếp ngay trên dãy gốc và chỉ cần thêm vài biến phụ để so sánh và đổi chỗ, nên bộ nhớ phụ của cả ba đều là một lượng hằng số không phụ thuộc số phần tử; vì thế không thuật toán nào trong số đó tiết kiệm bộ nhớ hơn hai thuật toán kia. Chọn "Bubble Sort" là sai vì nó chỉ cần một biến tạm để đổi chỗ, đúng bằng mức của hai thuật toán còn lại. Chọn "Selection Sort" cũng sai vì nó chỉ giữ thêm chỉ số của phần tử nhỏ nhất, vẫn là lượng hằng số. Chọn "Insertion Sort" sai tương tự, vì biến giữ phần tử đang được chèn cũng chỉ chiếm một ô nhớ.
Mở trang câu hỏi này →
A-7
B7
C120
D134
Lời giải
Đáp án đúng: "134". Trong cách biểu diễn dư 127, trường số mũ không lưu trực tiếp số mũ thực mà lưu số mũ thực cộng với độ lệch 127, nhằm biến mọi số mũ, kể cả số mũ âm, thành số không dấu để so sánh dễ dàng. Số đã chuẩn hoá có số mũ thực là 7, nên trường số mũ mang giá trị 7 cộng 127 bằng 134. Phương án "-7" là số đối của số mũ thực, không liên quan tới cách lưu nào trong chuẩn này. Phương án "7" là chính số mũ thực khi chưa cộng độ lệch, tức bỏ qua đúng bước mà câu hỏi nhắm tới. Phương án "120" là kết quả của 127 trừ 7, tức trừ độ lệch thay vì cộng, một lỗi đổi dấu rất thường gặp khi mới học cách biểu diễn này.
Mở trang câu hỏi này →