46家知名公司笔试编程题集
4星 · 超过85%的资源 需积分: 9 156 浏览量
更新于2024-12-23
收藏 345KB PDF 举报
"这是一份包含46家知名公司的笔试题目的集合,主要涉及编程和算法问题,旨在测试应聘者的计算机科学基础、编程能力和逻辑思维。"
在这些笔试题目中,我们可以看到不同类型的编程问题,以下是其中四个示例:
1. Sony笔试题的第一部分是一个图案生成问题。代码使用星号(*)创建了一种模式,要求在空白处填充适当的代码来完成程序。这是一个简单的循环控制问题,可能涉及到嵌套循环,如for或while,以按照给定的模式打印星号。
```c
#include<stdio.h>
#define N 8
int main()
{
int i, j;
for(i = 0; i <= N; i++) {
for(j = 0; j < i; j++)
printf("*");
printf("\n");
}
return 0;
}
```
2. 第二个问题是数组降序排序。这里需要实现一个`sort`函数,可以使用冒泡排序、选择排序、插入排序、快速排序等常见的排序算法。这里以简单直观的冒泡排序为例:
```c
void sort() {
int temp;
for(int i = 0; i < sizeof(array) / sizeof(array[0]) - 1; i++) {
for(int 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. 第三个问题是实现斐波那契数列。斐波那契数列的第n项可以通过递归或动态规划计算。递归虽然直观但效率较低,因为存在大量重复计算。这里展示一个非递归的动态规划解决方案:
```c
int Pheponatch(int N) {
if(N <= 1) return N;
int fib[N+1];
fib[0] = 0;
fib[1] = 1;
for(int i = 2; i <= N; i++)
fib[i] = fib[i-1] + fib[i-2];
return fib[N];
}
```
4. 最后一个问题是一个C语言程序,其中有一个错误:在调用`append`函数时,字符串没有正确闭合。修复这个问题需要在`append`函数调用后添加双引号:
```c
intmain()
{
append(63);
append(45);
append(32);
return0;
}
```
此外,`append`函数的具体实现没有提供,但看起来它应该是用来构建一个二叉树结构,可能需要定义一个插入节点的函数来处理`TNode`类型的结构。
这些题目涵盖了基本的编程概念,如循环、排序、递归以及数据结构(如二叉树),是评估候选人技术能力的有效工具。对于准备参加IT公司面试的求职者来说,熟悉并能够解决这些问题是非常有益的。
2010-12-23 上传
2024-01-26 上传
2008-10-04 上传
2023-09-25 上传
2023-12-11 上传
2023-06-28 上传
2023-11-22 上传
2023-09-10 上传
2023-06-22 上传
startay
- 粉丝: 4
- 资源: 18