1、下列语句序列执行后,a的值是
public class Test {
public static void main(String args[]){
int a = 5;
System.out.println((a % 2 ==1)?(a+1)/2:a/2);
结果:3
分析:涉及算数运算符、三元运算符的运算、逻辑运算符的综合运算,(a % 2 = 1,a 模 2 的值等于1,再使用结果与1比较是否相等,若结果正确,返回值1,不正确返回值2。本式子中的两个值都是需要计算的,值1 : (5 + 1)/ 2 = 3,值二:5 / 2 = 2,此处设计到类型的转换,5 / 2 = 2.5,但是因为本例中最高类型为int,故最终的结果舍去小数部分为int类型,这是一个易错点。
2、有如下代码
int a = 5;
int b = (a++) + (--a)+(++a) + (a--);
问执行完之后, b的结果是多少?
结果:22
分析:涉及知识是a++,++a,--a,a--的运算,a++是先使用本身参与运算,然后再+1,a--同理,本身参与运算后再-1;++a是先本身+1,然后再参与运算,--a是本身-1再参与运算。在充分详知该知识点,在看本例,a++是使用a = 5参与运算,此时a=6,--a是a自减a = 5参与运算,此时a = 5,++a是上一个a的基础上自增,a=6,此时a = 6;a--是a先参与运算,a = 5,最后得a = 5。整个式子:5 + 5 + 6 + 6 = 22.
3、int n,用表达式表示n的个位,十位,百位
个位:a%10
十位:a/10%10
百位:a/100
4、(if语句)某项查询执行之后,n条结果,单页显示m条记录,第i页显示第几条到第几条?
int totle = 23;// 总记录数
int single = 5;// 单页显示记录数
int pages = totle % single == 0 ? totle / single : totle / single + 1;// 总页数
int target = 5;// 目标页
if (target <= pages) {// 目标页必须小于总页数
System.out.println((target - 1) * single + 1 + " ~ "
+ (target * single <= totle ? target * single : totle));//总记录数为最大显示数
}