#include usingnamespace std;
int main()
; unsigned char *p=(unsigned char*)&input;
int s=0;
int temp=sizeof(input);
for(int i=0; ichar v=p[i];
if(v>0)
s+=v-'
a'+i;
}printf("
%d\n
",s);
}
答案 :a:10 b:15 c:25 d:30 e:35 f:得到不確定的結果或程式崩潰
這個題目要考慮大小端儲存,關於大小端的介紹請按:
因為x86平台下是小端模式
所以對於input而言,記憶體如下:
a0b0c0d0e0 0000000000
當強制將記憶體按照char的方式讀取的時候,i 分別在
0 2 4 6 8 的位置是 非零,然後加上各自對應的值
0 1 2 3 4
所以最後結果是 20 + 10 = 30
對於在大端模式的平台下:
0a0b0c0d0e 0000000000這樣組後的結果就是
1 3 5 7 9
0 1 2 3 4
是 25 + 10 = 35
但是題目沒有給出是大端還是小端模式,所以選f
char *c = ;char **cp = ;
char ***cpp = cp;
int main(void)
指標比較繁瑣,仔細點應該不會有問題,分析如下:
第乙個輸出如下:
第二個輸出如下:
第三個輸出如下:
第四個輸出如下:
最後結果:
pointerstew
2012搜狗校園招聘筆試題
1 下面 中for迴圈共執行了多少次?unsigned short i,j for i 0,j 2 i j i 5,j 7 unsigned short占用2個位元組,當資料範圍到頭了 2 16 1 就又從0開始計數了,這個其實就是兩輛汽車行駛在乙個圓圈裡的汽車追及問題。乙個速度為5,乙個速度為7,...
2012搜狗校園招聘筆試題 1
最近發現了幾個公司招聘的筆試機試題,雖然是兩年前的,但是題目還不錯,所以做了做,下面給出自己對一些題的理解。問題描述 下面 中for迴圈共執行了多少次?unsigned short i,j for i 0,j 2 i j i 5,j 7 問題分析 首先,看到變數i和j都是無符號的整數,我們知道,無符...
搜狗校園招聘筆試
定義兩個大於2的偶數之間的距離,為這兩個數之間質數的個數。從小到大輸入n個大於2的偶數,輸出所有數兩兩之間距離的總和 應該有n n 1 2個距離,輸出總和就好 第一行是輸入偶數的個數,最小為2,最大可能到幾萬。之後每行為乙個偶數,最小是4,最大可能是幾百萬,不重複的公升序排列。輸出資料兩兩間距離的總...