ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

《C语言总复习(第二章):10大核心高频考点,吃透稳拿基础分》

2026/10/5 10:15:06 拓冰建站 浏览量
《C语言总复习(第二章):10大核心高频考点,吃透稳拿基础分》 C语言总复习高频难点必背考点附可直接运行代码目录点击跳转一、数据类型与 signed/unsigned必考坑点二、sizeof 核心考点90%概率考三、变量局部 vs 全局内存优先级四、算术运算符整除、取模高频错题五、/-- 前置 vs 后置必考六、强制类型转换隐式显式七、printf 格式化输出格式必背八、scanf 重难点90%人错九、僵尸进程 孤儿进程操作系统高频十、考场/面试秒杀口诀一、数据类型与 signed/unsigned1. char 默认有符号还是无符号char不等于signed char是否带符号由编译器决定。int默认等价于signed int。#includestdio.hintmain(){chara0x80;if(a0)printf(char 是有符号\n);elseprintf(char 是无符号\n);return0;}2. 无符号数永远 ≥ 0比较极易踩坑无符号数运算结果一定是无符号不会出现负数。#includestdio.hintmain(){unsignedinta10;if(a-200){printf(成立无符号数永不为负\n);}return0;}二、sizeof 核心考点1. sizeof 是运算符不是函数2. sizeof不执行表达式只看类型#includestdio.hintmain(){shorts2;intb10;printf(%zd\n,sizeof(sb1));// 结果2printf(s%d\n,s);// s 仍为 2表达式未执行return0;}3. 常见类型大小64位环境类型32位环境64位环境char11short22int44long44/8long long88float44double88指针void*48三、变量局部 vs 全局内存优先级1. 同名变量局部优先于全局#includestdio.hintn1000;// 全局变量intmain(){intn10;// 局部变量printf(%d\n,n);// 输出10return0;}2. 内存分布局部变量 →栈区全局/静态变量 →静态区动态分配malloc→堆区四、算术运算符整除、取模高频错题1. 整数除法是整除直接丢弃小数#includestdio.hintmain(){intscore5;// 错误整数整除结果为0score(score/20)*100;printf(错误结果%d\n,score);// 正确转为浮点数除法score(score/20.0)*100;printf(正确结果%d\n,score);return0;}2. % 取模结果符号由被除数决定11 % 5 1 11 % -5 1 -11 % 5 -1 -11 %-5 -1五、/-- 前置 vs 后置必考口诀前置先1再使用后置先使用再1#includestdio.hintmain(){// 前置inta10,b;ba;printf(前置a%d, b%d\n,a,b);// a11, b11// 后置intx10,y;yx;printf(后置x%d, y%d\n,x,y);// x11, y10return0;}六、强制类型转换隐式显式隐式转换编译器自动转易丢精度、有警告显式强转(类型)值无警告截断而非四舍五入#includestdio.hintmain(){inta3.14;// 隐式转换警告intb(int)3.14;// 显式强转无警告printf(a%d, b%d\n,a,b);// 均为3return0;}七、printf 格式化输出格式必背#includestdio.hintmain(){intnum123;doublef123.45;printf(%5d\n,num);// 宽度5右对齐 123printf(%-5d\n,num);// 左对齐123printf(%d\n,num);// 显示正负号123printf(%.2f\n,f);// 保留2位小数123.45printf(%6.2f\n,f);// 总宽6小数2位123.45printf(%%\n);// 输出%return0;}八、scanf 重难点90%人错1. 普通变量必须加 数组名/指针除外2. %c 会读取空格/换行前面加空格跳过空白3. %*c赋值忽略符跳过任意分隔符4. 返回值成功读取的变量个数#includestdio.hintmain(){inta,b,y,m,d;charch;// 1. 普通变量取地址scanf(%d %d,a,b);// 2. %c 跳过空白scanf( %c,ch);// 3. 忽略分隔符支持2025-01-01或2025/01/01scanf(%d%*c%d%*c%d,y,m,d);// 4. 返回值intrscanf(%d,a);printf(r%d\n,r);// 成功1个返回1失败返回0结束返回-1return0;}九、僵尸进程 孤儿进程操作系统高频1. 僵尸进程条件子进程先死父进程存活父未调用 wait/waitpid特点残留PCB占用进程号不释放资源核心父进程等待子进程回收2. 孤儿进程条件父进程先死子进程存活特点被initPID1收养自动回收不会变僵尸十、考场/面试秒杀口诀char 有符号看编译器int 默认有符号无符号数运算永不为负sizeof 不算表达式只看类型局部变量优先全局变量整数除法是整除想算小数用浮点数取模符号看被除数前置先加后用后置先用后加scanf 变量要%c前面加空格跳空白强转是截断不是四舍五入僵尸子死父不收孤儿父死子被收养要不要我再帮你生成一份配套的可直接复制的Markdown目录方便你放在文章开头快速跳转