Đề cuối kỳ 515 Lập trình mạng | Trường Đại học Bách khoa Hà Nội

1.   Để chuyển đổi một địa chỉ IP lưu trong biến serverAddr lưu trữ địa chỉ socket sang dạng xâu ký tự, lệnh nào sau đây là đúng. Tài liệu được sưu tầm, giúp bạn ôn tập và đạt kết quả cao. Mời bạn đọc đón xem!

PHẦN TRẢ LỜI TRẮC NGHIỆM
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
PHẦN CÂU HỎI
1. Th vi n liên k t đ ng c a Windows Socket có tên là:ư ế
a. WinSock.DLL
b. WinSock2.DLL
c. WS2.DLL
d. WS2_32.DL
2. Đ có th s d ng th vi n Windows Socket, t p tiêu đ c n khai báo là: ư
a. Winsock.h
b. Winsock2.h
c. Ws2_32.h
d. Ws2.h
3. Công c chu n đoán m ng dùng đ hi n th các k t n i hi n có trên máy tính là ế
a. Wireshark
b. TCPView
c. Netcat
d. T t c
4. Công c dùng đ theo dõi tài nguyên s d ng c a máy tính trên h đi u hành Windows là
a. Task Manager
b. ResourceMonitor
c. Wireshark
d. a và b.
5. Công c dùng đ b t các gói tin g i ra và vào m t giao di n m ng c a máy tính là
a. Netcat
b. Network Monitor
c. Cain
d. C ba đ u sai.
6. Công c đa năng, v a có th đóng vai trò client, v a server, ch y trên giao th c TCP, UDP là.
a. Netcat
b. TCPDump
c. Netstat
d. Network Monitor
7. N u c n ph i vi t m t ng d ng c n tính đáp ng nhanh và ch p nh n sai sót. Giao th c l a ch n sẽ làế ế
a. TCP
b. IP
c. ICMP
d. UDP
8. D ch v phân gi i tên mi n ch y t ng nào trong các t ng sau đây
a. Application
b. Transport
c. Internetwork
d. Datalink
9. Giao th c nào đ c s d ng đ chia s m t đ a ch toàn c c cho m t nhóm các máy tính trong m ng LAN. ượ
a. VLAN
b. MAC
c. NAT
d. Không đáp án nào đúng
10. Trong m t m ng máy tính đ c chia s chung m t đ a ch IP toàn c c. Thi t l p nào sau đây sẽ cho phép m t máy tính ượ ế
t Internet ch đ ng k t n i đ n m t máy ch trong m ng. ế ế
515
ĐỀ THI MÔN LẬP TRÌNH MẠNG
Thời gian: 60 phút – Không được phép dùng tài liệu
Điền trực tiếp kết quả vào phần trả lời trắc nghiệm
a. DMZ
b. Virtual Server
c. Port Forwarding
d. C ba ph ng án trên. ươ
11. Công c nào s d ng đ ki m tra ho t đ ng c a m t máy ch phân gi i tên mi n
a. Ping
b. Nslookup
c. Netstat
d. Ipconfig
12. N u c n phát tri n thêm trình đi u khi n cho m t lo i thi t b m i. ng d ng sẽ ph i vi t t ng nào c a Windows ế ế ế
Socket
a. Application
b. Provider
c. Transport Protocol
d. Không t ng nào đúng
13. N u c n ph i thi t k m t giao th c m i, ng d ng sẽ ph i tích h p vào t ng nào c a Windows Socket APIế ế ế
a. Application
b. Provider
c. Transport Protocol
d. Không t ng nào đúng.
14. Trình đi u khi n cho m t thi t b m ng sẽ đ c ch y ch đ ế ượ ế
a. User Mode
b. Kernel Mode
c. System Mode
d. Không ph ng án nào đúng.ươ
15. Biên c a thông đi p trong các giao th c h ng dòng có đ c b o toàn hay không ? ướ ượ
a.
b. Không
c. Tùy t ng tr ng h p, n u đ c t ch c h p lý. ườ ế ượ
16. Hàm nào sau đây th c hi n công vi c kh i t o Windows Socket
a. WSStartup
b. WinsockStartup
c. SocketStartup
d. WSAStartup
17. WSADATA là c u trúc dùng đ
a. Truy n thông tin v phiên b n WinSock mà ng d ng mu n kh i t o
b. Nh n thông tin v phiên b n WinSock có trên h th ng.
c. C hai đáp án đ u sai.
18. Hàm nào sau đây s d ng đ gi i phóng Windows Socket API.
a. WSACleanup
b. WSCleanup
c. Cleanup
d. Ph ng án khác:…ươ
19. Đ l y mã l i c a thao tác ngay tr c đó. Hàm nào sau đây sẽ đ c s d ng ướ ượ
a. GetLastError
b. WSAGetError
c. WSAGetLastError
d. WSALastError
20. Đo n ch ng trình sau th c hi n k t n i đ n m t server, đi n vào v trí <A>, <B>, <C> các l nh còn thi u. ươ ế ế ế
ret = connect(s, (sockaddr*)&serverAddr,sizeof(serverAddr));
if (ret ==SOCKET_ERROR) {
printf(“Loi ket noi: %d”, <A>);
<B>;
<C>;
};
a. <A>: GetLastError, <B>: closesocket (s), <C>: WSACleanup().
b. <A>: WSAGetLastError(), <B> close(s), <C>: Cleanup().
c. <A>: WSALastError(), <B>: closesocket(s), <C>: đ tr ng.
d. Không ph ng án nào đúng.ươ
21. Trong Windows Socket, v i các hàm không có ti n t WSA thì mã l i tr v là 0 có nghĩa là:
a. Thành công
b. Th t b i
c. Tùy tr ng h pườ
22. L nh nào sau đây dùng đ t o m t socket TCP
a. socket(AF_INET,SOCK_STREAM,IPPROTO_TCP).
b. socket(AF_INET,SOCK_DGRAM,IPROTO_TCP).
c. Socket(AF_INET,SOCK_STREAM,IPPROTO_UDP)
d. socket(AF_INET,SOCKSTREAM,IPPROTOTCP).
23. L nh nào sau đây dùng đ t o m t socket UDP
a. socket(AF_INET,SOCK_UDP, IPPROTO_TCP).
b. socket(AF_INET,SOCK_DGRAM,IPROTO_TCP).
c. Socket(AF_INET,SOCK_STREAM,IPPROTO_UDP)
d. Không l nh nào đúng.
24. C u trúc nào đ c s d ng đ khai báo đ a ch socket internet: ượ
a. sock_addr
b. sockaddr
c. sockaddr_in
d. sock_addr_in
25. Các giá tr l n h n 01 byte trong c u trúc l u tr đ a ch c a socket đ c t ch c theo ki u: ơ ư ượ
a. Đ u to
b. Đ u nh
c. Tùy tr ng h pườ
26. Đ chuy n đ i m t xâu sang đ a ch IP, l nh nào sau đây là đúng
a. inet_ntoa(“192.168.1.1”);
b. inet_aton(“192.168.1.1”);
c. inet_addr(“192.168.1.1”);
d. inet_stoi(“192.168.1.1”);
27. Đ chuy n đ i m t đ a ch IP l u trong bi n serverAddr l u tr đ a ch socket sang d ng xâu ký t , l nh nào sau đây là ư ế ư
đúng
a. inet_ntos(serverAddr.sin_addr);
b. inet_ntoa(serverAddr.s_addr);
c. inet_itos(serverAddr.sin_addr);
d. inet_ntoa(serverAddr.sin_addr);
28. Đ chuy n đ i giá tr c ng t đ u nh sang đ u to, l nh nào sau đây sẽ đ c s d ng ượ
a. ntohl
b. ntohs
c. htonl
d. htons
29. Trong l i g i hàm recv(s,buff,1024,0), giá tr 1024 có nghĩa là:
a. S byte mu n nh n
b. S byte t i đa mu n nh n.
c. Kích th c b đ m.ướ
d. C b và c đ u đúng.
30. Đ th c hi n phân gi i tên mi n b ng WinSock, c n b sung t p tiêu đ nào
a. Winsock2.h
b. Ws2_32.h
c. Ws2ip.h
d. Ws2tcpip.h
Đo n ch ng sau nh n v m t xâu và g i tr xâu theo th t ng c l i. Đi n vào các v trí <A>,<B>,<C>,<D>,<E> các câu ươ ượ
l nh thích h p:
SOCKET s;
char c, str[1024];
int i,len;
while (1)
{
len = recv(s,str,1024,0);
str[<A>] = 0;
for (i=0;i<len/2;i++)
{
c = <B>; str[i] = str[<C>]; str[len-i-1]=<D>;
};
send(<E>,str,len,0);
}
31. Câu l nh thích h p cho <A> là
a. len
b. i
c. 1024
d. 0
32. Câu l nh thích h p cho <B> là
a. str[0]
b. str[len]
c. str[len-1]
d. str[i]
33. Câu l nh thích h p cho <C> là
a. len/2
b. len-1
c. len-i
d. len-i-1
34. Câu l nh thích h p cho <D> là
a. c
b. str[i]
c. str[0]
d. str[i-1]
35. Câu l nh thích h p cho <E> là
a. c
b. s
c. len
d. i
Đo n ch ng trình sau đ c n i dung m t t p tin và g i đi qua k t n i c đã đ c thành l p. ươ ế ượ
Đi n vào các v trí <A> , <B>…các câu l nh/giá tr thích h p
SOCKET c;
FILE * fp;
char buff[1024];
int len;
fp = fopen("name.txt","rb");
while (<A>)
{
len = fread(<B>,1,1024,<C>);
if (len <=0)
break;
send(<D>,buff,<E>,0);
};
closesocket(c);
fclose(fp);
36. Giá tr thích h p cho <A> là
a. fp
b. feof(fp)
c. !fp
d. !feof(fp)
37. Giá tr thích h p cho <B> là
a. buff
b. fp
c. c
d. &buff
38. Giá tr thích h p cho <C> là
a. buff
b. &buff
c. fp
d. &fp
39. Giá tr thích h p cho <D> là
a. s
b. &s
c. fp
d. &fp
40. Giá tr thích h p cho <E> là
a. 1024
b. len
c. &len
d. 0.
| 1/4

