




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<測(cè)試一>1.在單一文件中import、class和package的正確出現(xiàn)順序是:AA. package, import, classB. class, import, packageC. import, package, classD. package, class, import2 public static void main方法的參數(shù)描述是:A,DA. String argsB. Strings argsC. String argsD. String args3 下面哪行代碼會(huì)在編譯的時(shí)候出現(xiàn)錯(cuò)誤或警告:A,B,C,DA. float f=1.3;B. char c=&q
2、uot;a"C. byte b=257;D. boolean b=null;E. int i=10;4. 編譯,運(yùn)行下列代碼后的結(jié)果是:Dpublic class Test public static void main (String args ) int age;age = age + 1;System.out.println("The age is " + age);A.編譯,運(yùn)行后沒有輸出B.編譯,運(yùn)行后輸出:The age is 1C.能通過編譯,但運(yùn)行時(shí)產(chǎn)生錯(cuò)誤D.不能通過編譯4 下面那些關(guān)鍵字不是JAVA的關(guān)鍵字 BA ifB thenC gotoD
3、 whileE case5 下面那些不是合法的變量定義:A,F(xiàn)A.2variableB.variable2C. _whatavariableD. _3_E. $anothervarF. #myvar6 內(nèi)部數(shù)據(jù)類型byte的取值范圍是 BA.0 - 65, 535 B.(128) 127 C.(32,768) 32,767 D.(256) 2557 下列哪些表達(dá)式返回true ABA."john" = "john"B."john".equals("john")C."john" = "j
4、ohn"D."john".equals(new Button("john")8 聲明公用的abstract方法的正確格式是 AApublic abstract void add(); Bpublic abstract void add() Cpublic abstract add(); Dpublic virtual add();9.下面的代碼能打印出的結(jié)果為:Cint i=1;switch (i) case 0:System.out.println("zero");break;case 1:System.out.print
5、ln("one");case 2:System.out.println("two");default:System.out.println("default");A.oneBone, defaultCone, two, defaultDdefault下面的代碼能打印出的結(jié)果為:Bint i=9;switch (i) default:System.out.println("default");case 0:System.out.println("zero");break;case 1:System
6、.out.println("one");case 2:System.out.println("two");A defaultB.default, zeroC error default clause not definedDno output displayed下面的代碼那個(gè)能正常的編譯通過:B,CAint i=0;if(i) System.out.println("Hello");Bboolean b=true;boolean b2=true;if(b=b2) System.out.println("So true&quo
7、t;);Cint i=1;int j=2;if(i=1| j=2)System.out.println("OK");Dint i=1;int j=2;if(i=1 &| j=2)System.out.println("OK");Hello.txt不與Mine.java在同一個(gè)目錄下,如果你試圖編譯,運(yùn)行下面的代碼,那么會(huì)是什么結(jié)果?Cimport java.io.*;public class Mine public static void main(String argv)Mine m=new Mine();System.out.println(
8、m.amethod();public int amethod() try FileInputStream dis=new FileInputStream("Hello.txt");catch (FileNotFoundException fne) System.out.println("No such file found");return -1;catch(IOException ioe) finallySystem.out.println("Doing finally");return 0;當(dāng)你試圖準(zhǔn)備編譯,運(yùn)行下面代碼時(shí)會(huì)發(fā)生:
9、CA 編譯和運(yùn)行很正常B 編譯時(shí)錯(cuò)誤C 運(yùn)行時(shí)錯(cuò)誤class Base class Sub extends Base class Sub2 extends Base public class CExpublic static void main(String argv)Base b=new Base();Sub s=(Sub) b;當(dāng)你試圖準(zhǔn)備編譯,運(yùn)行下面代碼時(shí)會(huì)發(fā)生:public class Tux extends Threadstatic String sName = "vandeleur"public static void main(String argv)Tux
10、 t = new Tux();t.piggy(sName);System.out.println(sName);public void piggy(String sName)sName = sName + " wiggy"start();public void run()for(int i=0;i < 4; i+)sName = sName + " " + i;A 編譯時(shí)錯(cuò)誤B 編譯成功,并打印出"vandeleur wiggy"C 編譯成功,并打印出" vandeleur wiggy 0 1 2 3"D 編
11、譯成功,并打印出" vandelur"在什么情況下類獲得默認(rèn)的構(gòu)造方法:類被定義時(shí)類中沒有定義任何構(gòu)造方法時(shí)在類中至少定義了一個(gè)構(gòu)造方法時(shí)listener(監(jiān)聽器)方法的正確的訪問修飾符是什么?AA.publicB.staticC.privateD.protectedE.Default(即默認(rèn)為空)17. 假定有一個(gè)包含引起異常(不是一個(gè)RuntimeException)的代碼的方法,用什么方式告訴方法的調(diào)用者要捕獲該異常:BA.throw ExceptionB.throws ExceptionC.new ExceptionD.不用特別指定18.下面的代碼能打印出的結(jié)果是:
12、A,Bpublic class MyForpublic static void main(String argv)int i;int j;outer:for (i=1;i <3;i+)inner:for(j=1; j<3; j+) if (j=2)continue outer;System.out.println("Value for i=" + i + " Value for j=" +j);A.Value for i=1 value for j=1B. Value for i=2 value for j=1C. Value for i=2
13、 value for j=2D. Value for i=3 value for j=119.那個(gè)代碼能夠添加在/mothod here地方,并能正確執(zhí)行?B,Cclass Basepublic void amethod(int i) public class Scope extends Basepublic static void main(String argv)/Method HereA. void amethod(int i) throws Exception B. void amethod(long i)throws Exception C. void amethod(long i)
14、D. public void amethod(int i) throws Exception 運(yùn)行下面代碼能夠得出的結(jié)果?BString s=new String("Bicycle");int iBegin=1;char iEnd=3;System.out.println(s.substring(iBegin,iEnd);A.BicB. icC. icyD. error: no method matching substring(int,char)下面定義的變量能執(zhí)行那些操作?AString s1=new String("Hello")String s2
15、=new String("there");String s3=new String();A s3=s1 + s2;Bs3=s1-s2;Cs3=s1 & s2;E s3=s1 && s222. System.out.println(4 | 3);能打印出什么結(jié)果?DA 6B 0C 1D 723. 傳遞4,0來運(yùn)行下列代碼中的方法divide(int a, int b),結(jié)果是:Apublic void divide(int a, int b) try int c = a / b; catch (Exception e) System.out.print
16、("Exception "); finally System.out.println("Finally");A.打印輸出: Exception FinallyB.打印輸出: FinallyC.打印輸出: ExceptionD.沒有任何輸出24. 對(duì)public void add(int a) 方法的重寫方法:AA.必須返回voidB.必須返回intC.可以返回任何需要的類型25. 對(duì)public void add(int a) 方法的重載方法應(yīng)返回:CA.voidB.intC.任何類型26. 下列類分別在不同的文件中定義:Cclass Vehicle p
17、ublic void drive() System.out.println("Vehicle: drive");class Car extends Vehicle public void drive() System.out.println("Car: drive");public class Test public static void main (String args ) Vehicle v;Car c;v = new Vehicle();c = new Car();v.drive();c.drive();v = c;v.drive();編譯和執(zhí)
18、行類Test后,結(jié)果是:A.在語句v= c;處產(chǎn)生編譯時(shí)錯(cuò)誤B.在語句v= c;處產(chǎn)生運(yùn)行時(shí)錯(cuò)誤C.輸出:Vehicle: driveCar: driveCar: driveD.輸出:Vehicle: driveCar: driveVehicle: drive27. 在子類構(gòu)造方法內(nèi)的什么位置可以對(duì)超類的構(gòu)造方法(super()進(jìn)行調(diào)用:BA.子類構(gòu)造方法的任何地方B.子類構(gòu)造方法的第一條語句處C.子類構(gòu)造方法的最后一條語句處D.不能對(duì)超類的構(gòu)造方法進(jìn)行調(diào)用28. 下列代碼中有明顯的語法錯(cuò)誤的語句是:C1. public class Test 2. public static void mai
19、n (String args ) 3. Employee e = new Employee("Bob", 48); 4. e.calculatePay(); 5. System.out.println(e.printDetails(); 6. e = Null; 7. e = new Employee("Denise", 36); 8. e.calculatePay(); 9. System.out.println(e.printDetails(); 10. A.Line 10B.Line 11C.Line 6D.Line 829. 選擇可以建立線程的接
20、口:AA.RunnableB.RunC.少數(shù)用于管理的系統(tǒng)部件D.ThreadE.Executable30. 選擇正確生成text field的代碼,此text field最多能夠顯示10個(gè)字符(假定其字體有固定大?。┎⒆畛躏@示“hello”串:AA.new TextField("hello", 10) ;B.new TextField(10,"hello");C.new TextField("hello",max,10);D.new TextField("hello",10,max);31. 選擇定義在Graph
21、ics類中的方法:A,CA.drawLine(int, int, int, int) ;B.drawImage(Image, int, int, ImageObserver) ;C.drawString(String, int, int) ;D.add(Component);E.setVisible(boolean);F.setLayout(Object);32. 從下面的布局管理器中選擇按行放置控件、從左到右、從上到下,當(dāng)一行裝滿時(shí)開始新的一行的布局管理器:BA.CardLayoutB.FlowLayoutC.BorderLayoutD.GridLayout33. 選擇可以替換一個(gè)Conta
22、iner對(duì)象布局的方法:AA.setLayout(aLayoutManager);B.addLayout(aLayoutManager);C.layout(aLayoutManager);D.setLayoutManager(aLayoutManager);34. 一個(gè)類Example的main()方法的參數(shù)是args,類被如下調(diào)用執(zhí)行:java Example catmain方法中訪問args0的輸出是什么?AA.catB.javaC.ExampleD.拋出一個(gè)NullPointerException異常E.拋出一個(gè)ArrayIndexOutOfBoundsException異常35.下面的
23、代碼編譯,運(yùn)行后得出的結(jié)果:Dpublic class Convpublic static void main(String argv)Conv c=new Conv();String s=new String("ello");c.amethod(s);public void amethod(String s)char c='H'c+=s;System.out.println(c);A.編譯成功,打印出 "Hello"B. 編譯成功,打印出"ello"C. 編譯成功,打印出elloHD. 編譯錯(cuò)誤36.執(zhí)行后打印的結(jié)果
24、為:Cpublic class Octpublic static void main(String argv)Oct o = new Oct();o.amethod();public void amethod()int oi= 012;System.out.println(oi);A.12B.012C.10D.10.037.編譯,執(zhí)行下面的代碼會(huì)出現(xiàn)的結(jié)果:Apublic class Refpublic static void main(String argv)Ref r = new Ref();r.amethod(r);public void amethod(Ref r)int i=99;m
25、ulti(r);System.out.println(i);public void multi(Ref r)r.i = r.i*2;A. 一個(gè)編譯時(shí)錯(cuò)誤B. 99C. 198D. 一個(gè)運(yùn)行時(shí)錯(cuò)誤38.現(xiàn)在你存儲(chǔ)一個(gè)唯一的整型序列,那么你需要哪個(gè)容器接口?AA.SetB.ListC.MapD.Vector39. 給出下列代碼,請(qǐng)選擇2個(gè)正確輸出?D,Epublic class Examplepublic static void main(String args) int i=0;doSystem.out.println(“Doing it for i is”+i); while (-i>0
26、);System.out.println(“Finished”);A.Doing it for i is 3B.Doing it for i is 2C.Doing it for i is 1D.Doing it for i is 0E.Finished40. System.out.println(Math.floor(-2.1);打印的結(jié)果為:DA -2B 2.0C -3D -3.0<測(cè)試二>Java程序員筆試題一、 單項(xiàng)選擇題(共10題,每題2分,共20分)1. 下列說法哪一個(gè)是正確的。( B )AJava程序經(jīng)編譯后會(huì)產(chǎn)生machine codeBJava程序經(jīng)編譯后會(huì)產(chǎn)生b
27、yte codeCJava程序經(jīng)編譯后會(huì)產(chǎn)生DLLD以上都不正確2. 提供Java存取數(shù)據(jù)庫能力的包是。( A )Ajava.sql Bjava.awt Cjava.lang Djava.swing3. 執(zhí)行如下程序代碼后,C的值是。( C )a=0;c=0;do-c;a=a-1;while(a>0); A0 B1 C-1 D死循環(huán)4. 下面的語句中正確的表達(dá)式為。( C )Abyte b = 128; Bboolean n = null; Cdouble d = 0.9239d;Dfloat f = 0.9239;5. 將一個(gè)十六進(jìn)制值賦給一個(gè)long型變量的正確寫法為。( D )Al
28、ong number = 345L;Blong number = 0345;Clong number = 0345L;Dlong number = 0x345L;6. 以下程序代碼的輸出是。( B )public class test ( public static void main (String args) ( System.out.printIn (6 3); ) )A3 B5 C6 D117. 以下程序代碼的輸出是。(E )public class test ( private static int j = 0; 32private static boolean methodB(in
29、t k) ( j += k; return true; ) public static void methodA(int i) boolean b: b = i < 10 | methodB (4); b = i < 10 | methodB (8); ) public static void main (String args ( methodA (0); system.out.printIn(j); ) )A0 B4 C8 D12 E不能編譯通過8. 以下程序代碼的輸出是。( A)public class test public static void add3 (Intege
30、r i) int val = Value ( ); val += 3; i = new Integer (val); public static void main (String args ) Integer i = new Integer (0); add3 (i); system.out.printIn (Value ( ) ); )A編譯失敗 B編譯成功但在第三行會(huì)出現(xiàn)異常 C0 D39. 以下程序代碼執(zhí)行后,哪個(gè)說法正確( B )int index = 1; boolean test = new Boolean3; boolean foo= test index;
31、A有異常拋出。B無法編譯。Cfoo的值是0。Dfoo的值是null。Efoo的值是true。Ffoo的值是false。10. 以下哪個(gè)類是swt包中的。( D )AMessageBox BMessageDialog CJDialog DDisplayMode二、 多項(xiàng)選擇題(共5題,每題4分,共20分)1. 在下面的選項(xiàng)中合法的標(biāo)識(shí)符有。( ADEF )A_okB*pointCthisD$byteEconstFILikeJLCSS2. 下面的選項(xiàng)中哪些不是java的關(guān)鍵字。( AB D )ATRUEBsizeofCgotoDconstEsuperFvoid3. 下面的敘述中正確的有。( AC
32、)A 環(huán)境變量可在編譯source code時(shí)指定。 B 在編譯程序時(shí),所能指定的環(huán)境變量不包括class path。 C javac一次可同時(shí)編譯數(shù)個(gè)Java源文件。 D javac.exe能指定編譯結(jié)果要置于哪個(gè)目錄(directory)。4. 下面的敘述中正確的有。( C )Aequals()方法判定引用值是否指向同一對(duì)象。B= = 操作符判定兩個(gè)分立的對(duì)象的內(nèi)容和類型是否一致。Cequals()方法只有在兩個(gè)對(duì)象的內(nèi)容一致時(shí)返回true。D類File重寫方法equals()在兩個(gè)分立的對(duì)象的內(nèi)容和類型一致時(shí)返回true。5. 下面有關(guān)變量及其作用域的陳述哪些是對(duì)的。( A C )A.&
33、#160; 在方法里面定義的局部變量在方法退出的時(shí)候被撤銷。 B. 局部變量也叫自動(dòng)變量。 C. 在方法外面定義的變量(譯注:即實(shí)例變量)在對(duì)象被構(gòu)造時(shí)創(chuàng)建。 D. 在方法中定義的方法的參變量只要該對(duì)象被需要就一直存在。 三、 簡(jiǎn)答題(共7題,共40分)1. 請(qǐng)寫出一個(gè)輸出“Hello World!” 的程序。(3分) 答:public Cl
34、ass Hello World Public static void main(Stringargs) System.out.println(“HELLO WOTLD”); 2. char型變量中能不能存貯一個(gè)中文漢字? 為什么? (3分)答:能存儲(chǔ)一個(gè)漢字;因?yàn)樗艽鎯?chǔ)四個(gè)字節(jié)而每個(gè)漢字只占兩個(gè)字節(jié)。3. 常見的兩種xml解析技術(shù)是什么 區(qū)別是什么 (4分)答:常見的兩種有:SAX和DOM。 區(qū)別:SAX 是一種事件驅(qū)動(dòng)的xml解析方式。每次訪問一個(gè)xml文件中的某個(gè)節(jié)點(diǎn)的時(shí)候,sax就會(huì)搜索一遍xml文件,在找到相應(yīng)的節(jié)點(diǎn)后就會(huì)觸發(fā)一個(gè)事件來處理請(qǐng)求。只讀 DOM是一種基于樹狀的查找方式。
35、DOM會(huì)將xml解析成一棵樹,存在內(nèi)存中。開發(fā)者可以通過查找樹的節(jié)點(diǎn)來取得文件的內(nèi)容或者修改內(nèi)容。可讀寫4. MVC是什么,如何實(shí)現(xiàn) (5分) 答:MVC是一個(gè)是一個(gè)設(shè)計(jì)模式,它強(qiáng)制性的使應(yīng)用程序的輸入,處理和輸出分開。使用MVC應(yīng)用程序被分為三個(gè)核心部件:M-MODO模型,V -VIEW 試圖,C - Contral控制 實(shí)現(xiàn):首先有頁面(jsp)發(fā)送請(qǐng)求給控制器(servlet),然后由控制器接收用戶的請(qǐng)求,并決定應(yīng)該調(diào)用哪個(gè)模型(javabean)來進(jìn)行處理,然后模型用業(yè)務(wù)邏輯來處理用戶的請(qǐng)求并返回?cái)?shù)據(jù),最后控制器用相應(yīng)的視圖格式化模型返回的數(shù)據(jù),并通過表示層顯示給用戶。5. .J2EE
36、是什么(6分)答:J2EE 是Sun公司提出的多層(multi-diered),分布式(distributed),基于組件(component-base)的企業(yè)級(jí)應(yīng)用模型 (enterpriese application model).在這樣的一個(gè)應(yīng)用系統(tǒng)中,可按照功能劃分為不同的組件,這些組件又可在不同計(jì)算機(jī)上,并且處于相應(yīng)的層次(tier)中。所屬層次包括客戶層(clietn tier)組件,web層和組件,Business層和組件,企業(yè)信息系統(tǒng)(EIS)層。 6. jsp有哪些內(nèi)置對(duì)象作用分別是什么 (9分) 答:1.request 用戶端請(qǐng)求,此請(qǐng)求會(huì)包含來自GET/POST請(qǐng)求的參數(shù)
37、;2.response 網(wǎng)頁傳回用戶端的回應(yīng);3.pageContext 網(wǎng)頁的屬性是在這里管理;4.session 與請(qǐng)求有關(guān)的會(huì)話期;5.application servlet 正在執(zhí)行的內(nèi)容;6.out 用來傳送回應(yīng)的輸出;7.config servlet的構(gòu)架部件;8.page JSP網(wǎng)頁本身;9.exception 針對(duì)錯(cuò)誤網(wǎng)頁,未捕捉的例外7. 作用域public,private,protected,以及不寫時(shí)的區(qū)別 (10分) 答:作用域 當(dāng)前類 同一package 子孫類 其他packagepublic protected ×friendly × ×
38、;private × × ×不寫時(shí)默認(rèn)為friendly四、 編碼及論述題(共2題,每題10分,共20分)1. 什么是Singleton,它的作用是什么,它有幾種形式?請(qǐng)用代碼寫出一個(gè)Singleton類。答:Java Singleton 模式用來保證在運(yùn)行的應(yīng)用程序中,一個(gè)Class只是實(shí)例化一次,也就是只有一個(gè)相應(yīng)的對(duì)象存在。它有三種形式public class Singleton private static Singleton instance = null; public static synchronized Singleton getInstance
39、() if (instance=null) instancenew Singleton(); return instance; 2. 在Struts + Spring + Hibernate的組合框架模式中,三者各自的特點(diǎn)都是什么? 答:Strtus WEB層 Spring是業(yè)務(wù)層 Hiebenate是持久化層<測(cè)試三>一、單項(xiàng)選擇題1Java是從()語言改進(jìn)重新設(shè)計(jì)。AAda BC+ CPasacal DBASIC答案:B2下列語句哪一個(gè)正確()A Java程序經(jīng)編譯后會(huì)產(chǎn)生machine codeB Java程序經(jīng)編譯后會(huì)產(chǎn)生byte codeC Java程序經(jīng)編譯后會(huì)產(chǎn)生DL
40、LD以上都不正確答案:B3下列說法正確的有()A class中的constructor不可省略B constructor必須與class同名,但方法不能與class同名C constructor在一個(gè)對(duì)象被new時(shí)執(zhí)行D一個(gè)class只能定義一個(gè)constructor答案:C4提供Java存取數(shù)據(jù)庫能力的包是()Ajava.sql Bjava.awt Cjava.lang Djava.swing答案:A5下列運(yùn)算符合法的是()A&& B<> Cif D:=答案:A6執(zhí)行如下程序代碼a=0;c=0;do-c;a=a-1;while(a>0);后,C的值是()A0
41、 B1 C-1 D死循環(huán)答案:C7下列哪一種敘述是正確的()A abstract修飾符可修飾字段、方法和類B抽象方法的body部分必須用一對(duì)大括號(hào) 包住C聲明抽象方法,大括號(hào)可有可無D聲明抽象方法不可寫出大括號(hào)答案:D8下列語句正確的是()A形式參數(shù)可被視為local variableB形式參數(shù)可被字段修飾符修飾C形式參數(shù)為方法被調(diào)用時(shí),真正被傳遞的參數(shù)D形式參數(shù)不可以是對(duì)象答案:A9下列哪種說法是正確的()A實(shí)例方法可直接調(diào)用超類的實(shí)例方法B實(shí)例方法可直接調(diào)用超類的類方法C實(shí)例方法可直接調(diào)用其他類的實(shí)例方法D實(shí)例方法可直接調(diào)用本類的類方法答案:D二、多項(xiàng)選擇題1Java程序的種類有()A類(
42、Class) BApplet CApplication DServlet2下列說法正確的有()A環(huán)境變量可在編譯source code時(shí)指定B在編譯程序時(shí),所能指定的環(huán)境變量不包括class pathC javac一次可同時(shí)編譯數(shù)個(gè)Java源文件D javac.exe能指定編譯結(jié)果要置于哪個(gè)目錄(directory)答案:BCD3下列標(biāo)識(shí)符不合法的有()Anew B$Usdollars C1234 Dcar.taxi答案:ACD4下列說法錯(cuò)誤的有()A數(shù)組是一種對(duì)象B數(shù)組屬于一種原生類C int number=31,23,33,43,35,63D數(shù)組的大小可以任意改變答案:BCD5不能用來修飾
43、interface的有()Aprivate Bpublic Cprotected Dstatic答案:ACD6下列正確的有()A call by value不會(huì)改變實(shí)際參數(shù)的數(shù)值B call by reference能改變實(shí)際參數(shù)的參考地址C call by reference不能改變實(shí)際參數(shù)的參考地址D call by reference能改變實(shí)際參數(shù)的內(nèi)容答案:ACD7下列說法錯(cuò)誤的有()A在類方法中可用this來調(diào)用本類的類方法B在類方法中調(diào)用本類的類方法時(shí)可直接調(diào)用C在類方法中只能調(diào)用本類中的類方法D在類方法中絕對(duì)不能調(diào)用實(shí)例方法答案:ACD8下列說法錯(cuò)誤的有()A Java面向?qū)ο笳Z
44、言容許單獨(dú)的過程與函數(shù)存在B Java面向?qū)ο笳Z言容許單獨(dú)的方法存在C Java語言中的方法屬于類中的成員(member)D Java語言中的方法必定隸屬于某一類(對(duì)象),調(diào)用方法與過程或函數(shù)相同答案:ABC9下列說法錯(cuò)誤的有()A能被java.exe成功運(yùn)行的java class文件必須有main()方法B J2SDK就是Java APIC Appletviewer.exe可利用jar選項(xiàng)運(yùn)行.jar文件D能被Appletviewer成功運(yùn)行的java class文件必須有main()方法答案:BCD三、判斷題1Java程序中的起始類名稱必須與存放該類的文件名相同。()答案:正確2Unico
45、de是用16位來表示一個(gè)字的。()答案:正確3原生類中的數(shù)據(jù)類型均可任意轉(zhuǎn)換。()答案:錯(cuò)誤1.分別寫出BOOL,int,float,指針類型的變量a 與“零”的比較語句。 答案: BOOL : if ( !a ) or if(a) int : if ( a = 0) float : const EXPRESSION EXP = 0.000001 if ( a < EXP && a >-EXP) pointer : if ( a != NULL) or if(a = NULL)2.請(qǐng)說出const與#define 相比,有何優(yōu)點(diǎn) 答案:1) const 常量有數(shù)據(jù)類
46、型,而宏常量沒有數(shù)據(jù)類型。編譯器可以對(duì)前者進(jìn)行類型安全檢查。而對(duì)后者只進(jìn)行字符替換,沒有類型安全檢查,并且在字符替換可能會(huì)產(chǎn)生意料不到的錯(cuò)誤。 2) 有些集成化的調(diào)試工具可以對(duì)const 常量進(jìn)行調(diào)試,但是不能對(duì)宏常量進(jìn)行調(diào)試。3.簡(jiǎn)述數(shù)組與指針的區(qū)別 數(shù)組要么在靜態(tài)存儲(chǔ)區(qū)被創(chuàng)建(如全局?jǐn)?shù)組),要么在棧上被創(chuàng)建。指針可以隨時(shí)指向任意類型的內(nèi)存塊。 (1)修改內(nèi)容上的差別 char a = “hello”; a0 = X; char *p = “world”; / 注意p 指向常量字符串 p0 = X; / 編譯器不能發(fā)現(xiàn)該錯(cuò)誤,運(yùn)行時(shí)錯(cuò)誤 (2) 用運(yùn)算符sizeof 可以計(jì)算出數(shù)組的容量(字
47、節(jié)數(shù))。sizeof(p),p 為指針得到的是一個(gè)指針變量的字節(jié)數(shù),而不是p 所指的內(nèi)存容量。C+/C 語言沒有辦法知道指針?biāo)傅膬?nèi)存容量,除非在申請(qǐng)內(nèi)存時(shí)記住它。注意當(dāng)數(shù)組作為函數(shù)的參數(shù)進(jìn)行傳遞時(shí),該數(shù)組自動(dòng)退化為同類型的指針。 char a = "hello world" char *p = a; cout<< sizeof(a) << endl; / 12 字節(jié) cout<< sizeof(p) << endl; / 4 字節(jié) 計(jì)算數(shù)組和指針的內(nèi)存容量 void Func(char a100) cout<<
48、sizeof(a) << endl; / 4 字節(jié)而不是100 字節(jié) 4.類成員函數(shù)的重載、覆蓋和隱藏區(qū)別 答案: a.成員函數(shù)被重載的特征: (1)相同的范圍(在同一個(gè)類中); (2)函數(shù)名字相同; (3)參數(shù)不同; (4)virtual 關(guān)鍵字可有可無。 b.覆蓋是指派生類函數(shù)覆蓋基類函數(shù),特征是: (1)不同的范圍(分別位于派生類與基類); (2)函數(shù)名字相同; (3)參數(shù)相同; (4)基類函數(shù)必須有virtual 關(guān)鍵字。 c.“隱藏”是指派生類的函數(shù)屏蔽了與其同名的基類函數(shù),規(guī)則如下: (1)如果派生類的函數(shù)與基類的函數(shù)同名,但是參數(shù)不同。此時(shí),不論有無virtual關(guān)鍵
49、字,基類的函數(shù)將被隱藏(注意別與重載混淆)。 (2)如果派生類的函數(shù)與基類的函數(shù)同名,并且參數(shù)也相同,但是基類函數(shù)沒有virtual 關(guān)鍵字。此時(shí),基類的函數(shù)被隱藏(注意別與覆蓋混淆)5. There are two int variables: a and b, dont use “if”, “ :”, “switch”or other judgement statements, find out the biggest one of the two numbers. 答案:( ( a + b ) + abs( a - b ) ) / 26. 如何打印出當(dāng)前源文件的文件名以及源文件的當(dāng)前行號(hào)
50、 答案: cout << _FILE_ ; cout<<_LINE_ ; _FILE_和_LINE_是系統(tǒng)預(yù)定義宏,這種宏并不是在某個(gè)文件中定義的,而是由編譯器定義的。7. main 主函數(shù)執(zhí)行完畢后,是否可能會(huì)再執(zhí)行一段代碼,給出說明 答案:可以,可以用_onexit 注冊(cè)一個(gè)函數(shù),它會(huì)在main 之后執(zhí)行int fn1(void), fn2(void), fn3(void), fn4 (void); void main( void ) String str("zhanglin"); _onexit( fn1 ); _onexit( fn2 );
51、_onexit( fn3 ); _onexit( fn4 ); printf( "This is executed first.n" ); int fn1() printf( "next.n" ); return 0; int fn2() printf( "executed " ); return 0; int fn3() printf( "is " ); return 0; int fn4() printf( "This " ); return 0; The _onexit function
52、is passed the address of a function (func) to be called when the program terminates normally. Successive calls to _onexit create a register of functions that are executed in LIFO (last-in-first-out) order. The functions passed to _onexit cannot take parameters.8. 如何判斷一段程序是由C 編譯程序還是由C+編譯程序編譯的 答案: #ifdef _cplusplus cout<<"c+" #else cou
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 買房有物業(yè)合同范本
- bt合同ppp合同范本
- 企業(yè)人事聘用合同范本
- 出租保安服裝合同范本
- 單位購儀器合同范本
- 先打款后開票合同范本
- 協(xié)議付款合同范例
- 上門宴席服務(wù)合同范本
- 東莞企業(yè)勞務(wù)合同范本
- 兒童游泳班合同范本
- 2025年企業(yè)法務(wù)顧問聘用協(xié)議范本
- 教育部人文社科 申請(qǐng)書
- 無菌手術(shù)臺(tái)鋪置的細(xì)節(jié)管理
- 《康復(fù)評(píng)定技術(shù)》課件-第五章 運(yùn)動(dòng)控制
- 議論文8(試題+審題+范文+點(diǎn)評(píng)+素材)-2025年高考語文寫作復(fù)習(xí)
- 【理特咨詢】2024生成式人工智能GenAI在生物醫(yī)藥大健康行業(yè)應(yīng)用進(jìn)展報(bào)告
- 2025新人教版英語七年級(jí)下單詞默寫表(小學(xué)部分)
- 2025年春新外研版(三起)英語三年級(jí)下冊(cè)課件 Unit6第1課時(shí)Startup
- 2025江蘇蘇州高新區(qū)獅山商務(wù)創(chuàng)新區(qū)下屬國企業(yè)招聘9人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 《蒙牛集團(tuán)實(shí)施財(cái)務(wù)共享過程中存在的問題及優(yōu)化建議探析》8800字(論文)
- 平拋運(yùn)動(dòng)的經(jīng)典例題
評(píng)論
0/150
提交評(píng)論