吉比特2017秋招技术类笔试试卷

时长:120分钟 总分:100分

113浏览 0人已完成答题

题型介绍
题型 单选题 判断题 填空题
数量 25 3 2
1.
两个进程合作完成一个任务。在并发执行中,一个进程要等待其合作伙伴发来信息,或者建立某个条件后再向前执行,这种制约性合作关系被称为进程的( )。
问题详情




2.
以下二叉树前序遍历的顺序是( )。
问题详情

以下二叉树前序遍历的顺序是( )。

a

/  \

b    d

/  \

e   f





3.
若进栈序列为:a,b,c,d,则下列哪一个不可能是出栈序列( )。
问题详情

若进栈序列为:abcd,则下列哪一个不可能是出栈序列( )。





4.
某算法的语句执行频度为(3n+nlog2(n)+n^2+8),其时间复杂度表示( )。
问题详情

某算法的语句执行频度为(3n+nlog2(n)+n^2+8,其时间复杂度表示( )。





5.
设有一个二维数组A[m][n],假设A[0][0]存放位置在 644,A[2][2]存放位置在676,每个元素占一个空间,问A[3][3]存放的位置在( )。
问题详情

设有一个二维数组A[m][n],假设A[0][0]存放位置在 644A[2][2]存放位置在676,每个元素占一个空间,问A[3][3]存放的位置在( )。





6.
下列叙述中正确的是( )。
问题详情

下列叙述中正确的是( )。





7.
冒泡排序的时间复杂度( )。
问题详情




8.
若一棵二叉树有81个结点,且没有度为1的结点,则非叶结点的个数为( )。
问题详情

若一棵二叉树有81个结点,且没有度为1的结点,则非叶结点的个数为( )。





9.
已知表 A 中每个元素距其最终位置不远,则以下哪种排序最省时间( )。
问题详情

已知表 A 中每个元素距其最终位置不远,则以下哪种排序最省时间( )。





10.
设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。
问题详情

设有6个结点的无向图,该图至少应有( )条边才能是一个连通图。





11.
怎样遍历二叉查找树可以得到一个从小到大的有序序列( )。
问题详情

怎样遍历二叉查找树可以得到一个从小到大的有序序列( )。





12.
一种既有利于短小作业又兼顾到长作业的作业调度算法是( )。
问题详情

一种既有利于短小作业又兼顾到长作业的作业调度算法是( )。





13.
传输层可以通过( )标识不同的应用。
问题详情




14.
对长度为n的线性表作快速排序,在最坏情况下,比较次数为( )。
问题详情

对长度为n的线性表作快速排序,在最坏情况下,比较次数为( )。





15.
为了对某序列进行二分查找,则要求其( )。
问题详情

为了对某序列进行二分查找,则要求其( )。





16.
某二叉树的前序序列为ABCDEFG,中序序列为DCBAEFG,则该二叉树的后序序列为( )。
问题详情

某二叉树的前序序列为ABCDEFG,中序序列为DCBAEFG,则该二叉树的后序序列为( )。





17.
对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K % 9作为散列函数,则散列地址为1的元素有( )个。
问题详情

对于线性表(734552564462010)进行散列存储时,若选用H(K)=K % 9作为散列函数,则计算的散列地址为1的元素有( )个。





18.
下面函数的功能是( )。
问题详情

下面函数的功能是( )

int sss(char s[], char t[])
{
    int i = 0
    while(s[i] && t[i] && (t[i] == s[i])) i++
    return (s[i] - t[i])
}





19.
有如下程序
问题详情

有如下程序
#include <stdio.h>
void main()
{
    char ch[80] = "123abcdEFG*&"
    int j
    puts(ch)
    for(j = 0 ch[j] != '\0' j++)
        if(ch[j] >= 'A' && ch[j] <= 'Z')
            ch[j] = ch[j] + 'e' - 'E'
    puts(ch) 
}

该程序的功能是( )





20.
下面程序的输出是( )?
问题详情

下面程序的输出是( )
#include <stdio.h>
int fun3(int x)
{
    static int a = 2
    a += x
    return(a)
}
void main()
{
    int k = 2, m = 1, n
    n = fun3(k)
    n += fun3(m)
    printf("%d\n", n)
}





21.
若干个等待访问磁盘者依次要访问的磁道为 19、43、40、4、79、11、76,当前磁头位于 40 号柱面,若用最短寻道时间优先磁盘调度算法,则磁头移动总距离(道数)为( )。
问题详情

若干个等待访问磁盘者依次要访问的磁道为 1943404791176,当前磁头位于 40 号柱面,若用最短寻道时间优先磁盘调度算法,则磁头移动总距离(道数)为( )。





22.
下列哪个排序算法不是稳定的( )。
问题详情

下列哪个排序算法不是稳定的( )。





23.
10个并发进程使用同一个共享变量,如果最多允许4个进程同时进入其临界区,则互斥信号量的变化范围应是()。
问题详情




24.
若有一个顺序有序表A[1:18] 中有18个元素,现进行二分查找,则查找 A[3]的比较序列的下标依次为( )。
问题详情

若有一个顺序有序表A[1:18] 中有18个元素,现进行二分查找,则查找 A3]的比较序列的下标依次为( )。