Preview text:

PHẦN TRẢ LỜI TRẮC NGHIỆM

515

ĐỀ THI MÔN LẬP TRÌNH MẠNG

Thời gian: 60 phút – Không được phép dùng tài liệu

Điền trực tiếp kết quả vào phần trả lời trắc nghiệm

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

PHẦN CÂU HỎI

  1. Thư viện liên kết động của Windows Socket có tên là:
    1. WinSock.DLL
    2. WinSock2.DLL
    3. WS2.DLL
    4. WS2_32.DL
  2. Để có thể sử dụng thư viện Windows Socket, tệp tiêu đề cần khai báo là:
    1. Winsock.h
    2. Winsock2.h
    3. Ws2_32.h
    4. Ws2.h
  3. Công cụ chuẩn đoán mạng dùng để hiển thị các kết nối hiện có trên máy tính là
    1. Wireshark
    2. TCPView
    3. Netcat
    4. Tất cả
  4. Công cụ dùng để theo dõi tài nguyên sử dụng của máy tính trên hệ điều hành Windows là
    1. Task Manager
    2. ResourceMonitor
    3. Wireshark
    4. a và b.
  5. Công cụ dùng để bắt các gói tin gửi ra và vào một giao diện mạng của máy tính là
    1. Netcat
    2. Network Monitor
    3. Cain
    4. Cả ba đều sai.
  6. Công cụ đa năng, vừa có thể đóng vai trò client, vừa server, chạy trên giao thức TCP, UDP là.
    1. Netcat
    2. TCPDump
    3. Netstat
    4. Network Monitor
  7. Nếu cần phải viết một ứng dụng cần tính đáp ứng nhanh và chấp nhận sai sót. Giao thức lựa chọn sẽ là
    1. TCP
    2. IP
    3. ICMP
    4. UDP
  8. Dịch vụ phân giải tên miền chạy ở tầng nào trong các tầng sau đây
    1. Application
    2. Transport
    3. Internetwork
    4. Datalink
  9. Giao thức nào được sử dụng để chia sẻ một địa chỉ toàn cục cho một nhóm các máy tính trong mạng LAN.
    1. VLAN
    2. MAC
    3. NAT
    4. Không đáp án nào đúng
  10. Trong một mạng máy tính được chia sẻ chung một địa chỉ IP toàn cục. Thiết lập nào sau đây sẽ cho phép một máy tính từ Internet chủ động kết nối đến một máy chủ trong mạng.
    1. DMZ
    2. Virtual Server
    3. Port Forwarding
    4. Cả ba phương án trên.
  11. Công cụ nào sử dụng để kiểm tra hoạt động của một máy chủ phân giải tên miền
    1. Ping
    2. Nslookup
    3. Netstat
    4. Ipconfig
  12. Nếu cần phát triển thêm trình điều khiển cho một loại thiết bị mới. Ứng dụng sẽ phải viết ở tầng nào của Windows Socket
    1. Application
    2. Provider
    3. Transport Protocol
    4. Không tầng nào đúng
  13. Nếu cần phải thiết kế một giao thức mới, ứng dụng sẽ phải tích hợp vào tầng nào của Windows Socket API
    1. Application
    2. Provider
    3. Transport Protocol
    4. Không tầng nào đúng.
  14. Trình điều khiển cho một thiết bị mạng sẽ được chạy ở chế độ
    1. User Mode
    2. Kernel Mode
    3. System Mode
    4. Không phương án nào đúng.
  15. Biên của thông điệp trong các giao thức hướng dòng có được bảo toàn hay không ?
    1. Không
    2. Tùy từng trường hợp, nếu được tổ chức hợp lý.
  16. Hàm nào sau đây thực hiện công việc khởi tạo Windows Socket
    1. WSStartup
    2. WinsockStartup
    3. SocketStartup
    4. WSAStartup
  17. WSADATA là cấu trúc dùng để
    1. Truyền thông tin về phiên bản WinSock mà ứng dụng muốn khởi tạo
    2. Nhận thông tin về phiên bản WinSock có trên hệ thống.
    3. Cả hai đáp án đều sai.
  18. Hàm nào sau đây sử dụng để giải phóng Windows Socket API.
    1. WSACleanup
    2. WSCleanup
    3. Cleanup
    4. Phương án khác:…
  19. Để lấy mã lỗi của thao tác ngay trước đó. Hàm nào sau đây sẽ được sử dụng
    1. GetLastError
    2. WSAGetError
    3. WSAGetLastError
    4. WSALastError
  20. Đoạn chương trình sau thực hiện kết nối đến một server, điền vào vị trí <A>, <B>, <C> các lệnh còn thiếu.

