RT-Thread 能力認證習題總結 ---- 第三週

第三週:QEMU 網絡

要求

學習文檔中心QEMU網絡視頻教程。觀看視頻及文檔,能夠搭建 QEMU 的運行環境併成功運行文件系統;瞭解基本的網絡概念,學會使用抓包工具分析數據包。


作業提交:第三週作業+姓名.zip

其中包含:

作業2的.c
作業3的.c
一個word文檔寫出幾個作業的步驟、心得

作業1:

獲取並運行文件系統相關示例程序,這可以在學習過程中進行。

作業2:

文件匹配: 有一系列文件如:1.txt, 12.txt, 123.txt,從中找出1.txt,並將文件內容輸出出來。

作業3:(服務器開兩週,注意做作業時間)

觀看視頻及文檔,能夠正常獲取並運行示例程序,通過示例程序的學習能夠掌握使用 Socket 進行網絡編程的方法,能夠實現一個簡單的 TCP 聊天客戶端

背景

在服務器 183.193.243.90 的 5000 端口 上運行了一個基於 TCP 的簡單的聊天服務器。

  1. 當有 TCP 客戶端連接上後,服務器會回覆給客戶端 Welcome to TestChat;
  2. 未使用 login 命令登錄服務器之前,服務器收到任何信息只會回覆 Please log in Use "login "
  3. 服務器端能夠接收如下命令:
命令 說明 示例 服務器回覆
login 登錄聊天室 login ID
say 說話 say My name is Yqiu, I’m doing this job at 20180512. ID :My name is Yqiu, I’m doing this job at 20180512.
look 查看聊天室有哪些人 look 所有ID
who 我是誰 who login ID
logout 退出 logout
其他 Unknown Command

服務器會把接受到的每條命令,發送給客戶端。

如果服務器接受到錯誤命令,會發送給客戶端 Unknown command 的字符串。

注意:每條命令必須以\r\n結束,服務器才能識別。

作業要求:

通過編程實現:

  1. 使用 login 命令登錄上服務器聊天室,並將服務器返回的信息通過串口打印出來
  2. 使用 say 命令通知服務器你的個人姓名和作業時間 “My name is Yqiu, I’m doing this job at 20180730”,並將服務器返回的信息打印出來
  3. 使用 look 命令查看聊天室人員,並將服務器返回的信息打印出來
  4. 使用 who 命令查看我是誰,並將服務器返回的信息打印出來
  5. 使用 say 命令告訴服務器我看到有哪些人在聊天室
  6. 使用 say 命令告訴服務器我準備退出了
  7. 使用 logout 退出聊天室

練習題:

完成以下練習題:

1、若有宏定義:#define MOD(x,y) x%y
則執行以下語句後的輸出結果是

int a=13,b=94;
printf("%d\n",MOD(b,a+4));

A.5

B.7

C.9

D.11

答案:B

2、若一個棧的輸入序列是1,2,3,…,n,輸出序列的第一個元素是n,則第i個輸出元素是( )

A.n

B.n-i

C.n-i-1

D.n-i+1

答案:D
特例判斷

3、以下程序輸出結果爲:

char* f(char *str, char ch) {
    char *it1 = str;
    char *it2 = str;
    while (*it2 != '\0') {
        while (*it2 == ch) { it2++; }
        *it1++ = *it2++;
     }
    return str;
}
void main(int argc, char *argv[]) {
    char *a = new char[10];
    strcpy(a, "abcdcccd");
    cout << f(a, 'c');
}

A.abdcccd

B.abdd

C.abcc

D.abddcccd

答案:

4、編程:將一個正整數分解質因數。例如:輸入90,打印出90=233*5。

#include <stdio.h>
int main()
{

    
    
    
	return 0;
}

1.設棧 S 和隊列 Q 的初始狀態爲空,元素 e1 、 e2 、 e3 、 e4 、 e5 和 e6 依次通過棧 S ,一個元素出棧後即進入隊列 Q ,若 6 個元素出隊的順序是 e2 、 e4 、 e3 、 e6 、 e5 、和 e1 ,則棧 S 容量至少應該是

A.6

B.4

C.3

D.2

答案:


1、以下有關IO接口或IO設備說法錯誤的是( )

A.GPIO一般有三態:0態 ,1態 ,高阻態

B.I2C只有兩條信號線,在SCL爲高電平,將SDA從高電平拉低後可以開始傳輸數據

C.SPI一般使用4線制,可以一主多從

D.UART是全雙工串行異步通信,直接使用UART通信時,需要將信號相同的線相連。

答案:


1、中斷屏蔽器能屏蔽( )

(A)所有中斷和異常 (B)除了NMI外所有異常和中斷

(C)除了NMI、異常所有其他中斷 (D)部分中斷

答案:

2.下列寄存器中,彙編語言程序員可見的是()。

A.存儲器地址寄存器(MAR)

B.程序計數器(PC)

C.存儲器數據寄存器(MDR)

D.指令寄存器(IR)

答案:

3.以下各種情況中,屬於死鎖現象的是() 。

A.某進程執行了死循環

B.某進程爲了得到某資源,等待了很長的時間

C.某進程爲了得到某資源,等待了無限的時間

D.操作系統故障

答案:


1、指出下面的 IP 地址中,哪個是 C 類地址 ( )

A.127 . 19 . 0 . 23

B.193 . 0 . 25 . 37

C.225 . 21 . 0 . 11

D.170 . 23 . 0 . 1

答案:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章