25.
红黑树的插入复杂度为( )。
问题详情

红黑树的插入复杂度为( )。





26.
若序列 X={1, 2, -2, 3, -3, 1, -3, 2, 2, -2, 3, -2, 3, -2},则该序列的所有连续子序列中,连续子序列内各元素和的最大值为()。 (说明: 连续子序列指原序列中若干连续元素构成的序列,所有子序列中最短长度1,最大长度即原序列的长度。例如第3,4,5号连续的元素就是一个连续子序列,其元素为{-2, 3, -3},各元素和为-2+3-3=-2)
问题详情

若序列 X={1, 2, -2, 3, -3, 1, -3, 2, 2, -2, 3, -2, 3, -2},则该序列的所有连续子序列中,连续子序列内各元素和的最大值为()。
(说明: 连续子序列指原序列中若干连续元素构成的序列,所有子序列中最短长度1,最大长度即原序列的长度。例如第345号连续的元素就是一个连续子序列,其元素为{-2, 3, -3},各元素和为-2+3-3=-2)
27.
下列程序的输出是()。
问题详情

下列程序的输出是()。

#include <stdio.h>
void func(int a)
{
 int b=0,c,d
 d=a
 while(d!=0)
 {
 c=d%10
 b=b*10+c
 d/=10
 }
 if(b==a)
 printf("%d",a)
}
void main( )
{
 int i
 for(i=12300i<12400i++)
 func(i)
 printf("\n")
}

28.
请问运行以下代码输出的结果是()
问题详情

请问运行以下代码输出的结果是()

#include <stdio.h>
int func(int n)
{
 return n>0&&(n&(n-1))==0&&(n&0x55555555)
}
void main( )
{
 printf("%d\n",func(4096)+func(8192)*10+func(16384)*100)
}

29.
求素数
问题详情

输入M、N,1 < M < N < 1000000,求区间[M,N]内的所有素数的个数。素数定义:除了1以外,只能被1和自己整除的自然数称为素数 输入描述: 两个整数M,N输入样例: 2 10 输出描述: 区间内素数的个数输出样例 4
30.
最大差值
问题详情

给定一个未排序的数列,找到此数列在已排序状态下的两个相邻值的最大差值,少于两个值时返回0。例如:给定数列 [1,3,2,0,1,6,8] 则 最大差值为3。注意:请尽量使用时间复杂度为O(n)的方案。 输入描述: 第一行输入单个整数N作为数列的大小,第二行输入所有数列中的元素M,共N个。0 < N <= 1000000, 0 < M < 2100000000输入样例: 3 1 10 5 输出描述: 数列的最大差值输出样例 5