培训第一天的作业

package com.tedu.day01;

public class Demo_01 {

/**
* @param args
* 循环的几个小问题
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
/*
* 1.数据类型
* int[] arr;
* char chs[];
* 2. 定义,数字问题
* int arr1[]=new int[Integer.MAX.value];
* 3.length
* 最后一个元素 length-1;
* 4.引用(指针)
*
* */
int i=0;
int sum=0;
//
int arr1[]=new int[Integer.MAX_VALUE]; //int最大取值范围
boolean[] b=new boolean[]{true,false};
float[] f={1.0f,2};
int[] arr3=new int[5];
// arr3=null;
arr3=new int[]{};
// System.out.println(arr1.length);
System.out.println(f);
for(;i<=100/*1*/;sum+=i/*2*/,i++/*3*/){
/*4*/
// System.out.println(sum);
/*
*
* 循环的顺序问题
* 124 324 324
* */

}
System.out.println(sum);
}
/*
* 游戏:猜字符
* 提供两个字符数组,功能比较两个字符数组的猜对字符的个数和位置
* 返回值
* 数组:
* 1.概念
* 2.怎么定义数组
* 3.数组的初始化问题
* 4.数组的赋值
* 5.数组的访问
* 6.数组的遍历
*
* 7.数组的复制
* 8.数组的排序
*
*
* */
/*
* 3.程序=算法+数据结构
* 设计好的数据结构会导致好的算法
* 4.数组:
* 1.是相同数据类型的元素组成的集合
* 2.元素按线性顺序排序
* 3.可以通过元素所在位置的顺序号做标识来访问
* 数组是一种数据类型(引用类型)
*
*
* int a=5;
* 声明整形数组a, 包含4个元素
* 每个元素都是int型
* int[] a=new int[4]; 0,0,0.0 每个元素会给一个默认型0
* 声明浮点型,每个默认的是0.0
* double[] b=new double[10];
* 默认是false
* boolean[] b=new boolean[26];
* 3.数组的定义
* int[] arr=new int[4];
* 4.数组的初始化
* int[] arr=new int[3]; 系统已经赋值0,0,0
* int[] arr={1,4,7};
* int[] arr=new int[]{1,4,7} 大括号写值不需要说明多大空间
* int [] arr;
* arr={1,4,7}; //编译出错
* arr=new int[]{1,4,7};
* 5.数组的访问
* 1)通过数组名.length来获取数组的长度
* int[] arr=new int[3];
* arr.length
* 2)int[] arr=new int[3];//
* 通过数组下标来访问数组中的元素,下标从0开始到
* arr.length-1
* arr[0]/arr
* arr[1]=100;
* arr[2]
* arr[3]数组下标越界异常
* arr[arr.length-1]=100;给最后一个元素赋值
*
* int a; 声明整形变量a
* int[] a; 声明整形数组变量a
*
*
* int[] arr=new int[300];
* for(int i=0;i<arr.length;i++){
* arr[i]=100;
* }
* for(int i=0;i<arr.length;i++){
* System.out.printf(arr[i++]);
* }
* for(int i=arr.length-1;i>=0;i--){
* System.out.printf(arr[i]);
* }
*
* arr[0]=100;
* arr[1]=100;
* .....
* att[30000]=100;
* */

//明天内容
/*数组的复制
* 数组的排序
* 方法
*
* 作业:
* 1.定义8中基本
* */
}

