已知int i=1, j=2;,则表达式i+++j的值为( ) A. 1 B. 2 C. 3 D. 4
编译器的贪心法 什么是编译器的贪心?
编译器将程序分解成符号的方法是,从左到右一个字符一个字符地读入,如果该字符可能组成一个符号,那么再读入下一个字符,判断已经读入的两个字符组成的字符串是否可能是一个符号的组成部分;如果可能,继续读入下一个字符,重复上述判断,直到读入的字符组成的字符串已不再可能组成一个有意义的符号。
先++ 再+
后置++优先级高于前置++,故先求i++,为1,再求1+j,为3
C
3
c
因为贪心算法
编译器的贪心法 什么是...
用户登录可进行刷题及查看答案
编译器将程序分解成符号的方法是,从左到右一个字符一个字符地读入,如果该字符可能组成一个符号,那么再读入下一个字符,判断已经读入的两个字符组成的字符串是否可能是一个符号的组成部分;如果可能,继续读入下一个字符,重复上述判断,直到读入的字符组成的字符串已不再可能组成一个有意义的符号。这个处理策略有时被称为“贪心法”。当然,这与算法中的贪心法不同。
#include<stdio.h> int main() { int i = 1, j = 2; printf("%d", i+++j);//+++之间没有空格,编译器读到+后,贪心往后多读一位,读成i++ }//结果输出3 #include<stdio.h> int main() { int i = 1, j = 2; printf("%d", i+ ++j);//+++有空格,编译器读到+后,贪心多读一位,没有读到多余符号,单纯加号 }//结果输出4
登录后提交答案