第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
……