java語言基礎
一、java語言基礎概念
1.Java是低級語言還是高級語言??
答:高級語言。
2.Java是面向對象的程序設計語言嗎
答:是。
3. Java是編譯型的計算機語言還是解釋型的計算機語言。
答:
一種說法:Java是編譯型的。因為所有的Java代碼都是要編譯的,.java不經(jīng)過編譯就無法執(zhí)行。
另一種說法:Java是解釋型的。因為java代碼編譯后不能直接運行,它是解釋運行在JVM上的,所以它是解釋型的。
? ?對于C和C++,它們經(jīng)過一次編譯之后,可以由操作系統(tǒng)直接執(zhí)行,所以它們是編譯型語言。而Java不一樣,它首先由編譯器編譯成.class(字節(jié)碼)文件,然后在通過JVM從.class文件中讀一行解釋執(zhí)行一行,所以它是解釋型的語言。也正是由于java對于多種不同的操作系統(tǒng)有不同的JVM,所以實現(xiàn)了真正意義上的跨平臺。
所以Java的執(zhí)行經(jīng)歷了編譯和解釋的過程,是一種先編譯,后解釋執(zhí)行的語言,不可以單純歸到編譯性或者解釋性語言的類別中。
?
4. Java語言的程序設計包含哪3個步驟
答:編輯源程序、生成字節(jié)碼、解釋運行字節(jié)碼。
5.Java源程序文件的后綴是什么。
答:.java
6. Java源程序經(jīng)編譯后生成什么文件 其后綴是什么
答:.class.
7. Java程序有哪兩類
答:java程序可以分為兩類:java application 和java applet。 前者是完整的應用程序,需要獨立的解釋器來解釋運行;后者則是嵌在網(wǎng)頁中的非獨立程序,由瀏覽器所自帶的java解釋器來解釋運行。
8.類的定義由哪兩部分組成
答:類由兩部分組成,類名和類體。
9.方法的定義由哪兩部分組成
答:方法的定義包括兩個部分:方法的聲明和方法體。
10.一個Java源程序中可以有多個公共類(主類)嗎
答:
? ? ?一個編譯單元(java文件)可以存在多個類,在編譯時產(chǎn)生多個不同的.class文件,.class文件便是程序運行的數(shù)據(jù)來源。java將public類作為每個編譯單元的數(shù)據(jù)接口,只能有一個,不然不能處理存在多個類的java文件。
拓:
? ? ? ?一個包里確實可以有數(shù)量不限的public類,但是一個文件里只能有一個public類,如果想要public多個類,就要新開一頁代碼:在同一個包下新建類,然后在那一頁代碼又可以public一個類了
11.一個Java源程序中可以有多個類嗎 若有多個類時,程序文件名是什么。
答:如果源文件中有多個類,那么只能有一個類是public類;如果有一個類是public類,那么源文件的名字必須與這個類的名字完全相同,擴展名是.java。 2、如果源文件中沒有public類,那么源文件的名字可以任意取。
12.一個Java Applet源程序的主類能有多個父類嗎
答:
? ? ? Java中一個類只能有一個直接父類,但是它可以實現(xiàn)多個接口。因此,如果一個Java Applet的主類需要繼承多個類的功能,則可以使用接口來實現(xiàn)這種多重繼承的效果。具體實現(xiàn)方式是在類聲明時使用關鍵字
implements
,后面跟隨著需要實現(xiàn)的接口名稱,多個接口之間用逗號分隔。例如:復制public class MyApplet extends Applet implements ActionListener, MouseListener { // 類的定義 }
在上面的例子中,
MyApplet
類直接繼承自Applet
類,同時實現(xiàn)了ActionListener
和MouseListener
兩個接口,從而獲得了這兩個接口所定義的方法。
13. Java應用程序(Application)的主類的類頭應如何寫 它的主方法的方法頭應如何寫 Application 的入口在哪。
答:
Java應用程序(Application)的主類的類頭應該寫成這樣:
public class Main { // class body }
其中,
Main
是類的名稱,類名的首字母通常大寫,類名后面要跟著一對花括號{}
,類的內容寫在花括號里面。Java應用程序的主方法的方法頭應該寫成這樣:
public static void main(String[] args) { // method body }
其中,
main
是方法的名稱,方法名全部小寫,方法名后面要跟著一對圓括號()
,圓括號里面可以包含參數(shù),這里的參數(shù)是一個字符串數(shù)組String[] args
。public
表示這個方法可以被其他類訪問,static
表示這個方法是類方法,不需要創(chuàng)建實例即可調用,void
表示這個方法沒有返回值。Java應用程序的入口在主方法中,也就是在
main
方法中編寫應用程序的代碼。當我們在命令行中執(zhí)行Java應用程序時,會自動調用main
方法作為程序的入口點。
14.Java應用程序(Application)的主類中一定要有主方法(main)嗎
答:
? ? ? ?Java 應用程序是由若干類和接口組成的,為了使Java 應用程序能夠運行,至少要有一個類含有main()主方法,因為main()主方法是Java 應用程序的入口點,Java 應用程序就是從這里開始運行的,我們把含有main()主方法的類稱為Java 應用程序的主類。
15. Java小程序(Applet)的主類的類頭應如何寫 小程序在什么環(huán)境下運行。
答:
Java小程序(Applet)的主類的類頭應該如下所示:
import java.applet.Applet; import java.awt.Graphics; public class MainApplet extends Applet { // Applet代碼 }
其中,
MainApplet
為主類名,需要繼承java.applet.Applet
類,同時需要重寫init()
和paint()
方法來編寫小程序的邏輯。? ? ? ?Java小程序運行在Web瀏覽器中,需要將Java Applet嵌入到HTML頁面中并通過瀏覽器打開HTML頁面來運行小程序。在運行Java小程序之前,需要確保瀏覽器支持Java插件,并且需要安裝JRE(Java Runtime Environment)環(huán)境。
16.Java小程序(Applet)的主類的父類必須是類Applet嗎?
答:是的
17.Java中的的字符使用什么編碼。
答:java中的字符就是指char類型的變量,無論中文還是英文,都是占2個字節(jié),因為都是用Unicode編碼,一個Unicode編碼就是16位,也就是2個字節(jié)。
18. 在Java語言中,將源代碼翻譯成字節(jié)碼時產(chǎn)生的錯誤稱為編譯錯誤,而將程序在運行中產(chǎn)生的錯誤稱為運行錯誤。
19. 為了使包sos中的所有類在當前程序中可見,可以使用的語句是.
A)import sos.*;? ? ? ? ? ? ? ? ? ? ??B)package sos.*;
C)sos import;? ? ? ? ? ? ? ? ? ? ? ? D)sos package;
20. 在 Applet 的坐標系中,(0,0) 代表輸出窗口_左上_角的象素點
21.?
二、數(shù)據(jù)類型
1.以下的選項中能正確表示Java語言中的一個整型常量的是( B ).
A) 12.? ? ? ? ? ??? B) -20? ? ? ? ? ? ? ? ?C) 1,000? ? ? ? ? ? ? ? ? D) 4 5 6
答:
1000和456可能是字符型,12.0是浮點型
2.下列的變量定義中,錯誤的是( A).
A) int 6_a; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ?B) float a;
C) int i=Integer.MAX_VALUE; ? ? ? ? ? ? ? ? D) static int i=100;
答:定義變量的規(guī)則:數(shù)字不打頭
3.下列的變量定義中,錯誤的是(A).
A) int a;b;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??B) float a,b1=1.23f;
C) char ch1='d',ch2='\''; ? ? ? ? ? ? ? ? ? D) public int i=100,j=2,k;
答:???????
?
???????
4.下列的變量定義中,錯誤的是(D).
A) int _a=123;? ? ? ? ? ? ? ? ?? B) long j=12345678900L;
C) int m,n;? ? ? ? ? ? ? ? ? ?? ? D) static i=100;
5.下列的變量定義中,正確的是(D).
A) boolean b1="true";? ? ? ? ? ? ?? ? ?B) float x=6.6;
C) byte i=200; ? ? ? ? ? ? ? ?? ? ? ? ? ?? D) double y;
6.以下字符常量中不合法的是(C).
A) '@' B) '&' C) "k" D) '整'
?答:
字符常量: 一個用單引號括起來的單個字符(或字符轉義序列或三字母詞).在Java中,字符常量必須使用單引號括起來,表示單個字符。
7.以下的選項中能正確表示Java語言中的一個整型常量的是( A ).
A) Integer.MAX_VALUE B) 8.8F C) 2.0E? ?16 D)true
答:8.8F是浮點型,2.0E是2.0E在Java中表示的是浮點型數(shù)據(jù),具體來說是雙精度浮點數(shù)(double)。true是boolean型
8.下列最終屬性(常量)i 的定義中,正確的是(C).?
A) static final double i;? ? ? ? ? ? ? ? ? ?? B) abstract final int i=8;
C) final double i=3.14159; ? ? ? ? ? ? ? ? ? ??D) float i=1.2f;
答:???????
9.以下的選項中能正確表示Java語言中的一個double型常量的是(C).
A) Float.MIN_VALUE? ? ? ? ? ? ? ? ? ? ??B) 1.8e-6F ? ? ? ? ? ? ? ? ? ??C) 2.0 ? ? ? ? ? ? ? ? ? ??D)'abcf'
答:A是folat,C不一定 , D 是字符常量
10.以下的變量定義語句中,合法的是(C).
A) float $_*5= 3.4F; B) byte b1= 15678;
C) double a =Double. MAX_VALUE; D) int _abc_ = 3721L;
答:A:命名問題,B越界,D,L同B
11.以下字符常量中不合法的是(C).
A) '|'? ? ? ? ? ? ? ? ? ?? B) '\'' ? ? ? ? ? ? ? ? ? ??C) "\n" ? ? ? ? ? ? ? ? ? ??D) '我'
答:
12.定義初值為10的10次方的長整型變量 var 的語句是:_________________.
答:(long var=10000000000L;或? ?long var=(long)1e10;)
13. Java語言中的浮點型數(shù)據(jù)根據(jù)數(shù)據(jù)存儲長度和數(shù)值精度的不同,進一步分為哪兩種具體類型,各占二進制的多少位.
答:(float 32位,double 64位)。
15.在Java語言中,邏輯常量只有哪兩個值?
答:(true,false)。
16.字符串 "\'a\'" 的長度是幾(即有幾個字符)
答:(3個字符)
17. Java語言中的邏輯變量可以和整型變量相互強制轉換嗎 ?
答:(不能)
18. 在程序中可對用final修飾的變量的值進行更改?
答:final修飾的變量不能被修改,一般視為常量。
三、綜合演練
1.已定義a為int類型的變量.以下選項中,合法的賦值語句是( B ).
A) a +1=?=2; ? ? ? ? B) a+=a*6; ? ? ? ? C) a=8.8f; ? ? ? ?D) int a=8;
2.以下選項中的變量都已正確定義,不合法的表達式是(C ).
A) a >= 4 = = b3; ? ? ? ?B)t=!false; ? ? ? ?C)t=(true|false); ? ? ? ?D)t=(2=?=3)??true:false;
7.以下變量均已正確定義并賦值,下面符合Java語言語法的賦值語句是(A ).
A) m = n>=5; ? ? ? ?B) m = k % c=h+y;
C) j=t+ % 100; ? ? ? ? D) j = y > 2= x + 3;
答:
8.設 i, j, k, m為已賦值的 int 型變量,下列表達式的結果屬于邏輯值的是( A).
A) i==k & j+k >=m? ? ? ?B) i+k? ? ? ? ? ? ? ? C) m++? ? ? ? ? ? ? ? ?D) m=i+j
答:
?屬于邏輯值:常見正確答為:==,!=;&,|,>=,>,<=等
9.設a,b,c,d 為已賦值的 int 型變量,下列表達式的結果屬于非邏輯值的是(C ).
A)a!=b & c%d =c+d? ? ? ? ? B) a++ = =a+b+c+d? ? ? ? ? ?C) ++a*b--+d? ? ? ?D) a+b>=c+d
10.變量a定義為int類型.以下選項中,合法的賦值語句是( B ).
A) a +1==2;? ? ? ? ??B) a+=1;? ? ? ? ? ? ? ? C) a=8.8f;? ? ? ? ? D) a=new int(8);
常見答案:類型,語法
語法指的是( 左邊的操作數(shù)必須是變量,不能是常量或表達式)?
A.注這種寫法也是錯的,==也錯了n+1=3;//Variable expected;
類型指的是(不能給小的賦值大的類型)
int a=8.4;// Incompatible types. Found: 'double', required: 'int' byte b=128;//Incompatible types. Found: 'int', required: 'byte'
11.若有定義int x = 13;則執(zhí)行完語句x %= 8; 后,x的值是(C ).
A) 0? ? ? ? ? ? B) 1? ? ? ? ? ? ? ? C) 5? ? ? ? ? D) 8
12.以下選項中,合法的賦值語句是( B ).
A) a = = 1; ? ? ? ? ? B) ++ i; ? ? ? ? ?C) a=a + 1= 5; ? ? ? ? ? D) !(++a!=b- -);
13.若所用變量都已正確定義,以下選項中,非法的表達式是( C).
A) a != 4||b= =1 ? ? ? ? ?B) 'a' % 3 ? ? ? ? ?C) 'a' = 1/2 ? ? ? ? ?D) 'A' + 32
int a=1,b=3;
boolean o= a != 4||b==1 ;
char g= 'a' % 3;
char aaa= 'a' = 1/2 ;//Variable expected
char aa='A' + 32;
14.若有定義int a = 2;則執(zhí)行完語句 a -= a * a; 后,a的值是( C).
A) 0 ? ? ? ? ?B) 4 ? ? ? ? ? C) -2 ? ? ? ? ?D) –4
15.現(xiàn)有一變量聲明為boolean aa;下面賦值語句中正確的是( A ).
A) aa=false; ? ? ? ? ?B) aa=False; ? ? ? ? ? C) aa="true"; ? ? ? ? ?D) aa=0;(C語言這個是對的)
16. 下列程序段執(zhí)行后 b3 的結果是(D).
boolean b1=true, b2=true, b3;
b3= !b1 b1 :!b2;
A) 0 ? ? ? ? ?B) 1 ? ? ? ? ?C) true ? ? ? ? ?D) false
17. 設有定義 int i=123; long j=456; 下面賦值不正確的語句是(D).
A) j=i; ? ? ? ? ?B) j=(long)i; ? ? ? ? ?C) i=(int)j; ? ? ? ? ? D) i=j;
18.若以下變量均已正確定義并賦值,下面符合Java語言語法的語句是( A).
A)b=a!=7; ? ? ? ? ? B)a=7+b+c=9; ? ? ? ? ?C)i=12.3* %4; ? ? ? ? ?D)a=a+7=c+b;
19.下列程序段執(zhí)行后t5的結果是(B ).
int t1 = 9, t2 = 11, t3=8;
int t4,t5;
t4 = t1 > t2 t1 : t2+ t1;
t5 = t4 > t3 t4 : t3;
A) 8 ? ? ? ? ?B) 20 ? ? ? ? ?C) 11 ? ? ? ? ? D) 9
20.執(zhí)行下面程序段后,b, x, y的值分別是( D).
int x=6,y=8;
boolean b;
b=x>y&&++x==--y;
A)true , 6, 8 ? ? ? ? ? B)false , 7, 7 ? ? ? ? ?C)true, 7, 7 ? ? ? ? ?D)false, 6, 8
21.執(zhí)行下列程序段后,m,x,y的值分別是( B).
int x=2,y=4;
boolean m;
m=++x>y--;
A)true , 2,4 ? ? ? ? ?B)false , 3,3 ? ? ? ? ?C) true, 3,3 ? ? ? ? ?D) false, 2,4
22.下面語句序列執(zhí)行后,a的值是(D ).
int a=13; a%=a/5;
A) 3 ? ? ? ? ? ? ? ? B) 13 ? ? ? ? ? ? ? ? C) 169 ? ? ? ? ? ? ? ? D) 1
23.設x,y,max,min均為int型變量,x,y已賦值.用三目條件運算符求x,y的最大值和最小值,并分別賦給變量max和min,這兩個賦值語句分別是? max=x>y?x:y和min=x>y?y:x;.
24.
import?java.awt.Graphics;
import?java.applet.Applet;
public?class?Applet1?extends?Applet?
{
public?void?paint(?Graphics?g?)?
{
int?c1,?c2;
boolean?b1,?b2;
c1?=?5;
c2?=?7;
b1?=?false;
b2?=?true;
g.drawString(?"b1和b2相與的結果是:"+?(?b1?&?b2?),?25,?25?);
g.drawString(?"b1和b2相或的結果是:"+?(?b1?|?b2?),?25,?45?);?
g.drawString(?"c1="?+?++c1,?25,?85?);
g.drawString(?"++c1?==?--c2為"?+?(?++c1?==?--c2?),?25,?105?);
}
}
問題: 1)程序執(zhí)行后共輸出幾行 (4行)
2)輸出結果是什么 ()
答:
四、條件,分支語句
1.下列語句序列執(zhí)行后,m 的值是( C).
int a=10, b=3, m=5;
if( a==b ) m+=a; else m=++a*m;
A) 15? ? ? ? ? ? ? ? B) 50 ? ? ? ? ? ? ? ? C) 55 ? ? ? ? ? ? ? ? D) 5
關于解題技巧:
? ?先判斷if能成立否,如果能執(zhí)行后面一句(語句塊),否則跳過后面一句(或者語句塊);
while同理,但do while()不管條件成立與否都要執(zhí)行一次。其他注意一下,++前置:是先加后運算,后置是:先運算,再加;Switch語句:注意:case如果沒有break所以會一直執(zhí)行到default.
2.下列語句序列執(zhí)行后,k 的值是(B ).
int i=4,j=5,k=9,m=5;
if(i>j||m<k++) k++; else k--;
A) 5 ? ? ? ? ? ? ? ? B) 10 ? ? ? ? ? ? ? ? C) 8 ? ? ? ? ? ? ? ? D) 9
3.下列語句序列執(zhí)行后,x 的值是( D ).
int a=2, b=4, x=5;
if( a<--b ) x*=a;
A) 5 ? ? ? ? ? ? ? ? B) 20? ? ? ? ? ? ? ? C) 15 ? ? ? ? ? ? ? ? D) 10
4.下列語句序列執(zhí)行后,b 的值是( B).
int a=2, b=4;
if( a < - - b ) a*=a;
A) 5? ? ? ? ? ? ? ? B) 3 ? ? ? ? ? ? ? ? C) 15 ? ? ? ? ? ? ? ? D) 10
5.下列語句序列執(zhí)行后,m 的值是( D ).
int i=9, j=8, m=10, n=9;
if( i<j||m--<n)? i++;else? j--;
A) 6? ? ? ? ? ? ? ? B) 7? ? ? ? ? ? ? ? C) 8? ? ? ? ? ? ? ? D) 9
6.下列語句序列執(zhí)行后,x 的值是( A ).
int a=3, b=4, x=5; if (+ + a<b)x=x+1;
A) 5? ? ? ? ? ? ? ? B) 3? ? ? ? ? ? ? ? C) 4? ? ? ? ? ? ? ? D) 6
7.下列語句序列執(zhí)行后,ch1 的值是( B ).
char ch1='A',ch2='W';
if(ch1 + 2 j||m
A) 12? ? ? ? ? ? ? ? B)11? ? ? ? ? ? ? ? C) 10? ? ? ? ? ? ? ? D) 9
10.下列語句序列執(zhí)行后,k 的值是(C ).
int i=10, j=18, k=30;
switch( j - i )
{
case 8 : k++;
case 9 : k+=2;
case 10: k+=3;
default : k/=j;
}
A) 31? ? ? ? ? ? ? ? ? B) 32? ? ? ? ? ? ? ? C) 2? ? ? ? ? ? ? ? D) 33
11.下列語句序列執(zhí)行后,r 的值是( C).
char ch='8'; int r=10;
switch( ch+1 )
{
case '7': r=r+3;
case '8': r=r+5;
case '9': r=r+6; break;
default: r=r+8;
}
A) 13? ? ? ? ? ? ? ? ? ? ? ?B) 15? ? ? ? ? ? ? ? ? ? ? ? C) 16? ? ? ? ? ? ? ? ? ? ? ? D) 18
12.若a和b均是整型變量并已正確賦值,正確的switch語句是(D ).
A) switch(a+b); { ...... } ? ? ? ? ? ? ? ? B) switch( a+b*3.0 ) { ...... }
C) switch a { ...... } ? ? ? ? ? ? ? ? D) switch ( a%b ) { ...... }
關于B選項:
13.設int 型變量 a,b,float 型變量 x,y,char 型變量 ch 均已正確定義并賦值,正確的switch語句是(B ).
A) switch (x + y) { ...... }? ? ? ? ? ? ? ? ? ? ? ? B) switch ( ch + 1 ) { ...... }
C) switch ch { ...... }? ? ? ? ? ? ? ? ? ? ? ?D) switch ( a + b ); { ...... }
14.下列語句序列執(zhí)行后,k 的值是(D ).
int x=6, y=10, k=5;
switch( x%y ){
case 0: k=x*y;
case 6: k=x/y;
case 12: k=x-y;
default: k=x*y-x;
}
A) 60? ? ? ?? ? ? ? ? ? B) 5? ? ? ? ? ? ? ? ? ? C) 0? ? ? ? ? ? ? ? ? ? D) 54
執(zhí)行順序:k=0;(k=x/y),k=-4;(k=x-y),k54(k=x*y-x;)因為沒有break;所以會一直執(zhí)行到default.
15.下列語句序列執(zhí)行后,r 的值是(B ).
char ch='A'; int r=6;
switch( ch+5 )
{
case 'A': r=r+3;
case 'B': r=r+5;
case 'C': r-=6; break;
default : r/=2;
}
A) 11 ? ? ? ? ? ? ? ? ? B) 3? ? ? ? ? ? ? ? ? C) 2? ? ? ? ? ? ? ? ? D) 9
16.如果變量x已正確定義,寫出實現(xiàn)以下功能的語句:如果變量x是偶數(shù),則將其增加2.
?(if(x%2= =0) x+=2;)
17. 設ch1, ch2是 char 型變量:
if ( ch1 == 'a' )
{ if ( ch2 == 'b' )
System.out.print(" ch1=\'a\' , ch2=\'b\' ");
}
else
System.out.print(" ch1!=\'a\' ");
System.out.println(" end ");
問題: 1)若執(zhí)行前 ch1 的值為 'a', ch2 的值為 'c' 該程序段輸出是什么
2)若執(zhí)行前 ch1 的值為 'w', ch2 的值為 'b' 該程序段輸出是什么
3)若執(zhí)行前 ch1 的值為 'a', ch2 的值為 'b' 該程序段輸出是什么
答: (end);(ch1='a'end);(ch1='a',ch2='b'end);
18.下列語句序列執(zhí)行后,j 的值是( A ).
int j=1;
for( int i=5; i>0; i-=2 ) j*=i;
A) 15? ? ? ? ? ? ? ? ? B) 1? ? ? ? ? ? ? ? ? C) 60 ? ? ? ? ? ? ? ? ? D) 0
19.以下for循環(huán)的執(zhí)行次數(shù)是( B ).
for(int x=0;(x==0)&(x0; i-=2 ) j*=2;
A) 15? ? ? ? ? ? ? ? ? B) 1 ? ? ? ? ? ? ? ? ? C) 60 ? ? ? ? ? ? ? ? ? D) 32
20.以下for循環(huán)的執(zhí)行次數(shù)是(B ).
for(int x=0,y=0;(y!=0)&&(x= =0); i-- ) j+=i;
A) 3 ? ? ? ? ? ? ? ? ? B) 4? ? ? ? ? ? ? ? ? C) 5 ? ? ? ? ? ? ? ? ? D) 6
21.以下由 for 語句構成的循環(huán)執(zhí)行的次數(shù)是(B ).
for ( int i = 0; true ; i++) ;
A)有語法錯,不能執(zhí)行? ? ? ? ? ? ? ? ? B)無限次? ? ? ? ? ? ? ? ? ? C)執(zhí)行1次? ? ? ? ? ? ? ? ? D)一次也不執(zhí)行
22.下面語句執(zhí)行后,i 的值是(B).
for( int i=0, j=1; j < 5; j+=3 ) i=i+j;
A) 4? ? ? ? ? ? ? ? ? B) 5? ? ? ? ? ? ? ? ? C) 6? ? ? ? ? ? ? ? ? D) 7
23.下列語句序列執(zhí)行后,k的值是(D).
int j=8, k=15;
for( int i=2; i!=j; i++ ) { j-=2; k++; }
A) 18? ? ? ? ? ? ? ? ? B) 15 ? ? ? ? ? ? ? ? ? C) 16? ? ? ? ? ? ? ? ? D) 17
24.下列語句序列執(zhí)行后,k 的值是(B).
int m=3, n=6, k=0;
while( (m++) < ( -- n) ) ++k;
A) 0? ? ? ? ? ? ? ? ? B) 1 ? ? ? ? ? ? ? ? ? C) 2 ? ? ? ? ? ? ? ? ? D) 3
25.下列語句序列執(zhí)行后,i 的值是( D).
int s=1,i=1;
while( i<=4 ) {s*=i;i++;}
A) 6 ? ? ? ? ? ? ? ? ? B) 4 ? ? ? ? ? ? ? ? ? C) 24 ? ? ? ? ? ? ? ? ? D) 5
25. 下列語句序列執(zhí)行后,k 的值是(C ).
int m=3, n=6, k=0;
while( m 4 ) --j;
A) 5 ? ? ? ? ? ? ? ? ? B) 6 ? ? ? ? ? ? ? ? ? C) 7? ? ? ? ? ? ? ? ? D) 8
14.下列語句序列執(zhí)行后,j 的值是( C ).
int j=8, i=6;
while( i >4 ) i-=2;
- -j;
A) 5? ? ? ? ? ? ? ? ? B) 6 ? ? ? ? ? ? ? ? ? C) 7? ? ? ? ? ? ? ? ? D) 8
15.下列語句序列執(zhí)行后,j 的值是( B ).
int j=9, i=6;
while( i-- >3 ) --j;
A) 5 ? ? ? ? ? ? ? ? ? B) 6? ? ? ? ? ? ? ? ? C) 7? ? ? ? ? ? ? ? ? D) 8
16.下列語句序列執(zhí)行后,j 的值是(D).
int j=3, i=2;
while( --i!=i/j ) j=j+2;
A) 2 ? ? ? ? ? ? ? ? ? B) 4 ? ? ? ? ? ? ? ? ? C) 6? ? ? ? ? ? ? ? ? D) 5
17. 若有循環(huán):
int x=5,y=20;
do { y-=x; x+=2; }while(x<=10)則循環(huán)體將被執(zhí)行(A ).
A) 2次? ? ? ? ? ? ? ? ? B) 1次 ? ? ? ? ? ? ? ? ? C) 0次 ? ? ? ? ? ? ? ? ? D) 3次
18.以下由do-while語句構成的循環(huán)執(zhí)行的次數(shù)是(B).
int m = 8;
do { ++m; } while ( m <=5?);
A) 1? ? ? ? ? ? ? ? ? B) 5? ? ? ? ? ? ? ? ? C) 2? ? ? ? ? ? ? ? ? D) 0
20.下列語句序列執(zhí)行后,i的值是(D).
int i=10;
do { i/=2; } while( i--> 1 );
A) 1 ? ? ? ? ? ? ? ? ? B) 5? ? ? ? ? ? ? ? ? C) 2 ? ? ? ? ? ? ? ? ? D) -1
21.下列語句序列執(zhí)行后,i的值是(C ).
int i=10;
do { i-=2; } while( i>6 );
A) 10 ? ? ? ? ? ? ? ? ? B) 8? ? ? ? ? ? ? ? ? C) 6? ? ? ? ? ? ? ? ? D) 4
22.下列語句序列執(zhí)行后,i的值是(D).
int i=16;
do { i/=2; } while( i > 3 );
A) 16? ? ? ? ? ? ? ? ? B) 8 ? ? ? ? ? ? ? ? ? C) 4 ? ? ? ? ? ? ? ? ? D) 2
23.以下由do-while語句構成的循環(huán)執(zhí)行的次數(shù)是(B).
int k = 0;
do { ++k; } while ( k < 1 );
A)一次也不執(zhí)行 ? ? ? ? ? ? ? ? ? B)執(zhí)行1次 ? ? ? ? ? ? ? ? ? C)無限次 ? ? ? ? ? ? ? ? ? D)有語法錯,不能執(zhí)行
24. 若有循環(huán):
int x=5,y=20;
do{ y-=x; x++; } while(++x<--y);
則循環(huán)體將被執(zhí)行(C ).
A)0次? ? ? ? ? ? ? ? ? B)1次? ? ? ? ? ? ? ? ? C)2次 ? ? ? ? ? ? ? ? ? D)3次
執(zhí)行第一次:先判斷:x=5+1;y=19;? 條件成立,進去:y=y-x=13;x=6+1;
執(zhí)行第二次:先判斷:x=8;y=12? 條件成立,進去:y=y-x=4 ;x=8+1;第三次判斷不成功
25.下面是一個java應用程序(Application),它的功能是在屏幕上輸出26個小寫英文字母,其中每個字母相隔一個制表符,請完成程序填空.
public class Class1 {
public static void main( String args[] )
{
char c='a';
for (int i=1;i<=26;i++) { System.out.print(______); }
}
}
答案:(class (c++)+"\t" 或 (c++)+'\t')
26.下面是一個java應用程序(Application),它的功能是計算 s=1+2+3+...+10 ,請完成程序填空.?
import java.io.*;
public class A {
public static void main( String args[] ){
int s=0;
for (int i=1;i<=10;i++){
s+=______;
}
System.out.println("s="+s);
}
}
答:(class i)。
27.下面是一個java Application 的主類的定義,其功能是輸出乘法口訣表第一列,請完成程序填空.
import java.io.*;
public class A {
public static void main(String[] args) {
int j=1;
for(int i=1;1. _______; i++) {
System.out.println(i+"*"+j+"="+2._______);
}
}
}
答: i<=9 j*i?
五、控制結構與循環(huán)體內的跳轉
1.結構化程序設計的三種基本流程控制結構是:_______,_______,________.?
答:順序結構、選擇結構和循環(huán)結構。
2. 什么語句能構成順序結構。
答:除了循環(huán)、跳轉語句外,基本上都是順序結構的啊,即執(zhí)行完上一條才會執(zhí)行下一條。
3. 以下語句中能構成分支的語句是(B).
A) for 語句? ? ? ? ? ? ? ? ? ? ? ? ? ? B) if 語句
C) continue 語句? ? ? ? ? ? ? ? ? D) 方法調用語句
4. 以下語句中能構成多分支的語句是( C ).
A) for 語句 ? ? ? ? ? ? ? ? ? B) while 語句
C) switch 語句 ? ? ? ? ? ? ? ? ? D) do - while 語句
5. 以下語句中能構成多分支的語句是( C ).
A)for語句? ?? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? B)while語句
C)if__else語句的嵌套? ? ? ? ? ? ? ? ? D)do__while語句
6. 以下語句中是循環(huán)語句的是( D ).
A)break 語句 ? ? ? ? ? ? ? ? ? B)switch 語句 ? ? ? ? ? ? ? ? ? C)if 語句? ? ? ? ? ? ? ? ? D)? do - while 語句
7. 以下語句中不能構成循環(huán)的語句是( C ).
A) for 語句? ? ? ? ? ? ? ? ? B) while 語句 ? ? ? ? ? ? ? ? ? C) switch 語句? ? ? ? ? ? ? ? ? D) do__while 語句
8.能從循環(huán)語句的循環(huán)體中跳出的語句是(B).
A)for語句 ? ? ? ? ? ? ? ? ? B)break語句 ? ? ? ? ? ? ? ? ? C) continue語句 ? ? ? ? ? ? ? ? ? D)return語句
9. continue 語句和break 語句可以帶標號嗎? 帶標號的目的是什么?
答:
10.下面程序的功能是求2 到100 之間的素數(shù),請將程序補充完整.
public class A {
public static void main(String[] args) {
Label1: for(int i=2;i<100;i++){
for(int j=2;j<i;j++){
// if( i%j==0)
if( i%j==_____)
_____;// continue Label1;
}
System.out.print(i+"\t");
}
}
}
?答:0 ,continue Label1;
11.?方法可以沒有返回值嗎 可以有多個返回值嗎?
答:(可以;不能)
12.閱讀程序,回答問題.?
import java.awt.Graphics;
import java.applet.Applet;
public class BreakTest extends Applet{
public static void main(String[] args) {
}
public void paint( Graphics g )
{
int count, xPos = 25;
for ( count = 1; count <= 10; count++ ) {
if ( count == 8 ) break;
g.drawString( " " + count, xPos, 25 );
xPos += 10;
}
}
}
問題:1)程序的輸出結果是什么 ;(1 2 3 4 5 6 7)
2)方法調用g.drawString( " " + count, xPos, 25 );的第一個實參中為什么要有串 " " (因為該方法的第一個參數(shù)是字符串,串 " "與count相加表示字符串連接,使之成為字符串)。
13.??一個方法如果沒有返回值,方法頭定義中的返回值類型為何?
答:(void)
14. 一個方法或一個復合語句內定義的變量是否可以在方法外或復合語句外使用 這種變量稱為什么變量。
答:(不能;局部變量)
15. 采用_______的程序設計原則,使程序結構清晰簡單,設計容易,有助于軟件可靠性的提高.
答:(模塊化)
16.下面方法的功能是判斷一個整數(shù)是否為偶數(shù),將程序補充完整.?
public 1.________ isEven(int a){ if(a%2==0)
return 2._____;
else
return false;
}
答:boolean true
17.下面程序的功能是從文本域中輸入一個整數(shù)作為方法sum( )的參數(shù),并在小程序窗口中輸出調用該方法后的結果,請完成程序填空.
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
public class Applet1 extends Applet 1._______ ActionListener{
Label a;
TextField t1;
int i;
public void init( ){
a=new Label("請輸入一個整數(shù)");
add(a);
t1=new TextField(12);
add(t1);
t1.addActionListener(this);
}
public void paint(Graphics g){
g.drawString("sum="+sum(2._______ ),20,60);
}
public void actionPerformed(ActionEvent e){
i=Integer.parseInt(t1.getText( ));
repaint( );
}
long sum(long n){
long s=0;
for(long k=1; k<=n; k++) s+=k;
return s;
}
}
答: implements? ?i?
18. 閱讀程序,回答問題.
import java.awt.*;
import java.applet.Applet;
import java.awt.event.*;
public class Applet1 extends Applet implements ActionListener
{
Label aa;
TextField t1;
int i=0;
public void init()
{
aa=new Label("請輸入一個整數(shù):");
add(aa);
t1=new TextField(10);
add(t1);
t1.addActionListener(this);
}
public void paint(Graphics g)
{
g.drawString("a="+( ++i*--i),20,60);
g.drawString("i="+( i),20,80);
}
public void actionPerformed(ActionEvent e)
{
i=Integer.parseInt(t1.getText()); //轉化為整數(shù)
repaint();
}
}
問題:
1)程序開頭的 import java.applet.Applet 的含義是什么;
2)ActionListener是類還是接口 程序中哪個方法是ActionListener中的方法,其功能為何?
3)若在文本域中輸入6并回車,程序輸出什么
答:
1)(引入程序中要用到的小程序的主類的父類:Applet;
2)接口;actionPerformed方法
3)輸出兩行,分別是:42; 6
19. 以下方法m的功能是求兩參數(shù)之積的整數(shù)部分.
int m ( float x, float y ) { _________________; }
答:(return (int)x*y))
20. 下面是用戶程序對 Applet 類中方法 paint( ) 的重新定義.
public ___ ____
{ call.drawString("Hello,java!",10,20); }
答:(void call) ;paint(Graphics);
21.?
22.?何為形式參數(shù) 何為實在參數(shù)? ?
答:
? ?形式參數(shù)是在函數(shù)或方法的定義中聲明的參數(shù),它們用于接收函數(shù)或方法被調用時傳遞的實際參數(shù)的值。形式參數(shù)在函數(shù)或方法內部被使用,用于執(zhí)行特定的操作。它們通常是在函數(shù)或方法的括號內定義的變量,可以在函數(shù)或方法的主體中使用。
? ? ?實際參數(shù)是在函數(shù)或方法的調用時傳遞給形式參數(shù)的具體值。它們是函數(shù)或方法調用中的實際數(shù)據(jù),用于提供給函數(shù)或方法內部使用。實際參數(shù)可以是常量、變量或表達式。
如方法 int m(int a){System.out.println(a);}? 調用方法m(33);形參為a,實參為33.文章來源:http://www.zghlxwxcb.cn/news/detail-794590.html
23.文章來源地址http://www.zghlxwxcb.cn/news/detail-794590.html
到了這里,關于Java ---基礎知識& 期末復習的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!