【题目描述】
下列程序的输出结果是()。
main
{ int i=1,j=2,k=3;
if(i++==1&&(j==3==||k++==
3))
printf("%d%d%d\n",i,j,k);
}
A.1 2 3
B.2 3 4
C.2 2 3
D.2 3 3
【我提交的答案】: |
【参考答案与解析】: 正确答案:D |
本题考梦自增运算符“++”、逻辑与运算符“&&”和逻辑或运算符“||”。自增运算符“++”出现在变量之前,表示先使用变量的值加l,再使用变量的值进行运算;出现在变量之后,表示先使用变量的值进行运算,再使用变量的值加l。当逻辑与运算符“&&’’两边的运算对象都为真时,逻辑表达式的值才为真;当逻辑或运算符“||”只要一个值为1,值就为1。根据运算符的优先级,题中应先计算内层括号中的值。++j是先自加后运算,因此运算时j的值等于3,所以表达式++j=3成立,即表达式的值为1;1与任何数都为进行或()运算,结果都为1,因此k=3的表达式i++是先运算后自加,因此运算时i为1,所以i++=1成立,自加1后i=2。if语句的条件为真即“1”,所以输出i、j、k的值分别是2,3,3。
k自加后不是应该等于4吗?
第6题
以下关于市场细分的标准说法错误的是()。
A.人口因素是指人口变数,包括年龄、性别、家庭人数、收入、职业、文化程度和宗教信仰等
B.地理因素是指客户所在地的地理位置
C.心理因素是指客户的生活方式、个性等心理变数
D.行为因素即按客户利益动机不同细分市场
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!