360公司-2018春招笔试-C 开发工程师客观题合集
时长:120分钟 总分:98分
208浏览 0人已完成答题
题型介绍
题型 | 单选题 | 多选题 |
---|---|---|
数量 | 82 | 12 |
关键字序列为{12,11,19,23,1,6,10},哈希函数为H(key...
请指出以下代码段使用了何种算法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 } }
已知如下递归代码用于求解图的m着色问题:#define N&nb...
#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()函数正确的是:
一个线性序列(30,14,40,63,22,5),假定采用散列函数Hash...
下列程序段的时间复杂度是(    ...
count = 1; for(k=1k<2nk*=2) for(i=1i<4ni+=2) count++
对于函数y = ax^2 + bx...
设哈希表长m=13,哈希函数H(key)=key MOD&nbs...
#include<bits/stdc++.h>using&nb...
#include<bits/stdc++.h> 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 }
上述程序的输出为( )
程序的输出为( )
#include<bits/stdc++.h> 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 }
程序的输出为( )
程序的输出为( )
#include<bits/stdc++.h> 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 }
程序的输出为( )
则输出为( )
#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
则输出为( )
用(a,b,c)表示节点a,b之间有一条权值为c的无向边。对于图(1,2,...
在一棵度为5的树T中,若14个度为5的结点,15个度为4的结点,14个度为...
程序的输出为( )
#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 }
程序的输出为( )
程序的输出为( )
#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 }
程序的输出为( )
现有磁盘读写请求队列为2、4、0、5、1,若当前磁头在1号磁道上,若采用F...
有4个批处理的作业(A、B、C和D)到达计算中心的时间分别为9:00,9:...
在一个请求分页系统中,假定系统分给一个作业的物理块数为3,刚开始没有一个页...
网络拓扑结构中存在网桥S1、S2、S3、S4,若对应MAC地址分别为AAB...
存在以下三个CIDR地址块192.168.11.0/27、192.168....
终端发送帧序列为1101011111,使用生成多项式为G(x)=x^4+x...
如果需要一个语言解释执行,并且可以将语言中的句子表示为一个抽象语法树的时候...
某IT公司人事管理采用专门的人事管理系统来实现。后台数据库名为LF。新来的...
某公司网络中心升级web服务器的物理内存,相应的要提高linux服务器交换...
公司网络中心linux服务器需要升级OA系统,为了防止客户登录影响系统升级...
网络管理员编写了shell程序prog1.sh,测试时程序死循环无法结束,...
下面代码执行后的结果为(    &...
int main() { int sum=0 int i=0,j=0 for(j=0j<6j++) { if(j%2)continue sum++ } printf("sum=%d",sum) return 0 }
下面程序执行的结果为
void main( ) { char ch1,ch2 ch1 ='D'+'8'-'3' ch2 ='9'-'1' printf("%c %d\n",ch1,ch2) }
在32位系统中,关于下面程序说法正确的是( &nbs...
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 }
以下程序运行后的输出结果是
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 }
下列代码段的打印结果为( &...
#include <stdio.h> void main (void) { char ac[]="Hello World! C Program",*p for(p=ac+6p<ac+9p++) { printf("%c",*p) } }
有关下面程序说法正确的是(    ...
int main()
{
char s[6]= "abcd"
printf("\"%s\"\n", s)
return 0
}
下面程序执行后输出结果为(    ...
#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 }
下列说法正确的是(    &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
}
下面程序的输出结果是(    &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
}
在VC6.0中,运行下面程序的输出结果是( &nbs...
#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 }
在横线处补充(     ...
#include <stdio.h>
int convert(int i)
{
return ___________________
}
int main()
{
int value = 7
printf( "%x\n", convert(value) )
return 0
}
在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
}
对下面变量声明描述正确的有()int *p[n]int&nbs...
int *p[n]
int (*)p[n]
int *p();
int (*)p()
下面代码打印结果为()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
}
定义宏#define DECLARE(name, ty...
则DECLARE(val, int)替换结果为()
在32位系统中,下面程序打印结果为()#include<iostre...
#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
}
在32位系统中,下面代码打印结果为()class Base&nb...
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 }
有转义字符如下:'\0X41'、'\0x41'、'\X41'、'\x41'...
'\0X41'、'\0x41'、'\X41'、'\x41'、'\a'、'\b'、'\c'、'\r'
其中错误的转义字符个数是
下列程序的功能是输出a数组中小写字母的个数,请为横线处选择合适的程序(&n...
#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)
}
请将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 } }
则上述程序输出为( )
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
则上述程序输出为( )
则上述程序输出为( )
#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 }
则上述程序输出为( )
使用迪杰斯特拉(Dijkstra)算法求下图中从顶点1到其他各顶点的最短路...
