对试题,如果面试者指出字符数组str1不能在数组内结束可以给分;如果面试者指出strcpy(string, str1)调用使得从str1内存起复制到string内存起所复制的字节数具有不确定性可以给分,在此基础上指出库函数strcpy工作方式的给 分; 对试题,if(strlen(str1) <= 10)应改为if(strlen(str1) < 10),因为strlen的结果未...
1、计算Fibonacci数列 Fibonacci数列又称斐波那契数列,又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21。 C语言实现的代码如下: 结果输出: Enter number of terms: 10 Fibonacci Series: 0+1+…
C语言面试题分类->排序算法 1.选择排序。 每次将最小的数,与剩余数做比较。找到更小的,做交换。 时间复杂度:O(n²) 空间复杂度:O(1) 优缺点:耗时但内存空间使用小。 voidselectSort(int*p,intlen) {inti, j,tmp;for(i =0; i < len; i++) {for(j = i+1; j < len; j++) {if(p[i]...
朝寒雨晚来风 C语言面试题(三)---华为 1. 交换两个变量的值,不使用第三个变量。即a=3,b=5,交换之后a=5,b=3; 有两种解法, 一种用算术算法, a = a + b; b = a - b; a = a - b; 一种用^(异或) a = a^b;// 只能对int,char.. b = a^b; a = a^b; or a ^= b ^= ...
基础排序算法: 冒泡排序、选择排序、插入排序、归并排序、希尔排序、快速排序、堆排序 建议看不懂原理说明或图示时请看代码。 1. 冒泡排序 1.1 基本思想 冒泡排序是一种交换排序,它的基本思想是:两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止。
C 数据结构与算法笔试面试题 c语言数据结构面试 1.输入一个链表的头结点,从尾到头反过来输出每个结点的值。链表结点定义如下: struct ListNode { int m_nKey; ListNode* m_pNext; }; 1. 2. 3. 4. 5. A: 递归方法逆序输出,栈方法逆序输出。
这道题我几年前在华为的面试题中也遇到过。 代码很简短,main函数定义了一个指针变量p,然后将其地址传递给fun函数,fun函数使用malloc函数在堆上分配了100个字节的空间,并把这块内存的地址赋值给了p。回到main函数中,紧接着调用free函数释放刚刚分配的内存。
判断 2 个单链表是否相交,是一个老生常谈但又极具思考性的面试题,本节就在读者已经掌握单链表及其基本操作的基础上,就此问题给大家做深入地讲解。首先,读者要搞清楚“相交”的含义。所谓相交,是指有公共的部分,而 2 个单链表相交,则意味着它们有公共的节点,公共节点的数量可以是 1 个或者多个。通过...
随机必然有重复,所谓“不重复的随机”实际上是洗牌。洗牌算法参考下面: #include #include #include intd[6]; inti,n,a,b,t; intc,j; voidmain() { srand(time(NULL)); printf("shuffle 0..n-1 demo"); for(n=1;n printf("___n=%d___",n); j=1;...
总体来说,HTTPS加解密过程通过非对称加密算法(RSA)进行密钥交换,然后通过对称加密算法(如AES)对通信数据进行加密和解密,以确保通信过程的安全性和私密性。 滑动窗口是什么 TCP 中采用滑动窗口来进行传输控制 滑动窗口的大小意味着接收方还有多大的缓冲区可以用于接收数据。