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