2024年【C程序设计教程实验】基础练习题(一)(1),宅家36天咸鱼翻身入职腾讯

数据结构与算法

这一块在笔试、面试的代码题中考核较多,其中常考的数据结构主要有:数组、链表、队列、栈、Set、Map、哈希表等,不同数据结构有不同的方法以及储存原理,这些算是技术岗的必备知识。算法部分主要分为两大块,排序算法与一些其他算法题

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

排序算法根据考频高低主要有:快速排序、归并排序、堆排序、冒泡排序、插入排序、选择排序、希尔排序、桶排序、基数排序、Timsort这十种,这类考核点要么是算法的时间、空间复杂度、稳定度,要么是直接手写代码,故在理解算法原理的同时,对JS语言版的排序算法代码也要加强记忆。

  • 二叉树层序遍历
  • B 树的特性,B 树和 B+树的区别
  • 尾递归
  • 如何写一个大数阶乘?递归的方法会出现什么问题?
  • 把多维数组变成一维数组的方法
  • 知道的排序算法 说一下冒泡快排的原理
  • Heap 排序方法的原理?复杂度?
  • 几种常见的排序算法,手写
  • 数组的去重,尽可能写出多个方法
  • 如果有一个大的数组,都是整型,怎么找出最大的前 10 个数
  • 知道数据结构里面的常见的数据结构
  • 找出数组中第 k 大的数组出现多少次,比如数组【1,2, 4,4,3,5】第二大的数字是 4,出现两次,所以返回 2
  • 合并两个有序数组
  • 给一个数,去一个已经排好序的数组中寻找这个数的位 置(通过快速查找,二分查找)

}

注释中已经有所说明:

在这里插入图片描述

代码三:强制类型转换符


#include <stdio.h>

int main()

{

int m;

m=(int)((double)9/2)-9%2; //9%2 即9对2取余,结果为1。而后,4.5-1=3.5。因为为int型,所以结果=3。

printf(“m=%d\n”,m); //m=3

printf(“------------------------------\n”);

printf(“原因:\n”);

printf(“(double)9/2=%lf\n\n”,(double)9/2);

printf(“(int)(double)9/2=%d\n\n”,(int)(double)9/2);

}

输出:

在这里插入图片描述

代码四:逗号表达式 &&判断符


#include <stdio.h>

int main()

{

int i=2,j=3,k=4,a=4,b=5,c=3;

int m;

m=(a=i<j)&&(b=j>k)&&(c=i,j,k);//i<j为真,故a=1。j>k为假,故b=0。由于1&&0已经为假,故第三个括号不执行,c仍为原值3.

printf(“m=%d\n”,m);

printf(“a=%d\n”,a);

printf(“b=%d\n”,b);

printf(“c=%d\n\n”,c);

//上面的逗号表达式本来应当取最后一个值k,即4

printf(“本来,c=%d\n”,(c=i,j,k));

}

输出:

原因在注释中已经说明啦!

在这里插入图片描述

代码五:|| 符


#include <stdio.h>

int main()

{

int a=1,b=2,m=0,n=0,k;

k=( n=b>a || (m=a<b)); //b>a为真,故n=1。又因为 || 运算符即’或’,一真则真,故k=1。后面的括号不再执行,m取值不变,仍为0

printf(“%d,%d\n\n”,k,m);

printf(“m=a<b,即m=%d\n”,m=a<b);

}

输出:

在这里插入图片描述

代码六: n++ 与++n


#include <stdio.h>

int main()

{

int m=12,n=34;

printf(“%d%d”,m++,++n); //1235 m先使用,即12。n先自加,故35。

printf(“%d%d\n”,n++,++m);//3514 n先使用 故35。m在上一步中,使用之后自加,为13,此时先自加,故14

//故最后输出 12353514

}

输出:

在这里插入图片描述

代码七:自减运算符,||运算符


最后

小编的一位同事在校期间连续三年参加ACM-ICPC竞赛。从参赛开始,原计划每天刷一道算法题,实际上每天有时候不止一题,一年最终完成了 600+:

凭借三年刷题经验,他在校招中很快拿到了各大公司的offer。

入职前,他把他的刷题经验总结成1121页PDF书籍,作为礼物赠送给他的学弟学妹,希望同学们都能在最短时间内掌握校招常见的算法及解题思路。

整本书,我仔细看了一遍,作者非常细心地将常见核心算法题和汇总题拆分为4个章节。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

而对于有时间的同学,作者还给出了他结合众多数据结构算法书籍,挑选出的一千多道题的解题思路和方法,以供有需要的同学慢慢研究。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

而对于有时间的同学,作者还给出了他结合众多数据结构算法书籍,挑选出的一千多道题的解题思路和方法,以供有需要的同学慢慢研究。

  • 27
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值