第1章 C/C++ 1
1.1 C/C++ 工程師標(biāo)準(zhǔn)………………………………………………………2
1.1.1 初級要求…………………………………………………………………………… 2
1.1.2 中級要求…………………………………………………………………………… 19
1.1.3 高級要求…………………………………………………………………………… 21
1.2 專家介紹………………………………………………………32
1.3 專家意見………………………………………………………33
1.4 Q&A 專訪………………………………………………………36
第2章 Java 41
2.1 Java 工程師標(biāo)準(zhǔn)………………………………………………………42
2.1.1 初級要求…………………………………………………………………………… 42
2.1.2 中級要求………………………………………………………………………… 137
2.1.3 高級要求………………………………………………………………………… 160
2.2 專家介紹………………………………………………………170
2.3 專家意見………………………………………………………171
2.4 Q&A 專訪………………………………………………………174
第3章 PHP 185
3.1 PHP 工程師標(biāo)準(zhǔn)………………………………………………………186
3.1.1 初級標(biāo)準(zhǔn)………………………………………………………………………… 186
3.1.2 中級標(biāo)準(zhǔn)………………………………………………………………………… 194
3.1.3 高級要求………………………………………………………………………… 203
3.2 專家意見………………………………………………………211
3.3 專家意見………………………………………………………212
3.4 Q&A 專訪………………………………………………………215
第4章 Android 221
4.1 Android 工程師標(biāo)準(zhǔn)………………………………………………………222
4.1.1 初級要求………………………………………………………………………… 222
4.1.2 中級要求………………………………………………………………………… 270
4.1.3 高級要求………………………………………………………………………… 284
4.2 專家介紹………………………………………………………295
4.3 專家意見………………………………………………………295
4.4 Q&A 專訪………………………………………………………298
第5章 iOS 303
5.1 iOS 工程師標(biāo)準(zhǔn)………………………………………………………304
5.1.1 初級要求………………………………………………………………………… 304
5.1.2 中級要求………………………………………………………………………… 386
5.1.3 高級要求………………………………………………………………………… 412
5.2 專家介紹………………………………………………………426
5.3 專家意見………………………………………………………426
5.4 Q&A 專訪………………………………………………………428
附錄 各種語言和技術(shù)的工程師標(biāo)準(zhǔn) 431
C/C++ 工程師標(biāo)準(zhǔn)………………………………………………………431
Java 工程師標(biāo)準(zhǔn)………………………………………………………434
PHP 工程師標(biāo)準(zhǔn)……………………………………………………436
Android 工程師標(biāo)準(zhǔn)………………………………………………………440
iOS 工程師標(biāo)準(zhǔn)………………………………………………………442
第1章C/C++
C語言是一種結(jié)構(gòu)化語言,它層次清晰,便于按模塊化方式組織程序,易于調(diào)試和維護(hù)。C語言的表現(xiàn)能力和處理能力極強(qiáng),它不僅具有豐富的運(yùn)算符和數(shù)據(jù)類型,便于實(shí)現(xiàn)各類復(fù)雜的數(shù)據(jù)結(jié)構(gòu),還可以直接訪問內(nèi)存的物理地址,進(jìn)行位一級的操作。而在C語言的基礎(chǔ)上,1983年又由貝爾實(shí)驗(yàn)室的BjarneStrou-strup推出了C++。C++進(jìn)一步擴(kuò)充和完善了C語言,成為一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語言。C++提出了一些更為深入的概念,它所支持的這些面向?qū)ο蟮母拍钊菀讓栴}空間直接地映射到程序空間,為程序員提供了一種與傳統(tǒng)的結(jié)構(gòu)化程序設(shè)計(jì)不同的思維方式和編程方法,因而也增加了整個(gè)語言的復(fù)雜性,掌握起來有一定的難度。
1.1C/C++工程師標(biāo)準(zhǔn)
1.1.1初級要求
標(biāo)準(zhǔn)C基礎(chǔ):一般應(yīng)包括對于數(shù)據(jù)類型、變量常量、數(shù)組、函數(shù)、指針和字符串、結(jié)構(gòu)、聯(lián)合和枚舉的理解和運(yùn)用。
作為一個(gè)合格的軟件工程師,具備扎實(shí)的編程基礎(chǔ)是十分必要的,這也是各大互聯(lián)網(wǎng)公司面試中一定會考察的知識點(diǎn)。例如下面的題目摘自某知名互聯(lián)網(wǎng)公司的招聘考試試題。
題1-1:請看下面的代碼。程序運(yùn)行的結(jié)果是()。
#include
intmain()
{
inta=1,b=2,c=3,d=0;
if(a==1&&b++==2)
if(b!=2||c--!=3)
printf("%d,%d,%d\n",a,b,c);
else
printf("%d,%d,%d\n",a,b,c);
else
printf("%d,%d,%d\n",a,b,c);
return0;
}
A.3,2,1B.1,3,2
C.1,3,3D.1,2,3
正確答案:C
【解析】
if(a==1&&b++==2)//條件成立。運(yùn)算后a=1,b=3
if(b!=2||c--!=3)//條件1成立,因?yàn)榛蜻\(yùn)算在條件1成立后條件2不執(zhí)行
printf("%d,%d,%d\n",a,b,c);//a=1,b=3,c=3
else
printf("%d,%d,%d\n",a,b,c);
else
printf("%d,%d,%d\n",a,b,c);
題1-2:下列代碼中,prim函數(shù)的功能是分解質(zhì)因數(shù)。請?zhí)顚懤ㄌ栔械膬?nèi)容。
voidprim(intm,intn)
{
if(m>=n)
{
while(①)n++;
(②);
prim(m,n);
cout<
}
}
正確答案:①m%n②m/=n
【解析】n從2開始,第一處為m%n,代表取余。當(dāng)余數(shù)是0的時(shí)候表示除盡,跳出while循環(huán),即找出一個(gè)質(zhì)因數(shù)。此時(shí)一個(gè)質(zhì)因數(shù)即為n,然后m/=n,即讓m除以這個(gè)質(zhì)因數(shù),然后再進(jìn)入求新m質(zhì)因數(shù)的遞歸。
題1-3:若有以下類型說明語句:charw;intx;floaty;doublez;則表達(dá)式w-x*y/z的結(jié)果為double類型,表達(dá)式(int)(x+y-z*w)的結(jié)果為()類型。
A.float
B.char
C.int
D.double
正確答案:C
【解析】當(dāng)操作數(shù)的類型不同,而且不屬于基本數(shù)據(jù)類型時(shí),經(jīng)常需要強(qiáng)制類型轉(zhuǎn)換,將操作數(shù)轉(zhuǎn)化為所需要的類型。顯式強(qiáng)制類型轉(zhuǎn)換需要使用強(qiáng)制類型轉(zhuǎn)換運(yùn)算符,格式如下:
type()或(type)。其中,type為類型描述符,如int、float等。
為表達(dá)式。經(jīng)強(qiáng)制類型轉(zhuǎn)換運(yùn)算符運(yùn)算后,返回一個(gè)具有type類型的數(shù)值,這種強(qiáng)制類型轉(zhuǎn)換操作并不改變操作數(shù)本身,運(yùn)算后操作數(shù)本身未改變。
題1-4:C語言中運(yùn)算對象必須為整型的運(yùn)算符是()。
A.%=
B./
C.=
D.<=
正確答案:A
【解析】%=是取模運(yùn)算,也就是求余數(shù)的運(yùn)算,只有整數(shù)才能取模。
題1-5:在C語言程序中,表達(dá)式8/5的結(jié)果是()。
A.1.6
B.1
C.3
D.0
正確答案:B
【解析】C語言中整數(shù)的運(yùn)算結(jié)果仍然為整數(shù)。
題1-6:設(shè)x為int型變量,且x=10,則執(zhí)行語句x+=x后,x的值為()。
A.10
B.20
C.40
D.30
正確答案:B
【解析】例如式子a+=b,即把a(bǔ)+b的值再賦值給a。對于本題來說,x+=x即把x+x的值賦給x,x最后為20。
題1-7:在C語言程序中,表達(dá)式5%2的結(jié)果是()。
A.2.5
B.2
C.1
D.3
正確答案:C
【解析】%指的是取余數(shù),5除以2的余數(shù)為1。
題1-8:如果inta=3,b=4;則條件表達(dá)式a
A.3
B.4
C.0
D.1
正確答案:A
【解析】a
題1-9:C語言中,關(guān)系表達(dá)式和邏輯表達(dá)式的值是()。
A.0
B.0或1
C.1
D.T或F
正確答案:B
【解析】邏輯表達(dá)式是指運(yùn)算符為或(||)、與(&&)、非(!)的表達(dá)式。返回值為0或1,0表示false,非0表示true。關(guān)系表達(dá)式是指運(yùn)算符為<、<=、>、>=、==、!=的表達(dá)式,返回值同樣為0或1。
題1-10:設(shè)a、b和c都是int型變量,且a=3,b=4,c=5,則下面的表達(dá)式中,值為0的表達(dá)式是()。
A.'a'&&'b'
B.a<=b
C.a||b+c&&b-c
D.!((a
正確答案:D
【解析】||和&&的優(yōu)先級高于+和-,||和&&的優(yōu)先級相等,且是左結(jié)合的,就是從左邊開始結(jié)合到右邊。
題1-11:下面()表達(dá)式的值為4。
A.11/3
B.11.0/3
C.(float)11/3
D.(int)(11.0/3+0.5)
正確答案:D
【解析】A.整數(shù)的運(yùn)算結(jié)果仍然為整數(shù),結(jié)果為3;B.由于11.0是float型,因此計(jì)算結(jié)果也為float型,值為3.0;C.結(jié)果強(qiáng)制類型轉(zhuǎn)換為float類型,值為3.0;D.11.0/3+0.5=4.1,強(qiáng)制類型轉(zhuǎn)換為整型,結(jié)果為4。
題1-12:已知intx=5,y=5,z=5;執(zhí)行語句x%=y+z;后,x的值是()。
A.0
B.1
C.5
D.6
正確答案:C
【解析】x=x%(y+z),x=5%(5+5)=5,結(jié)果為5。
題1-13:已知字母A的ASCII碼為十進(jìn)制數(shù)65,且c2為字符型,則執(zhí)行語句c2='A'+'6'-'3';后,c2中的值為()。
A.68
B.'D'
C.錯誤
D.'d'
正確答案:B
【解析】c2的ASCII碼為十進(jìn)制數(shù)68,因?yàn)閏2是字符型的,所以應(yīng)該是字母D。
題1-14:下列關(guān)于C語言的敘述錯誤的是()。
A.大寫字母和小寫字母的意義相同
B.不同類型的變量可以在一個(gè)表達(dá)式中
C.在賦值表達(dá)式中等號(=)左邊的變量和右邊的值可以是不同類型
D.同一個(gè)運(yùn)算符號在不同的場合可以有不同的含義
正確答案:A
【解析】C語言中,大小寫代表不同的兩個(gè)標(biāo)識符。A錯誤。
題1-15:有:intw=11,x=12,y=3,m;執(zhí)行語句m=(w
A.1
……