戰爭電影《抵抗抵抗》觀后感
一、填空題(5分每題,一共8題)

1、兩個人A(速度為a)、B(速度為b)在一直路上相向而行。在A、B距離為s的時候,A放出一個鴿子C(速度為c),C飛到B后,立即掉頭飛向A,遇到A在掉頭飛向B......就這樣在AB之間飛來飛去,直到A、B相遇,這期間鴿子共飛行路程為?
答案是:s*c/(a+b)
2、(he)的平方=she。h、e、s代表的數字?
答案是:分別代表2、5、6
3、運算(93&-8)的結果為:88
4、將一個無序整數數組構造成一個最大堆,最差時間復雜度為:
5、int *p = &n;
那么*p的值是()
A、p的值 B、p的地址 C、n的值 D、n的地址
6、一個完全二叉樹有770個節點,那么其葉子的個數為:385
7、有一個二維數組a[1...100 , 1...65]有100行,65列,我們以行序為主序,如果該數組的基地址是10000,且每個元素占2個存儲單元,請問a[56 , 22]的存儲地址是:17324
8、以下代碼輸出結果是:
[cpp] view plaincopyprint?
class B
{
public:
B()
{
cout<<"B constructor\n";
s = "B";
}
void f()
{
cout<
}
private:
string s;
};
class D : public B
{
public:
D() : B()
{
cout<<"D constructor\n";
s = "D";
}
void f()
{
cout<
}
private:
string s;
};
int main(void)
{
B *b = new D();
b->f();
((D*)b)->f();
delete b;
return 0;
}
class B
{
public:
B()
{
cout<<"B constructor\n";
s = "B";
}
void f()
{
cout<
}
private:
string s;
};
class D : public B
{
public:
D() : B()
{
cout<<"D constructor\n";
s = "D";
}
void f()
{
cout<
}
private:
string s;
};
int main(void)
{
B *b = new D();
b->f();
((D*)b)->f();
delete b;
return 0;
}
輸出結果是
B constructor
D constructor
BD
二、編程題
1、數組乘積(15分)
輸入:一個長度為n的整數數組input
輸出:一個長度為n的整數數組result,滿足result[i] = input數組中除了input[i]之外所有數的乘積(假設不會溢出)。比如輸入:input = {2,3,4,5},輸出result = {60,40,30,24}
程序時間和空間復雜度越小越好。
C/C++:
int *cal(int* input , int n);
Java:
int[] cal(int[] input);
[cpp] view plaincopyprint?
int *cal(int* input , int n)
{
int i ;
int *result = new int[n];
result[0] = 1;
for(i = 1 ; i < n ; ++i)
result[i] = result[i-1]*input[i-1];
result[0] = input[n-1];
for(i = n-2 ; i > 0 ; --i)
{
result[i] *= result[0];
result[0] *= input[i];
}
return result;
}
int *cal(int* input , int n)
{
int i ;
int *result = new int[n];
result[0] = 1;
for(i = 1 ; i < n ; ++i)
result[i] = result[i-1]*input[i-1];
result[0] = input[n-1];
for(i = n-2 ; i > 0 ; --i)
{
result[i] *= result[0];
result[0] *= input[i];
}
return result;
}
2、異形數(25分)
在一個長度為n的整形數組a里,除了三個數字只出現一次外,其他的數字都出現了2次。請寫程序輸出任意一個只出現一次的數字,程序時間和空間復雜度越小越好。
例如: a = {1,3,7,9,5,9,4,3,6,1,7},輸出4或5或6
C/C++:
void find(int* a , int n);
Java:
void find(int[] a);
[cpp] view plaincopyprint?
/pic/p>
int lowbit(int x)
{
return x&~(x-1);
}
void find(int* a , int n)
{
int i , xors;
xors = 0;
for(i = 0 ; i < n ; ++i)
xors ^= a[i];
/pic/p>
int fips = 0;
for(i = 0 ; i < n ; ++i)
fips ^= lowbit(xors ^ a[i]);
/pic/p>
int b; /pic/p>
b = 0;
for(i = 0 ; i < n ; ++i)
{
if(lowbit(xors ^ a[i]) == fips)
b ^= a[i];
}
/pic/p>
cout<
}
/pic/p>
int lowbit(int x)
{
return x&~(x-1);
}
void find(int* a , int n)
{
int i , xors;
xors = 0;
for(i = 0 ; i < n ; ++i)
xors ^= a[i];
/pic/p>
int fips = 0;
for(i = 0 ; i < n ; ++i)
fips ^= lowbit(xors ^ a[i]);
/pic/p>
int b; /pic/p>
b = 0;
for(i = 0 ; i < n ; ++i)
{
if(lowbit(xors ^ a[i]) == fips)
b ^= a[i];
}
/pic/p>
cout<
}
3、朋友圈(25分)
假如已知有n個人和m對好友關系(存于數字r)。如果兩個人是直接或間接的好友(好友的好友的好友...),則認為他們屬于同一個朋友圈,請寫程序求出這n個人里一共有多少個朋友圈。
假如:n = 5 , m = 3 , r = {{1 , 2} , {2 , 3} , {4 , 5}},表示有5個人,1和2是好友,2和3是好友,4和5是好友,則1、2、3屬于一個朋友圈,4、5屬于另一個朋友圈,結果為2個朋友圈。
最后請分析所寫代碼的時間、空間復雜度。評分會參考代碼的正確性和效率。
C/C++:
int friends(int n , int m , int* r[]);
Java:
int friends(int n , int m , int[][] r);
[cpp] view plaincopyprint?
/pic/p>
int set[10001];
inline int find(int x) /pic/p>
{
int i , j , r;
r = x;
while(set[r] != r)
r = set[r];
i = x;
while(i != r)
{
j = set[i];
set[i] = r;
i = j;
}
return r;
}
inline void merge(int x , int y) /pic/p>
{
int t = find(x);
int h = find(y);
if(t < h)
set[h] = t;
else
set[t] = h;
}
int friends(int n , int m , int* r[])
{
int i , count;
for(i = 1 ; i <= n ; ++i) /pic/p>
set[i] = i;
for(i = 0 ; i < m ; ++i)
merge(r[i][0] , r[i][1]);
count = 0;
for(i = 1 ; i <= n ; ++i)
{
if(set[i] == i)
++count;
}
return count;
}
【戰爭電影《抵抗抵抗》觀后感】相關文章:
2016年《抵抗!抵抗!》電影觀后感09-23
電影我的戰爭的觀后感(精選16篇)12-05
《我的戰爭》電影觀后感(精選9篇)03-26
看戰爭電影的觀后感范文(精選15篇)10-10
戰爭故事電影《誘狼》觀后感(精選16篇)06-02
觀看電影甲午戰爭觀后感范文07-12
看電影《我的戰爭》的優秀觀后感800字(精選19篇)01-15
戰爭電影《八月一日》觀后感(通用15篇)08-07
- 相關推薦