聯想(Lenovo)筆試題目(附參考答案)
面試筆試3.2W
本帖最後由 shiyan 於 2009-3-16 11:17 編輯
1.設計函式 int atoi(char *s)。
int atoi(char *s)
{
char sign;
char sign_val = 1;
int val = 0;
int n = 0;
/* skip spaces */
while (isspace(*s))
++s;
if (*s == '-' || *s == '+')
/* skip '-' and '+' sign */
{
sign = *s;
if (sign == '-')
sign_val = -1;
++s;
}
/* when goes here, it is not space or sign */
while ((*s != '/0') && isdigit(*s))
{
val = 10 * n + (*s - '0');
n = val;
s++;
}
if (*s != '/0')
{
printf("non digit in your input!!/n");
exit(-1);
}
/* non error occured */
return (sign_val * val);
}
2.int i=(j=4,k=8,l=16,m=32); printf("%d", i); 輸出是多少?
結果為: 32.
3.解釋區域性變數、全域性變數和靜態變數的含義。
區域性變數包括函式的形參,包含在函式體或者語句塊內的變數,區域性變數的生存期在退出函式或語句塊後結束。全域性變數是指在所有函式和語句塊之外的變數,它對於整個程式均可見,全域性變數的生存期與程式的生存期相同.
靜態變數指由關鍵字static宣告的變數,它的作用域和其他變數一樣,由它所在的位置決定,如在函式體或語句塊中宣告,則只在函式體或語句塊可見,其他地方均不可見.它的生存期與程式相同.
4.解釋堆和棧的區別。
簡述如下:
棧上分配的記憶體,由系統自動分配,系統會自動收回.如果需要動態分配記憶體,則只能通過malloc/new在堆上分配的記憶體,使用完畢後,通過free/delete來釋放記憶體。5.論述含引數的巨集與函式的優缺點。含引數的巨集優點:省去了函式呼叫的開銷,執行效率高.含引數的缺點:由於巨集本質上是字串的替換,所有可能會由於一些引數的副作用導致得出錯誤的結果.
如:
#define max(a, b) ( ((a) > (b)) ? (a) : (b) )
如果程式中出現這樣的呼叫: max(a++, b);將導致a被計算2次,從而可能得到錯誤的結果,而函式呼叫不會出現這種問題.另外,如果程式中有多次巨集替換的話,可能導致程式碼體積變大.函式的優點是:沒有帶引數巨集可能導致的副作用,計算的正確性較巨集更有保證.
函式呼叫的缺點:函式呼叫需要一些引數,返回地址等入棧,出棧的開銷,效率沒有巨集函式高.
1.設計函式 int atoi(char *s)。
int atoi(char *s)
{
char sign;
char sign_val = 1;
int val = 0;
int n = 0;
/* skip spaces */
while (isspace(*s))
++s;
if (*s == '-' || *s == '+')
/* skip '-' and '+' sign */
{
sign = *s;
if (sign == '-')
sign_val = -1;
++s;
}
/* when goes here, it is not space or sign */
while ((*s != '/0') && isdigit(*s))
{
val = 10 * n + (*s - '0');
n = val;
s++;
}
if (*s != '/0')
{
printf("non digit in your input!!/n");
exit(-1);
}
/* non error occured */
return (sign_val * val);
}
2.int i=(j=4,k=8,l=16,m=32); printf("%d", i); 輸出是多少?
結果為: 32.
3.解釋區域性變數、全域性變數和靜態變數的含義。
區域性變數包括函式的形參,包含在函式體或者語句塊內的變數,區域性變數的生存期在退出函式或語句塊後結束。全域性變數是指在所有函式和語句塊之外的變數,它對於整個程式均可見,全域性變數的生存期與程式的生存期相同.
靜態變數指由關鍵字static宣告的變數,它的作用域和其他變數一樣,由它所在的位置決定,如在函式體或語句塊中宣告,則只在函式體或語句塊可見,其他地方均不可見.它的生存期與程式相同.
4.解釋堆和棧的區別。
簡述如下:
棧上分配的記憶體,由系統自動分配,系統會自動收回.如果需要動態分配記憶體,則只能通過malloc/new在堆上分配的記憶體,使用完畢後,通過free/delete來釋放記憶體。5.論述含引數的巨集與函式的優缺點。含引數的巨集優點:省去了函式呼叫的開銷,執行效率高.含引數的缺點:由於巨集本質上是字串的替換,所有可能會由於一些引數的副作用導致得出錯誤的結果.
如:
#define max(a, b) ( ((a) > (b)) ? (a) : (b) )
如果程式中出現這樣的呼叫: max(a++, b);將導致a被計算2次,從而可能得到錯誤的結果,而函式呼叫不會出現這種問題.另外,如果程式中有多次巨集替換的話,可能導致程式碼體積變大.函式的優點是:沒有帶引數巨集可能導致的副作用,計算的正確性較巨集更有保證.
函式呼叫的缺點:函式呼叫需要一些引數,返回地址等入棧,出棧的開銷,效率沒有巨集函式高.
-
中國銀行(BOC)的筆試題目
第一篇:居然回來搜了下找到原題,不過沒答案。HowmanypeopleintheworldspeakEnglishasafirstanativelanguage?Exactinformationonthispointisnotavailable,butanestimateof230millioncannotbeverywideofthemark.Ofthese,145millionlivetheUnitedStates,alittleles...
-
2008年金佰利(Kimberly-Clark)筆經
來自復旦BBS,希望對大家有幫助,祝成功!從華東理工跑回來,累死和精華區裡面的不一樣了,這次是能力測試考得形式和公務員考試差不多(據說,我自己沒考過公務員)全中文,70道全選擇,分四個部分,不準跨區……第一部分10道12分鐘,給一段話,選中心內容第二部分35道35分鐘,常識題、圖...
-
意法半導體(上海)筆試歸來
那天是我第一次去紫竹的意法半導體,感覺相當之好。喜歡那種整個透明的建築風格,喜歡周圍空曠的環境。到了意法半導體的office裡,被招呼的挺好,讓我在那裡等面試官,還給我倒水喝:)等著等著,拿來了一張卷子,限時一個小時。題目有一定難度,和以前在學校的側重點很不一樣,做的...
-
馬士基筆試
馬士基筆試考試分兩部分第一部分是PI,要求十分鐘,實際上5分鐘就解決了,有兩個小部分第一小部分是在一大堆詞中選與自己性格等比較相稱的第二小部分是在上面同樣的詞語中選擇別人對自己期望的第二部分是IQ,12分鐘,50道題,據說是按絕對分數的我覺得50題好像分了幾組來出...