

CCF-GESP
一、
选择题





二、
参考答案
第一题答案:B
核心知识点:指针解引用(*p)可以直接修改它所指向的变量的值。
int a = 42;:定义整型变量 a 并初始化为 42。
int *p = &a;:定义指针变量 p,并让它指向变量 a 的内存地址(即 p 存储了 a 的地址)。
*p = *p + 1;:
*p 表示解引用指针,即访问 p 所指向的变量 a 的值。
这行代码等价于 a = a + 1;,因此 a 的值从 42 变为 43。
所以程序运行后,变量 a 的值是 43。
第二题答案:C
核心易错点:数组名本质是常量指针,仅在作为函数参数传递时会退化为普通指针,此时 sizeof(arr) 才会返回指针本身的大小。
A. 数组名是一个指针常量 ✅在 C 语言中,数组名代表数组首元素的地址,是一个不可修改的指针常量,无法被赋值或自增。
B. 随机访问数组的元素方便快捷 ✅数组通过下标 arr[i] 实现 O (1) 时间复杂度的随机访问,这是数组的核心优势。
C. 数组可以像指针一样进行自增操作 ❌数组名是常量指针,不允许执行 arr++ 这类自增操作;而普通指针变量可以自增。
D. sizeof(arr) 返回的是整个数组 arr 占用的字节数 ✅当数组名作为 sizeof 的操作数时,计算的是整个数组的内存大小,而非指针大小。
第三题答案:D
*(*(arr + 1) + 2) 完全等价于下标访问形式 arr[1][2],这是理解二维数组指针的关键。

第四题答案:A

默认参数靠右放,声明定义不一样;调用省略右边数,实参来了盖默认。


第五题答案:D
全局变量:在所有函数外部定义,作用域为整个程序。
局部变量:在函数或代码块内部定义,作用域仅限当前函数 / 代码块,且会隐藏同名全局变量。

商业合作
1.定制版教具、竞赛版教具。
2.國際機器人教育發展協會师资培训
3.开展青少年机器人等级评测授权服务
4.四个教学点,任意选择
