))
♂️ 第1题字符精灵的“隐藏数字”1、题目字符1转成int是多少2、 故事在“字符王国”里有一个叫1的小精灵。但它有一个秘密身份 ——ASCII 编码编号1不是数字1 它的编号是493、 关键知识字符 → int本质是取 ASCII 值字符ASCII048149A654、✅ 答案C. 495、 小例子char c 1; cout (int)c endl; // 输出 49♂️ 第2题交换魔法阵1、题目程序让 a 和 b 发生了什么2、 故事小明学会了一个“交换魔法”a a ^ b; b a ^ b; a a ^ b;✨ 这是“无影交换术”不用第三个变量3、 原理异或的特点x ^ y ^ y x4、 结果 a 和 b成功交换5、✅ 答案B. 互换6、 小例子a 3, b 5; // 交换后a5, b3♂️ 第3题真假字符串兄弟1、题目两个字符串是否一样2、 故事两个小朋友char str1[] Hello; char str2[] {H,e,l,l,0};注意 第二个最后是数字0不是字母o3、 关键区别字符含义o字母0数字4、 结论 两个字符串不一样5、✅ 答案C. 不相等6、 输出效果Hello Hell0♂️ 第4题同一变量多次修改安全吗1、题目这段代码有什么问题2、 故事魔法虽然厉害但有时候会“翻车”在某些编译环境下 这种写法可能出现未定义行为3、 知识点在C11中 某些表达式顺序不明确 → 可能结果不稳定未定义行为Undefined BehaviorC标准规定当同一变量在无序列点的同一表达式中被多次修改时如本例的x被x和x多次修改行为未定义。不同编译器/环境可能产生不同结果。4、✅ 答案A. 未定义行为5、本题标准答案是B、22我运行的结果也是22不过这种写法我是不允许学生这样写代码的一切有可能导致未定义行为的写法都不可取。♂️ 第5题负数的秘密1、题目-15 的 8位补码是多少2、 故事负数变身三步① 正数二进制② 取反③ 13、 计算115 的二进制000011112取反1111000031111100014、✅ 答案D. 11110001♂️ 第6题三进制魔法1、题目三进制 → 十进制2、 故事三进制就像三层楼的房子每一位代表3^0, 3^1, 3^2 ...3、 计算2*3^31*3^22*3^02*271*92549265 计算结果654、✅ 答案B. 65♂️ 第7题补码反推真身1、题目10110101 是补码 → 原数是多少2、 故事看到最高位是 1 说明是负数3、 步骤① 取反01001010② 101001011 75③ 所以原数是-754、✅ 答案B. -75♂️ 第8题左移魔法1、题目00001111 左移3位2、 故事1左移就像“整体向左搬家”右边补000001111 32 变成011110003、 转十进制64 32 16 8 1204、✅ 答案D. 1205、快速算法0x0F 15153 15*8 120 考点汇总 字符转int → 看ASCII 异或交换 → 不用临时变量 字符串 → 注意 0 和 o 负数补码 → 取反1 左移 → 乘2的幂