- 本篇根据各个公司的面试问的常见问题进行总结。 公众号回复“面试”,获取pdf答案 1 变量的声明和定义有什么区别 2 简述#ifdef、#else、#endif和#ifndef的作用 3 写出int 、bool、 float、指针变量与 “零值”比较的if语句 4 结构体可以直接赋值吗 5sizeof和strlen的区别 6 C 语言的... 本篇根据各个公司的面试问的常见问题进行总结。 公众号回复“面试”,获取pdf答案 1 变量的声明和定义有什么区别 2 简述#ifdef、#else、#endif和#ifndef的作用 3 写出int 、bool、 float、指针变量与 “零值”比较的if语句 4 结构体可以直接赋值吗 5sizeof和strlen的区别 6 C 语言的...
- 链表 一、什么是链表 链表是线性表的一种,同顺序表一样,都是最基础的线性表。与顺序表的区别在于使用了不同存储结构实现,顺序表使用顺序存储结构,而链表使用链式存储结构。 链表的实现是通过节点,通常节点包含两个区域,数据域和指针域。数据域用来存储我们的数据,而指针域用来存储下一个节点的指针,而节点之间的联系也是通过指针域来建立的。假如我们用链表存储下列有序数据:a1,... 链表 一、什么是链表 链表是线性表的一种,同顺序表一样,都是最基础的线性表。与顺序表的区别在于使用了不同存储结构实现,顺序表使用顺序存储结构,而链表使用链式存储结构。 链表的实现是通过节点,通常节点包含两个区域,数据域和指针域。数据域用来存储我们的数据,而指针域用来存储下一个节点的指针,而节点之间的联系也是通过指针域来建立的。假如我们用链表存储下列有序数据:a1,...
- 在现实程序中,我们必须检查每个函数调用是否返回错误。由于碰到错误时终止程序执行是个惯例,因此我们可以通过定义包裹函数(wrapper function)来缩短程序的长度。包裹函数执行实际的函数调用,测试其返回值,并在碰到错误时终止进程。 在现实程序中,我们必须检查每个函数调用是否返回错误。由于碰到错误时终止程序执行是个惯例,因此我们可以通过定义包裹函数(wrapper function)来缩短程序的长度。包裹函数执行实际的函数调用,测试其返回值,并在碰到错误时终止进程。
- 不知道你有没有遇到过这种诡异的事情:在 Visual Studio 2013 里写了一段很简单的 C 语言代码,定义了一个局部变量,结果手快没给它赋初值,直接 printf 打印了出来。按下 F5 运行的那一秒,控制台没有弹出你期待的 0,也没有报错崩溃,而是黑底白字赫然写着一行巨额数字:-858993460。或者更诡异的是,当你打印一串字符时,控制台直接刷出一排整整齐齐的“烫烫烫烫烫烫烫”... 不知道你有没有遇到过这种诡异的事情:在 Visual Studio 2013 里写了一段很简单的 C 语言代码,定义了一个局部变量,结果手快没给它赋初值,直接 printf 打印了出来。按下 F5 运行的那一秒,控制台没有弹出你期待的 0,也没有报错崩溃,而是黑底白字赫然写着一行巨额数字:-858993460。或者更诡异的是,当你打印一串字符时,控制台直接刷出一排整整齐齐的“烫烫烫烫烫烫烫”...
- 实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。 方法一:计数器方式 先遍历链表,求出链表长度count。倒数第k个节点,就是正数第count-k+1个节点。再次遍历链表,找到该节点,返回数据 方法二:双指针方式 定义两个指针slow和fast,初始都指向第一个节点 初始fast指针先走k步,然后slow指针和fast指针每次各走一步,当fast指针指向空时,slow指针所指向的节 实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。 方法一:计数器方式 先遍历链表,求出链表长度count。倒数第k个节点,就是正数第count-k+1个节点。再次遍历链表,找到该节点,返回数据 方法二:双指针方式 定义两个指针slow和fast,初始都指向第一个节点 初始fast指针先走k步,然后slow指针和fast指针每次各走一步,当fast指针指向空时,slow指针所指向的节
- 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 方法一:双循环对比法(暴力解法效率较低,不建议采用) 方法二: 双指针法 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 方法一:双循环对比法(暴力解法效率较低,不建议采用) 方法二: 双指针法
- 想要移除链表的指定元素,有两种方式 第一种方式 :删除原链表的指定元素 第二种方式 :创建新链表 尾插不属于指定元素的节点 想要移除链表的指定元素,有两种方式 第一种方式 :删除原链表的指定元素 第二种方式 :创建新链表 尾插不属于指定元素的节点
- 想要求得链表的中间节点,有两种方法,分别是计数器方式和快慢指针方式 计数器方式逻辑简单实现简单,效率低 快慢指针方式对逻辑和细节要求较高,但效率也很高 想要求得链表的中间节点,有两种方法,分别是计数器方式和快慢指针方式 计数器方式逻辑简单实现简单,效率低 快慢指针方式对逻辑和细节要求较高,但效率也很高
- 第一种方法:创建一个临时数组,将字符串1中的每一个字符,与字符串2中的每一个字符分别进行比较,如果某个字符不是公共元素,则将其拷贝到临时数组中 第二种方法:因为题目没有要求处理后的数据,只要求打印在屏幕。所以每找到一个不需要删除的元素时,直接打印该字符也可以解决问题 第一种方法:创建一个临时数组,将字符串1中的每一个字符,与字符串2中的每一个字符分别进行比较,如果某个字符不是公共元素,则将其拷贝到临时数组中 第二种方法:因为题目没有要求处理后的数据,只要求打印在屏幕。所以每找到一个不需要删除的元素时,直接打印该字符也可以解决问题
- 对于一个较大的整数,每三位数字之间添加一个逗号,以便于阅读。一种有效的解决办法就是将数字转换为字符,从右向左每次%10得到一位数字转换为字符存储到数组中,再除以10去掉一位数字。其次,要注意每次满三位添加一个逗号至数组,并且只有满3位时才添加逗号。最后,将得到的这个字符数组逆序输出。 对于一个较大的整数,每三位数字之间添加一个逗号,以便于阅读。一种有效的解决办法就是将数字转换为字符,从右向左每次%10得到一位数字转换为字符存储到数组中,再除以10去掉一位数字。其次,要注意每次满三位添加一个逗号至数组,并且只有满3位时才添加逗号。最后,将得到的这个字符数组逆序输出。
- 在C语言中,要交换一个整数的二进制位中的奇数位和偶数位,重点需要理解位操作。当我们谈论二进制位的奇数位和偶数位时,我们是指从右到左(或从最低位到最高位)数的位置。在这种计数方式下,第一位是奇数位,第二位是偶数位,依此类推。 首先,分别取出奇数位和偶数位。 然后,将奇数位和偶数位的位置变换。将奇数位和偶数位合并在一起,完成转换。 在C语言中,要交换一个整数的二进制位中的奇数位和偶数位,重点需要理解位操作。当我们谈论二进制位的奇数位和偶数位时,我们是指从右到左(或从最低位到最高位)数的位置。在这种计数方式下,第一位是奇数位,第二位是偶数位,依此类推。 首先,分别取出奇数位和偶数位。 然后,将奇数位和偶数位的位置变换。将奇数位和偶数位合并在一起,完成转换。
- offsetof宏的作用是获取结构体中某个成员相对于结构体起始地址的偏移量。通过计算成员在结构体中的位置,它提供了一种可移植的方法来确定偏移量。 offsetof宏的作用是获取结构体中某个成员相对于结构体起始地址的偏移量。通过计算成员在结构体中的位置,它提供了一种可移植的方法来确定偏移量。
- strcmp()函数是 C 语言标准库中用于比较两个字符串的一个重要函数,全称为 "string compare"。它位于头文件中 strcmp()函数逐字符地比较两个字符串str1和str2,直到找到它们之间存在差异的字符,或者到达任一字符串的结束符\0。比较基于每个字符的 ASCII 值(对于宽字符字符串,对应的是宽字符集的排序规则)。 strcmp()函数是 C 语言标准库中用于比较两个字符串的一个重要函数,全称为 "string compare"。它位于头文件中 strcmp()函数逐字符地比较两个字符串str1和str2,直到找到它们之间存在差异的字符,或者到达任一字符串的结束符\0。比较基于每个字符的 ASCII 值(对于宽字符字符串,对应的是宽字符集的排序规则)。
- 操作符详解(下) 1.单⽬操作符单⽬操作符有这些: !、++、–、&、、+、-、~ 、sizeof、(类型) 单⽬操作符的特点是只有⼀个操作数,在单⽬操作符中只有&和没有介绍,这2个操作符,我们放在 学习指针的时候讲解。 2.逗号表达式exp1, exp2, exp3, …expN逗号表达式,就是⽤逗号隔开的多个表达式。 逗号表达式,从左向右依次执⾏。整个表达式的结果是最后⼀个表达式的结果... 操作符详解(下) 1.单⽬操作符单⽬操作符有这些: !、++、–、&、、+、-、~ 、sizeof、(类型) 单⽬操作符的特点是只有⼀个操作数,在单⽬操作符中只有&和没有介绍,这2个操作符,我们放在 学习指针的时候讲解。 2.逗号表达式exp1, exp2, exp3, …expN逗号表达式,就是⽤逗号隔开的多个表达式。 逗号表达式,从左向右依次执⾏。整个表达式的结果是最后⼀个表达式的结果...
- 操作符详解(上) 1.操作符的分类• 算术操作符: + 、- 、* 、/ 、%• 移位操作符:<< >>• 位操作符:& | ^• 赋值操作符:= 、+= 、 -= 、 *= 、 /= 、%= 、<<= 、>>= 、&= 、|= 、^= *• 单⽬操作符: !、++、–、&、、+、-、~ 、sizeof、(类型)• 关系操作符:> 、>= 、< 、<= 、 == 、 !=• 逻辑操作符:... 操作符详解(上) 1.操作符的分类• 算术操作符: + 、- 、* 、/ 、%• 移位操作符:<< >>• 位操作符:& | ^• 赋值操作符:= 、+= 、 -= 、 *= 、 /= 、%= 、<<= 、>>= 、&= 、|= 、^= *• 单⽬操作符: !、++、–、&、、+、-、~ 、sizeof、(类型)• 关系操作符:> 、>= 、< 、<= 、 == 、 !=• 逻辑操作符:...
上滑加载中
推荐直播
-
华为云码道Skill实战与极速交付,智能开发全链路实战2026/07/22 周三 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;姜浩-华为云HCDG核心组成员
直播深度解读华为云码道6月产品新特性,从Skill市场安装专家技能,带你零距离体验从需求,开发,审查,重构全链路闭环的开发过程。从零构建并交付一个完整项目,让您体验从代码提交到服务上线的“极速”之旅。
回顾中 -
聚开发者之力,创具身新未来2026/07/23 周四 15:00-17:00
张豪杰/程文/王军/刘新春/黄钦开 /张晓天
本次华为云具身智能开发平台CloudRobo培训面向具身智能开发者,带您全流程体验机器人本体R2C小时级接入、环境重建与轨迹生成仿真数据生产、PB级数据管理、数据评测、模型训推、强化学习和Benchmark一键评测等功能,并体验业界主流具身模型应用。
回顾中
热门标签