ret = connect(s, (sockaddr*)&serverAddr,sizeof(serverAddr));

if (ret ==SOCKET_ERROR) {

printf(“Loi ket noi: %d”, <A>);

<B>;

<C>;

};

  1. <A>: GetLastError, <B>: closesocket (s), <C>: WSACleanup().
  2. <A>: WSAGetLastError(), <B> close(s), <C>: Cleanup().
  3. <A>: WSALastError(), <B>: closesocket(s), <C>: để trống.
  4. Không phương án nào đúng.
  5. Trong Windows Socket, với các hàm không có tiền tố WSA thì mã lỗi trả về là 0 có nghĩa là:
    1. Thành công
    2. Thất bại
    3. Tùy trường hợp
  6. Lệnh nào sau đây dùng để tạo một socket TCP
    1. socket(AF_INET,SOCK_STREAM,IPPROTO_TCP).
    2. socket(AF_INET,SOCK_DGRAM,IPROTO_TCP).
    3. Socket(AF_INET,SOCK_STREAM,IPPROTO_UDP)
    4. socket(AF_INET,SOCKSTREAM,IPPROTOTCP).
  7. Lệnh nào sau đây dùng để tạo một socket UDP
    1. socket(AF_INET,SOCK_UDP, IPPROTO_TCP).
    2. socket(AF_INET,SOCK_DGRAM,IPROTO_TCP).
    3. Socket(AF_INET,SOCK_STREAM,IPPROTO_UDP)
    4. Không lệnh nào đúng.
  8. Cấu trúc nào được sử dụng để khai báo địa chỉ socket internet:
    1. sock_addr
    2. sockaddr
    3. sockaddr_in
    4. sock_addr_in
  9. Các giá trị lớn hơn 01 byte trong cấu trúc lưu trữ địa chỉ của socket được tổ chức theo kiểu:
    1. Đầu to
    2. Đầu nhỏ
    3. Tùy trường hợp
  10. Để chuyển đổi một xâu sang địa chỉ IP, lệnh nào sau đây là đúng
    1. inet_ntoa(“192.168.1.1”);
    2. inet_aton(“192.168.1.1”);
    3. inet_addr(“192.168.1.1”);
    4. inet_stoi(“192.168.1.1”);
  11. Để chuyển đổi một địa chỉ IP lưu trong biến serverAddr lưu trữ địa chỉ socket sang dạng xâu ký tự, lệnh nào sau đây là đúng
    1. inet_ntos(serverAddr.sin_addr);
    2. inet_ntoa(serverAddr.s_addr);
    3. inet_itos(serverAddr.sin_addr);
    4. inet_ntoa(serverAddr.sin_addr);
  12. Để chuyển đổi giá trị cổng từ đầu nhỏ sang đầu to, lệnh nào sau đây sẽ được sử dụng
    1. ntohl
    2. ntohs
    3. htonl
    4. htons
  13. Trong lời gọi hàm recv(s,buff,1024,0), giá trị 1024 có nghĩa là:
    1. Số byte muốn nhận
    2. Số byte tối đa muốn nhận.
    3. Kích thước bộ đệm.
    4. Cả b và c đều đúng.
  14. Để thực hiện phân giải tên miền bằng WinSock, cần bổ sung tệp tiêu đề nào
    1. Winsock2.h
    2. Ws2_32.h
    3. Ws2ip.h
    4. Ws2tcpip.h

