当前位置:编程学习 > C/C++ >>

C++程序员面试常遇的12个题

一、x&y 按位与运算
如x=3 y=3
则:x=y=0011
结果还是:3
x|y 按位或运算,相同为0,不同为1

二、
int Vac=3;
int main(){
int Vac=10;
::Vac ;
count<<::Vac;
count<<Vac;
return 0;
}
结果:4,10

三、
int i=3,j=4;
i?i : j;
结果:4 4

五、
int i=1,j=2;
int k=i j;
结果:k=3;

六、
x=x 1;
读两次x的地址,编译器不认为左右的x地址相同
x =1;
x的地址制度一次
x ;
效率由低到高排列

七、
#define product(x) (x*x)
int main(){
int i=3,j,k;
j=product(i );
//i=5
k=product( i);
return 0;}
结果;j=9;k=49;

八、
int a=5,b=3;
!a&&b ;
结果:a=5 b=3 因为当&&前面的运算为flase时候,不计算后面的,直接false

九、
char foo(void)
{
unsigned int a=6;
int b=-20;
char c;
(a b>6)?c=1:c=0;
return c;
}
结果:c=1;
无符号和有符号的相加,有符号的会自动转化为无符号类型,即b会转化成一个很大的整数,所以肯定大于6;

十、
#define SQR(x) (x*x)
main(){
int a,b=3;
a=SQR(b 2);
}
结果:a=11;
应为传过去的是b 2
而实际执行的是b 2*b 2;
而不是(b 2)*(b 2)

如果SQR(x) ((x)*(x)) 则结果就是25了。

十一、
预处理,一年中有多少秒,应为牵扯的会溢出,所以数据类型要注意
#define SECONDS_PRE_YEAR(60*60*24*365)UL

十二、
宏定义:MIN
#define MIN(A,B) ((A)<=(B)?(A):(B))注意括号的使用。

资料未整理完整,以上供参考
补充:软件开发 , C++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,