C++面试题之i++面试题

本文解析了五个典型的C++面试题,涉及运算符优先级、自增操作符效率对比等内容,帮助读者理解i++相关概念及应用场景。

//i++面试题1.cpp
//中国台湾某著名杀毒软件公司2005年10月面试题

 int i=3,j=4;
 i?i++:++j;
 printf("%d  %d/n",i,j);
 
//A. 3  3  B. 4  4   C.3  4     D.4  3
//答案B

 

//i++面试题2.cpp
//中国某著名计算机金融软公司2005年面试题

 int x=1,j=2;
 int k=i+++j;
 cout<<k<<endl;

//A. 2  B. 3  4   C.4   D. 5
//答案B
//(i++)+j

 

 

//i++面试题3.cpp

//x=x+1,x+=1,x++,哪个效率最高?为什么?

//解析:
//x=x+1最低,因为它的执行过程如下:
//(1)读取右x的地址。
//(2)x+1
//(3)读取左x的地址
//(4)将右值传给左边的x(编译器并不认为左右x的地址相同)

//x+=1;其次,其执行过程如下:
//(1)读取右x的地址
//(2)x+1
//(3) 将得到的值传给x(音问x的地址已经读出)

//x++;效率最高.其执行过程如下:
//(1)读取右x的地址
//(2)x自增1
//答案:x++效率最高。

 

 

 

//i++面试题4.cpp
//What will be the output of the following C code?[中国台湾某著名CPU生产公司2005年面试题]

#include<stdio.h>
#define product(x) (x*x)
int main()
{
 int i=3,j,k;
 j=product(i++);
 k=product(++i);
 printf("j=%d,k=%d",j,k);
 return 0;
}

//9 49
//product(i++)=i++*i++;

 

 

 

//i++面试题5.cpp
//中国某著名综合软件公司2005年面试题

//If there are "int a=5,b=3;", the valule of a and b are ?  and ?
//after execute "!a&&b++;".
//A. 5, 3    B.0,1      C.0,3   D.5,4

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值