Đoạn chương sau nhận về một xâu và gửi trả xâu theo thứ tự ngược lại. Điền vào các vị trí <A>,<B>,<C>,<D>,<E> các câu lệnh thích hợp:

SOCKET s;

char c, str[1024];

int i,len;

while (1)

{

len = recv(s,str,1024,0);

str[<A>] = 0;

for (i=0;i<len/2;i++)

{

c = <B>; str[i] = str[<C>]; str[len-i-1]=<D>;

};

send(<E>,str,len,0);

}

  1. Câu lệnh thích hợp cho <A> là
    1. len
    2. i
    3. 1024
    4. 0
  2. Câu lệnh thích hợp cho <B> là
    1. str[0]
    2. str[len]
    3. str[len-1]
    4. str[i]
  3. Câu lệnh thích hợp cho <C> là
    1. len/2
    2. len-1
    3. len-i
    4. len-i-1
  4. Câu lệnh thích hợp cho <D> là
    1. c
    2. str[i]
    3. str[0]
    4. str[i-1]
  5. Câu lệnh thích hợp cho <E> là
    1. c
    2. s
    3. len
    4. i

Đoạn chương trình sau đọc nội dung một tệp tin và gửi đi qua kết nối c đã được thành lập.

Điền vào các vị trí <A> , <B>…các câu lệnh/giá trị thích hợp

SOCKET c;

FILE * fp;

char buff[1024];

int len;

fp = fopen("name.txt","rb");

while (<A>)

{

len = fread(<B>,1,1024,<C>);

if (len <=0)

break;

send(<D>,buff,<E>,0);

};

closesocket(c);

fclose(fp);

  1. Giá trị thích hợp cho <A> là
    1. fp
    2. feof(fp)
    3. !fp
    4. !feof(fp)
  2. Giá trị thích hợp cho <B> là
    1. buff
    2. fp
    3. c
    4. &buff
  3. Giá trị thích hợp cho <C> là
    1. buff
    2. &buff
    3. fp
    4. &fp
  4. Giá trị thích hợp cho <D> là
    1. s
    2. &s
    3. fp
    4. &fp
  5. Giá trị thích hợp cho <E> là
    1. 1024
    2. len
    3. &len
    4. 0.