青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 297,  comments - 15,  trackbacks - 0
re: 全面整理的C++面試題 chatler 2009-12-13 00:39
4。分析一下
#include<iostream.h>
#include <string.h>
#include <malloc.h>
#include <stdio.h>
#include <stdlib.h>
#include <memory.h>
typedef struct AA
{
int b1:5;
int b2:2;
}AA;
void main()
{
AA aa;
char cc[100];
strcpy(cc,"0123456789abcdefghijklmnopqrstuvwxyz");
memcpy(&aa,cc,sizeof(AA));
cout << aa.b1 <<endl;
cout << aa.b2 <<endl;
}

答案: -16和1
首先sizeof(AA)的大小為4,b1和b2分別占5bit和2bit.
經過strcpy和memcpy后,aa的4個字節所存放的值是:
0,1,2,3的ASC碼,即00110000,00110001,00110010,00110011
所以,最后一步:顯示的是這4個字節的前5位,和之后的2位
分別為:10000,和01
因為int是有正負之分  所以是-16和1

5。求函數返回值,輸入x=9999;
int func ( x )
{
int countx = 0;
while ( x )
{
countx ++;
x = x&(x-1);
}
return countx;
}
結果呢?

答案:知道了這是統計9999的二進制數值中有多少個1的函數,且有
9999=9×1024+512+256+15

9×1024中含有1的個數為2;
512中含有1的個數為1;
256中含有1的個數為1;
15中含有1的個數為4;
故共有1的個數為8,結果為8。
1000 - 1 = 0111,正好是原數取反。這就是原理。
用這種方法來求1的個數是很效率很高的。
不必去一個一個地移位。循環次數最少。

6。int a,b,c 請寫函數實現C=a+b ,不可以改變數據類型,如將c改為long int,關鍵是如何處理溢出問題
答案:bool add (int a, int b,int *c)
{
*c=a+b;
return (a>0 && b>0 &&(*ca || *c>b)));
}
這里,第三個或條件沒看明白,覺得邏輯上出現不了啊。

7。分析:
struct bit
{ int a:3;
int b:2;
int c:3;
};
int main()
{
bit s;
char *c=(char*)&s;
cout< *c=0x99;
cout << s.a < int a=-1;
printf("%x",a);
return 0;
}
輸出為什么是?

答案:4
1
-1
-4
ffffffff
因為0x99在內存中表示為 100 11 001 , a = 001, b = 11, c = 100(在vc環境中,一般是由右到左進行分配的)
當c為有符合數時, c = 100, 最高1為表示c為負數,負數在計算機用補碼表示,所以c = -4;同理
b = -1;
當c為有符合數時, c = 100,即 c = 4,同理 b = 3

8。改錯:
#include

int main(void) {

int **p;
int arr[100];

p = &arr;

return 0;
}

