| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> 【C语言进阶考试】你是否真正学懂了C语言 -> 正文阅读 |
|
[C++知识库]【C语言进阶考试】你是否真正学懂了C语言 |
目录 前言
🎒选择题【全面深度剖析】📗考点一:无符号数unsigned的理解与应用请问该程序的输出是多少(? ? )
💡本题的解题关键:
??回到题目:这个代码的结果是只有i == 0 的时候,循环才能停止 ???让我们一起来解题吧~ 🈵无符号char(unsigned char)的取值范围:0~255 1??开始执行for循环:i = 7? ——>? i = 4? ——>? i = 1 继续循环,此时已经循环3次 2??对于一个无符号数是不会出现负数的(本来下一个循环?i = -2),从而使得下一个 i = 254(char的字节为8个,存进i的补码是 3??下一次循环(i = -1)由于为无符号,则下一次i = 255(255 / 3 = 85) 👉综上: ? ? ? ? ? 一共循环3+85+85=173 ?这也就是这题为什么选D啦~ 📕考点二:字符ASCII计算与转换的理解和应用以下程序运行时,若输入1abcedf2df<回车>输出的结果是(? ? ? ?)?
👉同学们做这些题目的时候一定要仔细哦~
💡本题的解题关键:
?特别注意:
???让我们一起来解题吧~ 📍经过上述的理解,我们便可得知:由大写字母转换为小写字母需要在原有 1??当a=0;ch=1,判断if语句不满足条件,出循环,输出1,且a=1 2??当a=1;ch=a;进入循环,a—>A。 3??我们发现转变字符是跳着读的:同理b不变,c转变成C,以此类推算出来的答案是:1AbCeDf2dF 👉综上: ??循环本质上:就是在奇数位的时候想让小写字母转换为大写字母 ?这也就是为什么这道题选?C 啦~ 📙考点三:对位操作符的理解与应用以下哪个选项一定可以将 flag 的第二个 bit 置 0 (? ?)
💡本题的解题关键:
?特别注意 按位与&:只有对应的两个二进位全1才1,全0为0 按位或|:只要对应的二个二进位有一个为1时,结果位就为1。 按位异或^:两数各对应的二进位相异或,当两对应的二进位相异为1,相同为0 ???让我们一起来解题吧~ 想让第二个bit置为0,则需在第二位与0,即可把第二位置为0 👉综上: ?这也就是为什么这道题选?A啦~ 📘考点四:结构体对齐的原则与应用
在 #pragma pack(4) 和 #pragma pack(8) 的情况下,结构体的大小分别是(? ? )?
💡本题的解题关键:
???让我们一起来解题吧~ 👉在#pragma pack(4)下:(默认对齐数为4) ?结构体大小分别为? 16? ? ?16 👉在#pragma pack(8)下:(默认对齐数为8) 则最大对齐数变为8,与上述分析情况一样 如果还是不懂如何分析结构体大小,📌结构体文章推荐:结构体(结构体内存对齐) 此时结构体大小为? ? 16? ? 24 👉综上:? ?这也就是为什么选?C?啦~ 📒考点五:while判断条件的理解的和应用在上下文和头文件均正常的情况下,以下程序的输出结果是(? ? )
💡本题的解题关键:
特别注意:
??回到题目: 💥首先x=1进入循环得到x=2;再使用while条件判断(x=2为真),执行x--得到x=1,继续进入循环最终陷入死循环。 ?这也就是为什么选? ?? 📗考点六:整形在内存中的存储下列 C 程序执行后 c 输出结果为 (? ? ?) ( 32 位)
💡本题的解题关键:
?特别注意 💬正数的原、反、补码相同;负数的补码为:原码取反(符号位不变)+1 ??回到题目: 👉综上:? 整形在内存中使用时,必须用补码计算,计算完成之后还要把补码变为原码? ?这也就是为什么选? ?? 📕考点七:指针数组的理解和应用设有定义char *p[]={"Shanghai","Beijing","Honkong"};则结果为j字符的表达式是()
💡本题的解题关键:
??回到题目:
?🉐p数组有三个元素,里放的都是首字符的地址:S 、 H、 B A选项:*p[1]+3 可以理解为找到了B的地址解引用再加3=E; B选项:*(p[1] +3)可以理解为先找到了B的地址再+3再解引用;+1指向e;+2指向i;+3指向j。 C和D的p[ 3 ]都已经超过了p数组,不存在,所排除。 ?这也就是为什么选? ?? 📙考点八:递归与判断条件的理解与应用
执行如上函数后. i的值为()
💡本题的解题关键:
??回到题目: 1??f(2)-----------进入函数,则x=2,通过判断得出返回3; 2??f(3)-----------x=3,通过判断返回x*f(x-1),此时的f(x-1)为f(2) 💯f(f(2)) = 3 * 3 = 9 ?这也就是为什么选? ? C 📒考点九:二维数组的理解与应用在int p[][4] = { {1},{3,2},{4,5,6},{0} }; 中,p[1][2]的值是(? ? )
💡本题的解题关键:
??回到题目: 💯此时的二维数组存放的位置 ??这也就是为什么选? ? B 📘考点十:位操作符的理解与计算
fun(21)的运行结果是(? ? )
💡本题的解题关键:
??回到题目: 这个代码的关键在于(1<<5) ???让我们一起来解题吧~ 💯异或(^):相同为0,不同为1 ?这也就是为什么选? ? A 📗考点十一:宏定义的理解下列关于C / C++的宏定义,不正确的是(? ? )
💡本题的解题关键:
???让我们一起来解题吧~ C语言中num是常变量,C++中的num是常量,而且const 修饰的num是有类型的,有类型检查;宏没有类型检查,所以不够严格。 ??这也就是为什么选? ? B 📕考点十二:指针的概念及理解下面关于"指针"的描述不正确的是(? ? )
???让我们一起来解题吧~ free释放掉的指针,free不会将它置为空,我们要 📙考点十三:宏替换的理解与运算
则执行语句 z = 2 * ( N + Y(5 + 1) )后, z 的值为
💡本题的解题关键:
???让我们一起来解题吧~ 💯直接替换:N=3+1? ? ? Y(n) = ((N+1)*n) 1??z = 2 * ( 3+1 + Y(5 + 1) ) ;? ?Y(n) (( 3+1+1)*n) 2??Y(n) = (( 3+1+1)*5 + 1) =26;? ? z=2*(3+1+26)=60 📒考点十四:源文件各个阶段的理解由多个源文件组成的C程序,经过编辑、预处理、编译、链接等阶段会生成最终的可执行程序。下面哪个阶段可以发现被调用的函数未定义?
???让我们一起来解题吧~
📗考点十五:整形提升的计算
???让我们一起来解题吧~ 📖编程题【全面深度解析】?🏷?[编程题]Fibonacci数列
🔍题目传送门:OJ链接
🏷?[编程题]替换空格
🔍题目传送门:OJ链接 🐸这道题目是源自身边的,并非凭空捏造 🔥因为搜索字符串,字符串是不能空开的,所以必须要把空格替换掉(空格的ASCII码值是20)。在搜索引擎我们可以发现👇🏻 💡解题关键: ??思路:?
|
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/11 12:41:49- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |