Java基础练习题1的Java基础习题(附答案)1收藏1.下列语句序列执行后,m的值是(C)。inta=10,b=3,m=5;if(a==b)m+=a;elsem=++a*m;A)15B)50C)55D)52.下列语句序列执行后,k的值是(B)。inti=4,j=5,k=9,m=5;if(ij||mk)k++;elsek--;A)5B)10C)8D)93.下列语句序列执行后,x的值是(D)。inta=2,b=4,x=5;if(a--b)x*=a;A)5B)20C)15D)104.下列语句序列执行后,b的值是(B)。inta=2,b=4;if(a--b)a*=a;A)5B)3C)15D)105.下列语句序列执行后,m的值是(D)。inti=9,j=8,m=10,n=9;if(ij||m--n)i++;elsej--;A)6B)7C)8D)96.下列语句序列执行后,x的值是(A)。inta=3,b=4,x=5;if(++ab)x=x+1;A)5B)3C)4D)67.下列语句序列执行后,ch1的值是(B)。charch1=’A’,ch2=’W’;if(ch1+2ch2)++ch1;A)‘A’B)‘B’C)‘C’D)B8.下列语句序列执行后,x的值是(B)。inta=2,b=4,x=5;if(a--b)x*=a;inta=3,b=4,x=5;if(++a==b)x=++a*x;A)35B)25C)20D)59.下列语句序列执行后,k的值是(C)。inti=6,j=8,k=10,m=7;if(ij||mk--)k++;elsek--;A)12B)11C)10D)910.下列语句序列执行后,k的值是(C)。inti=10,j=18,k=30;switch(j-i){case8:k++;case9:k+=2;case10:k+=3;default:k/=j;}/*匹配之后一直到BREAK才跳出*/A)31B)32C)2D)33Java基础练习题211.若a和b均是整型变量并已正确赋值,正确的switch语句是(D)。A)switch(a+b);{......}B)switch(a+b*3.0){......}C)switcha{......}D)switch(a%b){......}12.下列语句序列执行后,r的值是(C)。charch='8';intr=10;switch(ch+1){case'7':r=r+3;case'8':r=r+5;case'9':r=r+6;break;default:r=r+8;}A)13B)15C)16D)1813.设int型变量a、b,float型变量x、y,char型变量ch均已正确定义并赋值,正确的switch语句是(B)。A)switch(x+y){......}B)switch(ch+1){......}C)switchch{......}D)switch(a+b);{......}14.下列语句序列执行后,k的值是(D)。intx=6,y=10,k=5;switch(x%y){case0:k=x*y;case6:k=x/y;case12:k=x-y;default:k=x*y-x;}A)60B)5C)0D)5415.下列语句序列执行后,r的值是(B)。charch='A';intr=6;switch(ch+5){case'A':r=r+3;case'B':r=r+5;case'C':r-=6;break;default:r/=2;}/*没有匹配值则执行default*/A)11B)3C)2D)916.以下for循环的执行次数是(B)。for(intx=0;(x==0)&(x4);x++);A)无限次B)一次也不执行C)执行4次D)执行3次17.下列语句序列执行后,j的值是(A)。intj=1;for(inti=5;i0;i-=2)j*=i;/*表达式3是改变循环变量取值,进行下一轮循环*/A)15B)1C)60D)018.以下for循环的执行次数是(B)。Java基础练习题3for(intx=0;(x==0)&(x4);x++);A)无限次B)一次C)执行4次D)执行3次19.下列语句序列执行后,j的值是(D)。intj=2;for(inti=7;i0;i-=2)j*=2;A)15B)1C)60D)3220.以下for循环的执行次数是(B)。for(intx=0,y=0;(y!=0)&&(x4);x++);A)无限次B)一次也不执行C)执行4次D)执行3次21.下列语句序列执行后,j的值是(D)。intj=0;for(inti=3;i0;i--)j+=i;A)3B)4C)5D)622.以下由for语句构成的循环执行的次数是(B)。for(inti=0;true;i++);A)有语法错,不能执行B)无限次C)执行1次D)一次也不执行23.下面语句执行后,i的值是(B)。for(inti=0,j=1;j5;j+=3)i=i+j;A)4B)5C)6D)724.下列语句序列执行后,k的值是(D)。intj=8,k=15;for(inti=2;i!=j;i++){j-=2;k++;}A)18B)15C)16D)1725.下列语句序列执行后,k的值是(B)。intm=3,n=6,k=0;while((m++)(--n))++k;A)0B)1C)2D)326.下列语句序列执行后,i的值是(D)。ints=1,i=1;while(i=4){s*=i;i++;}A)6B)4C)24D)527.下列语句序列执行后,k的值是(C)。intm=3,n=6,k=0;while(mn){++k;m++;--n;}A)0B)1C)2D)328.下列语句序列执行后,j的值是(C)。intj=8,i=6;while(--i4)--j;A)5B)6C)7D)829.下列语句序列执行后,j的值是(C)。intj=8,i=6;while(i4)i-=2;--j;A)5B)6C)7D)830.下列语句序列执行后,j的值是(B)。Java基础练习题4intj=9,i=6;while(i--3)--j;A)5B)6C)7D)831.下列语句序列执行后,j的值是(D)。intj=3,i=2;while(--i!=i/j)j=j+2;A)2B)4C)6D)532.若有循环:intx=5,y=20;do{y-=x;x+=2;}while(xy);则循环体将被执行(A)。A)2次B)1次C)0次D)3次33.以下由do-while语句构成的循环执行的次数是(B)。intm=8;do{++m;}while(m8);A)一次也不执行B)执行1次C)8次D)有语法错,不能执行34.下列语句序列执行后,i的值是(A)。inti=10;do{i/=2;}while(i1);A)1B)5C)2D)035.下列语句序列执行后,i的值是(D)。inti=10;do{i/=2;}while(i--1);A)1B)5C)2D)-136.下列语句序列执行后,i的值是(C)。inti=10;do{i-=2;}while(i6);A)10B)8C)6D)437.下列语句序列执行后,i的值是(D)。inti=16;do{i/=2;}while(i3);A)16B)8C)4D)238.以下由do-while语句构成的循环执行的次数是(B)。intk=0;do{++k;}while(k1);A)一次也不执行B)执行1次C)无限次D)有语法错,不能执行39.若有循环:intx=5,y=20;do{y-=x;x++;}while(++x--y);则循环体将被执行(C)。A)0次B)1次C)2次D)3次40.下列循环中,执行breakouter语句后,所列(C)语句将被执行。outer:for(inti=1;i10;i++){Java基础练习题5inner:for(intj=1;j10;j++){if(i*j50)breakouter;System.out.println(i*j);}next:A)标号为inner的语句B)标号为outer的语句C)标号为next的语句D)以上都不是41.下列循环中,执行continueouter语句后,(A)说法正确。outer:for(inti=1;i10;i++){inner:for(intj=1;j10;j++){if(i*j50)continueouter;System.out.println(i*j);}}A)程序控制在外层循环中并且执行外层循环的下一迭代B)程序控制在内层循环中并且执行内层循环的下一迭代C)执行标号为next的语句D)以上都不是2.找出下面各段程序中的错误:a)For(i=100,i=1,i++)System.out.println(i);答案:For的F应该小写;For头中应当使用分号,而应当使用逗号;++应当为――答案:应当在case0中放置一条break语句c)下面的代码应输入从19~1之间的所有奇数:for(i=19;i=1;i+=2)System.out.println(i);答案:+=应该为-=d)下面的代码应输出从2到100之间的所有偶数:counter=2;do{System.out.println(counter);Java基础练习题6counter+=2;}While(counter100)答案:while的W应当小写;应当为=3.指出并纠正下面各段代码中的错误:a)while(c=5){product*=5;c++;b)if(gender==1)System.out.println(“woman”);else;System.out.println(“Man”);答案:a)错误:漏掉了while循环的右花括号纠正:在最后加上右花括号b)错误:else后的分号导致一个逻辑错误,第二个输出语句无论如何都会执行。纠正:去掉else后面的分号。4.下面的while循环结构有什么错误?while(z=0)sum+=z;答案:变量z在while循环中一直没有改变,如果循环条件(z=0)为真,则会出现死循环,为了避免,必须使得变量z递减,使其最终小于0;5.指出并纠正下列各段代码的错误。(注解:每段代码中可能包含多个错误。)a)if(age=65);System.out.println(“Agegreaterthanorequalto65”);elseSystem.out.println(“Ageislessthan65”);答案:if后不能有分号,将分号去掉可以改正这个错误。b)intx=1,total;while(x=10){total+=x;++x;}答案:total+=x语句中,total没有初始数值,无法使用,在定义total时为其赋值0可以解决这个错误。c)while(x=100)total+=x;++x;答案:循环为死循环,直到超出total的取值范围,在(x=100)后添加{,然后在++x;后添加}可以解决这个错误。6.找出下面各段代码中的错误,并解释如何改正它。Java基础练习题7a)for(k=0;k!=1.0;k+=0.1)System.out.println(k);b)如下代码应打印1~10的值n=1;while(n10)System.out.println(n++);答案:a)错误:浮点数作控制变量,for循环将不工作,因为浮点数在大多数计算机中只是近似值。改正:用一个整数取代浮点数,并用适当的计算获取所要的值:for(k=1;k!=10;k++)System.out.println((float)k/10);b)错误:在while循环继续条件中用了错误的关系运算符。改正:用=代替,或者将10改为11也可以。Java基础习题(附答案)2收藏1.以下方法fun的功能是求两参数之积。(returna*b)intfun(inta,intb){__________________