2012搜狗校園招聘筆試題

2021-06-09 17:32:41 字數 1528 閱讀 1323

#include using

namespace 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,最大可能是幾百萬,不重複的公升序排列。輸出資料兩兩間距離的總...