溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

張孝祥java精英培訓(xùn)班的入學(xué)測試題

發(fā)布時(shí)間:2020-08-19 00:54:56 來源:ITPUB博客 閱讀:196 作者:freeatom 欄目:編程語言

java試題1:
請?jiān)谝粋€(gè)類中編寫一個(gè)方法,這個(gè)方法搜索一個(gè)字符數(shù)組中是否存在某個(gè)字符,如果存在,則返回這個(gè)字符在字符數(shù)組中第一次出現(xiàn)的位置(序號從0開始計(jì)算),否則,返回-1。要搜索的字符數(shù)組和字符都以參數(shù)形式傳遞傳遞給該方法,如果傳入的數(shù)組為null,應(yīng)拋出IllegalArgumentException異常。在類的main方法中以各種可能出現(xiàn)的情況測試驗(yàn)證該方法編寫得是否正確,例如,字符不存在,字符存在,傳入的數(shù)組為null等。
java試題2:
編寫一個(gè)程序,這個(gè)程序把一個(gè)整數(shù)數(shù)組中的每個(gè)元素用逗號連接成一個(gè)字符串,例如,根據(jù)內(nèi)容為[1][2][3]的數(shù)組形成內(nèi)容為"1,2,3"的字符串。
java試題3:
編寫一個(gè)程序,它先將鍵盤上輸入的一個(gè)字符串轉(zhuǎn)換成十進(jìn)制整數(shù),然后打印出這個(gè)十進(jìn)制整數(shù)對應(yīng)的二進(jìn)制形式。十進(jìn)制數(shù)轉(zhuǎn)二進(jìn)制數(shù)的方式是用這個(gè)數(shù)除以2,余數(shù)就是二進(jìn)制數(shù)的最低位,接著再用得到的商作為被除數(shù)去除以2,這次得到的余數(shù)就是次低位,如此循環(huán),直到被除數(shù)為0為止。其實(shí),只要明白了打印出一個(gè)十進(jìn)制數(shù)的每一位的方式(不斷除以10,得到的余數(shù)就分別是個(gè)位,十位,百位),就很容易理解十進(jìn)制數(shù)轉(zhuǎn)二進(jìn)制數(shù)的這種方式。這個(gè)程序要考慮輸入的字符串不能轉(zhuǎn)換成一個(gè)十進(jìn)制整數(shù)的情況,并對轉(zhuǎn)換失敗的原因要區(qū)分出是數(shù)字太大,還是其中包含有非數(shù)字字符的情況。
java試題4:
請用移位的方式打印出一個(gè)十進(jìn)制整數(shù)的十六進(jìn)制形式。提示:按每4個(gè)二進(jìn)制位對整數(shù)進(jìn)行移位和去高位處理,得到的結(jié)果就是十六進(jìn)制數(shù)的一位,然后按下面三種方式之一(作為作業(yè),要求每種方式都用到)計(jì)算出一個(gè)十六進(jìn)制數(shù)值對應(yīng)的十六進(jìn)制形式:
1)0-9之間的數(shù)值直接加上字符'0',9以上的數(shù)值減去10以后再加上字符'A'
2)定義一個(gè)數(shù)組,其中包含0-F這些字符,然后用要計(jì)算的數(shù)值作為數(shù)組的索引號,即可獲得其對應(yīng)的十六進(jìn)制數(shù)據(jù)。
3)Character.forDigit靜態(tài)方法可以將一個(gè)十六進(jìn)制的數(shù)字轉(zhuǎn)變成其對應(yīng)的字符表示形式,例如,根據(jù)數(shù)值15返回字符'F'。
java試題5:
請結(jié)合我們的《javascript網(wǎng)頁開發(fā)》一書中介紹的正則表達(dá)式與String.split方法,從"http://www.it315.org/get.jsp?user=zxx&pass=123"這樣的URL地址中提取出每個(gè)參數(shù)的名稱和值。這里要注意在正則表達(dá)式中要對?進(jìn)行轉(zhuǎn)義處理.
java試題6:
編寫一個(gè)程序,用于實(shí)現(xiàn)文件的備份,程序運(yùn)行時(shí)的命令語法為:
java MyCopy
java試題7:
請編寫一個(gè)字符輸入流的包裝類,通過這個(gè)包裝類對底層字符輸入流進(jìn)行包裝,讓程序通過這個(gè)包裝類讀取某個(gè)文本文件(例如,一個(gè)java源文件)時(shí),能夠在讀取的每行前面都加上有行號和冒號。
java試題8:
在javascript視頻的第七講的第一個(gè)片斷,也就是網(wǎng)站上提供的免費(fèi)片斷《正
則表達(dá)式的應(yīng)用》中,講到了將一個(gè)保存有ip地址與地區(qū)對照關(guān)系的文本文件
導(dǎo)入到數(shù)據(jù)庫時(shí),應(yīng)該將其中的某些空格替換成逗號(,),即對于如下格式的
文本文件內(nèi)容:
起始IP 結(jié)束IP 地區(qū)
---------------------------------------------------------------
61.54.231.245 61.54.231.245 河南省安陽市 新世紀(jì)網(wǎng)吧
61.54.231.246 61.54.231.246 河南省安陽市 未知地區(qū)
61.54.231.9 61.54.231.247 河南省安陽市 紅日網(wǎng)吧
61.54.231.248 61.54.231.248 河南省安陽市 安陽師范學(xué)院
61.54.231.249 61.54.231.249 河南省安陽市 黑蜘蛛網(wǎng)吧(師范
學(xué)院附近)
應(yīng)轉(zhuǎn)換成下面的這種格式:
61.54.231.245,61.54.231.245,河南省安陽市 新世紀(jì)網(wǎng)吧
61.54.231.246,61.54.231.246,河南省安陽市 未知地區(qū)
61.54.231.247,61.54.231.247,河南省安陽市 紅日網(wǎng)吧
61.54.231.248,61.54.231.248,河南省安陽市 安陽師范學(xué)院
61.54.231.249,61.54.231.249,河南省安陽市 黑蜘蛛網(wǎng)吧(師范學(xué)院
附近)
在視頻教程中,講解了使用UltraEdit的正則表達(dá)式替換功能來完成上面的轉(zhuǎn)
換。從jdk1.4開始,java語言中提供用于處理正則表達(dá)式的相關(guān)API類和方法,
在jdk幫助文檔中,查看String類的replaceAll方法,可以看到該方法就支持
類似UltraEdit的正則表達(dá)式替換功能。
任務(wù):
閱讀String.replaceAll方法的幫助,以及它提供的相關(guān)超鏈接,了解該方法的
用法后,編寫一個(gè)java程序來自動(dòng)實(shí)現(xiàn)上面的正則表達(dá)式替換,將a.txt替換
后的結(jié)果保存到b.txt文件中。另外,我們在實(shí)現(xiàn)IT315網(wǎng)站的ip地區(qū)查詢系
統(tǒng)時(shí),使用的是類似如下的sql語法:
select 地區(qū) from ip表 where 用戶ip>起始IP and 用戶ip<結(jié)束ip
通過這條sql語句就可以查詢出用戶ip所對應(yīng)的地區(qū)結(jié)果。由于用戶ip與起始
ip和結(jié)束ip的比較屬于字符串比較,如果用戶ip為9.1.1.1,那么它與
61.54.231.245比較的結(jié)果就是前者大于后者,因?yàn)橛脩鬷p的第一個(gè)字符“9”
大于61.54.231.245中的第一個(gè)字符“6”。
現(xiàn)在請你想出一種解決辦法,讓上面的sql語句能夠返回正確結(jié)果。提示:將
9.1.1.1變化成009.001.001.001后與061.054.231.245進(jìn)行比較就可以了。
請按這種思路在你的程序中增加進(jìn)行這種改變的正則表達(dá)式替換。注意,起始
IP和結(jié)束IP的四個(gè)字段都有可能是1位、2位或3位數(shù)字,例如,61.5.23.1。
在源程序中,要對程序代碼的功能進(jìn)行注釋說明,提交你編寫的程序給我們時(shí),
請附帶該程序的使用說明。

