1 二叉树结点数计算:
一棵二叉树有10个度为1的结点,7个度为2的结点,则该二叉树共有____个结点。
解:
2 指针:
有以下程序
#inctude<stdio.h>
#include<stdlib.h>
main()
{
int *a,*b,*c;
a=b=c=(int*)malloc(sizeof(int));
*a=1;*b=2,*c=3;
a=b;
printf("%d,%d,%d\n",*a,*b,*c);
}
程序运行后的输出结果是? 3,3,3
1. `a`, `b`, `c` 都通过 `malloc` 分配了相同的内存地址并指向这块内存。
2. 使用 `*a = 1;`, `*b = 2;` 和 `*c = 3;` 依次赋值:
- `*a = 1;` means 当前的内存值是 `1`。
- `*b = 2;` 将同一块内存的值改为 `2`(此时,所有指向这块内存的指针都“看到”这个值)。
- `*c = 3;` 会再次将内存的值改为 `3`。
在这一系列操作后,内存的最终值变成 `3`,
因此,在最初,执行完所有的赋值后,虽然 `a`, `b`, `c` 最终都指向同一块内存,但是由于 `a` 现在指向 `b`,并且这块内存的值被设置为 `3`,所以最终的输出应当为:3, 3, 3
3 strcat 字符串拼接:
有以下程序( strcat函数用以连接两个字符串)
#include <stdio.h>