46家名企笔试题集:计算机行业经典试题

需积分: 9 2 下载量 172 浏览量 更新于2024-12-13 收藏 277KB PDF 举报
"这是一份集合了46家著名公司的笔试试题,涵盖了计算机行业的不同领域,旨在帮助求职者准备面试。试题具有代表性,能够帮助考生熟悉常见的编程问题和逻辑测试,提高求职成功率。" 试题解析: 1. Sony笔试题: 这是一道填充空缺代码的题目,目的是要求考生完成一个打印星号图案的程序。根据提供的图案,我们可以推断出程序是用于生成等腰三角形的星号。缺失部分应包括循环结构来控制行数和每行的星号数量。代码可能如下: ```c #include<stdio.h> #define N 8 int main() { int i, j; for (i = 1; i <= N; i++) { for (j = 1; j <= N - i; j++) printf(" "); for (j = 1; j <= 2 * i - 1; j++) printf("*"); printf("\n"); } return 0; } ``` 2. 数组降序排序: 这道题要求考生实现一个函数,将整型数组按降序排列。可以使用冒泡排序、选择排序、插入排序或者更高效的快速排序、归并排序等算法。这里以简单的冒泡排序为例: ```c #include<stdio.h> void sort(int array[], int size) { int i, j, temp; for (i = 0; i < size - 1; i++) { for (j = 0; j < size - 1 - i; j++) { if (array[j] > array[j + 1]) { temp = array[j]; array[j] = array[j + 1]; array[j + 1] = temp; } } } } int main() { int array[] = {45, 56, 76, 234, 1, 34, 23, 2, 3}; sort(array, sizeof(array) / sizeof(array[0])); return 0; } ``` 3. 费波那契数列: 费波那契数列的第n项可以通过递归或迭代方式计算。递归方法简单但效率低,因为存在大量的重复计算。迭代方法更高效,避免了重复计算。这里用迭代法实现: ```c #include<stdio.h> int Pheponatch(int N) { if (N <= 1) return N; int fib = 1, prevFib = 1; for (int i = 2; i < N; i++) { int temp = fib; fib += prevFib; prevFib = temp; } return fib; } int main() { printf("The 10th term is %d", Pheponatch(10)); return 0; } ``` 4. 程序崩溃问题: 程序中`append`函数未定义,同时`TNode`结构体中的类型`TNode`未声明。要修复这个问题,首先需要定义`TNode`,然后提供`append`函数的实现。例如,假设`append`用于向二叉树添加节点: ```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 { TNode* current = root; while (1) { if (N < current->value) { if (current->left == NULL) { current->left = newNode; break; } else { current = current->left; } } else { if (current->right == NULL) { current->right = newNode; break; } else { current = current->right; } } } } } int main() { append(63); append(45); // ... } ``` 这个修复版本定义了`TNode`结构体,并提供了`append`函数的实现,用于向二叉搜索树添加节点。现在,程序应该可以正确运行而不会崩溃。 以上解析展示了计算机科学中常见的编程问题,包括图形打印、排序算法、递归与迭代计算以及数据结构(如二叉树)的使用。这些知识点是计算机专业求职者需要掌握的基础技能。