跳至主要內容

C程序填空(选填)


C程序填空(选填)

何时看本篇:下午「程序填空」若卷面为 C(与 Java 二选一或分卷,以当年题本为准),再用本篇。当前复习主线为 Java 时,优先 Java程序填空

快拿分指针移动与 NULL、字符串 '\0'、递归 出口、链表 前驱指针——空位常在 while 条件、赋值顺序、return;写完 手推小样

一、知识与应试(考点·难点·知识点合一)

1.1 指针与数组

  • a[i]*(a+i);二维数组形参 int a[][M]int (*a)[M]
  • *p++:先取 *p,再移动 p;与 (*p)++ 区分。
  • constconst char *p 所指内容不可改;char * const p 指针本身不可改。

1.2 字符串与内存

  • strlen 不含 '\0'strcpy 目标区要够大。
  • malloc 配对 free;检查 NULL 再使用。

1.3 递归与链表

  • 递归:基准 + 向基准前进;参数传值不改实参,需回传用指针。
  • 链表插入删除:先连后断,保存前驱;快慢指针(环、中点)。

1.4 与算法结合

  • 快排 partition、归并 merge、二分 mid = lo + (hi-lo)/2 防溢出。
  • 〔易错〕:循环里修改头结点要返回新 head

二、速记与背诵

  • 三交换t=a; a=b; b=t;
  • 链表插入s->next = p->next; p->next = s;
  • 递归先写出口if (!p) return ...

三、考场检查清单