1、已知广义表LS=((a,b,c),(d,e,f)),运用head和tail函数取出LS中原子e的运算是( )
A.head(tail(head(tail(LS)))
B.head(tail(LS))
C.head(tail(tail(head(LS))))
D.tail(head(LS))
参考答案:A
2、以下程序是用辗转相除法来计算两个非负数之间的大公约数:
long long gcd(long long x, long long y) {
if (y == 0)
return x;
else
return gcd(y, x % y);
}
我们假设x,y中大的那个数的长度为n,x>y,基本运算时间复杂度为O(1),那么该程序的时间复杂度为( )
A.O(1)
B.O(logy)
C.O(n)
D.O(x)
参考答案:B
3、设顺序循环队列Q[0: M-1]的头指针和尾指针分别为F和R.头指针F总是指向队头元素的前一位置.尾指针R总是指向队尾元素的当前位置.则该循环队列中的元素个数为()
A.(R-F+M)%M
B.R-F
C.(F-R+M)%M
D.F-R
参考答案:A
4、下面的说法那个正确
#define NUMA 10000000
#define NUMB 1000
int a[NUMA], b[NUMB];
void pa()
{
int i, j;
for(i = 0; i < NUMB; ++i)
for(j = 0; j < NUMA; ++j)
++a[j];
}
void pb()
{
int i, j;
for(i = 0; i < NUMA; ++i)
for(j = 0; j < NUMB; ++j)
++b[j];
}
A.pa 和 pb 运行的一样快
B.pa 比 pb 快
C.pb 比 pa 快
D.无法判断
参考答案:C
5、下列关于静态工厂和工厂方法表述错误的是:()
A.在工厂方法模式中,对于存在继承等级结构的产品树,产品的创建是通过相应等级结构的工厂创建的
B.不能形成静态工厂的继承结构
C.静态工厂对具体产品的创建类别和创建时机的判断是混和在一起的,这点在工厂方法中
D.二者都满足开闭原则:静态工厂以if else方式创建对象,增加需求的时候会修改源代码
参考答案:D
6、设定数列{an}的前n项和为Sn,现在已知此数列满足an+Sn=10-7/2^n,那么an的通项公式是()
A.2^n/4 + 4
B.-0.75n + 4
C.(3.5n+3)/ 2^n
D.(3n+2)/ 2^n
参考答案:C