<pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

          <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

          <p id="bbfd9"></p>

          <p id="bbfd9"><cite id="bbfd9"></cite></p>

            <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

            <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
            <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>

            學期教學計劃

            時間:2025-11-14 20:40:10 教學計劃 我要投稿

            【推薦】學期教學計劃匯總9篇

              1.溢出與越界的區別

            【推薦】學期教學計劃匯總9篇

              2.指出如下代碼中的錯誤

              int main()

              {

              char a;

              char* p = &a;

              strcpy(p, "Hello");

              printf("p is %s", p);

              return 0;

              }

              3.指出如下代碼的輸出結果

              void fun(char str[])

              {

              void* p = malloc(100);

              printf("%d\n%d", sizeof(str), sizeof(p));

              }

              int main()

              {

              char str[100] = "Hello";

              fun(str);

              return 0;

              }

              4.利用TCP發送數據的時候,調用send發送5次,每次發送100字節,問接收方調用recv最少幾次,最多幾次?

              5.自定義實現字符串轉為整數的算法,例如把“123456”轉成整數123456.(輸入中可能存在符號,和數字)

              6.給出一棵二叉樹的前序和中序遍歷,輸出后續遍歷的結果,假設二叉樹中存儲的均是ASCII碼。如前序:ABDHECFG,中序:HDBEAFCG,則輸出后序為:HDECFGCA。

              7.給出了一個n*n的矩形,編程求從左上角到右下角的路徑數(n > =2),限制只能向右或向下移動,不能回退。例如當n=2時,有6條路徑。

              參考答案:

              1.溢出主要指的是超出了自身的范圍,常見的有整數溢出和緩沖區溢出;而越界則指的是操作數組的下標超出了數組應有的長度范圍。

              2.由于p指向的只是一個字節的地址,strcpy拷貝溢出。

              3.數組作為函數參數時會退化為指針,所以sizeof(str)為4;而p本身就是一個指針,所以sizeof(p)為4。

              4.TCP的基本工作流程:send時會先發送到發送緩沖區,接收時會從接收緩沖區取數據。由于緩沖區的大小不定,按題意,最少recv接收1次,最多500次。

              5.可以參見c中的stoi函數實現,主要是要考慮各種特殊情況,例如符號和溢出,下面是示例實現代碼。

              /pic/p>

              enum Status {VALID,IN_VALID};

              int gStatus = VALID;

              int strToInt(const char* str)

              {

              long long result = 0;/pic/p>

              gStatus = IN_VALID; /pic/p>

              if(str != NULL)

              {

              const char* digit = str;

              bool minus = false;

              if(*digit == '+')

              digit++;

              else if(*digit == '-')

              {

              digit++;

              minus = true;

              }

              while(*digit != '\0')

              {

              if(*digit >= '0' && *digit <= '9')

              {

              result = result * 10 + (*digit -'0');

              /pic/p>

              if(result > std::numeric_limits::max())

              {

              result = 0;

              break;

              }

              digit++;

              }

              /pic/p>

              else

              {

              result = 0;

              break;

              }

              }

              if(*digit == '\0')

              {

              gStatus = VALID;

              if(minus)

              result = 0 - result;

              }

              }

              return static_cast(result);

              }

              6.思路:先利用前序和中序構建出二叉樹,然后后序遍歷輸出結果

              /**

              *返回二叉樹的根節點

              *preOrder:前序遍歷序列

              *inOrder:中序遍歷序列

              *len:節點數目

              */

              Node* getBinaryTree(char* preOrder, char* inOrder, int len)

              {

              if(preOrder == NULL || *preOrder == '\0' || len<=0)

              return NULL;

              Node* root = (Node*) malloc(sizeof(Node));

              if(root == NULL)

              exit(EXIT_FAILURE);

              /pic/p>

              root->data = *preOrder;

              int pos = 0;/pic/p>

              while(true)

              {

              if(*(inOrder+pos) == root->data)

              break;

              pos++;

              }

              /pic/p>

              if(pos == 0)

              root->lchild = NULL;

              else

              root->lchild = getBinaryTree(preOrder+1, inOrder, pos);

              if(len-pos-1 == 0)

              root->rchild = NULL;

              else

              root->rchild = getBinaryTree(preOrder+pos+1, inOrder+pos+1,len-pos-1);

              return root;

              }

              /**

              *后續遍歷二叉樹

              *

              */

              void postOrder(Node* root)

              {

              if(root == NULL)

              return;

              postOrder(root->lchild);

              postOrder(root->rchild);

              printf("%c", root->data);

              }

              /**

              *根據前序遍歷和中序遍歷輸出后續遍歷

              *

              */

              void printPostOrderViaPreOrderAndInorder(char* preOrder, char* inOrder)

              {

              Node* root = getBinaryTree(preOrder, inOrder, strlen(preOrder));

              postOrder(root);

              }

              7.一是利用數學知識,從左上角到右下角總共要走2n步,其中橫向要走n步,所以總共就是C2n~n。

              二是利用遞歸實現

              /**

              *返回總路徑數

              *參數m:表示矩形的橫向格子數

              *參數n:表示矩形的縱向格子數

              */

              int getTotalPath(int m, int n)

              {

              /pic/p>

              if(m == 1)

              return n + 1;

              /pic/p>

              if(n == 1)

              return m + 1;

              /pic/p>

              /pic/p>

              /pic/p>

              return getTotalPath(m-1, n) + getTotalPath(m, n-1);

              }

            【學期教學計劃】相關文章:

            學期教學計劃03-08

            學期教學計劃中班上學期教學計劃05-26

            學期教學計劃小班 本學期教學計劃小班03-18

            學期教育教學計劃02-03

            學期教學計劃范文03-10

            整學期的教學計劃05-22

            學期教學計劃音樂05-07

            學期班教學計劃03-18

            英語學期教學計劃02-27

            學期教學計劃集合01-11

                    <pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

                    <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

                    <p id="bbfd9"></p>

                    <p id="bbfd9"><cite id="bbfd9"></cite></p>

                      <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

                      <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
                      <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
                      飘沙影院