360公司-2018春招笔试-Windows开发工程师客观题合集

时长:120分钟 总分:92分

176浏览 0人已完成答题

题型介绍
题型 单选题 多选题
数量 106 11
1.
下列说法中正确的是(    &nb...
问题详情

下列说法中正确的是(      )




2.
关键字序列为{12,11,19,23,1,6,10},哈希函数为H(key...
问题详情

关键字序列为{12,11,19,23,1,6,10},哈希函数为H(key)=key MOD 11,用链地址法构造哈希表,哈希地址为1的链中有(      )个记录(      )




3.
下面关于动态规划说法正确的是
问题详情




4.
下列关于排序算法的描述错误的是
问题详情




5.
请指出以下代码段使用了何种算法public void ...
问题详情

请指出以下代码段使用了何种算法
public void func(int[] arr1, int k, int m,int[] arr2) {      
    arr2[0] = 0      
    for (int i = 1 i <= m i++) {            
        int min = i            
        for (int j = 0 j < k j++) {                         
            if (arr1[j] <= i) {      
                int temp = arr2[i - arr1[j]] + 1      
                if (temp < min) {      
                    min = temp      
                }      
            }      
        }      
        arr2[i] = min            
    } 
}




6.
已知如下递归代码用于求解图的m着色问题:#define N&nb...
问题详情

已知如下递归代码用于求解图的m着色问题:
#define N 10 
int a[N+1][N+1] //存储图
int x[N+1]//记录颜色
int sum=0//保存可着色方案数

void backtrace(int t,int m)
{
    int i
    if(t>N)//搜索至叶节点 
    {
        sum++
        printf("第%d种方案:\n",sum)
        for(i=1i<=Ni++)
             printf("%d ",x[i])
        printf("\n")
    }
    else
    {
        for(i=1i<=mi++) //逐个判断每种颜色 
        {
            if(check(t,i))
            {   x[t]=i
                backtrace(t+1,m)
            }
        }
     }
}
其中check()函数用于检测某个节点颜色是否合法,以下check()函数正确的是:




7.
一个线性序列(30,14,40,63,22,5),假定采用散列函数Hash...
问题详情

一个线性序列(30,14,40,63,22,5),假定采用散列函数Hash(key)=key%7来计算散列地址,将其散列存储在A[0~6]中,采用链地址法解决冲突。若查找每个元素的概率相同,则查找成功的平均查找长度是(      )。




8.
下列程序段的时间复杂度是(    ...
问题详情

下列程序段的时间复杂度是(    )
count = 1;
for(k=1k<2nk*=2)
for(i=1i<4ni+=2)
count++




9.
递归公式 的时间复杂度为(   &...
问题详情

递归公式

775385csl.jpg
的时间复杂度为(    )。




10.
有关贪心法叙述正确的是(    &...
问题详情

有关贪心法叙述正确的是(      )




11.
在选择分治法解决问题时,应考虑待解决问题应具有哪些特征( &nb...
问题详情

在选择分治法解决问题时,应考虑待解决问题应具有哪些特征(      )




12.
在有序表中,关于斐波那契查找和折半查找说法错误的是()
问题详情




13.
下面说法错误的是()
问题详情




14.
对于函数y = ax^2 + bx...
问题详情

对于函数y = ax^2 + bx + c,(a > 0),需要找出y的小值,精确到小数点后6位。下列选项中最有效的方法是()。




15.
设哈希表长m=13,哈希函数H(key)=key MOD&nbs...
问题详情

设哈希表长m=13,哈希函数H(key)=key MOD 11。表中已有4个节点:addr(16)=5,addr(28)=6,addr(84)=7,addr(19)=8其余地址为空,如用线性探测再散列处理冲突,则关键字为38的地址为(      )




16.
#includeusing&nb...
问题详情

#include <iostream>
#include <stack>
using namespace std

int main() {
    stack<int> st
    int pos = 1
    while (pos <= 3) {
        st.push(pos++)
    }
    cout << st.top()
    while (pos <= 5) {
        st.push(pos++)
    }
    while (!st.empty()) {
        cout << st.top()
        st.pop()
    }
    return 0
}
上述程序的输出为()




17.
#includeusing&nb...
问题详情

下面代码输出结果是()
#include <iostream>
#include <vector>
#include <queue>
using namespace std

int gcd(int a, int b) {
    return b == 0 ? a : gcd(b, a % b)
}

struct stsort {
    bool operator () (const int a, const int b) const {
        if (gcd(30, a) < gcd(30, b)) {
            return 1
        }
        else if (gcd(30, a) == gcd(30, b)) {
            return a < b
        }
        else return 0
    }
}

int main() {
    int n = 5
    priority_queue<int, vector<int>, stsort>q
    for (int i = 1 i <= n ++i) {
        q.push(i)
    }
    for (int i = 1 i <= n ++i) {
        printf("%d", q.top())
        q.pop()
    }
    return 0
}





18.
#includeusing&nb...
问题详情

#include <iostream>
#include <vector>
#include <set>
using namespace std

int main() {
    int n = 5
    vector<int> a
    set<int> b
    for (int i = 1 i <= n ++i) {
        a.push_back(i)
        b.insert(i)
    }
    for (int i = 1 i <= n ++i) {
        a.push_back(i)
        b.insert(i)
    }
    cout << a.size() << b.size() << endl
    return 0
}
程序的输出为()




19.
#include<bits/stdc++.h>using&nb...
问题详情

#include<bits/stdc++.h>
using namespace std
vector<int>g[10]
int ans = 0
void dfs(int x){
    if(g[x].size() == 0){
        ans++
        return
    }
    for(int i = 0 i < g[x].size() ++i){
        dfs(g[x][i])
    }
}
int main(){
    int n, x
    scanf("%d", &n)
    for(int i = 2 i <= n ++i){
        scanf("%d", &x)
        g[x].push_back(i)
    }
    dfs(1)
cout<<ans<<endl
return 0
}
上述程序的输入为:
9
1 2 2 1 5 6 6 6
则输出为( )




20.
用(a,b,c)表示节点a,b之间有一条权值为c的无向边。对于图(1,2,...
问题详情

用(a,b,c)表示节点a,b之间有一条权值为c的无向边。对于图(1,2,3),(1,3,4),(1,5,1),(2,3,4),(2,4,6),(2,5,2),(3,5,1)。最小生成树的权值和为(        )




21.
一棵二叉树有100个节点,若根节点深度为1,树深最大为( &nb...
问题详情

一棵二叉树有100个节点,若根节点深度为1,树深最大为(       ),最小为(       )




22.
在一棵度为5的树T中,若14个度为5的结点,15个度为4的结点,14个度为...
问题详情

在一棵度为5的树T中,若14个度为5的结点,15个度为4的结点,14个度为3的结点,5个度为2的结点,10个度为1的结点,则树T的叶节点个数是(     )




23.
#include<bits/stdc++.h>using&nb...
问题详情

#include<bits/stdc++.h>
using namespace std
int n = 300
int solve(int x){
    return x * (n - x)
}
int main(){
    int l = 1, r = n
    int mid1, mid2
    int t = 50
    while(t--){
        mid1 = l + r >> 1
        mid2 = mid1 + r >> 1
        if(solve(mid1) > solve(mid2)){
            r = mid2
        }
        else{
            l = mid1
        }
    }
cout<< l <<endl
return 0
}
程序的输出为(        )




24.
#include<bits/stdc++.h>using&nb...
问题详情

#include<bits/stdc++.h>
using namespace std
int solve(int x){
    if(x == 0 || x == 1){
        return x
    }
    if(x % 2 == 0){
        return 1 + solve(x / 2)
    }
    else{
        return 1 + solve((x + 1) / 2)
    }
}
int main(){
    int n = 100
    int ans = solve(n)
cout<<ans<<endl
return 0
}
程序的输出为(      )




25.
一个有n个节点的树,有( )条边。
问题详情




26.
现有磁盘读写请求队列为2、4、0、5、1,若当前磁头在1号磁道上,若采用F...
问题详情

现有磁盘读写请求队列为2、4、0、5、1,若当前磁头在1号磁道上,若采用FCFS算法进行磁盘调度时,则平均寻道长度为(      )




27.
有4个批处理的作业(A、B、C和D)到达计算中心的时间分别为9:00,9:...
问题详情

有4个批处理的作业(A、B、C和D)到达计算中心的时间分别为9:00,9:30,9:40,9:50,估计的运行时间分别为60、50、30、10分钟,它们的优先数分别为1、2、4、3(1为最低优先级)。若采用优先级高者优先调度算法,则作业的平均带权周转时间为(      )




28.
下列哪种算法理论上性能最佳,实际上无法实现(  &nb...
问题详情

下列哪种算法理论上性能最佳,实际上无法实现(      )




29.
在一个请求分页系统中,假定系统分给一个作业的物理块数为3,刚开始没有一个页...
问题详情

在一个请求分页系统中,假定系统分给一个作业的物理块数为3,刚开始没有一个页面装入内存,并且此作业的页面走向为2,3,2,1,5,2,4,5,3,2,5,2。使用OPT算法时产生的缺页次数为(      )




30.
一个数据流中出现了的报文片段:A ESC FLAG&n...
问题详情

一个数据流中出现了的报文片段:A ESC FLAG B,假设采用字节填充算法,填充后的输出为(      )




31.
以下地址中的哪一个和76.32/12匹配(  &nbs...
问题详情

以下地址中的哪一个和76.32/12匹配(      )




32.
网络拓扑结构中存在网桥S1、S2、S3、S4,若对应MAC地址分别为AAB...
问题详情

网络拓扑结构中存在网桥S1、S2、S3、S4,若对应MAC地址分别为AABB-CCDD-EE00、AABB-CCDD-EE11、BBBB-CCDD-EE00、BBBB-CCDD-EE11,所有网桥优先级采用默认值,则使用STP协议后,哪个网桥会被确定为根网桥(      )




33.
原始数据为011011111111111111110010采用比特填充技术...
问题详情

原始数据为011011111111111111110010采用比特填充技术填充后的发送数据为(      )




34.
存在以下三个CIDR地址块192.168.11.0/27、192.168....
问题详情

存在以下三个CIDR地址块192.168.11.0/27、192.168.11.32/27和192.168.11.64/26聚合后的CIDR地址块应是(      )




35.
终端发送帧序列为1101011111,使用生成多项式为G(x)=x^4+x...
问题详情

终端发送帧序列为1101011111,使用生成多项式为G(x)=x^4+x+1校验后发出的帧为序列为(      )




36.
处于同一网络上的主机对有(    ...
问题详情

处于同一网络上的主机对有(      )




37.
应用NAT后会带来哪些影响(    ...
问题详情

应用NAT后会带来哪些影响(      )




38.
下面代码执行后的结果为(    &...
问题详情

下面代码的输出为()
int main() {
    int sum = 0
    int i = 0,j = 0

    for(j = 0 j < 6 j++){
        if (j%2) continue
        sum++
    }

    printf("sum = %d", sum)

    return 0
}




39.
下列数组定义错误的是(    &n...
问题详情

c语言前提下,下列数组定义错误的是()




40.
下列选项哪些语句可以正确定义数组(   &n...
问题详情

c/c++中,下列选项哪些语句可以正确定义数组(      )




41.
下面程序执行的结果为(    &n...
问题详情

下面程序执行的结果为(      )
void main( ) 

    char ch1,ch2

    ch1 ='D'+'8'-'3'
    ch2 ='9'-'1'

    printf("%c %d\n",ch1,ch2)
}




42.
下列关于构造函数说法正确的是(   &nbs...
问题详情

c/c++前提下,下列关于构造函数说法正确的是(      )




43.
关于下面程序说法正确的是(    ...
问题详情

关于下面程序说法正确的是(      )
class Item
{
    private:
        char *desc
        int storage
    public:
        Item()
        {
            desc = new char[51]
        }

        void setInfo(char *dsrc, int num)
        {
            strcpy(desc,dsrc)
            storage = num
        }
}

int main()
{
    Item stock

    stock.setInfo("pen",20)

    return 0
}




44.
以下程序运行后的输出结果是(    ...
问题详情

以下程序运行后的输出结果是(      )
int main() {
    int a=1,b=2,m=0,n=0,k

    k=(n=b<a)&&(m=a) 
    printf("%d,%d\n",k,m)

    return 0
}




45.
下列代码段的打印结果为(    &...
问题详情

下列代码段的打印结果为(      )(注:└┘代表空格)
#include <stdio.h>
void main (void)
{
    char  ac[]="Hello World! C Program",*p

    for(p=ac+6p<ac+9p++)
    {
        printf("%c",*p)
    }
}




46.
有关下面程序说法正确的是(    ...
问题详情

有关下面程序说法正确的是(      )(注:└┘代表空格)
int main()
{  
    char s[6]= "abcd"
    printf("\"%s\"\n", s)

    return 0
}




47.
下面程序执行后输出结果为(    ...
问题详情

下面程序执行后输出结果为(      )
#include <stdio.h>
int main()
{  
    int i, j, m=6,n=4,  *p=&n, *q=&m

    i=p==&m
    j=(-*p)/(*q)+7
    
    printf("i=%d,j=%d\n", i,j)

    return 0
}




48.
下列说法正确的是(    &nbs...
问题详情

下列说法正确的是(      )
#include "stdio.h"
#include "string.h"

void fun( char *s)

    char t[7]
    s=t
    strcpy(s, "example")
}

int  main()

    char *s
    
    fun(s)
    printf("%s",s)

    return 0
}




49.
下面程序的输出结果是(    &n...
问题详情

下面程序的输出结果是(      )
#include <stdio.h>
int main()

    int  intArray[] = {1, 2, 3, 4, 5}  
    int  *p = (int *)(&intArray+1)  
    printf("%d,%d",*(intArray+1),*(p-1))  
    
    return 0  
}




50.
有关纯虚函数说法正确的是(    ...
问题详情

c/c++中,有关纯虚函数说法正确的是(      )




51.
下面哪些函数不能被声明为虚函数(   &nb...
问题详情

下面哪些函数不能被声明为虚函数(      )




52.
下面程序的输出结果是(    &n...
问题详情

下面程序的输出结果是(      )
#include <stdio.h>
#include <stdlib.h>
void MallocMem(char* pc)
{
    pc = (char*) malloc (100)

    return
}

int main()

    char *str=NULL

    MallocMem(str)
    strcpy(str,"hello ")
    strcat(str+2, "world")

    printf("%s",str)

    return 0  
}




53.
在横线处补充(     ...
问题详情

在横线处补充(      )可以结果输出值为80000007(      )
#include <stdio.h>

int convert(int i) 

    return ___________________


int main()
{
    int value = 7
    
    printf( "%x\n", convert(value) )
    
    return 0  
}




54.
在32系统下输出的结果为(    ...
问题详情

在32系统下输出的结果为(      )
#include <stdio.h>

#pragma pack(2)
struct Test1
{
    int a
    char b
    short c
    int *d
}A
#pragma pack()

#pragma pack(4)
struct Test2
{
    int *d
    char b
    int a
    short c
}B
#pragma pack()

int main()
{
    printf("%d,%d\n",sizeof(A),sizeof(B))
    return 0
}




55.
下列const使用方法错误的是(   &nb...
问题详情

下列const使用方法错误的是(      )




56.
对下面变量声明描述正确的有()int *p[n]int&nbs...
问题详情

对下面变量声明描述正确的有()
int *p[n]
int (*)p[n]
int *p();
int (*)p()




57.
c++的一个类中声明一个static成员变量,下面描述正确的是()
问题详情




58.
面向对象的基本特征有哪些()
问题详情




59.
下面代码打印结果为()union package{ c...
问题详情

下面代码打印结果为()
union package
{
 char head
    int  body
}
struct message
{
 char id
 int  crc
 union package pack
}

int main()
{
 printf("size=%d\n",sizeof(struct message))
 return 0
}




60.
多态类中的虚函数表建立在()
问题详情




61.
C++中空类默认产生哪些类成员函数()
问题详情




62.
变量void (*s[5])(int)表示意思为()
问题详情




63.
定义宏#define DECLARE(name, ty...
问题详情

定义宏#define DECLARE(name, type) type name##_##type##_type,
则DECLARE(val, int)替换结果为()




64.
extern "c"的作用有哪些()
问题详情




65.
下面程序打印结果为()#include<iostream>us...
问题详情

下面程序打印结果为()
#include<iostream>
using namespace std
 
class A
{
    char a[3]
public:
    virtual void fun1(){}
}
 
class B : public virtual A
{
    char b[3]
public:
    virtual void fun2(){}
}
 
class C : public virtual B
{
    char c[3]
public:
    virtual void fun3(){}
}
 
int main ()
{
    cout << sizeof(A) << endl
    cout << sizeof(B) << endl
    cout << sizeof(C) << endl
    return 0
}




66.
下面代码打印结果为()class Base {&nbs...
问题详情

下面代码打印结果为()
class Base {
  char data[3]
     public:
            virtual void f() { cout << "Base::f" << endl }
            virtual void g() { cout << "Base::g" << endl }
            virtual void h() { cout << "Base::h" << endl }
 
}
int main()
{
    cout << sizeof(Base)<< endl
    return 0   
}




67.
在C语言源程序的开始处通常加上预处理命令 #include&nb...
问题详情

在C语言源程序的开始处通常加上预处理命令 #include   <stdio.h> 的原因是




68.
有转义字符如下:'\0X41'、'\0x41'、'\X41'、'\x41'...
问题详情

有转义字符如下:
'\0X41'、'\0x41'、'\X41'、'\x41'、'\a'、'\b'、'\c'、'\r'
其中错误的转义字符个数是




69.
关于C语言,下列指针变量的定义和解释,均正确的是
问题详情




70.
#include "file.h"和#inc...
问题详情

#include "file.h"和#include <file.h>的区别是(      )




71.
下列程序的功能是输出a数组中小写字母的个数,请为横线处选择合适的程序(&n...
问题详情

下列程序的功能是输出a数组中小写字母的个数,请为横线处选择合适的程序(      )   
#include <stdio.h>
     main()
     { char a[]="123abc"
    int i,num=0
      for(i=0_________i++)
        if(a[i]>='a'&&a[i]<='z') num++
      printf("%d\n",num)
     }




72.
若有定义语句:int  a [2][3],(...
问题详情

若有定义语句:
int  a [2][3],(*p)[3],*q[3],则以下赋值语句正确的是(      )




73.
请将B类的构造函数补充完整,要求用x初始化a.请为横线处选择合适的程序(&...
问题详情

请将B类的构造函数补充完整,要求用x初始化a.请为横线处选择合适的程序(      )
class A 
{ int a 
public:  
A(int x=0) { a=x } }  
class B: public A { 
int b 
public:  
B(int x): ______________
{ b=x+1 } }




74.
下列关于构造函数的说法,错误的是()
问题详情




75.
下列关于类中的静态成员的说法错误的是()
问题详情




76.
#include <bits/stdc++.h>us...
问题详情

#include <bits/stdc++.h>
using namespace std
int main() {
  int n
  scanf("%d", &n)
  map <int, int> xs
  map <int, int> ys
  map < pair <int, int>, int > zs
  long long ans = 0
  for (int i = 0 i < n i++) {
    int x, y
    scanf("%d %d", &x, &y)
    ans += (xs[x]++)
    ans += (ys[y]++)
    ans -= (zs[make_pair(x, y)]++)
  }
  cout << ans << endl
  return 0
}
输入:
6
0 0
0 1
0 2
-1 1
0 1
1 1
则上述程序输出为( )




77.
#include <bits/stdc++.h>us...
问题详情

#include <bits/stdc++.h>
using namespace std
int main(){
 int n = 1001
 int ans = 0
 for(int i = 1 i <= n ++i){
  ans ^= i % 3
 }
 cout << ans << endl
}
则上述程序输出为( )




78.
Windows编程中,定时器消息是哪个(   ...
问题详情

Windows编程中,定时器消息是哪个(     )




79.
动态链接库显示连接的好处,选项中说法错误的是(  &n...
问题详情

动态链接库显示连接的好处,选项中说法错误的是(     )




80.
关于windows消息钩子,选项中说法错误的是(  &...
问题详情

关于windows消息钩子,选项中说法错误的是(      )




81.
关于windows消息调度机制,选项中说法错误的是(  ...
问题详情

关于windows消息调度机制,选项中说法错误的是(        )




82.
windows的线程栈,选项中说法错误的是(  &nb...
问题详情

windows的线程栈,选项中说法错误的是(       )




83.
关于SEH和c++异常处理,选项中说法错误的是(  &...
问题详情

关于SEH和c++异常处理,选项中说法错误的是(    )



84.
下列哪些库和UI编程有关
问题详情




85.
对于一个窗口而已,最先收到下列哪个 Windows 消息
问题详情

对于一个窗口而已,最先收到下列哪个 Windows 消息




86.
通过GetWindowLong可以获取哪些窗口信息
问题详情




87.
通过窗口句柄结束对应的进程,应该通过发送哪个消息来完成
问题详情




88.
如果有多处代码都需要使用同一个字符串,下列哪种方式内存开销最小
问题详情




89.
通常情况下,下列哪个方式启动最早
问题详情




90.
EXE可以通过下列哪些方式加载DLL
问题详情




91.
以PROCESS_VM_WRITE | PROCESS...
问题详情

以PROCESS_VM_WRITE | PROCESS_VM_READ作为参数调用OpenProcess打开进程成功后,对进程句柄后续的操作,以下描述错误的是




92.
Token中关于Administrators组的Deny标记,以下描述错误的是
问题详情




93.
关于CreateFile的dwFlagsAndAttributes参数选项...
问题详情

关于CreateFile的dwFlagsAndAttributes参数选项FILE_FLAG_WRITE_THROUGH,以下描述正确的是




94.
Vista以上系统对于完整性级别(Integrity Level...
问题详情

Vista以上系统对于完整性级别(Integrity Level)描述错误的是




95.
对于文件的访问的性能优化,以下的说法正确的是
问题详情




96.
下列哪些对象可用于进程间数据交换
问题详情




97.
下列哪个对象只能用于进程内的多线程同步
问题详情




98.
WaitForSingleObject 有几种返回值的可能
问题详情




99.
关于 Windows UI线程和工作线程,下列哪些说法...
问题详情

关于 Windows UI线程和工作线程,下列哪些说法是错误的




100.
两个线程需要访问同一个链表,为了减少同步产生的时间成本,应该采取哪些措施
问题详情




101.
下列哪几个API可用于多线程同步操作
问题详情




102.
windows程序中多个线程下,栈和堆是公有的还是私有的( &n...
问题详情

windows程序中多个线程下,栈和堆是公有的还是私有的(  )




103.
以下多线程对int型变量x的操作,哪几个不需要进行同步( &nb...
问题详情

以下多线程对int型变量x的操作,哪几个不需要进行同步(    )




104.
关于windows下的多线程安全,选项中说法错误的是( &nbs...
问题详情

关于windows下的多线程安全,选项中说法错误的是(     )




105.
windows下多线程的同步和互斥,选项中说法错误的是( &nb...
问题详情

windows下多线程的同步和互斥,选项中说法错误的是(     )




106.
调用CreateEvent时,bManualReset传递FALSE,bI...
问题详情

调用CreateEvent时,bManualReset传递FALSE,bInitialState传递为TRUE,Event创建成功后,以下描述错误的是




107.
关于critical section(以下简称cs),描述正确的是
问题详情

关于critical section(以下简称cs),描述正确的是




108.
关于critical section(以下简称cs)和mutex...
问题详情

关于critical section(以下简称cs)和mutex的对比,描述正确的是




109.
选项中哪些优化方法不是针对循环优化进行的(  &nbs...
问题详情

选项中哪些优化方法不是针对循环优化进行的(    )




110.
编译程序使用什么区别标识符的作用域(   &...
问题详情

编译程序使用什么区别标识符的作用域(     )




111.
编译优化的目的是
问题详情




112.
adf+/该后缀式代表的表达式
问题详情




113.
关系模式R(U,F),U={A,B,C,D,E,F},函数依赖F={A&r...
问题详情

关系模式R(U,F),U={A,B,C,D,E,F},函数依赖F={A→B, A→C, C→D, AE→F},关系模式R的候选关键字为




114.
若有关系 R(ABCDE) 和 S(BCFG...
问题详情

若有关系 R(ABCDE) 和 S(BCFG),则 R 和 S 自然连结运算后的属性列有




115.
关于视图和游标,选项中说法错误的是(   )
问题详情




116.
关于存储过程,选项中说法错误的是(   &n...
问题详情

关于存储过程,选项中说法错误的是(    )




117.
使用迪杰斯特拉(Dijkstra)算法求下图中从顶点1到其他各顶点的最短路...
问题详情

使用迪杰斯特拉(Dijkstra)算法求下图中从顶点1到其他各顶点的最短路径,依次得到最短路径的目标顶点是
775493syz.jpg