這套題,挺有意思的,比一般的培訓(xùn)機(jī)構(gòu)的題都要難,我當(dāng)時(shí)本想去培訓(xùn)的,就都做完了,題目中涉及到的一些東西可能大家有用到的時(shí)候,我把我的答案公布下:
第1題:
import java.io.*;
public class Search
{
static char ch;
private static int sh(char ch,char[] l)
{
if (l==null)
throw new IllegalArgumentException();
int result = -1;
for(int i=0;i {
if(ch==l[i])
{
result=i;
break;
}
}
return result;
}

public static void main(String[] args) throws Exception
{
String str="";//用來存儲原數(shù)組中的元素
//char[] charstr={'g','a','d'};
char[] charstr=null;
if (charstr!=null)
{
for (int i = 0; i < charstr.length; i++)
{
str = str + charstr[i];
}
}
System.out.println("The Source Text is:n"+str);
System.out.print("Please input a word to Search:");
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader br=new BufferedReader(isr);
ch=(char)br.read();
br.close();
System.out.println(sh(ch,charstr));
}
}
第2題:
public class Comma
{
private static String change(int[] group)
{
String result = "";
char buf=',';
try
{
for(int i=0;i {
result=result+group[i];
if (i {
result = result + buf;
}
}
}
catch (RuntimeException e)
{
System.out.println("原始數(shù)組不能為null");
}
return result;
}

public static void main(String[] args)
{
//int[] group={1,2,3,4,5,6};
int[] group=null;
String result=change(group);
System.out.println(result);
}
}
第3題:
import java.io.*;
public class Dicemal
{
public static void main(String[] args) throws Exception
{
int shang=0,yu;
boolean flag=false;
System.out.println("請輸入一個(gè)數(shù)字(最大值為<"+Integer.MAX_VALUE+"):");
InputStream is = System.in;
InputStreamReader isr=new InputStreamReader(is);
BufferedReader br=new BufferedReader(isr);
String str=br.readLine();
char[] ch=new char[str.length()];
str.getChars(0, str.length(), ch, 0);
for(int a=0;a {
if(!Character.isDigit(ch[a]))
{
System.out.println("有非數(shù)字字符");
System.exit(0);
}
}
try
{
shang=Integer.parseInt(str);
flag=true;
}
catch(Exception e)
{
System.out.println("數(shù)字過大");
}
str="";
if (flag)
{
while (shang != 0)
{
yu = shang % 2;
shang = shang / 2;
str = yu + str;
}
}
System.out.println(str);
}
}
第4題:
public class Hex
{
public static void main(String[] args)
{
int s=777777777;
int h=0x0000000f;
int m=0;
int[] buf=new int[8];
System.out.println(s);
for(int i=0;i<8;i++)
{
m=s&h;
s=s>>4;
buf[i]=m;
}
System.out.println("1st:"+first(buf));
System.out.println("2nd:"+second(buf));
System.out.println("3rd:"+third(buf));
}

private static String first(int[] buf)
{
String f="";
char c=0;
char a=0;
for(int i=0;i<8;i++)
{
if(buf[i]<=9)
{
a=(char) ('0'+buf[i]);
f=a+f;
}
else
{
c=(char) ((buf[i]-10)+'A');
f=c+f;
}
}
return f;
}

private static String second(int[] buf)
{
String s="";
char[] ch={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
for(int i=0;i<8;i++)
{
s=ch[buf[i]]+s;
}
return s;
}

private static String third(int[] buf)
{
String t="";
for(int i=0;i<8;i++)
{
t=Character.forDigit(buf[i], 16)+t;
}
return t;
}
}
第5題:
package regex;
public class Regex
{
public static void main(String[] args)
{
String strMar="http://www.it315.org/get.jsp?user=zxx&pass=123";
String[] str0,str1,str2;
str0=strMar.split("?");
System.out.println(str0[1]);
str1=str0[1].split("=");
str2=str1[1].split("&");
System.out.println("name1="+str1[0]+'n'+"value1="+str2[0]+'n'+"name2="+str2[1]+'n'+"value2="+str1[2]);
}
}
第6題:
import java.io.*;
public class Copy
{
public static void main(String[] args)
{
if(args.length<2)
{
System.out.println("請按java MyCopy 格式輸入。");
System.exit(0);
}
File Source=new File(args[0]);
File Dest=new File(args[1]);
fileIO(Source,Dest);
}

private static void fileIO(File Source,File Dest)
{
byte[] buf=null;
try
{
FileInputStream fis=new FileInputStream(Source);
BufferedInputStream bis=new BufferedInputStream(fis);
FileOutputStream fos=new FileOutputStream(Dest);
BufferedOutputStream bos=new BufferedOutputStream(fos);
buf=new byte[1024];
int len=0;
while((len=bis.read(buf))!=-1)
{
bos.write(buf,0,len);
}
bis.close();
bos.close();
}
catch (Exception e)
{
System.out.println("文件復(fù)制失敗,請檢查。");
System.exit(0);
}
}
}
第7題:
package stream;
import java.io.*;
public class FileReader
{
public FileReader(File f)
{
try
{
FileInputStream fis=new FileInputStream(f);
InputStreamReader isr=new InputStreamReader(fis);
BufferedReader br=new BufferedReader(isr);
String strLine = "";
int i=0;
while((strLine=br.readLine())!=null)
{
i++;
strLine=i+":"+strLine;
System.out.println(strLine);
}
br.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}

package stream;
import java.io.File;
class Test
{
public static void main(String[] args)
{
File f=new File("1.txt");
new FileReader(f);
}
}
第8題:
package ip;
import java.io.*;
import java.util.regex.*;
public class Ip
{
private static void fileIO(File f)
{
String strLine;
@SuppressWarnings("unused")
String line=System.getProperty("line.separator");//換行符
try
{
FileInputStream fis=new FileInputStream(f);
InputStreamReader isr=new InputStreamReader(fis);
BufferedReader br=new BufferedReader(isr);
FileOutputStream fos=new FileOutputStream("c://b.txt");
OutputStreamWriter osw=new OutputStreamWriter(fos);
BufferedWriter bw=new BufferedWriter(osw);
Pattern p = Pattern.compile("((2[0-4]d|25[0-5]|[01]?dd?).){3}(2[0-4]d|25[0-5]|[01]?dd?)");
//正則表達(dá)式匹配分別是(200-249|250-255|001-199)
Matcher m;
while((strLine=br.readLine())!=null)
{
strLine=strLine.replaceAll("(?<=d)s+",",");//加逗號
m=p.matcher(strLine);//加載第一行
while(m.find())
{
String buf=m.group();
strLine=m.replaceAll(change(buf));//以"."分割成數(shù)字,然后分別補(bǔ)零,再合并
System.out.println(strLine);
bw.write(strLine);//輸入一行,不包括換行符
bw.write(line);//輸入行分割符
}

}
br.close();
bw.close();
}
catch (FileNotFoundException e)
{
System.out.println("原始文件未找到");
}
catch (IOException e)
{
e.printStackTrace();
}

}

private static String fill(String str)
{
while(str.length()<3)//不足的數(shù)字補(bǔ)零
{
str='0'+str;
}
return str;
}

private static String change(String buf)
{
String temp = "";
String ret = "";
String[] str=buf.split(".");//以"."分割,存入數(shù)組
ret = fill(str[0]);//第一個(gè)不需要在前面加"."
for(int i=1;i {
temp = fill(str[i]);//補(bǔ)零
ret = ret + "." + temp;//合并
}
return ret;
}
public static void main(String[] args)
{
File f=new File("c://a.txt");//讀原始文件
fileIO(f);
}
}

[@more@]
向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI