問答:
1.下列System.out.printf的結果是什么?
int a=100,x,y; x=++a; y=a--; System.out.printf("%d,%d,%d",x,y,a);
101,101,100
2.下列哪句語句有錯誤?
int x=0; x=5.0/2;//不能把double型賦給整型 float y=12.5F; y=5.0/2;//不能把double型賦給float型
3.下列哪句語句有錯誤?
byte x=32; char c='a'; int n=c-x; c=c-x;//c-x轉成int型
4.下列表述正確的是(A)
A.表達式“12+56>34”的值是true
B.表達式“12+56||34”是非法表達式
C.表達式“x+y=12”是非法表達式
D.表達式“12+56>34”的值是13
5.對於一個整數m,m<<1的結果一定是2*m嗎?
不一定,萬一超出范圍引起越界
6.對於2個int類型的變量
int m=120,n=240;
那么,m^m和m^n^n結果分別是多少?
0,240(^表示異或)
7.下列System.out.printf的結果是什么?
int x=10,y=10,z=10; if(x>9) { y=100; z=200; } else { y=-100; } z=-200; System.out.printf("%d,%d,%d", x,y,z);
10,100,-200
8.下列for語句的執行結果是什么?
for(int i=1;i<=4;i++) { switch(i) { case 1:System.out.printf("%c",'a'); case 2:System.out.printf("%c",'b'); break; case 3:System.out.printf("%c",'c'); case 4:System.out.printf("%c",'d'); break; } }
abbcdd
9.下列System.out.printf執行的輸出結果是?
char[] a= {'a','b','c','d','e'}; for(int i=0;i<a.length/2;i++) { char c=a[i]; a[i]=a[a.length-(i+1)]; a[a.length-(i+1)]=c; } System.out.printf("%c%c%c%c%c",a[0],a[1],a[2],a[3],a[4]);
edcba
10.下列System.out.printf執行的輸出結果是?
int[] a= {3,4,1,2,-6}; for(int i=0;i<a.length;i++) { for(int j=i+1;j<a.length;j++) { if(a[j]<a[i]) { int n=a[j]; a[j]=a[i]; a[i]=n; } } } System.out.printf("%d,%d,%d,%d,%d",a[0],a[1],a[2],a[3],a[4]);
-6,1,2,3,4
11.下列程序輸出結果是什么?
public class E { public static void main(String[] args) { int x=1,y=6; while(y-->0) { x--; } System.out.print("x="+x+",y="+y); } }
x=-5,y=-1
作業題:
1.有如下一個函數:
編寫一個java程序,從鍵盤輸入一個x值,程序輸出一個y值。
public static void main(String[] args) { int y; Scanner sc=new Scanner(System.in); int x=sc.nextInt(); if (x<0) { y=x*2-1; } else if(x==0) { y=-1; } else { y=3*x-1; } }
2.編寫一個java程序,使用while循環語句計算1-1000之間能被3和7同時整除的整數之和。
public static void main(String[] args) { int sum=0; for(int i=1;i<10000;i++) { if(i%3==0&&i%7==0) { sum+=i; } } System.out.println(sum); }
3.編寫一個java程序,使用for循環計算8+88+888+8888+88888+……的前10項之和。
public static void main(String[] args) { long sum=0,temp=0; for(int i=0;i<10;i++) { temp+=8*Math.pow(10,i); sum+=temp; } System.out.println(sum); }
4.編寫一個java程序,計算1-1/3+1/5-1/7+1/9-1/11……前10000項之和。
public static void main(String[] args) { double sum=0,temp; for(double i=0;i<10000;i++) { temp=Math.pow(-1, i)*1.0/(2.0*i+1.0); sum+=temp; } System.out.println(sum); }
5.編寫一個java程序,計算1+2!+3!+4!……從第100項到第200項之和。
public static void main(String[] args) { long sum=0; for(int i=100;i<=200;i++) { sum+=factoria(i); } } public static long factoria(int i) { if(i==1) return i; else return factoria(i-1)*i; }