46家名企笔试题集:Java与算法挑战
需积分: 9 191 浏览量
更新于2024-07-28
收藏 345KB PDF 举报
"46家公司的Java笔试题目集锦"
这些题目涵盖了不同的编程和技术知识点,主要集中在C语言、数据结构、算法以及基础的编程概念上。以下是各题的详细解析:
1. Sony笔试题 - 完成星号图案:
这是一个简单的控制台输出图形的问题。根据已给出的星星图案,我们可以看出每一行的星星数量是前一行星星数量的两倍加一。所以,空白处应填写以下代码:
```c
for(i=0; i<N; i++)
{
for(j=0; j<i; j++)
printf(" ");
for(k=0; k<(2*i+1); k++)
printf("*");
printf("\n");
}
```
这个循环结构用于打印每一行的空格和星星。
2. 完成程序,实现对数组的降序排序:
这是一个简单的排序问题,可以使用冒泡排序、选择排序或快速排序等算法。这里使用冒泡排序为例:
```c
void sort()
{
int temp;
for(i=0; i<sizeof(array)/sizeof(array[0])-1; i++)
{
for(j=0; j<sizeof(array)/sizeof(array[0])-1-i; j++)
{
if(array[j]>array[j+1])
{
temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
}
```
这段代码通过两层循环实现降序排列。
3. 费波那契数列求第10项:
斐波那契数列的第n项可以通过递归或动态规划计算。由于递归可能导致大量的重复计算,效率较低,这里提供一个使用循环的方法:
```c
int Pheponatch(int N)
{
int fib[N+1];
fib[0] = 1;
fib[1] = 1;
for(int i=2; i<=N; i++)
fib[i] = fib[i-1] + fib[i-2];
return fib[N];
}
```
这种方法避免了递归带来的效率问题。
4. 程序崩溃修复:
此代码在尝试使用`append`函数时未定义`TNode`结构体,且没有结束`append`函数的调用。修复后的代码如下:
```c
#include<stdio.h>
#include<malloc.h>
typedef struct{
int value;
TNode* left;
TNode* right;
} TNode;
TNode* root = NULL;
void append(int N)
{
TNode* newNode = (TNode*)malloc(sizeof(TNode));
newNode->value = N;
newNode->left = NULL;
newNode->right = NULL;
// 假设我们已经有了一个简单的插入函数insertNode,这里仅做演示
insertNode(&root, newNode);
}
int main()
{
append(63);
append(45);
append(32);
return 0;
}
```
修复后,`TNode`结构体正确定义,`append`函数内创建新节点并插入到树中(需定义`insertNode`函数来完成具体操作)。
以上就是46家公司的Java笔试题目中的部分解题解析,这些问题涉及到了基本的编程技巧、数据结构、算法以及内存管理等重要知识点。在准备类似的笔试时,考生需要扎实掌握这些基础知识。
2022-12-26 上传
2022-11-27 上传
2021-12-12 上传
lanyi256007
- 粉丝: 0
- 资源: 11
最新资源
- 正整数数组验证库:确保值符合正整数规则
- 系统移植工具集:镜像、工具链及其他必备软件包
- 掌握JavaScript加密技术:客户端加密核心要点
- AWS环境下Java应用的构建与优化指南
- Grav插件动态调整上传图像大小提高性能
- InversifyJS示例应用:演示OOP与依赖注入
- Laravel与Workerman构建PHP WebSocket即时通讯解决方案
- 前端开发利器:SPRjs快速粘合JavaScript文件脚本
- Windows平台RNNoise演示及编译方法说明
- GitHub Action实现站点自动化部署到网格环境
- Delphi实现磁盘容量检测与柱状图展示
- 亲测可用的简易微信抽奖小程序源码分享
- 如何利用JD抢单助手提升秒杀成功率
- 快速部署WordPress:使用Docker和generator-docker-wordpress
- 探索多功能计算器:日志记录与数据转换能力
- WearableSensing: 使用Java连接Zephyr Bioharness数据到服务器