数组、变量、类和对象、循环,练习题总结
练习2
1.
class Happy {
public static void main(String args[]) {
int i = 1 ;
int j = i++ ;
if((i==(++j))&&((i++)==j)) {
i += j ;
}
System.out.println("i = "+i);
}
}
运行完上面代码之后输出i的值是多少?
A. 4
B. 5
C. 3
D. 6
2. 下面的数据声明及赋值那一个是没有错误的?
A. float f = 1.3;
B. char c = "a";
C. byte b = 257;
D. int i = 10;
3. 编译Java源程序文件产生的字节码文件的扩展名为?
A. java
B. class
C. html
D. exe
4. 现在假设有如下程序:
public class Demo {
public static void main(String args[]) {
boolean flag = 10%2 == 1 && 10 / 3 == 0 && 1 / 0 == 0 ;
System.out.println(flag ? "aliyunedu" : "yootk") ;
}
}
以上程序的最终执行结果是什么?
A. aliyunedu
B. yootk
C. true
D. 程序出错
5. 现在假设有如下程序:
public class Demo {
public static void main(String args[]) {
int x = 10 ;
double y = 20.2 ;
long z = 10L;
String str = "" + x + y * z ;
System.out.println(str) ;
}
}
以上程序的最终执行结果是什么?
A. 10202.0
B. 0212.0
C. 302.0
D. 1020.210
6. 现在假设有如下程序:
public class Demo {
public static void main(String args[]) {
String str = "" ;
for (int x = 0 ; x < 5 ; x ++) {
str += x ;
}
System.out.println(str) ;
}
}
以上程序最终的执行结果是什么?
A. 01234
B. 10
C. 14
D. 25
7. 现在假设有如下程序:
public class Demo {
public static void main(String args[]) {
System.out.println(inc(10) + inc(8) + inc(-10)) ;
}
public static int inc(int temp) {
if (temp > 0) {
return temp * 2 ;
}
return -1 ;
}
}
以上程序的最终执行结果是什么?
A. 35
B. 8
C. 28
D. 12
8. 现在假设有如下程序:
public class Demo {
public static void main(String args[]) {
char c = 'A' ;
int num = 10 ;
switch(c) {
case 'B' :
num ++ ;
case 'A' :
num ++ ;
case 'Y' :
num ++ ;
break ;
default :
num -- ;
}
System.out.println(num) ;
}
}
以上程序的最终执行结果是什么?
A. 11
B. 13
C. 12
D. 10
9. 现在假设有如下程序:
public class Demo {
public static void main(String args[]) {
int sum = 0 ;
for (int x = 1 ; x < 10 ; x ++) {
sum += x ;
if (x % 3 == 0) {
continue ;
}
}
System.out.println(sum) ;
}
}
以上程序的最终执行结果是什么?
A. 6
B. 0
C. 程序错误,死循环
D. 45
10. 现在假设有如下程序:
public class Demo {
public static void main(String args[]) {
int sum = 0 ;
for (int x = 0 ; x < 10 ; x ++) {
sum += x ;
if (x % 3 == 0) {
break ;
}
}
System.out.println(sum) ;
}
}
以上程序的最终执行结果是什么?
A. 6
B. 0
C. 程序错误,死循环
D. 45
11.数组的最大值
public class Per{
public static void main(String[] args){
int[] a = {15,62,95,26,523,526,521,549,999};
int max = a[0];
for(int i = 1;i < a.length;i++){
if(a[i] > max){
max = arr[i];
}
}
System.out.print(max);
}
}
练习题1
1,
public class Test {
public static void main(String[] args) {
int i = 1,j;
j = ++i + i++ + ++i + ++i + i++;
System.out.println(j);
}
}
2,
public class Test2 {
public static void main(String[] args) {
int i = 1;
i+= ++i;
System.out.println(i);
}
}
3,
import java.util.Scanner;
public class Test3<z> {
public static void main(String[] args) {
System.out.println("今天是星期几?");
Scanner day = new Scanner(System.in);
int days = day.nextInt();
String z = (days > 5 && days <= 7) ? "今天是周末" : "今天是工作日";
System.out.println(z);
}
}
4,
import java.util.Scanner;
public class Test4 {
public static void main(String[] args) {
System.out.println("请输入一个月份: ");
Scanner input = new Scanner(System.in);
int month = input.nextInt();
switch(month){
case 3:
case 4:
case 5:
System.out.print("是春季");
return;
case 6:
case 7:
case 8:
System.out.print("是夏季");
return;
case 9:
case 10:
case 11:
System.out.print("是秋季");
return;
case 1:
case 2:
case 12:
System.out.print("是冬季");
return;
}
}
}
5,
import java.util.Scanner;
public class Test5 {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("请输入一个整数:");
int N = s.nextInt();
int a = 1;
while (N > 0) {
a *= N;
N--;
}
System.out.println("阶乘为:" + a);
}
}
6,
public class Test6 {
public static void main(String[] args) {
int s = 0;
int m = 1;
for(int i = 1;i <= 10;i++){
s = s + m;
m = m * 2;
}
System.out.println("乞丐十天的收入是: " + s);
}
}
7,
public class Test7 {
public static void main(String[] args) {
int i;
for (i = 1;i <= 100;i++) {
if (i % 3 != 0 && i % 5 != 0){
System.out.println(i);
}
}
}
}
8,
public class TTT {
public static void main(String[] args) {
int[] a = new int[5];
System.out.println("数组的随机数为:");
for (int i = 0; i < 5; i++) {
a[i] = (int) (Math.random() * 100);
System.out.print(a[i]+" ");
}
for (int i = 0; i < a.length /2; i++) {
int temp = a[i];
a[i] = a[a.length - i - 1];
a[a.length - i - 1] = temp;
}
System.out.println();
System.out.println("-----Reversed Array------");
for (int c: a ) {
System.out.print(c+" ");
}
}
}
练习3
1,统计出 1 到1000 之间有多少个能被3整除的数
public class Aa{
public static void main(String[] args)
{
for(int i = 1;i <= 1000;i++){
if(i % 3 ==0){
System.out.println(i);
}
}
}
}
2,用switch...case实现:给出一百分制成绩,要求输出成绩等级’A’,’B’,’C’,’D’,’E’。90 分以上为’A’,80~89 分为’B’,70~79 分为’C’,60~69 分为’D’,60分以下为’E’
import java.util.Scanner;
public class Value{
public static void main(String[] args){
System.out.print("请输入一个成绩: ");
Scanner input = new Scanner(System.in);
int s = input.nextInt();
switch(s / 10){
case 9:
System.out.print('A');
break;
case 8:
System.out.print('B');
break;
case 7:
System.out.print('C');
break;
case 6:
System.out.print('D');
break;
default:
System.out.print('E');
break;
}
}
}
3,求一个数的绝对值
public class Aaaaa{
public static void main(String[] args){
int a=-6;
if(a>=0){
System.out.println(a);
}else{
System.out.println(-a);
}
}
}
4,
import java.util.Scanner;
public class Test03 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
float money=0,tax=0,old=0,medicare=0,outWork=0,house=0;
System.out.print("请输入应发工资:");
money=in.nextFloat();
old=(float)(money*0.08);//计算养老
medicare=(float)(money*0.02);//计算医保
outWork=(float)(money*0.002);//计算失业
house=money*0.12f;//计算住房公积金
money=money-(old+medicare+outWork+house);
}
5,编写程序,从键盘输入一个0~99999之间的任意数,判断输入的数是几位数?
import java.util.Scanner;
public class Aaaa{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.print("请输入一个0~99999之间的整数: ");
int a = input.nextInt();
if(a / 10000 > 1 && a / 10000 < 10){
System.out.print("是5位的整数");
}else if(a / 1000 >=1){
System.out.print("是4位的整数");
}else if(a / 100 >=1){
System.out.print("是3位的整数");
}else if(a / 10 >=1){
System.out.print("是2位的整数");
}
}
}
6,编写程序,对输入的一个整数,按相反顺序输出该数。
public class Aaaaaaa{
public static void main(String[] args) {
int num = 123;
while (num>0) {
int a = num % 10;
num /= 10;
System.out.print(a);
}
}
}
7,一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数。
#include <stdio.h>
void main()
{
int i,j,sum;
for(i=3;i<=1000;i++)
{
sum=1;
for(j=2;j<i;j++)
{
if(i%j==0)
{
sum+=j;
}
}
if(sum==i)
{
printf("%d\n",sum);
}
}
}
8,输入两个正整数m和n,求其最大公约数。9,输入两个正整数m和n,求其最小公倍数。
不懂
package mytest;
import java.util.Scanner;
public class Example {
public static void main(String[] args) {
System.out.print("请输入正整数 m 的值:");
Scanner scanner = new Scanner(System.in);
int m = scanner.nextInt();
System.out.print("请输入正整数 n 的值:");
Scanner scanner1 = new Scanner(System.in);
int n = scanner1.nextInt();
Example example = new Example();
int a = example.division(m,n);
int b = m*n/a;
System.out.println(m+"和"+n+"的最大公约数为:"+a+",最小公倍数为:"+b);
}
public int division(int x,int y){
int t;
if(x<y){//交换位置
t=x;
x=y;
y=t;
}
while (y!=0){
if(x==y){
return 1;
}else {
int k = x % y;
x=y;
y=k;
}
}
return x;
}
}
10,有1.2.3.4个数字,能组成多少个互相不相同且无重复数字的三位数?都是多少?
public class Aaaaaa{
public static void main(String[] args) {
int count = 0;
for( int i = 1 ; i < 5 ; i++ ) {
for( int j = 1 ; j < 5 ; j++ ) {
for( int k = 1 ; k < 5 ; k++ ) {
if( i!=j && j!=k && i!=k) {
count++;
System.out.println(i+""+j+""+k);
}
}
}
}
System.out.println("共有"+count+"个不重复的三位数");
}
}
11,有一对兔子,从出生后第三个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
public class rabbit {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println(“请输入月份:”);
int Inputmonth = sc.nextInt();
int i = 1, j = 0, month, x;
for (month = 1; month < Inputmonth; month++) {
x = i;
i = i + j;
j = x;
}
System.out.println(“第” + month + “个月有” + 2 * i + “只兔子。”);
}
1.类和对象的不同之处是什么
类是抽象的,不是具体的,对象是具体的实例
2.如何定义类
修饰符 class关键字 类名{}
3.每个对象都有自己的什么副本
实例变量副本
4.使用两条单独的语句,写出如何声明一个counter的Mycounter的对象
Mycounter counter = new Mycounter();
5.写出如何声明一个名为myMeth()的方法,该方法有double返回类型和两个名为a和b的int类型的形参
double myMeth(int a,int b){}
6.如果方法返回一个值,那么必须如何返回
使用return
7.构造函数的名称是什么
类名
8.new的作用是什么
可用于创建任何类型的对象,返回对新创建的对象的引用
9.this的作用是什么
引用实例变量
10.构造函数可以有一个或多个形参吗
可以
11.如果方法不返回值,那么返回类型必须是什么
void
12.类和对象存在可以解决什么问题
13.类和对象在体系里是什么逻辑
14.类的基本格式,都包括了什么
修饰符 class关键字 类名{
成员变量
成员方法
}
15.创建对象时都发生什么,执行什么
类名 对象名 = new 类名();
对象的类文件加载进内存
静态成员,方法被调用才会执行
静态代码块优先于对象给类初始化
对属性进行显式初始化
构造代码块初始化,给对象初始化
对对象进行相应的构造函数初始化
将内存地址赋值给栈内存的变量
16。使用对象的成员变量和成员方法
对象名后加.运算符可以调用
17.方法返回值 如何使用方法返回值
返回值可以用于不同的目的,在某些情况下,返回值也包含一些计算的结果,在另一些情况下,返回值只用来显示成功或失败
使用return
18.方法的参数 形参和实参
向方法传递的值称为实参,负责接收实参的变量叫做形参
19.构造函数
构造函数就是在创建对象时初始化的对象,构造函数通常用来初始化类定义的实例变量,或执行其他创建完整对象所需要的启动过程,如果没有定义构造函数,JAVA自动提供了默认的构造函数,将所有成员变量初始化为它们的默认值
20.构造方法和普通方法的区别
普通方法
是有修饰符修饰的成员方法,根据关键字static的有无分为静态方法和非静态方法;一旦使用static修饰成员方法,就成为了静态方法,静态方法不属于对象,而是属于类的;如果没有static修饰的成员方法,那么必须先创建对象,然后通过对象调用它;普通方法可以有返回值也可以没有返回值,而构造方法不能有返回值;普通方法是不能通过new来创建的,可以通过对象名来调用;
构造方法
当一个类实例化对象的时候,用到的方法就是构造方法,我们可以看到在一个类里面的构造方法并不是从别的类里面引进来的,而是自己本身就有的方法。换句话说,构造方法就是类构造对象时调用的方法,主要用来实例化对象。
构造方法:对象创建时,就会调用与之对应的构造方法,对对象进行初始化;在对象创建时,会调用且只调用一次。
普通方法:对象创建后,需要方法功能时才会调用。对象创建后,可以被调用多次。
21.this关键字如何使用,何时使用
用来调用与成员变量重名的实例变量