国产女人18毛片水真多18精品, 一区二区三区中文字-亚洲精品女国产, 欧美熟妇老熟妇88888久久久久, 一级毛片免费观看亚洲欧美国产精品,大波霸美女视频,日韩欧美激情V影院,熟女人伦21p,亚洲精品女国产,国产 乱子伦 在线

學(xué)期教學(xué)計劃

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

【推薦】學(xué)期教學(xué)計劃匯總9篇

  1.溢出與越界的區(qū)別

【推薦】學(xué)期教學(xué)計劃匯總9篇

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

  int main()

  {

  char a;

  char* p = &a;

  strcpy(p, "Hello");

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

  return 0;

  }

  3.指出如下代碼的輸出結(jié)果

  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發(fā)送數(shù)據(jù)的時候,調(diào)用send發(fā)送5次,每次發(fā)送100字節(jié),問接收方調(diào)用recv最少幾次,最多幾次?

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

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

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

  參考答案:

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

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

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

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

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

  /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.思路:先利用前序和中序構(gòu)建出二叉樹,然后后序遍歷輸出結(jié)果

  /**

  *返回二叉樹的根節(jié)點

  *preOrder:前序遍歷序列

  *inOrder:中序遍歷序列

  *len:節(jié)點數(shù)目

  */

  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;

  }

  /**

  *后續(xù)遍歷二叉樹

  *

  */

  void postOrder(Node* root)

  {

  if(root == NULL)

  return;

  postOrder(root->lchild);

  postOrder(root->rchild);

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

  }

  /**

  *根據(jù)前序遍歷和中序遍歷輸出后續(xù)遍歷

  *

  */

  void printPostOrderViaPreOrderAndInorder(char* preOrder, char* inOrder)

  {

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

  postOrder(root);

  }

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

  二是利用遞歸實現(xiàn)

  /**

  *返回總路徑數(shù)

  *參數(shù)m:表示矩形的橫向格子數(shù)

  *參數(shù)n:表示矩形的縱向格子數(shù)

  */

  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);

  }

【學(xué)期教學(xué)計劃】相關(guān)文章:

學(xué)期教學(xué)計劃03-08

學(xué)期教學(xué)計劃中班上學(xué)期教學(xué)計劃05-26

學(xué)期教學(xué)計劃小班 本學(xué)期教學(xué)計劃小班03-18

學(xué)期教育教學(xué)計劃02-03

學(xué)期教學(xué)計劃范文03-10

整學(xué)期的教學(xué)計劃05-22

學(xué)期教學(xué)計劃音樂05-07

學(xué)期班教學(xué)計劃03-18

英語學(xué)期教學(xué)計劃02-27

學(xué)期教學(xué)計劃集合01-11