package com.tedu.day01;
/*
* 作业:
* 1,定义8中基本类型的数组类型;
* byte,short,int,long,(默认都是0)float(0.0f),double(0.0d),boolean(false),char(空格)
* 2,同时遍历第一题目中定义的数组;
* 3,课后作业2,3
*
*
* */
public class homework {
public static void main(String arg[]){
/* 作业1:如下代码
* 作业2:如下代码
* 作业3:int[]是一种数据类型,所以元素都是整型的,可以通过下标来访问
* int[] arr=new arr[4];int[] arr=new arr[]{0,0,0,0};
*
* 每个定义三种方法
* */
int[] a=new int[8]; //整形数组
int[] a1=new int[]{0,0,0,0,0,0,0,0};
int[] a2; //声明
a2=new int[8]; //初始化

byte[] b=new byte[8]; //字节数组
byte[] b1=new byte[]{0,0,0,0,0,0,0,0};
byte[] b2;

short[] c=new short[8];
short[] c1=new short[]{0,0,0,0,0,0,0,0};
short[] c2;
c2=new short[8];

long[] d=new long[8];
long[] d1=new long[]{0,0,0,0,0,0,0,0};
long[] d2;
d2=new long[8];

float[] e=new float[8];
float[] e1=new float[]{0.0f,0.0f,0.0f,0.0f,0.0f,0.0f,0.0f,0.0f};
float[] e2;
e2=new float[8];

double[] f=new double[8];
double[] f1=new double[]{0.0d,0.0d,0.0d,0.0d,0.0d,0.0d,0.0d,0.0d};
double[] f2;
f2=new double[8];

boolean[] g=new boolean[8];
boolean[] g1=new boolean[]{false,false,false,false,false,false,false,false};
boolean[] g2;
g2=new boolean[8];

char[] h=new char[8]; //默认值是空格
char[] h1=new char[]{‘0‘,‘0‘,‘0‘,‘0‘,‘0‘,‘0‘,‘0‘,‘0‘};
char[] h2;
h2=new char[8];

Sequence(a,a.length);
System.out.println();
Reverse(a, a.length);
/*
* 两个方法顺序输出,逆序输出
* Sequence顺序
* Reverse
* */
}
/*与其他语言不同,Java不允许程序员选择按值传递还是按引用各个参数,基本类型
* byte,short,int,long,float,double,Boolean,char的变量
* 总是按值传递。就对象而言,不是将对象本身传递给方法,而是将对象的引用
* 或者说对象的首地址传递给方法,引用本身是按值传递的——————也就是说,讲
* 引用的副本传递给方法(副本就是说明对象此时有两个引用了),通过对象的引用,方法可以
* 直接操作改对象(当操作该对象时才能改变该对象,而操作引用时源对象是没有改变的)
*
*
* */
/*
* 第一代方法
* */
public static void Sequence(int[] ch,int j){
for(int i=0;i<j;i++){
System.out.print(ch[i]+",");
}
}
public static void Reverse(int[] ch,int j){
for(int i=j-1;i>=0;i--)
System.out.print(ch[i]+",");
}
/*
* 第二代方法,无论是什么类型的数组,都通过Sequence方法顺序输出
* 逆序通过Reverse输出
* */
}

package com.tedu.day01;

import java.util.Scanner;

public class homework2 {
public static void main(String[] args){
/*
* 整数中大于一的自然数中。只能被他本身和1整除
* */
Scanner scanner=new Scanner(System.in);
System.out.print("请输入质数的范围2--");
int max=scanner.nextInt();
scanner.close();
/*
* 判断是不是质数
* 如果n能被2到n的平方根直接的某个数整除,则说明不是质数,直接进入下一次质数的判断即可
* */
int j=0;
for(int n=2;n<=max;n++){
int m=(int)Math.sqrt(n);
int i=2;
for(;i<=m;i++){
if(n%i==0)
break;
}
if(i>m){
System.out.print(n+" ");
if(++j%10==0)
System.out.println();
}

}
System.out.println("\n共有"+j+"个质数");
}
}

package com.tedu.day01;

public class homework3 {
public static void main(String arg[]){
int l;
int[] a=new int[10];
for(int i=0;i<a.length;i++){
a[i]=(int)(100*Math.random());
}
Sequence(a,a.length);
System.out.println();
l=min(a,a.length);
System.out.println(l);
move(a,a.length,l);

}
public static void Sequence(int[] ch,int j){
for(int i=0;i<j;i++){
System.out.print(ch[i]+",");
}
}

public static int min(int[] ch ,int j){
int b=0;
for(int i=0;i<j;i++){
if(ch[i]<=ch[0])
b=ch[i];
}
return b;

}
/*每个元素向后面一移一位
* */
public static void move(int[] ch ,int j,int min1){
int[] b=new int[j+1];
b[0]=min1;
for(int i=1;i<j+1;i++)
b[i]=ch[i-1];
Sequence(b,b.length);
}

}

时间: 2024-11-06 03:40:54

培训第一天的作业的相关文章

手动脱RLPack壳实战--吾爱破解培训第一课选修作业七

作者:Fly2015 吾爱破解论坛培训第一课选修作业练习的第7题.这个壳没听说过,但是脱起来比较简单,根据ESP定律即可直达光明,Dump出原来的程序. 老规矩,首先对需要脱壳的程序进行查壳处理. 使用DIE查壳的结果,程序加的是RLPack壳并且原程序是用微软编译器编译的. OD载入加壳程序进行调试分析,入口点代码反汇编快照. 看到PUSHAD指令想都不要想,直接ESP定律脱壳.F8单走一步在ESP寄存器上设置硬件写入断点,然后F9运行程序,程序自然断在刚才设置的硬件断点处. 显然JMP指令的

手动脱KBys Packer(0.28)壳实战--吾爱破解培训第一课选修作业五

作者:Fly2015 吾爱破解培训第一课选修作业第5个练习程序,在公司的时候用郁金香OD调试该加壳程序的时候出了点问题,但是回家用吾爱破解版的OD一调试,浑身精神爽,啥问题也没有. 首先使用查壳工具对加壳的程序进行查壳操作. OD载入需要脱壳的程序进行动态调试和分析,加壳程序入口点反汇编快照. F8单步跟踪程序几步,发现了比较熟悉的PUSHAD指令,又可以轻松的使用ESP定律进行程序的脱壳了. F8单步到指令PUSHAD的下一条指令,ESP寄存器右键设置HW Break硬件写入断点,F9畅快的运

