3、下面方法是求100~1000的水仙花数,改正方法中的错误。
static int fun(int n){ int i,j,k; i=n0; //i=n/100
j=n-i*10; //j=n/10-i*10
k = n/10; //k = n ; if(i*100+j*10+k==i*i*i+j*j*j+k*k*k) return n; else
return 0;
}
3、 以下程序的功能是计算下面函数的值,改正方法中的错误。
public class Fun{ static double fun(double x,double y,double z){ return Math.sin(x)/(Math.sin(x-y)*Math.sin(x-z)) } public static void main(String args[]){ double x=20,y=30,z=40; System.out.println(fun(x,y,z)+fun(x,y,z)-fun(z,x,y)); } }
四、 阅读程序
1、 阅读下列程序,说明程序的功能 public static int sumDigits(long n){ int sum = 0; while(n / 10 != 0){ sum += n % 10; n = n / 10; } sum = sum + n;
2、 阅读下列程序,说明程序的功能
public static void sort(int num1, int num2, int num3){ int temp; if(num1 > num2) { temp = num1; num1 = num2; num2 = temp; } if(num2 > num3) { temp = num2; num2 = num3; num3 = temp; } if(num1 > num2) { temp = num1; num1 = num2; num2 = temp; } System.out.println(\输入的三个数按升序排列为\ }
五、 编程题
1、 使用下述方法头,计算一个整数各位数字之和。
public static int sumDigits(long n) 2、 编写以下方法,按升序排列三个数并输出。
public static void sort(int num1, int num2, int nums)
3、 编写一个求“s=a+aa+aaa+?+aaa?a”的值的方法,其中a是一个1到9之间的数字。例如
“2+22+222+2222+22222”(此时共有5个数相加),由用户输入确定相加项数。
4、 一个数如果恰好等于它的因子之和,这个数就称为完数,例如6=1+2+3。编程找出1000以
内的所有完数。
5、 编写一个方法,计算下列级数。
m(i)=1/2+2/3+?+i/(i+1)
第六章 数组
1、一维数组声明与创建
? 声明: 数据类型[ ] 数组名;
或者
数据类型 数组名
[ ];
? 创建:
数组名 = new 数据类型[数组长度];
? 声明 And 创建:
数据类型[] 数组名 = new 数据类型[数组长度] 或
数据类型 数组名[] = new 数据类型[数组长度]
2、一维数组—初始化
? 动态初始化:数组名[下标] = 值; ? 静态初始化: 数据类型 数组名[] = {元素1,元素2,元素3,元素4? ?}; 或
数据类型 数组名[] =
new 数组类型[]{元素1,元素2,元素3,? ?};
3、一维数组—引用
? 引用格式:数组名[下标];
? 下标取值范围为0—(数组长度-1)
? 数组的长度用length取得,调用格式为 :数组名.length 4、数组常见的操作—数组遍历
? 数组的遍历:依次访问数组中的每个元素 ? for 循环的语法为:
for (int i=0;i< 数组名.length;i++) { ?//处理元素的相关代码 }
? foreach循环的语法为:
for (数据类型 变量:数组名) { ?//处理元素的相关代码 }
5、二维数组---声明与创建
? 声明 数据类型 数组名[ ][ ];
或者 数据类型[ ][ ] 数组名;
? 创建 数组名 = new 数据类型[cel][ce2]; ? 声明 And 创建
数据类型[][] 数组名 = new 数据类型[ce1] [ce2]
或
数据类型 数组名[][] = new 数据类型[ce1] [ce2]
6、二维数组不规则创建
? 数组名 = new 数据类型[ce][]; ? 数组名[0] = new 数据类型[ce0]; ? 数组名[1] = new 数据类型[ce1]; ? ??
课堂记录
? 数组名[N] =
new 数据类型[ceN];
7、二维数组—初始化和引用
? 静态初始化:
int arr[][]={{2,3},{1,5,6,8},{3,4,9}}。
? 动态初始化: float numthree= new int[10][10]; numthree[0][0]=1.5f; numthree[0][1]=1.3f; ?. ?.
? 引用:数组名[下标1] [下标2];
练习题
一、 填空题
1、若int[]a={12,45,34,46,23},则a[2]= ( )
2、若inta[3][2]={{123,345},{34,56},{34,56}},则a[2][1]=( )
3、已知:int a[ ]={2,4,6,8}; 则:表达式(a[0]+=a[1])+ ++a[2]值为( )。 4、在Java中,字符串和数组是作为(对象)出现的。 5、数组对象的长度在数组对象创建之后,( )改变。数组元素的下标总是从( )开始。 6、对于数组int[][] ={{1,2,3},{4,5,6}}来说,t.length等于( ),t[0].length等于( )。 7、已知数组a的定义为”int a[]={1,2,3,4,5};”,则a[2]=( ),数组b的定义为“int b[]=new int[5];”,则b[2]=( ),数组c的定义为“Object c[]=new Object[5];”,则c[2]=( ); 8、调用数组元素时,用( )和( )来唯一确定数组中的元素。 9、数组的初始化是( )
10、数组元素通过( )来访问,数组Array的长度为( ) 11、数组复制时,“=”将一个数组的( )传递给另一个数组。 12、JVM将数组存储在( )中。
13、数组二分法查找运用的前提条件是数组已经( )。 14、数组最小下标是( )。
15、Java中数组下标的数据类型是( )。 16、语句“int a[]=new int[100]”的含义是( )。
17、主方法main(String args[])的参数“String args[]”是一个( )数组。 18、已知数组a1与a2定义如下:
int a1[] = {2,3,5,7,11,13}
int a2[] ={1001,1002,1003,1004,1005,1006,1007}
在语句”System.arraycopy(a1,2,a2,3,4);”执行后,数组a2的值是( )
二、 选择题
1、下面哪种写法可以实现访问数组arr的第1个元素?( ) A、arr[0] B、arr(0) C、arr[1] D、arr(1) 2、以下哪个选项可以正确创建一个长度为3的二维数组?( )
A、new int[2][3] B、new int[3][] C、new int[][3] D、以上答案皆不对 3、下列关于数组的定义形式,哪些是错误的?( )
A.int[ ]c=new char[10]; B.int[ ][3]=new int[2][ ]; C.int[ ]a; a=new int; D.char b[ ]; b=new char[80]; 4、执行String[] s=new String[10];语句后,哪些结论是正确的?( )
A.s[0] 为 未定义 B.s.length 为10