Mẹo Nhỏ Nên Đọc Qua
1. Để tìm kết quả nhanh thì nên sử dụng Máy Tính thay vì Điện Thoại.
2. Sau khi Sao chép (Copy) câu hỏi thì bấm “Ctrl + F” và Dán (Paste) câu hỏi vào ô tìm kiếm sẽ thấy câu cả lời. (Copy nguyên câu không ra thì thử vài từ để kiếm)
3. Trường hợp không tìm thấy câu hỏi. Lúc này vui lòng kéo xuống dưới cùng để đặt câu hỏi mục bình luận. Sẽ được trả lời sau ít phút.
4. Xem danh sách đáp án Trắc nghiệm EHOU
5. THAM GIA KHẢO SÁT VỀ CÂU HỎI (Khảo sát giúp chúng tôi biết sự trải nghiệm của Bạn, Bạn có thể đóng ý kiến giúp Chúng tôi tăng trải nghiệm của bạn. Đặc biệt chúng tôi chọn ra 1 người may mắn mỗi tuần để trao Mã Kích Hoạt LawPro 30 Miễn Phí)
6. Tham gia group Facebook Sinh Viên Luật để được hỗ trợ giải bài tập và Nhận Mã Kích hoạt tài khoản Pro Miễn Phí
7. Nếu đăng nhập mà không thấy đáp án thì làm như sau: Giữ Phím Ctrl sau đó bấm phím F5 trên bàn phím “Ctrl + F5” để trình duyệt xóa cache lúc chưa đăng nhập và tải lại nội dung.
ĐÁP ÁN TRẮC NGHIỆM _LẬP TRÌNH HỆ THỐNG – IT17_THI TRẮC NGHIỆM
Update ngày 12/07/2024
Câu 1. API có tác dụng như thế nào trên Windows?
– (S): Các dịch vụ hệ thống
– (S): Một chương trình ứng dụng
– (S): Chức năng của người dùng
– (S): Phần mềm để lập trình
– (Đ)✅: Thư viện để lập trình
Câu 2. Bảng vectơ ngắt chứa gì và nằm ở đâu?
– (Đ)✅: Chứa địa chỉ đầu của các chương trình con phục vụ ngắt và nằm ở RAM
– (S): Chứa mã máy của các chương trình con phục vụ ngắt và nằm ở ROM BIOS
– (S): Chứa mã máy lệnh đầu tiên của các chương trình con phục vụ ngắt và nằm ở ROM hoặc RAM đều được
Câu 3. Biết rằng 1 chương trình con phục vụ ngắt của hệ thống thường có nhiều chức năng. Vậy muốn sử dụng 1 chức năng nào đó của 1 ngắt hệ thống thì theo qui định số chức năng sẽ được đặt vào đâu?
– (S): Bất kỳ thanh ghi nào tùy người lập trình chọn
– (Đ)✅: Thanh ghi AH
– (S): Thanh ghi AL
Câu 4. Bước nhảy của các lệnh nhảy có điều kiện phải
– (S): 64k
– (Đ)✅: 128 byte
– (S): Không giới hạn
Câu 5. Byte có địa chỉ bao nhiêu của vùng dữ liệu ROM BIOS cho biết các thông tin liên quan đến DMA, số lượng cổng COM, số lượng cổng LPT, cổng joystick và cổng máy in nối tiếp ?
– (S): 0:400h
– (S): 0:410h
– (Đ)✅: 0:411h
Câu 6. Byte có địa chỉ bao nhiêu của vùng dữ liệu ROM BIOS cho biết các thông tin liên quan đến ổ mềm (có hay không và nếu có thì bao nhiêu ổ), FPU, số lượng kRAM có thêm trên mainboard và loại card điều khiển màn hình ?
– (S): 0:400h
– (Đ)✅: 0:410h
– (S): 0:411h
Câu 7. Các bước để lập trình đa luồng?
– (S): B1) Lập trình các lệnh xử lý luồng
B2) Tạo luồng chạy hàm trên bằng lệnh “CreateThread”
– (S): B1) Lập trình hàm bất kỳ
B2) Tạo luồng chạy hàm trên
– (S): B1) Lập trình hàm xử lý luồng
B2) Tạo luồng chạy hàm trên bằng lệnh “new Thread”
– (Đ)✅: B1) Lập trình hàm xử lý luồng
B2) Tạo luồng chạy hàm trên bằng lệnh “CreateThread”
– (S): B1) Lập trình hàm xử lý luồng
B2) Tạo luồng chạy hàm trên bằng lệnh “StartThread”
Câu 8. Các lệnh để tạo cửa sổ và hiển thị lên màn hình (tên lớp cửa sổ đăng ký là “CS1”)?
– (Đ)✅: CreateWindow
ShowWindow
UpdateWindow
– (S): NewWindow
ShowWindow
PaintWindow
– (S): CreateWindow
ShowWindow
– (S): CreateWindows
ShowWindows
UpdateWindows
– (S): NewWindow
ShowWindow
Câu 9. Các lệnh trong nhóm di chuyển dữ liệu khi thực hiện có làm thay đổi trạng thái các bit cờ không?
– (S): Có
– (S): Tùy tình huống
– (Đ)✅: Không
Câu 10. Các ngắt của BIOS có số ngắt bao nhiêu và mã máy của chương trình con phục vụ ngắt nằm ở đâu?
– (Đ)✅: Số ngắt từ int 0h đến int 1fh và mã máy CT con phục vụ ngắt nằm ở ROM BIOS
– (S): Số ngắt từ int 0h đến int 1fh và mã máy CT con phục vụ ngắt nằm ở RAM
– (S): Số ngắt từ int 20h đến int 0ffh và mã máy CT con phục vụ ngắt nằm RAM
– (S): Số ngắt từ int 20h đến int 0ffh và mã máy CT con phục vụ ngắt nằm ROM BIOS
Câu 11. Các thanh ghi của máy tính 32 bit có độ dài bao nhiêu bit?
– (S): Tất cả đều có độ dài 16 bit
– (Đ)✅: Tất cả các thanh ghi đều có độ dài 32 bit trừ các thanh ghi đoạn (segment) vẫn là 16 bit
– (S): Tất cả đều có độ dài 32 bit
Câu 12. Các thanh ghi segment của máy tính cấu trúc 32 bit có độ dài bao nhiêu bit?
– (S): 8 bit
– (S): 64 bit
– (Đ)✅: Tất cả các thanh ghi segment của máy tính 32 bit đều có độ dài 16 bit
– (S): 32 bit
Câu 13. Các thiết bị vào/ra chuẩn có thể coi là một tệp với các thẻ tệp (file handle) mặc định. Số thẻ tệp có giá trị bao nhiêu mặc định cho thiết bị ra chuẩn (màn hình)?
– (Đ)✅: 1
– (S): 4
– (S): 3
– (S): 0
– (S): 2
Câu 14. Các thiết bị vào/ra chuẩn của máy tính có thể coi là một tệp với các thẻ tệp (file handle) mặc định. Số thẻ tệp có giá trị bao nhiêu mặc định cho thiết bị vào chuẩn (bàn phím)?
– (Đ)✅: 0
– (S): 1
– (S): 3
– (S): 2
– (S): 4
Câu 15. Cách để một chương trình ứng dụng truy cập API là?
– (S): Không thể truy cập API
– (Đ)✅: Viết lệnh gọi hàm API
– (S): Khai báo API trong chương trình
– (S): Viết lệnh truy cập đến API
– (S): Máy tự động gọi đến API
Câu 16. Cách dịch và liên kết của cách liên kết Inline Assembly?
– (S): Chương trình dịch của TC sẽ đảm nhiệm hết.
– (Đ)✅: Quá trình dịch sẽ như sau:
– Chương trình dịch của TC sẽ dịch tệp nguôn (đuôi .c hoặc .cpp) sang tệp có đuôi .asm,
– Chương trình dịch TASM dịch tệp có đuôi .asm sang tệp đuôi .obj,
-TLINK sẽ thực hiện việc liên kết để tạo ra tệp .exe.
– (S): Chương trình dịch của ngôn ngữ Assembly sẽ đảm nhiệm hết
– (S): Tùy tình huống
Câu 17. Cách nào thực hiện việc hiện 1 xâu ký tự lên màn hình là dễ dàng nhất và tốt nhất trong lập trình Assembly (hợp ngữ)
– (S): Khai báo xâu kết thúc bằng \0, sau đó viết chương trình hiện các ký tự cho đến khi gặp \0.
– (S): Dùng chức năng thứ 13h của ngắt int 10h
– (Đ)✅: Khai báo xâu kết thúc bằng ‘$’, sau đó dùng chức năng thứ 9 của ngắt int 21h (DOS functions)
Câu 18. Cần viết 1 chương trình con để giải quyết cùng một vấn đề. Anh A “Tôi sẽ viết chương trình con không đối”. Anh B “Tôi sẽ viết chương trình con có đối”. Ai đúng, ai sai ?
– (S): Anh A đúng
– (S): Anh B đúng
– (Đ)✅: Cả hai cùng có thể
Câu 19. Chức năng nào của ngắt INT 10h cho phép hiển thị nhiều lần1 ký tự có màu sắc lên màn hình tại vị trí con trỏ đứng ?
– (S): Chức năng 8h
– (S): Chức năng 0Eh
– (Đ)✅: Chức năng 9h
Câu 20. Chức năng nào của ngắt INT 21h cho phép đọc tệp?
– (S): Chức năng 3Ch
– (S): Chức năng 3Eh
– (S): Chức năng 3Dh
– (Đ)✅: Chức năng 3Fh
– (S): Chức năng 40h
Câu 21. Chức năng nào của ngắt INT 21h cho phép đổi lấy hoặc đặt thuộc tính tệp?
– (S): Chức năng 42h
– (S): Chức năng 56h
– (S): Chức năng 57h
– (Đ)✅: Chức năng 43h
– (S): Chức năng 41h
Câu 22. Chức năng nào của ngắt INT 21h cho phép đổi tên tệp?
– (S): Chức năng 42h
– (Đ)✅: Chức năng 56h
– (S): Chức năng 43h
– (S): Chức năng 57h
– (S): Chức năng 41h
Câu 23. Chức năng nào của ngắt INT 21h cho phép ghi tệp?
– (S): Chức năng 3Eh
– (S): Chức năng 3Fh
– (S): Chức năng 3Ch
– (Đ)✅: Chức năng 40h
– (S): Chức năng 3Dh
Câu 24. Chức năng nào của ngắt INT 21h cho phép mở tệp mới đã có?
– (S): Chức năng 3Ch
– (Đ)✅: Chức năng 3Dh
– (S): Chức năng 3Fh
– (S): Chức năng 3Eh
– (S): Chức năng 40h
Câu 25. Chức năng nào của ngắt int 21h cho phép nhận 1 ký tự từ bàn phím?
– (S): 0Ah
– (S): 9h
– (Đ)✅: 1h
Câu 26. Chức năng nào của ngắt int 21h cho phép nhận 1 xâu ký tự từ bàn phím và để vào trong 1 vùng đệm (cho phép đánh sai và sửa)?
– (Đ)✅: 0Ah
– (S): 1h
– (S): 9h
Câu 27. Chức năng nào của ngắt INT 21h cho phép tạo tệp mới và mở?
– (S): Chức năng 3Dh
– (Đ)✅: Chức năng 3Ch
– (S): Chức năng 40h
– (S): Chức năng 3Eh
– (S): Chức năng 3Fh
Câu 28. Chức năng nào của ngắt INT 21h cho phép tạo tệp mới và mở?
– (S): Chức năng 3Eh
– (Đ)✅: Chức năng 3Ch
– (S): Chức năng 40h
– (S): Chức năng 3Fh
– (S): Chức năng 3Dh
Câu 29. Chương trình con thuần túy hợp ngữ (cả chương trình chính lẫn chương trình con đều là hợp ngữ) thì không có đối. Vậy khi liên kết ngôn ngữ bậc cao với ngôn ngữ Assembly thì ngôn ngữ bậc cao có thể giả thiết chương trình con Assembly có đối hay không? Ai qui định số lượng đối và kiểu đối ?
– (S): Có và số lượng đối và kiểu đối do hợp ngữ quyết định
– (Đ)✅: Có và số lượng đối và kiểu đối do ngôn ngữ bậc cao giả thiết
– (S): Không
Câu 30. Chương trình con và macro thì loại nào cho phép có đối?
– (S): Cả hai
– (Đ)✅: MACRO
– (S): Chương trình con
Câu 31. Chương trình con và macro thì loại nào thực hiện nhanh hơn?
– (S): Bằng nhau
– (S): Chương trình con
– (Đ)✅: MACRO
Câu 32. Chương trình con và macro thì loại nào tiết kiệm vùng nhớ?
– (S): Bằng nhau
– (Đ)✅: Chương trình con
– (S): MACRO
Câu 33. Chương trình đa tệp thuần túy hợp ngữ phải sử dụng các directive nào để các nhãn dùng (các nhãn mà các module đều dùng) chung hiểu nhau ?
– (S): Chỉ sử dụng directive EXTRN
– (S): Chỉ sử dụng directive PUBLIC
– (Đ)✅: Tất cả các phương án
Câu 34. Chương trình đa tệp thuần túy hợp ngữ thì module nào khai báo PUBLIC cho tên chương trình con mà các module đều dùng ?
– (S): Module sử dụng chương trình con (module gọi chương trình con)
– (S): Module nào cũng được
– (Đ)✅: Module viết chương trình con
Câu 35. Chương trình đa tệp thuần túy hợp ngữ thì với nhãn là tên các biến nhớ thì việc khai báo EXTRN các nhãn dùng chung đó được tiến hành ở đâu ?
– (S): Chỉ ở module chương trình con
– (S): Chỉ ở module của chương trình chính
– (Đ)✅: Ở module nào cũng được
Câu 36. Chương trình được viết bằng ngôn ngữ Assembly (hợp ngữ) có ưu điểm gì?
– (Đ)✅: Chạy nhanh, tiết kiệm vùng nhớ và dễ dàng thâm nhập vào phần cứng của máy tính
– (S): Dễ viết
– (S): Chạy nhanh
– (S): Tiết kiệm vùng nhớ
– (S): Dễ tìm sai
Câu 37. Có mấy cách chuyển giao tham số giữa chương trình chính (thường do C/C++ đảm nhiệm) với chương trình con (thường do Assembly đảm nhiệm)?
– (S): Chỉ thông qua ngăn xếp
– (S): Chuyển giao qua thanh ghi
– (S): Chỉ thông qua biến nhớ
– (Đ)✅: Có thể chuyển giao tham số theo 2 cách:
Cách 1: Thông qua khai báo biến toàn cục và sử dụng directive PUBLIC và EXTRN (với hợp ngữ) và extern (với C/C++),
Cách 2: Thông qua ngăn xếp khi ngôn ngữ C/C++ giả thiết hàm do Assembly có đối và khi gọi chương trình con, ngôn ngữ C/C++ đưa tham số thực vào ngăn xếp và hàm Assembly sẽ vào ngăn xếp lấy các giá trị đó ra mà dùng.
Câu 38. Có mấy phương pháp đưa địa chỉ đầu của chương trình con phục vụ ngắt vào vị trí tương ứng của bảng vectơ ngắt ?
– (Đ)✅: Cả hai cách
– (S): Chỉ có cách gián tiếp nhờ chức năng 25h của ngắt int 21h
– (S): Chỉ có cách trực tiếp
Câu 39. Có thể dùng chung các thanh ghi làm toán hạng trong các lệnh của thân chương trình chính và chương trình con được không?
– (Đ)✅: Được, song phải bảo vệ giá trị các thanh ghi trong chương trình con trước khi sử dụng và hồi phục lại giá trị các thanh ghi trước khi quay về chương trình chính.
– (S): Tùy tình huống
– (S): Không được
– (S): Được, mà không cần quan tâm đến điều gì cả
Câu 40. Có thể sử dụng dạng cơ số nào để thể hiện 1 hằng số trong lập trình Assembly?
– (S): Dạng hexa
(cơ số 16)
– (S): Dạng nhị phân (cơ số binary)
– (Đ)✅: Tất cả các dạng cơ số nêu trên
– (S): Dạng thập phân (cơ số 10)
– (S): Dạng bát phân (cơ số 8)
Câu 41. Có thể sử dụng mấy dạng directive điều khiển segment trong khi viết chương trình hợp ngữ ?
– (Đ)✅: 2 dạng: đơn giản và chuẩn
– (S): Chỉ 1 dạng chuẩn
– (S): Chỉ 1 dạng đơn giản
– (S): 3 dạng
Câu 42. Con trỏ (cursor) có ở chế độ (mode) nào của màn hình ?
– (S): Cả văn bản và đồ họa
– (S): Đồ họa
– (Đ)✅: Văn bản
Câu 43. Cũng như mọi ngôn ngữ lập trình, việc sử dụng chương trình con trong lập trình Assembly (hợp ngữ) có ý nghĩa gì?
– (S): Dễ dịch
– (S): Dễ viết
– (S): Tiết kiệm vùng nhớ
– (Đ)✅: Làm cho chương trình có cấu trúc và tiết kiệm vùng nhớ
Câu 44. CX chứa số lần lặp của lệnh LOOP. Vậy CX có thể là một giá trị
– (S): Tất cả các phương án
– (Đ)✅: 1≤CX≤32767
– (S): Bất kỳ số nào
– (S): CX≥0
Câu 45. Đây là loại khai báo biến gì ?
.DATA
A DW 10 dup- (S):
– (S): A là biến số 2 byte được gán giá trị ban đầu là 10
– (S): A là biến số có độ dài 10 byte
– (Đ)✅: A là 1 trường số có 10 thành phần mà mỗi thành phần là 2 byte không xác lập giá trị ban đầu
Câu 46. Để lập trình xử lý khi người dùng chọn mục trên menu ta thực hiện?
– (S): Kiểm tra thông điệp WM_COMMAND và xử lý trong hàm chính (WinMain)
– (S): Kiểm tra thông điệp WM_COMMAND và xử lý nếu tham số WPARAM trong hàm thông điệp bằng số hiệu của mục chọn
– (S): Xử lý thông điệp WM_COMMAND trong hàm cửa sổ
– (S): Kiểm tra thông điệp WM_COMMAND và xử lý nếu tham số kiểu UINT trong hàm thông điệp bằng số hiệu của mục chọn
– (Đ)✅: Kiểm tra và xử lý nếu tham số kiểu WPARAM trong hàm thông điệp bằng số hiệu của mục chọn
Câu 47. Để vẽ một hình vuông cạnh 100, có hai đường chéo và bên trong có hình tròn nội tiếp ta dùng thứ tự các lệnh sau (với HDC là )?
– (Đ)✅: Rectangle(,0,0,100,100);
MoveToEx(,0,0,0);
LineTo(,100,100);
MoveToEx(,0,100,0);
LineTo(,100,0);
AngleArc(50,50,50,0,360);
– (S): Rectangle(,0,0,100,100);
MoveToEx(,0,0,0);
LineTo(,100,100);
MoveToEx(,0,100,0);
LineTo(,100,0);
AngleArc(0,0,100,0,360);
– (S): Rectangle(,0,0,100,100);
LineTo(,0,0,100,100);
LineTo(,0,100,100,0);
AngleArc(50,50,50,0,360);
– (S): Rectangle(,0,0,100,100);
Line (,0,0,100,100);
Line(,0,100,100,0);
AngleArc(50,50,50,0,360);
– (S): Rectangle(,0,0,50,100);
MoveToEx(,0,0,0);
LineTo(,50,100);
MoveToEx(,0,100,0);
LineTo(,50,0);
Ellipse(0,0,50,100);
Câu 48. Địa chỉ các cổng của các thiết bị VÀO/RA của máy tính gồm mấy byte?
– (S): 1 byte
– (S): 4 byte
– (Đ)✅: 2 byte
Câu 49. Directive INCLUDE chèn nội dung 1 tệp ngoài vào chương trình đang viết. Nếu sử dụng directive INCLUDE nhiều lần nội dung 1 tệp ngoài vào chương trình thì trong nội dung của tệp ngoài có cho phép có nhãn nhảy hay không ?
– (Đ)✅: Không
– (S): Có
– (S): Tùy tình huống
Câu 50. Directive nào xác lập biến 2 byte ?
– (S): DD
– (S): DB
– (Đ)✅: DW
Câu 51. Độ lớn của bảng vectơ ngắt và vị trí của bảng vectơ ngắt?
– (Đ)✅: 1024 byte và nằm ở đầu vùng nhớ
– (S): 128 byte và nằm ở đầu vùng nhớ
– (S): 512 byte và nằm ở cuối vùng nhớ
– (S): 256 byte và nằm ở cuối vùng nhớ
Câu 52. Độ lớn vùng dữ liệu ROM BIOS và địa chỉ đầu vùng dữ liệu ROM BIOS?
– (S): 1024 byte RAM và địa chỉ đầu là 0:100h
– (S): 128 byte RAM và địa chỉ đầu là 0:0h
– (Đ)✅: 256 byte RAM và địa chỉ đầu là: 0:400h
Câu 53. Giả thiết có 1 đoạn chương trình như sau :
.DATA
A DW 100 dup- (S):
.CODE
PS:
LEA BX,A
Vậy nội dung thanh ghi BX chứa gì ?
– (S): Giá trị A[0]
– (S): Phần địa chỉ OFFSET của A[99] (địa chỉ thành phần cuối cùng của trường)
– (Đ)✅: Phần địa chỉ OFFSET của A[0] (địa chỉ thành phần đầu tiên của trường)
Câu 54. Hai thanh ghi nào trong các tổ hợp sau trỏ đến địa chỉ vùng nhớ chứa mã lệnh sẽ được thi hành kế tiếp ?
– (Đ)✅: CS:IP
– (S): ES:DI
– (S): SS:SP
– (S): DS:SI
Câu 55. Hàm API để hiển thị thông báo trên màn hình có tên là?
– (S): MsgBox
– (S): Alert
– (S): MessageScreen
– (Đ)✅: MessageBox
– (S): Toast
Câu 56. Hàm chính (WinMain) của chương trình trên Windows có 4 tham số với kiểu tương ứng là?
– (S): HINSTANCE, HANDLE, LPSTR, int
– (S): HWND, HINSTANCE, UINT, LPVOID
– (S): HWND, HINSTANCE, LPSTR, int
– (Đ)✅: HINSTANCE, HINSTANCE, LPSTR, int
– (S): HINSTANCE, UINT, LPSTR, int
Câu 57. Hàm chính (WinMain) của chương trình trên Windows được khai báo như sau?
– (S): int WinMain( HINSTANCE, HINSTANCE, LPSTR,int);
– (S): int WINAPI WinMain( HINSTANCE, LPSTR, int);
– (S): int WinMain( HINSTANCE, HWND, LPSTR, int);
– (Đ)✅: int WINAPI WinMain( HINSTANCE, HINSTANCE, LPSTR,int);
– (S): int WINAPI WinMan( HINSTANCE, HINSTANCE, LPSTR,int);
Câu 58. HDC là kiểu định danh cho ngữ cảnh thiết bị để làm gì?
– (S): Chứa số hiệu cửa sổ khi vẽ
– (S): Chứa đối tượng để vẽ đồ họa
– (S): Chứa thông tin về các thông điệp cho việc vẽ đồ họa
– (S): Chứa dữ liệu về các thông tin cấu tạo cửa sổ
– (Đ)✅: Chứa dữ liệu về các tham số đồ họa như màu vẽ, màu tô, kiểu nét vẽ,…
Câu 59. Khai báo các thành phần chia sẽ giữa thư viện và chương trình là?
– (Đ)✅: Sử dụng chỉ thị “__declspec(dllexport)” trong thư viện và “__declspec(dllimport)” trong chương trình
– (S): Sử dụng chỉ thị “__decspec(dllexport)” trong thư viện và “__decspec(dllimport)” trong chương trình
– (S): Sử dụng cặp “__declspec(dllexport)” và “__declspec(dllimport)” trong cả thư viện và chương trình
– (S): Sử dụng chỉ thị “__declspec(dllexport, dllimport)” trong cả thư viện và chương trình
– (S): Sử dụng chỉ thị “__declspec(dllexport)” trong chương trình và “__declspec(dllimport)” trong thư viện
Câu 60. Khi liên kết ngôn ngữ bậc cao C/C++ với hợp ngữ theo cách viết tách biệt tệp ngôn ngữ bậc cao và tệp của hợp ngữ thì tệp ngôn ngữ bậc cao C/C++ cần những khai báo gì với các nhãn dùng chung?
– (Đ)✅: Chỉ cần khai báo tường minh extern, không cần khai báo tường minh PUBLIC vì với các ngôn ngữ bậc cao nói chung và C/C++ nói riêng, bất kỳ một khai báo nào đều là PUBLIC rồi.
– (S): Không cần khai báo gì.
– (S): Cần khai báo tường minh PUBLIC và extern
Câu 61. Khi liên kết ngôn ngữ bậc cao với hợp ngữ theo cách viết riêng biệt tệp ngôn ngữ bậc cao và tệp của hợp ngữ thì các nhãn dùng chung (ngôn ngữ bậc cao và hợp ngữ đều dùng). Vậy nhãn ở đây là gì ?
– (S): Tên biến nhớ
– (S): Tên ký hiệu (symbol) thay cho 1 hằng số
– (S): Tên chương trình con
– (Đ)✅: Tên biến nhớ, tên chương trình con và tên ký hiệu thay cho 1 hằng số
– (S): Tên nhãn nhảy
Câu 62. Khi liên kết ngôn ngữ bậc cao với hợp ngữ theo cách viết riêng biệt tệp ngôn ngữ bậc cao và tệp của hợp ngữ thì với các nhãn dùng chung (ngôn ngữ bậc cao và hợp ngữ đều dùng) hợp ngữ có cần khai báo tường minh PUBLIC để cho phép ngôn ngữ bậc cao dùng các nhãn đó ?
– (Đ)✅: Cần
– (S): Tùy tình huống
– (S): Tùy tình huống
Câu 63. Khi liên kết ngôn ngữ bậc cao với hợp ngữ theo cách viết riêng biệt tệp ngôn ngữ bậc cao và tệp của hợp ngữ, với giả thiết hàm do hợp ngữ viết có đối thì chương trình con của hợp ngữ thường sử dụng nhất thanh ghi nào làm con trỏ để thâm nhập vào các biến (tham số thực đã được đưa vào ngăn xếp) ?
– (S): BX, SI hoặc DI
– (Đ)✅: BP
– (S): SP
Câu 64. Khi liên kết ngôn ngữ bậc cao với hợp ngữ theo cách viết riêng biệt tệp ngôn ngữ C/C++ bậc cao và tệp của hợp ngữ thì với các nhãn dùng chung (ngôn ngữ C/C++ và hợp ngữ đều dùng), ngôn ngữ C/C++ có cần khai báo tường minh EXTERNAL (extern) để xin phép dùng các nhãn mà hợp ngữ đã xác lập và cho phép ?
– (S): Không cần
– (Đ)✅: Cần
– (S): Tùy tình huống
Câu 65. Khi liên kết ngôn ngữ C/C++ với hợp ngữ theo cách viết riêng biệt tệp ngôn ngữ C/C++ và tệp của hợp ngữ thì trong module hợp ngữ có phải thêm dấu gì trước các biến dùng chung với C/C++ ?.
– (S): Không cần thêm gì
– (Đ)✅: Thêm dấu _ (dấu underscore) trước tên biến và thêm ở mọi nơi mà biến đó xuất hiện trong module hợp ngữ
– (S): Thêm dấu $
Câu 66. Khi liên kết ngôn ngữ C/C++ với hợp ngữ theo cách viết riêng biệt tệp ngôn ngữ C/C++ và tệp của hợp ngữ, với giả thiết chương trình con viết bằng hợp ngữ có đối thì khi C/C++ gọi chương trình con đó các tham số thực sẽ được đưa vào ngăn xếp theo thứ tự như thế nào ?
– (Đ)✅: Từ phải sang trái
– (S): Tùy tình huống
– (S): Từ trái sang phải
Câu 67. Khi liên kết với ngôn ngữ bậc cao với ngôn ngữ Assembly thì địa chỉ lệnh tiếp theo được cất vào ngăn xếp gồm mấy byte?
– (S): 2 byte
– (S): 4 byte
– (Đ)✅: Nếu chương trình con là NEAR thì 2 byte, còn nếu chương trình con là FAR thì 4 byte
Câu 68. Khi viết một chương trình hợp ngữ có thể sử dụng 2 loại directive điều khiển segment là dạng đơn giản (.MODEL, .STACK, .DATA, .CODE) và dạng chuẩn (SEGMENT, GROUP, ASSUME). Loại nào có thể xử lý mọi tình huống về điều khiển segment ?
– (S): Cả hai dạng
– (S): Dạng dơn giản
– (Đ)✅: Dạng chuẩn
Câu 69. Khi viết một chương trình hợp ngữ sử dụng directive điều khiển segment dạng đơn giản và có khai báo biến thì người lập trình có phải đưa phần địa chỉ segment của dữ liệu vào thanh ghi DS ?
– (Đ)✅: Có và nhờ 2 lệnh sau :
mov reg16,@data mov DS,reg16
– (S): Có và nhờ 2 lệnh sau :
mov reg16,data
mov DS,reg16
– (S): Không, hệ điều hành sẽ tự đưa
– (S): Tùy tình huống
Câu 70. Khối lệnh trong thân MACRO có cho phép có nhãn nhảy hay không ?
– (Đ)✅: Có song nhãn đó phải được khai báo sau directive LOCAL
– (S): Không
– (S): Có trong bất kỳ tình huống nào
Câu 71. Làm thế nào để xác định địa chỉ đầu của chương trình con phục vụ ngắt ?
– (Đ)✅: Nhờ directive OFFSET và SEG
– (S): Nhờ directive OFFSET
– (S): Nhờ directive SEG
Câu 72. Làm thế nào xác định được độ dài 1 tệp?
– (Đ)✅: Đưa con trỏ tệp về cuối tệp và CF = 0 (bit cờ Carry = 0) thì DX:AX=độ dài tệp
– (S): Đưa con trỏ tệp về cuối tệp và CF = 1 (bit cờ Carry = 1) thì DX:AX=độ dài tệp
Câu 73. Lập trình đa luồng là?
– (Đ)✅: Cho phép chương trình chạy nhiều hàm cùng lúc hoặc một hàm nhiều lần cùng lúc
– (S): Cho phép chương trình chạy một hàm nhiều lần song song với nhau
– (S): Cho phép chương trình chạy nhiều luồng luân phiên nhau
– (S): Cho phép chương trình chạy nhiều hàm cùng lúc
– (S): Cho phép chương trình chạy nhiều hàm trên cùng một luồng
Câu 74. Lệnh AND AX,AX có nghĩa gì không?
– (Đ)✅: Giá trị AX không đổi song dựng trạng thái các bit cờ, phục vụ các lệnh nhảy có điều kiện
– (S): Tất cả các phương án
– (S): Vô nghĩa
– (S): Xóa trạng thái các bit cờ
Câu 75. Lệnh nhảy JMP là loại lệnh nhảy gì và có bước nhảy bao nhiêu byte?
– (S): Có điều kiện và bước nhảy là không giới hạn
– (Đ)✅: Không điều kiện và có bước nhảy 64 k
Câu 76. Lệnh SAR AX,1 (dịch phải một lần nội dung có trong thanh ghi AX) có nghĩa gì?
– (S): Chia đôi giá trị có trong AX nếu AX chứa số nguyên
– (Đ)✅: Chia đôi làm tròn dưới giá trị có trong AX nếu AX chứa số nguyên
– (S): Chỉ chia đôi làm tròn dưới giá trị có trong AX nếu AX chứa số nguyên dương
– (S): Tất cả các phương án
Câu 77. Lệnh SHL AX,1 (dịch trái một lần nội dung có trong thanh ghi AX) có ý nghĩa gì?
– (S): Nhân đôi giá trị có trong AX
– (S): Chia đôi giá trị có trong AX
– (Đ)✅: Nhân đôi giá trị có trong AX với điều kiện bit cao nhất là 0 (AX chứa số nguyên dương)
– (S): Tất cả các phương án
Câu 78. Lệnh SHR AX,1 (dịch phải một lần nội dung có trong thanh ghi AX) có ý nghĩa gì?
– (S): Chia đôi giá trị có trong AX nếu AX chứa số nguyên dương
– (Đ)✅: Chia đôi làm tròn dưới giá trị có trong AX nếu AX chứa số nguyên dương
– (S): Tất cả các phương án
– (S): Chia đôi làm tròn dưới giá trị có trong AX nếu AX chứa số nguyên
Câu 79. Lệnh: LEA BX,m (trong đó m là một biến) có ý nghĩa gì?
– (S): Đưa giá trị biến m vào thanh ghi BX
– (Đ)✅: Đưa phần địa chỉ offset ô nhớ được cấp phát cho biến m vào thanh ghi BX. Giá trị trong BX là con trỏ offset của ô nhớ cấp pháp cho biến
– (S): Đưa phần địa chỉ segment ô nhớ cấp phát cho biến m vào thanh ghi BX
– (S): Xóa trạng thái các bit cờ
Câu 80. Liên kết giữa ngôn ngữ bậc cao và hợp ngữ theo cách Inline Assembly thực hiện như thế nào ?
– (Đ)✅: Chèn khối lệnh hợp ngữ vào chương trình được viết bằng ngôn ngữ bậc cao
– (S): Chèn khối lệnh ngôn ngữ bậc cao vào chương trình được viết bằng hợp ngữ
Câu 81. Lớp cửa sổ (WNDCLASS) được đăng ký (RegisterClass) vào hệ thống có tác dụng như thế nào?
– (S): Không cần đăng ký lớp cửa sổ
– (S): Quy định cấu tạo cửa sổ
– (S): Quy định màu sắc, kiểu chữ của cửa sổ
– (Đ)✅: Quy định các đặc điểm cửa sổ và hàm xử lý thông điệp trên nó
– (S): Quy định các hoạt động trên cửa sổ
Câu 82. MACRO của hợp ngữ có cho phép có đối hay không? Có phải bắt buộc có đối không?
– (S): Bắt buộc phải có đối
– (S): Không có đối
– (Đ)✅: Có thể có đối hoặc không có đối
Câu 83. Một chương trình chính của ngôn ngữ Assembly phải kết thúc như thế nào?
– (S): Bình thường như các ngôn ngữ khác.
– (Đ)✅: Kết thúc phải trở về DOS với:
Chương trình dạng .EXE là:
mov ah,4ch
int 21h
Chương trình dạng .COM là:
int 20h
– (S): Không phải làm gì cả.
Câu 84. Một chương trình dạng .COM có thể chứa bao nhiêu phân đoạn (seggment) và đó là phân đoạn nào?
– (Đ)✅: 1 phân đoạn duy nhất và đó là code segment
– (S): 2 phân đoạn và đó là code segment và data segment
– (S): phân đoạn và đó là code, data và stack segment
Câu 85. Một chương trình dạng .COM, nếu có khai báo biến thì biến sẽ được cấp phát ô nhớ của vùng nhớ dành cho phân đoạn (seggment) nào?
– (Đ)✅: Phân đoạn vùng nhớ dành cho dữ liêu (data segment)
– (S): Phân đoạn vùng nhớ dành cho mã máy của CT (code segment)
– (S): Phân đoạn vùng nhớ dành cho ngăn xếp (stack segment)
Câu 86. Một chương trình dạng .EXE có thể chứa ít nhất bao nhiêu phân đoạn (segment) ?
– (S): 1 phân đoạn
– (Đ)✅: 3 phân đoạn
– (S): 2 phân đoạn
Câu 87. Một số kiểu dữ liệu trên Windows có tiền tố chữ H (HWND, HINSTANCE, HPEN,…). Chữ H có nghĩa là?
– (S): Chuỗi ký tự định danh (Handle) các thành phần
– (Đ)✅: Số nguyên định danh (Handle) các thành phần
– (S): Số nguyên chứa nội dung của thành phần
– (S): Ký tự mô tả thành phần
– (S): Số nguyên nắm giữ (Hold) giá trị thành phần
Câu 88. Một thư viện DLL có thể được dùng như thế nào?
– (S): Được sử dụng chung trong toàn bộ hệ thống
– (S): Được sử dụng tùy ý
– (Đ)✅: Được sử dụng trong nhiều chương trình
– (S): Không được sử dụng trong nhiều chương trình
– (S): Chỉ được sử dụng trong một chương trình
Câu 89. Một toán hạng đứng sau các lệnh của ngôn ngữ Assembly (hợp ngữ) có thể là gì?
– (S): Chỉ có thể là một thanh ghi
– (Đ)✅: Có thể là một thanh ghi, biến nhớ, hằng số, biểu thức hoặc một nhãn (tên CT con, nhãn nhảy)
– (S): Chỉ có thể là một nhãn
– (S): Chỉ có thể là một biến nhớ
– (S): Chỉ có thể là một hằng số
Câu 90. Muốn xác lập một ngắt người lập trình phải tiến hành các bước cần thiết gì ?
– (S): Chỉ cần viết chương trình con phục vụ ngắt
– (Đ)✅: Tất cả các phương án
– (S): Đặt địa chỉ đầu của chương trình con phục vụ ngắt vào vị trí tương ứng của bảng vectơ ngắt
Câu 91. Ngắt BIOS int 10h là ngắt gồm các chức năng liên quan đến thiết bị nào ?
– (S): Bàn phím
– (S): Ổ đĩa
– (Đ)✅: Màn hình
Câu 92. Ngắt nào của BIOS cho phép làm việc với thời gian máy tính?
– (S): Ngắt 10h
– (Đ)✅: Ngắt 1Ah
– (S): Ngắt 16h
Câu 93. Ngắt nào của DOS có các chức năng liên quan đến các thiết bị của máy tính?
– (Đ)✅: Hầu hết đều do ngắt int 21h của DOS nắm giữ
– (S): Mỗi một thiết bị có một ngắt DOS riêng
Câu 94. Người lập trình ngôn ngữ Assembly (hợp ngữ) hay dùng lệnh AND với mục đích gì?
– (S): Để đưa giá trị của toán hạng lên 1
– (S): Để đưa giá trị một toán hạng về 0
– (S): Để thay đổi giá trị của toán hạng
– (S): Xóa trạng thái các bit cờ
– (Đ)✅: Để:
Tách bit: Muốn tách bit nào đó (giữ trạng thái bit đó) của 1 toán hạng thì hãy AND bit đó với 1 và các bit khác với 0.
Dựng cờ: Thực hiện lệnh AND toán hạng với chính nó sẽ dựng các cờ cho biết trạng thái giá trị của toán hạng đó và trên cơ sở các cờ đó thực hiện các lệnh nhảy có điều kiện.
Câu 95. Người lập trình ứng dụng của ngôn ngữ Assembly (hợp ngữ) có thể dùng các thanh ghi nào làm con trỏ offset (thanh ghi chứa phần địa chỉ offset) của một ô nhớ?
– (Đ)✅: Chỉ có thể dùng các thanh ghi sau: BX, SI, DI và BP
– (S): Chỉ dùng thanh ghi DX
– (S): Các thanh ghi segment
– (S): Tất cả các thanh ghi
Câu 96. Những thông điệp phát sinh khi người dùng tác động lên thiết bị chuột bao gồm?
– (S): WM_LBUTTONDOWN,
WM_KEYDOWN
WM_RUTTONDOWN
– (S): WM_CLOSE, WM_LBUTTONDOWN,
WM_RUTTONDOWN
– (S): WM_MOUSE, WM_LEFTDOWN,
WM_RIGHTDOWN
– (Đ)✅: WM_MOUSEMOVE, WM_LBUTTONDOWN,
WM_RUTTONDOWN
– (S): WM_MOUSEMOVE, WM_LBUTTONDOWN,
WM_CHAR
Câu 97. Những thông điệp phát sinh khi người dùng tác động lên thiết bị chuột bao gồm?
– (S): WM_LBUTTONDOWN,
WM_KEYDOWN
WM_RUTTONDOWN
– (S): WM_MOUSEMOVE, WM_LBUTTONDOWN,
WM_CHAR
– (Đ)✅: WM_MOUSEMOVE, WM_LBUTTONDOWN,
WM_RUTTONDOWN
– (S): WM_MOUSE, WM_LEFTDOWN,
WM_RIGHTDOWN
– (S): WM_CLOSE, WM_LBUTTONDOWN,
WM_RUTTONDOWN
Câu 98. Những vấn đề gì cần lưu ý khi viết chương trình ngôn ngữ Assembly (hợp ngữ) để sau khi dịch và liên kết được tệp thực hiện đuôi .COM
– (Đ)✅: Cần lưu ý:
1.Chương trình chỉ có 1 phân đoạn mã máy,
2.Khai báo biến trong vùng nhớ mã máy,
3.Sử dụng directive ORG,
4.Tốt nhất là trở về DOS bằng ngắt int 20h
5. Khi liên kết sử dụng tùy chon t, cụ thể là:
tlink/t têntệp
– (S): Không cần lưu ý gì. Viết như để tệp thực hiện có đuôi .EXE
– (S): Cần lưu ý khi khai báo biến
– (S): Cần lưu ý khi liên kết
Câu 99. Ở chế độ văn bản màn hình có bao nhiêu dòng ?
– (Đ)✅: 25
– (S): 40
– (S): 80
Câu 100. ROM BIOS là gì, chứa thông tin gì ?
– (S): Là vùng nhớ chứa hệ điều hành
– (Đ)✅: Là vùng nhớ dạng ROM chứa một số thông tin về máy tính đang dùng và quan trọng hơn cả là chứa mã máy của hai loại chương trình: mã máy các chương trình kiểm tra khi máy tính khởi động và mã máy của các chương trình con phục vụ ngắt BIOS.
– (S): Là vùng nhớ ROM chứa thông tin về phần cứng máy tính đang dùng.
Câu 101. Sau khi đọc nội dung trong 1 tệp thành công (chức năng 3Fh của ngắt int 21h) thì thanh ghi nào cho biết số lượng byte thực tế đã đọc được?
– (Đ)✅: Thanh ghi AX
– (S): Thanh ghi DX
– (S): Thanh ghi BX
– (S): Thanh ghi CX
Câu 102. Sau khi thực hiện các chức năng liên quan đến thư mục và tệp thì trạng thái bit cờ nào cho biết kết quả thực hiện của các chức năng trên (được hay không được)?
– (Đ)✅: Bit cờ CF = 1 không thực hiện được và CF=0 thực hiện được
– (S): Bit cờ SF = 1 không thực hiện được và SF=0 thực hiện được
– (S): Bit cờ ZF = 1 không thực hiện được và ZF=0 thực hiện được
Câu 103. Sau khi thực hiện các chức năng mở 1 tệp đã có (chức năng 3dh) hoặc tạo 1 tệp mới và mở (chức năng 3ch) của ngắt DOS int 21h thì sau khi thực hiện thành công thẻ tệp nằm ở thanh ghi nào?
– (Đ)✅: Thanh ghi AX
– (S): Thanh ghi DX
– (S): Thanh ghi cờ
– (S): Thanh ghi BX
Câu 104. Sau lệnh nhân MUL,/IMUL và lệnh chia DIV, IDIV có mấy toán hạng xuất hiện. Toán hạng ẩn nằm ở đâu?
– (Đ)✅: Chỉ có một toán hạng xuất hiện. Tùy thuộc vào kích cỡ của toán hạng xuất hiện sẽ suy ra toán hạng thứ 2 (ẩn) nằm ở đâu.
Với phép nhân nếu toán hạng xuất hiện là:
– 8 bit thì toán hạng nhân thứ 2 (ẩn) nằm ở AL,
– 16 bit thì toán hạng thứ 2 (ẩn) nằm ở AX.
Với phép chia, nếu toán hạng xuất hiện (só chia) là:
– 8 bit thì toán hạng ẩn (số bị chia) nằm ở AX
– bit thì toán hạng ẩn (số bị chia) nằm ở DX:AX
– (S): Không có toán hạng nào
– (S): Tùy tình huống
– (S): Có 2 toán hạng
Câu 105. Tài nguyên của một chương trình có tác dụng?
– (Đ)✅: Chứa các dữ liệu cố định và được sử dụng trong hệ điều hành Windows
– (S): Chứa các dữ liệu cố định và được sử dụng trong chương trình nhanh chóng và thuận tiện
– (S): Chứa các mã lệnh của chương trình để điều khiển máy thực hiện công việc
– (S): Chứa các hình ảnh và được sử dụng trong chương trình
– (S): Chứa các dữ liệu sử dụng trong chương trình và có thể thay đổi
Câu 106. Tên hàm Assembly khi liên kết với ngôn ngữ C và với ngôn ngữ C++ có khác nhau không?
– (Đ)✅: Có: Khi liên kết với C thì tên hàm Assembly thêm dấu_ (underscore) trước tên hàm, còn với C++ thì thêm dấu@ trước tên hàm và $q… sau tên hàm
– (S): Không, cả hai trường hợp đều thêm dấu _ (underscore) trước tên hàm
Câu 107. Tên hàm Assembly khi liên kết với ngôn ngữ C++ với trường hợp hàm có 1 đối là tham biến thì thêm gì sau@tên hàm?
– (S): Không thêm gì cả
– (S): Thêm $qi (ví dụ:@tênhàm$qi)
– (Đ)✅: Thêm $qpi với đối là con trỏ NEAR (ví dụ:@tênhàm$qpi) hoặc $qni với đối là con trỏ FAR (ví dụ:@tênhàm$qni)
– (S): Thêm $qv (ví dụ:@tênhàm$qv)
Câu 108. Tên hàm Assembly khi liên kết với ngôn ngữ C++ với trường hợp hàm không đối thì thêm gì sau tên hàm?
– (S): Không thêm gì cả
– (S): Thêm $qi (ví dụ:@tênhàm$qi)
– (S): Thêm $qni (ví dụ:@tênhàm$qni)
– (Đ)✅: Thêm $qv (ví dụ:@tênhàm$qv)
Câu 109. Thay vì phải viết đi viết lại nhiều lần 1 khối lệnh trong 1 chương trình thì sử dụng directive INCLUDE để chèn khối lệnh đó từ 1 tệp ngoài vào chương trình đang viết. Hãy cho biết khi sử dụng directive INCLUDE như vậy thì có tiết kiệm được vùng nhớ hay không khi chèn khối lện đó nhiều lần?
– (S): Có
– (Đ)✅: Không
– (S): Tùy tình huống
Câu 110. Thông điệp được xử lý như thế nào trong chương trình?
– (S): Không cần xử lý thông điệp
– (S): Thông điệp được xử lý bên trong vòng lặp thông điệp
– (S): Thông điệp được xử lý bên trong hàm chính (WinMain)
– (Đ)✅: Thông điệp được xử lý bên trong một hàm lập trình theo mẫu quy định
– (S): Thông điệp sẽ do máy tự động xử lý
Câu 111. Thứ tự các lệnh để vẽ hình tròn màu xanh và bên trong màu đỏ (với HDC là )?
– (S): HPEN p=CreatePen(PS_SOLID,2,RGB(255,0,0));
HBRUSH b=CreateSolidBrush(RGB(0,0,255));
SelectObject(,b);
Ellipse(,0,0,100,100);
– (Đ)✅: HPEN p=CreatePen(PS_SOLID,2,RGB(255,0,0));
HBRUSH b=CreateSolidBrush(RGB(0,0,255));
SelectObject(,p);
SelectObject(,b);
Ellipse(,0,0,100,100);
– (S): HPEN p=CreatePen(PS_SOLID,2,RGB(255,0,0));
HBRUSH b=CreateSolidBrush(RGB(0,0,255));
SelectObject(,p,b);
Ellipse(,0,0,100,100);
– (S): HPEN p=CreatePen(PS_SOLID,2,RGB(255,0,0));
HBRUSH b=CreateSolidBrush(RGB(0,0,255));
SelectObject(,p);
Ellipse(,0,0,100,100);
– (S): Ellipse(,0,0,100,100);
Câu 112. Thường có mấy cách để liên kết ngôn ngữ bậc cao với hợp ngữ ?
– (S): 1
– (Đ)✅: 2
– (S): 3
Câu 113. Thường có mấy dạng biểu diễn địa chỉ một ô nhớ ?
– (S): 1 dạng duy nhất là lôgic
– (S): 1 dạng duy nhất là vật lý
– (Đ)✅: 2 dạng: dạng lôgic và dạng vật lý
Câu 114. Tính giá trị an bằng cách liên kết ngôn ngữ C/C++ với hợp ngữ theo cách viết tách biệt tệp C/C++ và tệp Assembly theo sự phân công sau:
Module C/C++ thực hiện các nhiệm vụ sau :
Nhận a, n từ bàn phím
Gọi chương tình con tính an do module hợp ngữ viết
Hiện kết quả
Module Assembly thực hiện nhiệm vụ sau : viết chương trình con tính an
Với giả thiết hàm con tính an do Assembly viết không đối thì chúng ta phải khai báo các biến a, n ở đâu?
– (S): Khai báo ở đâu cũng được
– (Đ)✅: Biến toàn cục (biến ngoài)
– (S): Biến cục bộ
Câu 115. Toán hạng 2 byte có thể chứa một số nguyên có giá trị bao nhiêu?
– (Đ)✅: Từ -32768 đến 32767
– (S): Từ số -32767 đến số 32768
– (S): Từ số 0 đến số 65535
– (S): Từ số -32768 đến số 32768
– (S): Từ số -32768 đến số 0
Câu 116. Trình tự các bước để lập trình đồ họa trên Windows là?
– (S): B1) Lấy cửa sổ cần vẽ
B2) Đặt các tham số để vẽ
B3) Thực hiện lệnh vẽ
– (S): B1) Lấy cửa sổ cần vẽ
B2) Tạo các đối tượng vẽ
B3) Thực hiện lệnh vẽ
B4) Giải phóng cửa sổ đã lấy
– (S): B1) Lấy ngữ cảnh thiết bị (thiết bị ảo)
B2) Tạo các đối tượng vẽ
B3) Thực hiện lệnh vẽ
B4) Giải phóng ngữ cảnh thiết bị
– (S): B1) Lấy ngữ cảnh thiết bị (thiết bị ảo)
B2) Thực hiện lệnh vẽ
B3) Đặt các tham số để vẽ
B4) Giải phóng ngữ cảnh thiết bị
– (Đ)✅: B1) Lấy ngữ cảnh thiết bị (thiết bị ảo)
B2) Đặt các tham số để vẽ
B3) Thực hiện lệnh vẽ
B4) Giải phóng ngữ cảnh thiết bị
Câu 117. Trong các chức năng liên quan đến thư mục (tạo, xóa, chuyển) và tệp (tạo, mở, xóa …) thì xâu ký tự chứa tên thư mục hoặc tệp phải kết thúc bằng gì?
– (Đ)✅: Bằng dấu ‘$’
– (S): Bằng ký tự ‘0’
– (S): Bằng \0
– (S): Bằng Enter (0dh)
Câu 118. Trong các chức năng liên quan đến thư mục (tạo, xóa, chuyển) và tệp (tạo, mở, xóa) thì đôi thanh ghi nào dùng để chứa địa chỉ đầu xâu ký tự chứa tên thư mục hoặc tệp?
– (S): CS:IP
– (Đ)✅: DS:DX
– (S): ES:SI
Câu 119. Trong các lệnh MUL/IMUL (16bit với 16 bit) thì một số hạng nhân có bắt buộc nằm trong AX hay không ?
– (Đ)✅: Có
– (S): Không
– (S): Tùy tình huống
Câu 120. Trong chương trình đa tệp khi có 1 tệp sai khi dịch thì trước khi liên kết phải dịch lại như thế nào ?
– (S): Dịch lại tất cả các tệp
– (Đ)✅: Chỉ cần dịch lại tệp có sai khi dịch
Câu 121. Trong hợp ngữ một công việc được thể hiện bằng một chương trình con có thể thay bằng 1 macro hoặc ngược lại được không?
– (Đ)✅: Được
– (S): Không
– (S): Tùy tình huống
Câu 122. Vai trò của directive GLOBAL của chương trình dich Turbo Assembler của hãng Borland?
– (S): Chỉ thay cho directive EXTRN
– (Đ)✅: Tùy cách sử dụng, directive GLOBAL có thể thay cho directive PUBLIC hay EXTRN. Nếu GLOBAL cho các nhãn đã được xác lập thì vai trò của nó là PUBLIC, còn nếu các nhãn đứng sau GLOBAL chỉ xác định kiểu nhãn thì vai trò GLOBAL là EXTRN
– (S): Chỉ thay cho directive PUBLIC
Câu 123. Viết chương trình ngôn ngữ Assembly (hợp ngữ) để sau khi dịch và liên kết được tệp thực hiện đuôi .EXE hoặc đuôi .COM thì tệp thực hiện nào tiết kiệm vùng nhớ hơn?
– (S): Tệp có đuôi .EXE sẽ tiết kiệm vùng nhớ hơn
– (S): Như nhau
– (Đ)✅: Viết chương trình với dạng sao cho được tệp thực hiện .COM sẽ tiết kiệm vùng nhớ hơn
Câu 124. Với 2 cách để liên kết ngôn ngữ Assembly (hợp ngữ) với ngôn ngữ bậc cao là Inline Assembly và viết tách biệt tệp hợp ngữ và tệp ngôn ngữ bậc cao thì cách nào tốt hơn và hay dùng hơn?
– (S): Cách Inline tốt hơn và hay dùng hơn
– (Đ)✅: Cách viết tách biệt 2 tệp của 2 loại ngôn ngữ tốt hơn và hay dùng hơn vì tận dụng được sức mạnh của 2 chương trình dịch và sức mạnh các lệnh của 2 loại ngôn ngữ.
– (S): Cách nào cũng như nhau.
Câu 125. Với các thiết bị ngoại vi thì ngắt BIOS và DOS được tổ chức thế nào?
– (Đ)✅: Ngắt BIOS xác lập từng ngắt cho từng thiết bị ngoại vi. Song với ngắt DOS, việc điều khiển các thiết bị ngoại vi đều hầu hết thông qua các chức năng của ngắt int 21h (DOS functions)
– (S): Chỉ có ngắt của BIOS mới có các chức năng điều khiển các thiết bị ngoại vi.
– (S): Chỉ có ngắt của DOS mới có các chức năng điều khiển các thiết bị ngoại vi.
Câu 126. Với chức năng đọc tệp (chức năng 3Fh của ngắt INT 21h) thì khi nào biết đã hết tệp?
– (S): CF = 0 (bit cờ Carry = 0)
– (Đ)✅: CF = 0 và số lượng byte cần đọc nằm ở DX:AX=0
– (S): CF = 1 (bit cờ Carry = 1)
– (S): ZF = 0 (bit cờ Zero = 0)
– (S): ZF = 1 (bit cờ Zero = 1)
Câu 127. Với chức năng đọc tệp (chức năng 3Fh của ngắt INT 21h) thì khi nào biết đã hết tệp?
– (S): ZF = 1 (bit cờ Zero = 1)
– (Đ)✅: CF = 0 và số lượng byte cần đọc nằm ở DX:AX=0
– (S): ZF = 0 (bit cờ Zero = 0)
– (S): CF = 1 (bit cờ Carry = 1)
– (S): CF = 0 (bit cờ Carry = 0)
Câu 128. Với chức năng ghi tệp (chức năng 40h của ngắt INT 21h) thì khi CX=0 (số lượng byte cần ghi vào tệp là 0) có nghĩa gì?
– (Đ)✅: Cắt bỏ phần nội dung của tệp từ nơi con trỏ tệp trở về cuối tệp
– (S): Không ghi gì vào tệp
– (S): Nội dung của tệp vẫn giữ nguyên
Câu 129. Với chức năng ghi tệp (chức năng 40h của ngắt INT 21h) thì với thẻ tệp (file handle) bằng 1 có nghĩa gì?
– (S): Đọc nội dung màn hình đưa vào tệp
– (Đ)✅: Đưa số liệu lên màn hình (hiện lên màn hình)
– (S): Đưa số liệu ra máy in
Câu 130. Với chương trình hợp ngữ được viết theo khai báo directive điều khiển segment dạng chuẩn thì khi viết chương trình con không khai báo tường minh NEAR/FAR thì mặc định sẽ là gì?
– (S): FAR
– (Đ)✅: NEAR
– (S): Tùy tình huống
Câu 131. Với chương trình hợp ngữ được viết theo khai báo directive điều khiển segment dạng đơn giản, khi viết chương trình con không khai báo tường minh NEAR/FAR thì trong các trường hợp khai báo sau chương trình con là NEAR khi nào ?
– (S): .MODEL large/
medium/ huge
– (Đ)✅: .MODEL tiny/
small/compact
– (S): Loại nào cũng được
Câu 132. Với chương trình thuần túy hợp ngữ (chương trình chính và chương trình con đều là hợp ngữ) thì việc chuyển giao tham số giữa chương trình chính và chương trình con thường có thể tiến hành như thế nào ?
– (S): Chỉ thông qua thamh ghi
– (S): Thông qua ngăn xếp
– (Đ)✅: Thông qua thamh ghi, biến nhớ
– (S): Chỉ thông qua biến nhớ
Câu 133. Với máy tính có CPU của hãng Intel hoặc tương thích thì khi khởi động máy tính các thanh ghi CS và IP trỏ đến địa chỉ nào ?
– (S): CS=0 và IP=0
– (Đ)✅: CS=F000h và IP=FFF0h
– (S): CS=0 và IP=FFFFh
– (S): CS=FFF0h và IP=F000h
Câu 134. Vòng lặp thông điệp có tác dụng như thế nào?
– (S): Loại bỏ các thông điệp không cần thiết
– (S): Biến đổi thông điệp từ dạng thô về dạng tinh
– (S): Phát sinh thông điệp và gửi đến hệ thống Windows
– (Đ)✅: Tiếp nhận các thông điệp được phát sinh và gửi đến chương trình
– (S): Tiếp nhận các sự kiện diễn ra trên máy