46家名企IT笔试题:算法与编程挑战
需积分: 7 158 浏览量
更新于2024-07-22
收藏 356KB PDF 举报
"IT面试试题,包括46家著名公司的笔试题目,涵盖编程、算法和数据结构等内容"
在IT面试中,笔试题目通常是评估应聘者基础编程能力、逻辑思维以及问题解决能力的重要环节。以下是几道典型的IT面试笔试题目及其解析:
1. Sony笔试题:这是一个打印星号图案的程序。空白部分需要填入合适的代码来实现递归或循环结构,按照一定的规律打印星号。通常,这种题目考察的是循环和嵌套循环的理解,以及对控制流的掌握。完整的程序可能如下:
```c
#include<stdio.h>
#define N 8
int main()
{
int i, j, k;
for (i = 1; i <= N; i++)
{
for (j = 1; j <= N - i; j++)
printf(" ");
for (k = 1; k <= 2 * i - 1; k++)
printf("*");
printf("\n");
}
return 0;
}
```
2. 数组降序排序:此题需要完成`sort`函数,实现数组元素的降序排列。这涉及到基本的数组操作和排序算法,如冒泡排序、选择排序或快速排序等。这里可以使用简单的冒泡排序作为示例:
```c
#include<stdio.h>
void sort(int array[], int size);
int main()
{
int array[] = {45, 56, 76, 234, 1, 34, 23, 2, 3};
int size = sizeof(array) / sizeof(array[0]);
sort(array, size);
return 0;
}
void sort(int array[], int size)
{
for (int i = 0; i < size - 1; i++)
{
for (int j = 0; j < size - 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
#include<stdio.h>
int Pheponatch(int N)
{
int a = 0, b = 1, c;
if (N == 0)
return a;
for (int i = 2; i <= N; i++)
{
c = a + b;
a = b;
b = c;
}
return b;
}
int main()
{
printf("The 10th term is %d", Pheponatch(10));
return 0;
}
```
4. 错误的二叉树节点插入程序:这个程序在尝试插入节点时,没有正确地创建和连接新的二叉树节点。首先,`TNode`类型应定义,然后`append`函数需要创建新节点、分配内存并连接指针。修正后的代码可能如下:
```c
#include<stdio.h>
#include<malloc.h>
typedef struct{
TNode* left;
TNode* right;
int value;
}TNode;
TNode* root = NULL;
void append(int N);
int main()
{
append(63);
append(45);
append(32);
return 0;
}
void append(int N)
{
TNode* newNode = (TNode*)malloc(sizeof(TNode));
newNode->value = N;
newNode->left = newNode->right = NULL;
if (root == NULL)
root = newNode;
else
{
TNode* current = root;
TNode* parent;
while (current != NULL)
{
parent = current;
if (N < current->value)
current = current->left;
else
current = current->right;
}
if (N < parent->value)
parent->left = newNode;
else
parent->right = newNode;
}
}
```
以上四题覆盖了基础的C语言编程、数组操作、排序算法、递归和循环、链表及二叉树的基本操作,这些都是IT面试中常见的技术主题。通过解决这些题目,应聘者可以展示他们的编程技能和逻辑思维能力。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2012-03-06 上传
2009-03-21 上传
2012-10-19 上传
2013-01-04 上传
2022-09-22 上传
qq_17277095
- 粉丝: 0
- 资源: 1