6.2 筆試真題 & 詳解
LZ 是下午 16:00 場(chǎng)。中午睡覺途中,聽到上午有同學(xué)筆試歸來,速速問問情況。大致了解下題型:45min 的邏輯測(cè)試和 10min 耳機(jī)音量調(diào)節(jié),最后是 45min 托業(yè)聽力測(cè)試。
倒敘說下考試過程把,10min 的耳機(jī)音量調(diào)節(jié)基本就是坐著望天,什么都不能做,去上 WC
也是 OK 的,不過我們考場(chǎng)沒有人去。估計(jì)都被之前 45min 的邏輯干蒙了。 好吧,45min 的托業(yè)聽力測(cè)試,也是和新托業(yè)一樣是 4 個(gè) PART 的。
PART 1:20 道圖片題,看到試卷上的圖片,并聽到四個(gè)描述圖片內(nèi)容的句子,選出一個(gè)符 合圖片內(nèi)容的。把握住這部分就把握住了整個(gè)聽力的節(jié)奏。這里強(qiáng)調(diào)下“新托業(yè)”是 10 道 圖片題,說白了就是圖片題簡(jiǎn)單,是送分題。這下大家明白答這個(gè)托業(yè)也是為了讓大家答高 分的,過機(jī)試的。
PART 2:30 道問題——回答類的題目:提醒下別中 ETS 的圈套:聽到 WHY→就選 because, 那估計(jì)你的智商不太靈光。注意:聽關(guān)鍵詞是重點(diǎn)中的重點(diǎn)——“疑問詞”很關(guān)鍵。
PART 3: 30 道短對(duì)話,每個(gè)短對(duì)話只有一個(gè)問題,這和新托業(yè)相比,變化是最大的。要做 好快速轉(zhuǎn)換思維的能力,下一道題和上一道沒有任何關(guān)系。
PART 4: 20 道獨(dú)白,這部分和新題型相比較,變化也可以說是最大的。每個(gè)獨(dú)白,對(duì)應(yīng) 2個(gè)及 2 個(gè)以上的問題。LZ 在答此部分第一個(gè)獨(dú)白的問題時(shí),看見 4 個(gè)問題,和之前自己答過的新托業(yè)每個(gè)獨(dú)白固定 3 個(gè)問題是截然不一樣的。希望大家做好心理準(zhǔn)備,面對(duì)每個(gè)獨(dú)白 不同的問題數(shù)。
最最關(guān)鍵的是答聽力過程一定要保證自己精神集中,不然很容易聽一道,歇一道。不行,去 之前喝點(diǎn)咖啡,嚼個(gè)口香糖都是 OK 的。
第一部分,邏輯測(cè)試。16:00 整監(jiān)考老師宣布考試開始,所有人的電腦屏幕上出現(xiàn)了邏輯 測(cè)試的題。我隨即向旁邊瞥了一眼,丫的,題目順序不一樣!
沒有辦法,安心自己答吧。
此部分又細(xì)分為 3 個(gè)大部分:邏輯判斷(10 道)、邏輯推理(10 道)、和三大圖表分析題。 分值記得不是太清,只記得掃了一眼圖表分析的分值,大概是 15 分/道。每個(gè)圖表分析題下 有 5 道小題。大家可以估算出其他分值了把,LZ 不才,只分析到這兒了。
邏輯部分答題技巧:不會(huì)就蒙,因?yàn)闀r(shí)間很緊張,估計(jì)這是大部分人應(yīng)用的方法。畢竟還是 有人擅長(zhǎng)這類行測(cè)類型的題的。要求大家估算的能力,以及在短時(shí)間判斷算題方法的能 力。LZ 在此答題環(huán)節(jié),基本上處于小學(xué)算法,那就兩個(gè)字“杯具”。
個(gè)別題回憶:
1、一道圖形推理,不會(huì)畫圖,就到此為止。
2.甲、乙、丙、丁都會(huì)英語、法語、日語和德語中的兩種語言。有 三個(gè)人會(huì)同一種語言。剩下的估計(jì)大家可以猜到了。
3.100 人考試,第一次 60 人及格,第二次 72 及格。問:兩次考試都及格的人數(shù)。
4.一個(gè)人在 7 月份工作,只在周一到周五工作。此人至少每天完成任務(wù)的 1/22,才能全部在 7 月完成。問 7 月 5 日是周幾?
5.一個(gè)正方體上面有 1~6 這 6 個(gè)數(shù)字,問 1,2,3 三個(gè)數(shù)字對(duì)面分 別是數(shù)字幾?——考空間圖形想象能力。
6.甲、乙、丙、丁四個(gè)人分別說一句話,關(guān)于自己股票成長(zhǎng)快慢排 名的。每個(gè)人只說對(duì)了一半。問每個(gè)人的排名。——技巧:找說話中被重復(fù)的人,判斷即可。
7.商場(chǎng)打折促銷:滿 300 減 180,滿 200 減 100,滿 100 減 40。不參 加活動(dòng)就答五五折。問:記不住了。
8.一個(gè)圓上面有 A\B 兩點(diǎn),A 到圓心的距離和 A 到 B 的距離相等。 圓的半徑是 50 米,問甲和乙分別在 A、B 兩點(diǎn)以順時(shí)針按各自速度行走(速度沒記。,問 多長(zhǎng)時(shí)間兩人相遇。
9.銀行年利率是 3%,第一年存入 1000,一年后取出本息繼續(xù)存銀 行,另外加寸 1000,問重復(fù) 4 年后,利息是多少。
10.現(xiàn)有 351 件商品,和 A 盒子:能裝 27 件,B 盒子:能裝 12 件。問:用的最少盒子數(shù)。
11.90 個(gè) A 和 70 個(gè) B 和 100 個(gè) C 商品共花 8900 圓購(gòu)得,另外一人,40A、100B、10C 共 4300 圓。問一個(gè) A+ 一個(gè) B+ 一個(gè) C 是多少錢。 剩下的題也不多了,回憶的現(xiàn)在已經(jīng)是極限了。
圖表分析:
1.關(guān)于高鐵開通后,航空公司旅客數(shù)下降以及航空公司怎樣處理的方法(選擇什 么樣的客機(jī))。
2.現(xiàn)在互聯(lián)網(wǎng)的盈利方式,介紹了移動(dòng)社區(qū)、微博、和 SNS 的各個(gè)盈利 點(diǎn)。問了下什么是 SNS,主題大意,還有 3 個(gè)問題回憶不起來了。
3.在火車站共調(diào)查了 407 人,兩個(gè)圖表。問了下從圖表中觀察數(shù)據(jù)估測(cè) 的能力,注意:看圖標(biāo)下面的小字,每個(gè)柱圖下面都有漢字的。LZ 開始沒看到,后來才發(fā)現(xiàn)的。不然題很難做完的。
最后,系統(tǒng)交卷的瞬間蹦出八個(gè)大字,也是我想送給大家的“考試結(jié)束,祝您成功”!
真題2:5月11日收到短信說晚上有宣講會(huì),之后有場(chǎng)筆試,急急忙忙趕去后人早已爆滿。熬到最后還是沒趕上第一輪的筆試,但是既然長(zhǎng)途跋涉的趕去了,就耐心等吧!!
接近九點(diǎn)才開始第二輪的筆試,終于皇天不負(fù)苦心人啊,我一直在門口遙望,這次順利拿到期盼揣測(cè)已久的試卷,但是也應(yīng)了那句,凡事不可太強(qiáng)求呀(好不容易占到的位置是壞的~~),但是吃虧的不是我,有人給我換位子啦!也算是苦中作樂拉,人嘛,什么時(shí)候都要擅于感受幸福!!嗚呼~~俺真幸福。
因?yàn)闆]有什么找工作經(jīng)驗(yàn),更別說筆試?yán),所以也不知道這次的筆試算不算是有難度的了,但是我個(gè)人覺得有一定的難度,知識(shí)點(diǎn)看似集中,實(shí)則和很多其他知識(shí)相關(guān)。這次筆試的內(nèi)容包括:c/c++、java還有一些UNIX和LINUX下的命令。題量很大,我主要做了C/C++部分的,還有兩個(gè)沒做。
總結(jié)下主要考到的內(nèi)容有:
1.OOP的構(gòu)造函數(shù)與析構(gòu)(差不多都是):主要考它們能否VIRTUAL,重載啊,以及各自的調(diào)用順序啊。都是選擇題,但是仔細(xì)看可以發(fā)現(xiàn)后面的閱讀程序中都已經(jīng)有答案了。
2.程序題,看程序?qū)懡Y(jié)果并說明理由
3.分析死循環(huán)產(chǎn)生的原因:需要打破常規(guī)思維,有更深入的思考,現(xiàn)在知道不是會(huì)寫程序會(huì)調(diào)試就OK的事情了,還要懂得它們?cè)趦?nèi)存中及編譯器中是怎么工作的才行。記得那個(gè)死循環(huán)大致是這樣的:
int index;
int avg[3];
for(index=0;index<5;index++)
{
avg[0]=10;
avg[1]=12;
avg[2]=10;
if(index/2)
avg[3]=0;
else
avg[3]=1;
}
當(dāng)時(shí)一看數(shù)組定義長(zhǎng)度不是3么,還avg[3]不越界了嗎?數(shù)組越界會(huì)導(dǎo)致死循環(huán)么?又想既然死在for里了,那肯定是INDEX的問題了,但當(dāng)時(shí)思維僅僅局限在此,回去之后測(cè)試了下發(fā)現(xiàn)INDEX一直為0,為什么呢???
分析原因:這就設(shè)計(jì)到內(nèi)存區(qū)間開辟的問題了,程序在內(nèi)存中的形式為:代碼區(qū),全局?jǐn)?shù)據(jù)區(qū),堆區(qū)和棧區(qū)。程序代碼區(qū)存放函數(shù)體的二進(jìn)制代碼。全局區(qū)(靜態(tài)區(qū))(static),全局變量和靜態(tài)變量的存儲(chǔ)是放在一塊的,初始化的全局變量和靜態(tài)變量在一塊區(qū)域,未初始化的全局變量和未初始化的靜態(tài)變量在相鄰的另一塊區(qū)域,程序結(jié)束后由系統(tǒng)釋放。堆區(qū)(heap)一般由程序員分配(new)釋放(delete),若程序員不釋放,程序結(jié)束時(shí)可能由OS回收。(注意它與數(shù)據(jù)結(jié)構(gòu)中的堆是兩回事,分配方式倒是類似于鏈表)。棧區(qū)就是那些由編譯器在需要的時(shí)候分配,在不需要的時(shí)候自動(dòng)清楚的變量的存儲(chǔ)區(qū)。里面的變量通常是局部變量、函數(shù)參數(shù)等。
那么,上面的index和avg自然屬于棧區(qū)的了,變量聲明的時(shí)候index先聲明分配在高地址,avg在低地址,數(shù)組avg一旦越界,此時(shí)avg[3] 需要再向高地址區(qū)開辟一塊存儲(chǔ)區(qū)域,所以它就指向了緊挨著它的index,即此時(shí)index和avg都指向同一地址了,所以當(dāng)?shù)谝淮螌?duì)avg[3]賦值為 0后,index也為0,滿足if條件,使得avg[3]再度為0,故index亦為0,如此反復(fù),兩者一直為0,程序陷入死循環(huán)。
解決辦法:
1.增大數(shù)組定義時(shí)的長(zhǎng)度
2。定義時(shí)先聲明avg后聲明index
具體的需要看內(nèi)存方面的書,有空要區(qū)看啊,,好了,太晚了,今天就先說這么多,等下睡不了多久就要早起啦!下午的會(huì)還得頭疼呢~~~可憐的我啊
真題 3:#include
#include
using namespace std;
class A{
public:
virtual void foo(int i = 10){
cout << "Base:foo()" << i*i << endl;
}
virtual void f(double b){
cout << "Base:f()\n";
}
};
class B: public A{
public:
virtual void foo(int i = 5){
cout << "Derived:foo()" << i*i << endl;
}
void f(complexc){
cout << "Derived:f()\n";
}
};
void main()
{
A* pa = (A*)new B();
pa->foo();
pa->f(2.10);
B* pb = new B();
A* pa2 = pb;
pa2->foo();
pa2->f(2.10);
B b;
b.f(1.0);
}
輸出結(jié)果為
Derived:foo()100
Base:f()
Derived:foo()100
Base:f()
Derived:f()
1. 只有虛擬函數(shù)才會(huì)有動(dòng)態(tài)綁定,所以pa->foo()和pa2->foo()調(diào)用的都是派生類中的foo()函數(shù),而由于在派生類中聲明的 void f(complex)函數(shù)由于不是virtual函數(shù),同基類中的void f(double)函數(shù)沒有任何關(guān)系,派生類完全繼承了基類中的void f(double)函數(shù),所以pa->f()和pa2->f()調(diào)用的都是基類中的函數(shù)。
2. 函數(shù)的缺省參數(shù)是在編譯時(shí)就確定的,所以在派生類函數(shù)foo中指定的缺省參數(shù)值5不能影響基類函數(shù)foo中指定的缺省參數(shù)值10。
南京愛立信筆試題
寫出程序輸出:
#include
//using namespace std;
class base
{
public:
base(){cout<<"base::base()\n";}
virtual ~base(){cout<<"base::~base()\n";}
void func1(){cout<<"base::func1()\n";}
virtual void func2(){cout<<"base::func2()\n";}
};
class inherited:public base
{
public:
inherited(){cout<<"inherited::inherited()\n";}
~inherited(){cout<<"inherited::~inherited()\n";}
void func1(){cout<<"inherited::func1()\n";}
void func2(){cout<<"inherited::func2()\n";}
};
void func1()
{
inherited a;
base b;
base *pb;
pb=(base*)& a;
pb->func1();
pb->func2();
}
void func2()
{
inherited * pa=new inherited;
base * pb=(base*)pa;
pb->func1();
pb->func2();
delete pa;
}
int main()
{
cout<<"func1:\n";
func1();
cout<<"\nfunc2:\n";
func2();
return 0;
}
S: