著名公司笔试题集:编程与算法挑战
需积分: 9 160 浏览量
更新于2024-12-24
收藏 277KB PDF 举报
"46bishi.pdf"
这份资料包含了46家著名公司的笔试题目,旨在帮助求职者准备IT行业的面试和笔试环节。以下是其中四个代表性问题的解析:
1. Sony笔试题:这是一个关于C语言编程的问题,要求完成一个程序,输出特定的星号图案。程序的主体已经给出,需要补充缺失的部分。根据输出的星号图案,可以观察到这是一个基于循环的图案生成问题。在`main`函数中,应添加两层嵌套循环,外层循环控制行数,内层循环控制每行的星号数量。例如,可以使用两个`for`循环,第一个循环变量`i`从0到`N-1`,第二个循环变量`j`从0到`i`,在内层循环中打印星号。
2. 数组降序排序:这是一个C语言编程问题,要求实现一个名为`sort`的函数,用于对整型数组进行降序排序。可以使用冒泡排序、选择排序、插入排序或者更高效的快速排序、归并排序等算法。这里以简单的冒泡排序为例,填充`sort`函数。冒泡排序通过不断交换相邻的逆序元素来逐步完成排序。
```c
void sort() {
int i, j;
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]) {
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
}
```
3. 费波那契数列:题目要求编写程序计算第10项的值。费波那契数列的第n项可以通过递归或迭代方式计算。由于递归在处理大数时效率较低,可能会导致栈溢出,因此这里推荐使用迭代法。下面是一个迭代的例子:
```c
int Pheponatch(int N) {
if (N <= 2) return 1;
int a = 1, b = 1, c;
for (int i = 3; i <= N; i++) {
c = a + b;
a = b;
b = c;
}
return b;
}
```
4. 程序崩溃分析:这段代码存在内存分配和结构体定义的问题。首先,`TNode`结构体缺少类型定义,需要在`typedef struct`前定义一个类型名,如`typedef struct TNode{...};`。其次,`append`函数未定义,需要创建一个用于向二叉树添加节点的函数。最后,全局变量`root`未初始化,可能导致程序崩溃。修正后的代码可能如下:
```c
#include<stdio.h>
#include<malloc.h>
typedef struct TNode{
TNode* left;
TNode* right;
int value;
}TNode;
TNode* root = NULL;
void append(int N) {
TNode* newNode = (TNode*)malloc(sizeof(TNode));
newNode->value = N;
newNode->left = newNode->right = NULL;
if (root == NULL) {
root = newNode;
} else {
// 添加具体的插入逻辑,如按值排序
}
}
int main() {
append(63);
append(45);
// ...
return 0;
}
```
这四个问题涵盖了基本的C语言编程技能,包括循环、数组操作、递归与迭代算法以及数据结构(二叉树)的基础知识。对于IT行业求职者来说,熟练掌握这些技能是必要的。
2019-08-24 上传
2021-09-30 上传
2023-07-31 上传
2023-03-27 上传
2021-10-05 上传
2022-10-20 上传
2018-10-14 上传
2010-04-15 上传
jicheng687
- 粉丝: 36
- 资源: 39
最新资源
- burgerlist
- Oro_Recic:网站推广电子设备中的黄金回收
- 基于java的开发源码-局域网通信-飞鸽传书源代码.zip
- 无限充值:计划竞赛2020无限充值
- ng-udemy
- CVOrganizer-开源
- awesome-jobs-colombia:列出在哥伦比亚从事软件开发工作的公司的列表
- 行业分类-设备装置-可编辑媒体互动装置及媒体互动平台的接口编辑方法.zip
- 基于java的开发源码-用Java加密类实现DES、RSA及SHA的加密算法.zip
- PHYS2210-Formula
- perf-pingdata-lab:使用JenkinsJMeter测试Ping Identity产品的存储库
- cmake编译opencv_contrib缺失文件.7z
- 行业分类-设备装置-可控的连杆式差动平衡装置及具有其的移动平台.zip
- version4j:用于帮助比较major.minor.patch版本的库
- img-to-gcode:任何图像到 GCode 转换(通过 CrossHatch 和 Contour)
- portfolio:我的个人网页集