答案:搞錯了,是指針類型不同,
int **p; //二級指針
&arr; //得到的是指向第一維為100的數組的指針
應該這樣寫#include
int main(void) {
int **p, *q;
int arr[100];
q = arr;
p = &q;
return 0;

9。下面這個程序執行后會有什么錯誤或者效果:
#define MAX 255
int main()
{
unsigned char A[MAX],i; //i被定義為unsigned char
for (i=0;i<=MAX;i++)
A[i]=i;
}

答案:死循環加數組越界訪問(C/C++不進行數組越界檢查)
MAX=255
數組A的下標范圍為:0..MAX-1,這是其一..
其二.當i循環到255時,循環內執行:
A[255]=255;
這句本身沒有問題..但是返回for (i=0;i<=MAX;i++)語句時,
由于unsigned char的取值范圍在(0..255),i++以后i又為0了..無限循環下去.

11。struct name1{
char str;
short x;
int num;
}

struct name2{
char str;
int num;
short x;
}

sizeof(struct name1)=??,sizeof(struct name2)=??

答案:sizeof(struct name1)=8,sizeof(struct name2)=12
在第二個結構中,為保證num按四個字節對齊,char后必須留出3字節的空間;同時為保證整個結構的自然對齊(這里是4字節對齊),在x后還要補齊2個字節,這樣就是12字節。
1.燒一根不均勻的繩子,從頭燒到尾總共需要 1 個小時,問如何用燒繩子
的方法來確定半小時的時間呢?
2.10 個海盜搶到了100 顆寶石,每一顆都一樣大小且價值連城。他們決定
這么分:
(1)抽簽決定自己的號碼(1~10);
(2)首先,由1 號提出分配方案,然后大家表決,當且僅當超過半數的人
同意時,按照他的方案進行分配,否則將被扔進大海喂鯊魚;
(3)如果1 號死后,再由2 號提出分配方案,然后剩下的4 個人進行表決,
當且僅當超過半數的人同意時,按照他的方案進行分配,否則將被扔入大海喂鯊
魚;
(4)依此類推??
條件:每個海盜都是很聰明的人,都能很理智地做出判斷,從而做出選擇。
問題:第一個海盜提出怎樣的分配方案才能使自己的收益最大化?
3.為什么下水道的蓋子是圓的?
4.中國有多少輛汽車?
5.你讓工人為你工作7 天,回報是一根金條,這根金條平分成相連的7 段,
你必須在每天結束的時候給他們一段金條。如果只允許你兩次把金條弄斷,你如
何給你的工人付費?
6.有一輛火車以每小時15 公里的速度離開北京直奔廣州,同時另一輛火車
以每小時20 公里的速度從廣州開往北京。如果有一只鳥,以30 公里每小時的速
度和兩輛火車同時啟動,從北京出發,碰到另一輛車后就向相反的方向返回去飛,
就這樣依次在兩輛火車之間來回地飛,直到兩輛火車相遇。請問,這只鳥共飛行
了多長的距離?
7.你有兩個罐子以及50 個紅色彈球和50 個藍色彈球,隨機選出一個罐子,
隨機選出一個彈球放入罐子,怎樣給出紅色彈球最大的選中機會?在你的計劃
里,得到紅球的幾率是多少?
8.想像你站在鏡子前,請問,為什么鏡子中的影像可以左右顛倒,卻不能
上下顛倒呢?
9.如果你有無窮多的水,一個3 公升的提捅,一個5 公升的提捅,兩只提
捅形狀上下都不均勻,問你如何才能準確稱出4 公升的水?
10.你有一桶果凍,其中有黃色、綠色、紅色三種,閉上眼睛抓取同種顏色
的兩個。抓取多少次就可以確定你肯定有兩個同一顏色的果凍?
11.連續整數之和為1000 的共有幾組?
12.從同一地點出發的相同型號的飛機,可是每架飛機裝滿油只能繞地球飛
半周,飛機之間可以加油,加完油的飛機必須回到起點。問至少要多少架次,才
能滿足有一架繞地球一周。
參考答案:
1.兩邊一起燒。
2.96,0,1,0,1,0,1,0,1,0。
3.因為口是圓的。
4.很多。
5.分1,2,4。
6.6/7 北京到廣州的距離。
7.100%。
8.平面鏡成像原理(或者是“眼睛是左右長的”)。
9.3 先裝滿,倒在5 里,再把3 裝滿,倒進5 里。把5 里的水倒掉,把3 里
剩下的水倒進5 里,再把3 裝滿,倒進5 里,ok!
10.一次。
11.首先1000 為一個解。連續數的平均值設為x,1000 必須是x 的整數倍。
假如連續數的個數為偶數個,x 就不是整數了。x 的2 倍只能是5,25,125 才行。
因為平均值為12.5,要連續80 個達不到。125/2=62.5 是可以的。即62,63,61,
64,等等。連續數的個數為奇數時,平均值為整數。1000 為平均值的奇數倍。
1000=2×2×2×5×5×5;x 可以為2,4,8,40,200 排除后剩下40 和200 是
可以的。所以答案為平均值為62.5,40,200,1000 的4 組整數。
12.答案是5 架次。一般的解法可以分為如下兩個部分:
(1)直線飛行
一架飛機載滿油飛行距離為1,n 架飛機最遠能飛多遠?在不是兜圈沒有迎
頭接應的情況,這問題就是n 架飛機能飛多遠?存在的極值問題是不要重復飛
行,比如兩架飛機同時給一架飛機加油且同時飛回來即可認為是重復,或者換句
話說,離出發點越遠,在飛的飛機就越少,這個極值條件是顯然的,因為n 架飛
機帶的油是一定的,如重復,則浪費的油就越多。比如最后肯定是只有一架飛機
全程飛行,注意“全程”這兩個字,也就是不要重復的極值條件。如果是兩架飛
機的話,肯定是一架給另一架加滿油,并使剩下的油剛好能回去,就說第二架飛
機帶的油耗在3 倍于從出發到加油的路程上,有三架飛機第三架帶的油耗在5
倍于從出發到其加油的路程上,所以n 架飛機最遠能飛行的距離為s=1+1/3+?
+1/(2n+1)這個級數是發散的,所以理論上只要飛機足夠多最終可以使一架飛
機飛到無窮遠,當然實際上不可能一架飛機在飛行1/(2n+1)時間內同時給n?1
個飛機加油。
(2)可以迎頭接應加油
一架飛機載滿油飛行距離為1/2,最少幾架飛機能飛行距離1?也是根據不
要重復飛行的極值條件,得出最遠處肯定是只有一架飛機飛行,這樣得出由1/2
處對稱兩邊1/4 肯定是一架飛機飛行,用上面的公式即可知道一邊至少需要兩架
飛機支持,(1/3+1/5)/2>1/4(左邊除以2 是一架飛機飛行距離為1/2),但
是有一點點剩余,所以想像為一個滑輪(中間一個飛機是個繩子,兩邊兩架飛機
是個棒)的話,可以滑動一點距離,就說加油地點可以在一定距離內變動(很容
易算出來每架飛機的加油地點和加油數量,等等)
每個IE Instance該是不同的進程吧,可以獲取進程ID,在每個instance里建一個名稱包含進程id的目錄名,就可以分目錄存儲了吧。
還有一種算法,就是用有向圖來實現(具體見下面代碼):
把鏈表看成一個有向圖,深度優先遍歷該有向圖,判斷有無循環出現。

懶得再用中文寫一遍具體算法了,看下面的代碼實現吧,英文注釋解釋的很清楚了。



時間復雜度 O(e), 鏈表邊的總數。

空間復雜度 O(1).

有向圖采用鄰接表實現。


/* file: DFSDetectLoop.cpp */

/*

* Detect if the graph has loop -- For both Undigraph and digraph

* Complexity: O(e); e is the number of arcs in Graph.

*

* BUG Reported:

* 1. Apr-26-07

* Not support Undigraph yet ! Fix me !!!

* - Fixed on Apr-26-08.

*

* Return

* 1 - Loop detected.

* 0 - No loop detected.

* *

* Algrithm:

* 1. Init all the nodes color to WHITE.

* 2. DFS graph

* For each the nodes v in graph, do step (1) and (2).

* (1) If v is WHITE, DFS from node v:

* (a) Mark v as GRAY.

* (b) For every nodes tv adjacent with node v,

* (i) If the current visiting node is gray, then loop detected. exit.

* (ii) Goto Step (1).

* (iii) All the nodes on sub-tree of tv have been visited. Mark node tv as BLACK.

* (2) All the nodes on sub-tree of v have been visited. Mark node v as BLACK.

*

* Function DFSDetectLoop is valid for both Undigraph and digraph.

*

* */

int DFSDetectLoop (ALGraph *graph, int VisitFunc (ALGraph *graph, int v))

{

int v;



for (v = 0; v < graph->vexnum; v++)

{

MarkNodeColor (graph, v, WHITE);

}

for (v = 0; v < graph->vexnum; v++)

{

if (graph->vertices[v].color == WHITE)

{

/* We are good to call DFSDetectLoopSub the first

* time with pv = -1, because no node equals -1.

* */

if (1 == DFSDetectLoopSub (graph, v, -1, VisitFunc))

return 1;

}

MarkNodeColor (graph, v, BLACK);

}

return 1;

}



/*

* Start from node v, DFS graph to detect loop.

* pv is the node that just visited v. pv is used to avoid v to visit pv again.

* pv is introduced to support Undigraph.

*

* NOTE:

* Before calling DFSDetectLoopSub, make sure node v is not visited yet.

* */

int DFSDetectLoopSub (ALGraph *graph, int v, int pv, int VisitFunc (ALGraph *graph, int v))

{

assert (graph->vertices[v].color == WHITE);



MarkNodeColor (graph, v, GRAY);



VisitFunc (graph, v);



ArcNode *arc;

arc = graph->vertices[v].firstarc;

while (arc)

{

int tv = arc->adjvex;



/* For Undigraph, if tv equals pv, this arc should not be count.

* Because we have just visited from pv to v.

* Just go ahead to check next vertex connected with v.

* 1----2, after visit 1, we will visit 2, while visiting 2, 1 will be the 1st node visited.

*

* For digraph, we need to check loop even tv equals pv.

* Because there is case that node v points to u, and u points to v.

* */

if ((graph->kind == AG) && (tv != pv))

{

if ( graph->vertices[tv].color == GRAY )

{

cout << "Gray node visited at node: " << tv + 1 <<endl;

cout << "DFSDetectLoopSub: Loop Detected at from node " << v + 1<<" to "<< tv + 1 <<" !" <<endl;

return 1;

}



if (graph->vertices[tv].color == WHITE)

{

if (1 == DFSDetectLoopSub (graph, tv, v, VisitFunc))

{

return 1;

}

}

/* At this line:

* (1)If tv's color is already BLACK; Go ahead checking next arc;

* (2)If the sub-tree of node tv has all been visited, mark as BLACK and check next arc;

* Backward tv to to v's other adjacent node. So tv should be marked as black.

* */

MarkNodeColor (graph, tv, BLACK);

}



arc = arc->nextarc;

}

return 0;

}
<2025年10月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

常用鏈接

留言簿(10)

隨筆分類(307)

隨筆檔案(297)

algorithm

Books_Free_Online

C++

database

Linux

Linux shell

linux socket

misce

  • cloudward
  • 感覺這個博客還是不錯,雖然做的東西和我不大相關,覺得看看還是有好處的

network

OSS

  • Google Android
  • Android is a software stack for mobile devices that includes an operating system, middleware and key applications. This early look at the Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.
  • os161 file list

overall

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            老司机午夜精品视频| 99av国产精品欲麻豆| 亚洲欧洲日本在线| 在线观看成人av电影| 精品二区久久| 亚洲激情偷拍| 亚洲视频国产视频| 欧美一级免费视频| 久久久久成人精品免费播放动漫| 久久精品视频在线观看| 久久综合一区二区三区| 欧美国产欧美亚洲国产日韩mv天天看完整 | 免费国产自线拍一欧美视频| 欧美国产亚洲视频| 一级日韩一区在线观看| 午夜亚洲福利| 欧美国产激情二区三区| 国产精品乱码| 91久久夜色精品国产网站| 亚洲午夜激情| 蜜月aⅴ免费一区二区三区| 欧美在线视频观看| 一本色道久久88亚洲综合88| 亚洲福利小视频| 一区二区欧美国产| 久久久夜夜夜| 中国成人亚色综合网站| 久久久综合激的五月天| 国产精品地址| 亚洲欧洲精品一区二区精品久久久 | 极品尤物一区二区三区| 一本久久精品一区二区| 美女精品自拍一二三四| 亚洲一区在线免费观看| 欧美成人免费在线| 国内精品视频一区| 亚洲一区二区四区| 亚洲高清中文字幕| 久久国内精品视频| 国产精品成人一区二区网站软件 | 久热精品视频| 亚洲午夜激情网页| 欧美日韩不卡一区| 亚洲黄色片网站| 免费日韩av| 久久精品一区二区| 国产午夜精品麻豆| 午夜亚洲性色视频| 中文成人激情娱乐网| 欧美激情女人20p| 亚洲国产一区在线| 欧美国产另类| 乱人伦精品视频在线观看| 久久精品国产亚洲aⅴ| 欧美视频在线一区| 日韩一本二本av| 欧美国内亚洲| 久久这里只精品最新地址| 国内精品久久久久影院色| 欧美一级夜夜爽| 亚洲欧美激情视频| 国产三级欧美三级日产三级99| 亚洲欧美在线高清| 亚洲一区二区在线免费观看| 国产精品美女久久久久久2018 | 欲色影视综合吧| 久久久综合视频| 欧美中文字幕不卡| 狠狠88综合久久久久综合网| 亚洲欧洲一区二区三区久久| 99精品国产热久久91蜜凸| 欧美国产亚洲另类动漫| 免费观看欧美在线视频的网站| 亚洲国产精品123| 亚洲国产精品99久久久久久久久| 免费高清在线一区| 中文一区二区| 翔田千里一区二区| 在线日韩日本国产亚洲| 欧美成人在线影院| 欧美三区不卡| 久久男女视频| 欧美韩日高清| 亚洲免费中文| 久久精品欧美日韩| 亚洲人成在线观看| 一本到12不卡视频在线dvd| 国产精品日韩专区| 久久综合久久综合这里只有精品| 六月丁香综合| 亚洲免费在线观看| 久久综合成人精品亚洲另类欧美| 亚洲精品一区二区网址| 亚洲欧美日韩成人高清在线一区| 在线精品国产欧美| 国产精品99久久久久久久久久久久| 国产一区二区三区高清在线观看 | 开心色5月久久精品| 欧美另类久久久品| 久久精品国产欧美激情| 欧美精品 国产精品| 久久福利资源站| 欧美日韩成人激情| 美女啪啪无遮挡免费久久网站| 欧美视频中文字幕在线| 免费看的黄色欧美网站| 国产精品中文字幕欧美| 最新亚洲一区| 一区二区三区在线观看欧美| 一本色道久久综合狠狠躁篇怎么玩| 在线观看一区欧美| 欧美一级二区| 午夜精品国产| 欧美区一区二区三区| 欧美不卡福利| 国产一区二区三区观看| 在线视频欧美日韩| 亚洲裸体在线观看| 蜜桃久久av| 男人的天堂亚洲| 国产日韩综合| 亚洲午夜在线观看| 亚洲图片欧洲图片av| 欧美韩日一区二区| 最新亚洲激情| 日韩亚洲不卡在线| 欧美国产视频在线观看| 欧美福利一区二区三区| 在线观看不卡| 久久这里只有精品视频首页| 开元免费观看欧美电视剧网站| 国产深夜精品福利| 欧美一区深夜视频| 激情亚洲网站| 久久综合激情| 韩日欧美一区| 久久久人成影片一区二区三区 | 亚洲精品免费一区二区三区| 亚洲电影在线免费观看| 久久久久久久久久久一区| 久久久国产午夜精品| 国产日韩欧美电影在线观看| 午夜精品亚洲| 久久全国免费视频| 亚洲大片精品永久免费| 麻豆亚洲精品| 亚洲国产精品精华液2区45| 亚洲人成在线观看一区二区 | 黄色一区二区在线| 久久精品欧洲| 欧美激情久久久久| 99v久久综合狠狠综合久久| 欧美人成在线| 亚洲一本大道在线| 久久综合狠狠| 亚洲精品在线看| 欧美三级特黄| 性色av一区二区三区红粉影视| 久久久久久黄| 亚洲欧洲一区二区三区久久| 欧美日韩亚洲国产精品| 欧美亚洲免费| 国产亚洲欧洲997久久综合| 久久精品国产77777蜜臀| 欧美大片免费观看| 国产精品99久久久久久久久| 国产酒店精品激情| 麻豆成人精品| 亚洲午夜免费福利视频| 噜噜噜91成人网| 亚洲一区二区动漫| 在线欧美日韩国产| 欧美网站在线观看| 久久婷婷亚洲| 一区二区三区四区五区在线| 久久久久久久久久久久久9999| 亚洲欧洲日产国产综合网| 国产精品久久久久久久9999| 久久久在线视频| 亚洲一区二区三区四区五区午夜 | 午夜精品福利一区二区蜜股av| 亚洲国产精品久久久久久女王| 国产精品成人一区二区三区吃奶| 久久久99国产精品免费| 中文精品视频| 亚洲电影免费观看高清| 久久av资源网站| 亚洲一区国产一区| 亚洲日本va在线观看| 国产一区二区日韩精品欧美精品| 欧美日韩国产综合新一区| 浪潮色综合久久天堂| 午夜精品久久久久| 中文国产亚洲喷潮| 亚洲经典在线看| 亚洲成色www久久网站| 亚洲国产精品va在线观看黑人| 欧美性淫爽ww久久久久无| 欧美日本中文字幕| 欧美国产日韩精品免费观看|