寒武纪2019秋招软件岗笔试(一)
时长:120分钟 总分:100分
108浏览 0人已完成答题
题型介绍
题型 | 单选题 | 填空题 | 简答题 |
---|---|---|---|
数量 | 5 | 4 | 15 |
假设栈初始为空,将中缀表达式g/f+(e*d-c*b)/a转换为等价的后缀...
下列程序段的时间复杂度是for(int k =&nbs...
某指令流水线由5段组成,各段所需要的时间分别为:△t、3△t、△t、2△t...

已知袋子中有白球和黑球各99个,按照以下规则将球取出:每次从袋中拿出两个球...
若f[0]=0, f[1]=1,f[n+1] = (f[n] + f[n-...
这段代码执行后的输出结果是 ____: char *str = “C...
这段代码执行后的输出结果是 ____:
char *str = “Cambricon”
str[0] = ‘\0’
printf(“%s\n”, str)
函数exam_2_1判断含有n个无符号短整型数的数组data中是否有重复元...
函数exam_2_1判断含有n个无符号短整型数的数组data中是否有重复元素,如果是,返回true,否则返回false。
请把两处空缺的语句填写完整,注意时间复杂度不要超过O(n)。
bool exam_2_1 (unsigned short* data, int n) {
bool buffer[65536]
memset(buffer,false,sizeof(buffer))
for(int i=0i<ni++)
if( _____________) return true
else __________
return false
}
下面的程序完成了以下功能:在非降序列中二分查找一个数,当v存在时返回它出现...
下面的程序完成了以下功能:在非降序列中二分查找一个数,当v存在时返回它出现的第一个位置,如果不存在,返回这样一个下标i,在此处插入v(原来的元素A[i], A[i+1],…全部向后移动一个位置)后序列仍然有序:
#include<iostream>
using namespace std
int lower_bound(int *A, int l, int r, int v) {
int mid
while (l < r) {
mid =
if ( ) r = mid
else l = mid + 1
}
return l
}
int main() {
int A[10] = {0, 0, 1, 2, 4, 5, 10, 20, 20, 30}
// 在 A 数组里用lower_bound查找 40
cout << lower_bound( ) << endl
return 0
}下面的程序实现了,使用优先队列的dijkstra算法求解起点为0的单源最短...
下面的程序实现了,使用优先队列的dijkstra算法求解起点为0的单源最短路问题。有定义如下:
typedef pair<int, int> pii
priority_queue<pii, vector<pii>, greater<pii> > q
pair在比较时会先比较第一个数,再比较第二个数,因此q是一个小元素优先的优先队列。对于图中节点x,first[x]代表其第一条出边的编号。对于图中编号为e的边,v[e]代表这条边的终点,w[e]代表这条边的权值。
试完善以下代码:
bool done[MAXN]
for (int i = 0 i < n i++) d[i] = (i == 0 ? 0 : INF)
memset(done, false, sizeof(done))
q.push(make_pair(d[0], 0))
while(!q.empty()) {
pii u = q.top() q.pop()
int x = u.second
if (done[x])
done[x] = true
for (int e = first[x] e != -1 e = next[e])
if ( ) {
d[v[e]] =
}
}
BigNumber是一个大数类,其重载了<运算符(但是没有重载>...
BigNumber是一个大数类,其重载了<运算符(但是没有重载>运算符),你可以直接使用<进行比较大小,可惜的是,这种比较非常的费时。 exam_2_3可以从一个含有n个元素的BigNumber数组data中找出最大的和最小的,请把它填写完整,注意对BigNumber类<运算符方法的调用不允许超过1.5n次。
struct BigNumber
{
bool operator < (const BigNumber& r) const
…一些其他成员
}
一个例子,函数exam_2_3_1可以返回两个BigNumber中较大的那个。
BigNumber exam_2_3_1(BigNumber a, BigNumber b){return a<b?b:a}
void exam_2_3 (BigNumber* data,int n,/*out*/BigNumber* pmax,/*out*/BigNumber* pmin){
*pmax=data[0]
*pmin=data[0]
int i=1
while(i<n){
//在这个括号里写你的代码,没有行数限制
}
}
MIPS指令实现的简单数据通路中,操作分成了哪5个时钟周期?对MIPS的寄...
规格化float16浮点数,有1位符号位,5位阶码,10位尾数。请问fp1...
规格化float16浮点数,有1位符号位,5位阶码,10位尾数。请问fp16精确能表示数字 -2048和-2049么?fp16所表示的十进制数的有效数字大约是多少位?
C语言函数strcat的定义如下: char *strcat (ch...
C语言函数strcat的定义如下:
char *strcat (char *dest, const char *src)
请问:为什么这个函数不是void类型的,而有一个char *的返回值?const char *src相比于char *src,为什么要加const?进一步地,const char *src 和 char const *src 以及char* const src有什么区别。
在C++的工程项目中,一般头文件里都会出现类似于下列的代码,而且命名基于所...
在C++的工程项目中,一般头文件里都会出现类似于下列的代码,而且命名基于所在项目源代码树的全路径
#ifndef CAMB_INCLUDE_TEST_H_
#define CAMB_INCLUDE_TEST_H_
… // code
#endif // CAMB_INCLUDE_TEST_H_
简述#define #endif 和 #ifndef的作用已知拓展欧几里得算法如下: void gcd(int a, int ...
已知拓展欧几里得算法如下:
void gcd(int a, int b, int& d, int& x, int& y) {
if (!b) { d = a x = 1 y = 0 }
else { gcd(b, a%b, d, y, x) y-= x*(a/b) }
}
请问给定a和b(均大于0),求解得到的 d,x,y分别代表什么?
模n逆元的定义如下:如果有ax=1(mod n),那么我们称x是a的模n逆元。
则a在模n意义下逆元存在的条件是什么?试说明如何用拓展欧几里得算法计算逆元时间转换
计数器
小爱有一个奇怪的计数器。在第一个时刻计数器显示数字3,在接下来的每一个时刻,屏幕上的数字都会减1,直到减到1为止。

非整除集合
数据范围:
1 < N < 10^5
1 < K < 100
1 < S[i] < 10^9输入样例: 4 3 1 7 2 4 输出描述: 输出为一个数字,集合S的最大长度。输出样例 3
公平划分
小爱和小溪有N个数字,他们两个想公平的分配这些数字。小爱拿的数字集合为I=「i1, i2, ik」,小溪获得剩下的J,J=「j1, j2, jn-k」。但是他们衡量分配公平与否的原则与众不同:
在小爱拿到其中的K个数字的前提下,计算出他们分配偏差f(I)的最小值。
输入描述: 输入第一行两个数字,分别表示总的数字量N和小爱拿的数字量K。第二行有N个数字,表示每个数字的值。输入样例: 4 1 3 3 3 1 输出描述: 输出一个数字,表示分配偏差f(I)的最小值。输出样例 2