ĐÁP ÁN TRẮC NGHIỆM LẬP TRÌNH HỆ THỐNG IT17_THI TRẮC NGHIỆM Ghi chú (Đ) là đáp án Câu 1 API có tác dụng như thế nào trên Windows? a. Các dịch vụ hệ thống b. Một chương trình ứng dụng c. Chức năng của người dùng d. Phần mềm để lập trình e. Thư viện để lập trình(Đ) Câu 2 Bảng vectơ ngắt chứa gì và nằm ở đâu? a. Chứa địa chỉ đầu của các chương trình con phục vụ ngắt và nằm ở RAM(Đ) b. Chứa mã máy của các chương trình con phục vụ ngắt và nằm ở ROM BIOS c. 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 Tài liệu này dùng cho ngành học công nghệ thông tin hệ từ xa ehou của Trường Đại Học Mở Hà Nội
Trang 1ĐÁP ÁN TRẮC NGHIỆM LẬP TRÌNH HỆ THỐNG IT17_THI TRẮC NGHIỆM
Bảng vectơ ngắt chứa gì và nằm ở đâu?
a Chứa địa chỉ đầu của các chương trình con phục vụ ngắt và nằm ở RAM(Đ)
b Chứa mã máy của các chương trình con phục vụ ngắt và nằm ở ROM BIOS
c 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?
a Bất kỳ thanh ghi nào tùy người lập trình chọn
b Thanh ghi AH(Đ)
Trang 2Byte 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 ?
Trang 3b Số ngắt từ int 0h đến int 1fh và mã máy CT con phục vụ ngắt nằm ở RAM
c Số ngắt từ int 20h đến int 0ffh và mã máy CT con phục vụ ngắt nằm RAM
d 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?
a Tất cả đều có độ dài 16 bit
Trang 4b Tất cả các thanh ghi đều có độ dài 32 bit trừ các thanh ghi đoạn (segment) vẫn
Trang 5a Không thể truy cập API
b Viết lệnh gọi hàm API(Đ)
c Khai báo API trong chương trình
d Viết lệnh truy cập đến API
e 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?
a Chương trình dịch của TC sẽ đảm nhiệm hết
b 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.(Đ)
c Chương trình dịch của ngôn ngữ Assembly sẽ đảm nhiệm hết
b Dùng chức năng thứ 13h của ngắt int 10h
c 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 ?
a Anh A đúng
b Anh B đúng
c Cả hai cùng có thể(Đ)
Trang 7Chứ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)?
Trang 8a Có và số lượng đối và kiểu đối do hợp ngữ quyết định
b Có và số lượng đối và kiểu đối do ngôn ngữ bậc cao giả thiết(Đ)
Trang 9a Module sử dụng chương trình con (module gọi chương trình con)
b Module nào cũng được
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 ?
a Chỉ ở module chương trình con
b Chỉ ở module của chương trình chính
c Ở 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ì?
a 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(Đ)
Trang 10Có 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)?
a Chỉ thông qua ngăn xếp
b Chuyển giao qua thanh ghi
c Chỉ thông qua biến nhớ
d 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
a Đượ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.(Đ)
Trang 11(cơ số 16)
b Dạng nhị phân (cơ số binary)
c Tất cả các dạng cơ số nêu trên(Đ)
Trang 12a A là biến số 2 byte được gán giá trị ban đầu là 10
b A là biến số có độ dài 10 byte
c 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?
a Kiểm tra thông điệp WM_COMMAND và xử lý trong hàm chính (WinMain)
b 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
c Xử lý thông điệp WM_COMMAND trong hàm cửa sổ
d 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
e 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(Đ)
Trang 15Độ lớn vùng dữ liệu ROM BIOS và địa chỉ đầu vùng dữ liệu ROM BIOS?
a 1024 byte RAM và địa chỉ đầu là 0:100h
b 128 byte RAM và địa chỉ đầu là 0:0h
c 256 byte RAM và địa chỉ đầu là: 0:400h(Đ)
b Phần địa chỉ OFFSET của A[99] (địa chỉ thành phần cuối cùng của trường)
c Phần địa chỉ OFFSET của A[0] (địa chỉ thành phần đầu tiên của trường)(Đ)Câu 55
Trang 16Hai 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 ?
a HINSTANCE, HANDLE, LPSTR, int
b HWND, HINSTANCE, UINT, LPVOID
c HWND, HINSTANCE, LPSTR, int
d HINSTANCE, HINSTANCE, LPSTR, int(Đ)
e HINSTANCE, UINT, LPSTR, int
Câu 58
Hàm chính (WinMain) của chương trình trên Windows được khai báo như sau?
a int WinMain( HINSTANCE, HINSTANCE, LPSTR,int);
b int WINAPI WinMain( HINSTANCE, LPSTR, int);
c int WinMain( HINSTANCE, HWND, LPSTR, int);
d int WINAPI WinMain( HINSTANCE, HINSTANCE, LPSTR,int);(Đ)
e int WINAPI WinMan( HINSTANCE, HINSTANCE, LPSTR,int);
Câu 59
Trang 17HDC là kiểu định danh cho ngữ cảnh thiết bị để làm gì?
a Chứa số hiệu cửa sổ khi vẽ
b Chứa đối tượng để vẽ đồ họa
c Chứa thông tin về các thông điệp cho việc vẽ đồ họa
d Chứa dữ liệu về các thông tin cấu tạo cửa sổ
e 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 60
Khai báo các thành phần chia sẽ giữa thư viện và chương trình là?
a Sử dụng chỉ thị “ declspec(dllexport)” trong thư viện và
“ declspec(dllimport)” trong chương trình(Đ)
b Sử dụng chỉ thị “ decspec(dllexport)” trong thư viện và
“ decspec(dllimport)” trong chương trình
c Sử dụng cặp “ declspec(dllexport)” và “ declspec(dllimport)” trong cả thư viện và chương trình
d Sử dụng chỉ thị “ declspec(dllexport, dllimport)” trong cả thư viện và
chương trình
e Sử dụng chỉ thị “ declspec(dllexport)” trong chương trình và
“ declspec(dllimport)” trong thư viện
Câu 61
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?
a 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.(Đ)
b Không cần khai báo gì
c Cần khai báo tường minh PUBLIC và extern
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ì 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ì ?
a Tên biến nhớ
Trang 18b Tên ký hiệu (symbol) thay cho 1 hằng số
c Tên chương trình con
d Tên biến nhớ, tên chương trình con và tên ký hiệu thay cho 1 hằng số(Đ)
e Tên nhãn nhảy
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ữ 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 đó ?
Trang 19Khi 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++ ?.
a Từ phải sang trái(Đ)
Trang 20dạ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 ?
Khối lệnh trong thân MACRO có cho phép có nhãn nhảy hay không ?
a Có song nhãn đó phải được khai báo sau directive LOCAL(Đ)
b Không
c Có trong bất kỳ tình huống nào
Câu 73
Làm thế nào để xác định địa chỉ đầu của chương trình con phục vụ ngắt ?
a Nhờ directive OFFSET và SEG(Đ)
b Nhờ directive OFFSET
c Nhờ directive SEG
Câu 74
Làm thế nào xác định được độ dài 1 tệp?
a Đưa con trỏ tệp về cuối tệp và CF = 0 (bit cờ Carry = 0) thì DX:AX=độ dài tệp(Đ)
Trang 21b Đư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 75
Lập trình đa luồng là?
a 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(Đ)
b Cho phép chương trình chạy một hàm nhiều lần song song với nhau
c Cho phép chương trình chạy nhiều luồng luân phiên nhau
d Cho phép chương trình chạy nhiều hàm cùng lúc
e Cho phép chương trình chạy nhiều hàm trên cùng một luồng
Câu 76
Lệnh AND AX,AX có nghĩa gì không?
a 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
Lệnh nhảy JMP là loại lệnh nhảy gì và có bước nhảy bao nhiêu byte?
a Có điều kiện và bước nhảy là không giới hạn
b Không điều kiện và có bước nhảy 64 k(Đ)
Câu 78
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ì?
a Chia đôi giá trị có trong AX nếu AX chứa số nguyên
b Chia đôi làm tròn dưới giá trị có trong AX nếu AX chứa số nguyên(Đ)
c Chỉ chia đôi làm tròn dưới giá trị có trong AX nếu AX chứa số nguyên dương
d Tất cả các phương án
Câu 79
Trang 22Lệnh SHL AX,1 (dịch trái một lần nội dung có trong thanh ghi AX) có ý nghĩa gì?
a Nhân đôi giá trị có trong AX
b Chia đôi giá trị có trong AX
c 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)(Đ)
d Tất cả các phương án
Câu 80
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ì?
a Chia đôi giá trị có trong AX nếu AX chứa số nguyên dương
b Chia đôi làm tròn dưới giá trị có trong AX nếu AX chứa số nguyên dương(Đ)
c Tất cả các phương án
d Chia đôi làm tròn dưới giá trị có trong AX nếu AX chứa số nguyên
Câu 81
Lệnh: LEA BX,m (trong đó m là một biến) có ý nghĩa gì?
a Đưa giá trị biến m vào thanh ghi BX
b Đư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(Đ)
c Đưa phần địa chỉ segment ô nhớ cấp phát cho biến m vào thanh ghi BX
d Xóa trạng thái các bit cờ
Trang 23b Quy định cấu tạo cửa sổ
c Quy định màu sắc, kiểu chữ của cửa sổ
d Quy định các đặc điểm cửa sổ và hàm xử lý thông điệp trên nó(Đ)
e Quy định các hoạt động trên cửa sổ
Một chương trình chính của ngôn ngữ Assembly phải kết thúc như thế nào?
a Bình thường như các ngôn ngữ khác
b Kết thúc phải trở về DOS với:
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?
a 1 phân đoạn duy nhất và đó là code segment(Đ)
b 2 phân đoạn và đó là code segment và data segment
c phân đoạn và đó là code, data và stack segment
Trang 24b Phân đoạn vùng nhớ dành cho mã máy của CT (code segment)
c Phân đoạn vùng nhớ dành cho ngăn xếp (stack segment)
a Chuỗi ký tự định danh (Handle) các thành phần
b Số nguyên định danh (Handle) các thành phần(Đ)
c Số nguyên chứa nội dung của thành phần
d Ký tự mô tả thành phần
e Số nguyên nắm giữ (Hold) giá trị thành phần
Câu 90
Một thư viện DLL có thể được dùng như thế nào?
a Được sử dụng chung trong toàn bộ hệ thống
b Được sử dụng tùy ý
c Được sử dụng trong nhiều chương trình(Đ)
d Không được sử dụng trong nhiều chương trình
e Chỉ được sử dụng trong một chương trình
Trang 25a Hầu hết đều do ngắt int 21h của DOS nắm giữ(Đ)
b Mỗi một thiết bị có một ngắt DOS riêng
Câu 96
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ì?
a Để đưa giá trị của toán hạng lên 1
b Để đưa giá trị một toán hạng về 0
c Để thay đổi giá trị của toán hạng
Trang 26d Xóa trạng thái các bit cờ
Câu 97
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ớ?
a Chỉ có thể dùng các thanh ghi sau: BX, SI, DI và BP(Đ)
Trang 27Nhữ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?
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(Đ)
b Không cần lưu ý gì Viết như để tệp thực hiện có đuôi EXE
c Cần lưu ý khi khai báo biến
d Cần lưu ý khi liên kết
Câu 101
Ở chế độ văn bản màn hình có bao nhiêu dòng ?
a 25(Đ)
Trang 28a Bit cờ CF = 1 không thực hiện được và CF=0 thực hiện được(Đ)
b Bit cờ SF = 1 không thực hiện được và SF=0 thực hiện được
c Bit cờ ZF = 1 không thực hiện được và ZF=0 thực hiện được
Câu 105
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?
a Thanh ghi AX(Đ)
b Thanh ghi DX
c Thanh ghi cờ
Trang 29Vớ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(Đ)
b Không có toán hạng nào
c Tùy tình huống
d Có 2 toán hạng
Câu 107
Tài nguyên của một chương trình có tác dụng?
a Chứa các dữ liệu cố định và được sử dụng trong hệ điều hành Windows(Đ)
b 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
c 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
d Chứa các hình ảnh và được sử dụng trong chương trình
e Chứa các dữ liệu sử dụng trong chương trình và có thể thay đổi
Trang 30Tê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?
a Không thêm gì cả
b Thêm $qi (ví dụ:(Đ)tênhàm$qi)
c 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)(Đ)
b Thêm $qi (ví dụ:(Đ)tênhàm$qi)
c Thêm $qni (ví dụ:(Đ)tênhàm$qni)
d Thêm $qv (ví dụ:(Đ)tênhàm$qv)(Đ)
Câu 111
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?
a Có
b Không(Đ)
c Tùy tình huống
Câu 112
Thông điệp được xử lý như thế nào trong chương trình?
a Không cần xử lý thông điệp
b Thông điệp được xử lý bên trong vòng lặp thông điệp
c Thông điệp được xử lý bên trong hàm chính (WinMain)
d Thông điệp được xử lý bên trong một hàm lập trình theo mẫu quy định(Đ)
e Thông điệp sẽ do máy tự động xử lý
Câu 113
Trang 31Thứ tự các lệnh để vẽ hình tròn màu xanh và bên trong màu đỏ (với HDC
Trang 32a Khai báo ở đâu cũng được
b Biến toàn cục (biến ngoài)(Đ)
Trang 33B4) Giải phóng cửa sổ đã lấy
c B1) Lấy ngữ cảnh thiết bị (thiết bị ảo)
B2) Tạo các đối tượng vẽ
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ì?
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?
Trang 34a Chỉ thay cho directive EXTRN
b 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(Đ)
c Chỉ thay cho directive PUBLIC
Câu 125
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?
a Tệp có đuôi EXE sẽ tiết kiệm vùng nhớ hơn
b Như nhau
c 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(Đ)