46家知名公司笔试编程题集

4星 · 超过85%的资源 需积分: 9 10 下载量 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公司面试的求职者来说,熟悉并能够解决这些问题是非常有益的。