貼一道silicon image上海研發筆試題
2009.6.9
考查指標和資料在記憶體中儲存方式
假設機器是little endian
void main()
;int* stri = (int*)str;
unsigned char* strs = (unsigned char*)str;
printf("%d/n",*(stri+1));
printf("%d/n",*(strs+3);
}輸出結果
134678021
2055
int* stri = (int*)str; stri為整型指標,stri+2 作指標算術需要按照整形進行,故移動8個位元組;
unsigned short* strs = (unsigned short*)str; strs為短整型,strs+3 移動6個位元組;
little endian的機器變數低位在低位址。故將其轉換為十進位制即得結果。
5: 00000101
6: 00000110
7: 00000111
8: 00001000
所以最終輸出的整數的二進位制表示是
00001000 00000111 00000110 00000101: 134678021
根據此題我們還可以通過程式的輸出知道所在的機器是little endian 還是big endian
百度貼吧裡見到的一道題
問題描述 有一天陽陽擺弄著他最鍾愛的木棒,他突發奇想,如果從中任意選取確定數量木棒,然後拼接成一根,可以得到多少長度不一的木棒呢?輸入格式 兩行。第1行,2個正整數n和m,分別表示陽陽共擁有木棒數和選出木棒的數量。第2行,n個500以內的正整數,表示各木棒的長度。輸出格式 乙個整數,表示可以拼接出不...
一道演算法題
兩個燒杯,乙個放糖乙個放鹽,用勺子舀一勺糖到鹽,攪拌均勻,然後舀一勺混合 物會放糖的燒杯,問你兩個燒杯哪個雜質多?一樣多吧 對的 為啥?是不是因為 糖和鹽本來就是均勻的 因為,就算不攪拌均,你放一勺過去,那邊放一勺不含雜質的過來,那麼都是一勺雜之 如果攪拌均勻的話也是一樣 小依 21 45 32 也...
一道演算法題
1.上午主要做了對翻譯任務的劃分,下午把 翻譯完畢。2.明天要講的演算法題 對乙個集合,求出其連續元素組成的子集中,和最大的子集 我對這道題的理解是 1 若集合中最小值大於0,意味著所有的都大於0,則最大的子集和,為所有值加起來 2 若集合中最大值小於0,意味著所有的都小於0,則最大的子集和,為集合...