手动脱WinUpack 壳实战--吾爱破解培训第一课选修作业六

作者:Fly2015 吾爱破解培训第一课选修作业第6个练习示例程序.不得不重复那句话,没见过这种壳,该壳是压缩壳的一种,相对于压缩壳,加密壳的难度要大一些,特别是IAT表的修复问题上. 首先分别使用DIE和Exeinfo PE对该加壳程序进行查壳的处理. OD载入加WinUpack 壳的程序进行动态调试分析,加壳程序入口点反汇编快照. 想都不用想,看到PUSHAD直接ESP定律脱壳F8单步一步,ESP寄存器右键设置硬件写入断点.F9运行程序,程序自然的断在设置的硬件断点处,如图. 有点惊呆了,硬

手动脱PeCompact 2.20壳实战-吾爱破解培训第一课选修作业四

作者:Fly2015 PeCompact壳又是一个没有听说过的壳,需要脱壳的程序是吾爱破解培训的第一课的选修作业四.最近对脱壳有点上瘾了,当然也遭受了脱壳受挫的无奈,但是比较幸运还是把这个壳给搞了. 对加壳程序进行查壳. 工具DIE显示程序加的是PeCompact壳,并且原来没加壳的程序使用Microsoft Visual C/C++(2008)编写的,这一点对于查找原程序的真实OEP非常有帮助. OD载入加壳的程序进行分析,加壳程序的入口点的汇编代码. F8走了几步,坑啊,写壳的作者在代码中设

手动脱FSG壳实战--吾爱破解培训第一课作业3

作者:Fly2015 对于FSG壳,之前没有接触过是第一次接触,这次拿来脱壳的程序仍然是吾爱破解论坛破解培训的作业3的程序.对于这个壳折腾了一会儿,后来还是被搞定了. 1.查壳 首先对该程序(吾爱破解培训第一课作业三.exe)进行查壳: 很遗憾,这次DIE也不行了,不过没事. 2.脱壳 OD载入该加壳的程序进行分析,下面是入口点的汇编代码: 起初对于该种加壳程序也是比较陌生,但是由于OD使用的还算熟悉,以及结合该加壳程序获取函数的API调用地址的特点,很快发现了该程序的关键点汇编: 于是在地址0

手动脱UPX 壳实战--吾爱破解培训第一课作业1

作者:Fly2015 Windows平台的加壳软件还是比较多的,因此有很多人对于PC软件的脱壳乐此不彼,本人菜鸟一枚,也学习一下PC的脱壳.要对软件进行脱壳,首先第一步就是 查壳,然后才是 脱壳. 推荐比较好的查壳软件: PE Detective .Exeinfo PE.DIE工具. 需要脱壳的程序是吾爱破解论坛的windows逆向破解培训http://www.52pojie.cn/thread-378612-1-1.html第一课的作业题1. 1.对该程序(吾爱破解培训第一课作业一.exe)进

【连载】创业能力培训第一课总结

创业能力培训第一课 总结 1.三方面:项目.资金.场地 2.政府支持一址多照 3.政府12333可以预约专家辅导 4.投资区别:天使投资(一次性).风险投资(分批) 5.通过握手判断人 5.1.手背.手心厚:家境好 5.2.手暖.手热:热心人,不推诿 5.3.手冷,手凉:冷酷人,意志力坚强 5.4.手硬:冷酷人,意志力坚强 6.创业计划书: 6.1.封面 6.2.保密要求 6.3.目录 6.4.正文 6.5.附录 合作: 1.为名而来,为利而去 2.性格互补,技能互补 版权声明:本文为博主原创文

信管师培训之第一节课作业(信息化基础、信息系统服务管理)

第1章 信息化基础知识 信息的概念 存在两个基本的层次,即本体论和认识论两个层次. 本体论信息:就是事物的运动状态和状态变化方式的自我表述.通俗的说"事物原本是什么,它就是什么.". 认识论信息:就是主体对于该事物的运动状态和以及状态变化方式的具体描述,包括对于它的"状态和方式"的形式.含义和价值的描述.(按薛老师的说法:由于我对某事物认识的不断深入,逐渐发现它的本质.) 认识论信息和本体论信息是相通的,他们共同的核心都是"事物的运动状态和状态变化的方式&

手动脱NsPacK壳实战--吾爱破解培训第一课作业2

作者:Fly2015 这里脱壳的程序是吾爱破解培训的作业2,相较于作业1稍微要强一点,但是只要掌握了脱壳的ESP定律,脱这个Nspack壳并不难,不过还是蛮有意思的. 1.使用查壳软件对加壳的程序进行查壳. 使用PE Detective查壳的结果: 使用DIE查壳的结果: 2.OD载入程序进行脱壳操作 OD载入以后,被加壳程序的入口点的汇编代码,如图.很显然,加壳程序载入OD以后,发现有3个pushad指令,因此在进行程序脱壳的时候,根据ESP定律需要下3个硬件断点. 根据该加壳程序载入OD的汇