當前位置:首頁 » 編程軟體 » 安卓編譯考題

安卓編譯考題

發布時間: 2024-12-09 16:51:22

『壹』 C++考題中提到純虛擬函數是什麼概念起什麼作用

通過純虛擬函數的方式,可以指明一個虛擬函數只是提供了一個可被子類型改寫的介面。
純虛函數是在基類中聲明的虛函數,它可以在基類中有定義,而且派生類必須定義自己的實現方法。基類不能生成對象,可以使用指針或者引用派生類對象。基類不在基類中實現純虛函數的方法是在函數原型後加「=0」
virtual void funtion1()=0

引入原因/純虛函數的作用
為了方便使用多態特性,我們常常需要在基類中定義虛擬函數。
在很多情況下,基類本身生成對象是不合情理的。例如,動物作為一個基類可以派生出老虎、孔雀等子類,但動物本身生成對象明顯不合常理。

為了解決上述問題,引入了純虛函數的概念,將函數定義為純虛函數(方法:virtual ReturnType Function()=
0;),則編譯器要求在派生類中必須予以重寫以實現多態性。同時含有純虛擬函數的類稱為抽象類,它不能生成對象。這樣就很好地解決了上述兩個問題。

『貳』 求java考題,筆試題

Java面向對象
1. super()與this()的區別?
This():當前類的對象,super父類對象。
Super():在子類訪問父類的成員和行為,必須受類繼承規則的約束
而this他代表當前對象,當然所有的資源都可以訪問.
在構造函數中,如果第一行沒有寫super(),編譯器會自動插入.但是如果父類沒有不帶參數的構造函數,或這個函數被私有化了(用private修飾).此時你必須加入對父類的實例化構造.而this就沒有這個要求,因為它本身就進行實例化的構造.
而在方法中super和this使用的方法就差不多了.只不過super 要考慮是否能訪問其父類的資源.
2. 作用域public,protected,private,以及不寫時的區別?
Public:不同包、 同一包、 類內都可用
Private: 類內
Protected:不同包的子類、同一包、 類內都可用
不寫時: 同一包內、類內
3. 編程輸出如下圖形。
* * * * *
* * * *
* * *
* *
*
代碼如下:
public class Print {
publicstatic void main(String[] args) {
for(int i = 0; i < 5; i++) {
for(int j = 5; j > i; j--) {
System.out.print("*");
}
System.out.println();
}
}
}
4. JAVA的事件委託機制和垃圾回收機制
Java事件委託機制的概念,一個源產生一個事件並將它送到一個或多個監聽器那裡。在這種方案中,監聽器簡單的等待,直到它收到一個事件。一旦事件被接受,監聽器將處理這個事件,然後返回。
垃圾回收機制垃圾收集是將分配給對象但不再使用的內存回收或釋放的過程。如果一個對象沒有指向它的引用或者其賦值為null,則次對象適合進行垃圾回收
5. 在JAVA中,如何跳出當前的多重嵌套循環?
用break; return 方法。
6. 什麼是java序列化,如何實現java序列化?(寫一個實例)
序列化:處理對象流的機制,所謂對象流也就是將對象的內容進行流化。可以對流化後的對象進行讀寫操作,也可將流化後的對象傳輸於網路之間。序列化是為了解決在對對象流進行讀寫操作時所引發的問題。
序列化的實現:將需要被序列化的類實現Serializable介面,該介面沒有需要實現的方法,implementsSerializable只是為了標注該對象是可被序列化的,然後使用一個輸出流(如:FileOutputStream)來構造一個ObjectOutputStream(對象流)對象,接著,使用ObjectOutputStream對象的writeObject(Object obj)方法就可以將參數為obj的對象寫出(即保存其狀態),要恢復的話則用輸入流。
7. 一個".java"源文件中是否可以包括多個類(不是內部類)?有什麼限制?
可以。如果這個類的修飾符是public,其類名與文件名必須相同。
8. 排序都有哪幾種方法?請列舉。用JAVA實現一個快速排序?
排序的方法有:插入排序(直接插入排序、希爾排序),交換排序(冒泡排序、快速排序),選擇排序(直接選擇排序、堆排序),歸並排序,分配排序(箱排序、基數排序)
快速排序的偽代碼。
9. Overload和Override的區別。Overloaded的方法是否可以改變返回值的類型?
重寫Override,子類覆蓋父類的方法,將子類傳與父類的引用調用的還是子類的方法。
重載Overloading 一個類多個方法,名稱相同,參數個數類型不同。
兩者都是Java多態性的不同表現。
Overloaded的方法是可以改變返回值的類型。
1, public class Ctest(){
Public static void main(){
System.out.prinln(8+8+」88」+8+8);
}
} 168888
(方法的重寫Overriding和重載Overloading是Java多態性的不同表現。重寫Overriding是父類與子類之間多態性的一種表現,重載Overloading是一個類中多態性的一種表現。如果在子類中定義某方法與其父類有相同的名稱和參數,我們說該方法被重寫 (Overriding)。子類的對象使用這個方法時,將調用子類中的定義,對它而言,父類中的定義如同被「屏蔽」了。如果在一個類中定義了多個同名的方法,它們或有不同的參數個數或有不同的參數類型,則稱為方法的重載(Overloading)。
Overloaded的方法是可以改變返回值的類型。)
10. Final類有什麼特點?
屬性常量 方法不可以overridding 類不可以繼承
11. 繼承時候類的執行順序問題,一般都是選擇題,問你將會列印出什麼?
答:父類:
package test;
public class FatherClass {
public FatherClass() {
System.out.println("FatherClassCreate");
}
}
子類:
package test;
import test.FatherClass;
public class ChildClass extends FatherClass{
public ChildClass() {
System.out.println("ChildClassCreate");
}
public static void main(String[] args) {
FatherClass fc = new FatherClass();
ChildClass cc = new ChildClass();
}
}
輸出結果:
C:>java test.ChildClass
FatherClass Create
FatherClass Create
ChildClass Create
12. 內部類的實現方式?
package test;
public class OuterClass {
private class InterClass {
Public Interlass(){
System.out.println("InterClassCreate");
}
}
public OuterClass(){
InterClass ic = new InterClass();
System.out.println("OuterClassCreate");
}
public static void main(String[] args){
OuterClass oc = new OuterClass();
}
}
輸出結果:
C:>java test/OuterClass InterClass Create OuterClass Create
13. 用JAVA實現一種排序,JAVA類實現序列化的方法(二種)?
14. 如在COLLECTION框架中,實現比較要實現什麼樣的介面?
15. 用插入法進行排序代碼如下
package test;
import java.util.*;
class InsertSort {
ArrayList al;
public InsertSort(int num,int mod) {
al = new ArrayList(num);
Random rand = new Random();
System.out.println("The ArrayList SortBefore:");
for (int i=0;i<num ;i++ ){
al.add(new Integer(Math.abs(rand.nextInt())% mod + 1));
System.out.println("al["+i+"]="+al.get(i));
}
}
public void SortIt(){
Integer tempInt;
int MaxSize=1;
for(int i=1;i<al.size();i++){
tempInt = (Integer)al.remove(i);
if(tempInt.intValue()>=((Integer)al.get(MaxSize-1)).intValue()){
al.add(MaxSize,tempInt);
MaxSize++;
System.out.println(al.toString());
} else {
for (int j=0;j<MaxSize ;j++ ){
if(((Integer)al.get(j)).intValue()>=tempInt.intValue()){
al.add(j,tempInt);
MaxSize++;
System.out.println(al.toString());
break;
}
}
}
}
System.out.println("The ArrayList SortAfter:");
for(int i=0;i<al.size();i++) {
System.out.println("al["+i+"]="+al.get(i));
}
}
public static void main(String[] args) {
InsertSort is = new InsertSort(10,100);
is.SortIt();
}
}
JAVA類實現序例化的方法是實現java.io.Serializable介面
Collection框架中實現比較要實現Comparable 介面和 Comparator 介面
16. 編程:編寫一個截取字元串的函數,輸入為一個字元串和位元組數,輸出為按位元組截取的字元串。但是要保證漢字不被截半個,如"我ABC"4,應該截為"我AB",輸入"我ABC漢DEF",6,應該輸出為"我ABC"而不是"我ABC+漢的半個"。
public static void split(String source,intnum) throws Exception{
intk=0;
Stringtemp="";
for(int i = 0; i <source.length(); i++){
byte[]b=(source.charAt(i)+"").getBytes();
k=k+b.length;
if(k>num){
break;
}
temp=temp+source.charAt(i);
}
System.out.println(temp);
}
15、Java編程,列印昨天的當前時刻
public class YesterdayCurrent{
public void main(String[] args){
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, -1);
System.out.println(cal.getTime());
}
}
16、文件讀寫,實現一個計數器
public int getNum(){
int i = -1;
try{
String stri="";
BufferedReader in = new BufferedReader(newFileReader(f));
while((stri=in.readLine())!=null){
i = Integer.parseInt(stri.trim());
}
in.close();
}catch(Exception e){
e.printStackTrace();
}
return i;
}
public void setNum(){
int i = getNum();
i++;
try{
PrintWriter out=new PrintWriter(newBufferedWriter(new FileWriter(f,false)));
out.write(String.valueOf(i)); //可能是編碼的原因,如果直接寫入int的話,將出現java編碼和windows編碼的混亂,因此此處寫入的是String
out.close() ;
}catch(Exception e){
e.printStackTrace();
}
}
17、指出下面程序的運行結果。
class A{
static{
System.out.print("1");
}
public A(){
System.out.print("2");
}
}
class B extends A{
static{
System.out.print("a");
}
public B(){
System.out.print("b");
}
}
public class Hello{
public static void main(String[] ars){
A ab = new B(); //執行到此處,結果: 1a2b
ab = new B(); //執行到此處,結果: 1a2b2b
}
}注:類的static 代碼段,可以看作是類首次載入(被虛擬機載入)執行的代碼,而對於類的載入,首先要執行其基類的構造,再執行其本身的構造
18、抽象類和介面的區別?
(1)介面可以被多重implements,抽象類只能被單一extends(2)介面只有定義,抽象類可以有定義和實現(3)介面的欄位定義默認為:publicstatic final, 抽象類欄位默認是"friendly"(本包可見)
當功能需要累積時用抽象類,不需要累積時用介面。
19、什麼是類的反射機制?
通過類(Class對象),可以得出當前類的fields、method、construtor、interface、superClass、modified等,同是可以通過類實例化一個實例、設置屬性、喚醒方法。Spring中一切都是返射、struts、hibernate都是通過類的返射進行開發的。
20、類的返射機制中的包及核心類?
①java.lang.Class②java.lang.refrection.Method③java.lang.refrection.Field
④java.lang.refrection.Constructor⑤java.lang.refrection.Modifier⑥java.lang.refrection.Interface
21、得到Class的三個過程是什麼?
①對象.getClass()②類.class或Integer.type(int) Integer.class(java.lang.Integer)③Class.forName();
22、如何喚起類中的一個方法?
①產生一個Class數組,說明方法的參數②通過Class對象及方法參數得到Method③通過method.invoke(實例,參數值數組)喚醒方法
23、如何將數值型字元轉換為數字(Integer,Double)?
Integer.parseInt(「1234」) Double.parseDouble(「123.2」)
24、如何將數字轉換為字元?
1+」」 1.0+」」
25、如何去小數點前兩位,並四捨五入。
double d=1256.22d; d=d/100; System.out.println(Math.round(d)*100);
26、如何取得年月日,小時分秒?
Calendar c=Calendar.getInstance();
c.set(Calendar.YEAR,2004);
c.set(Calendar.MONTH,0);
c.set(Calendar.DAY_OF_MONTH,31);
System.out.println(c.get(Calendar.YEAR)+" "+(c.get(Calendar.MONTH)+1)+" "+c.get(Calendar.DAY_OF_MONTH));
27、如何取得從1970年到現在的毫秒數
Java.util.Date dat=new Date(); long now=dat.getTime();
或System.currentTimeMillis()
28、如何獲取某個日期是當月的最後一天?
當前日期加一天,若當前日期與結果的月份不相同,就是最後一天。
取下一個月的第一天,下一個月的第一天-1
public static void main(String[] args){
Calendarc=Calendar.getInstance();
c.set(Calendar.YEAR,2004);
c.set(Calendar.MONTH,0);
c.set(Calendar.DAY_OF_MONTH,30);
Calendarc1=(Calendar)c.clone();
System.out.println(c.get(Calendar.YEAR)+""+(c.get(Calendar.MONTH)+1)+" "+c.get(Calendar.DAY_OF_MONTH));
c.add(Calendar.DAY_OF_MONTH,1);
if(c.get(Calendar.MONTH)!=c1.get(Calendar.MONTH)){
System.out.println("是最後一天");
}else{
System.out.println("不是取後一天");
}
}
29、如何格式化日期?
Import java.text. SimpleDateFormat;
SimpleDateFormat sdf=newSimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date dat=new Date();
String str=sdf.format(dat); //把日期轉化為字元串
System.out.println(str);
Java.util.Date d1=sdf.parse(「yyyy-mm-dd」); //將字元串轉化為日期
30、編碼轉換,怎樣實現將GB2312編碼的字元串轉換為ISO-8859-1編碼的字元串。
String a=new String("中".getBytes("gb2312"),"iso-8859-1");
String a=new String("中".getBytes("iso-8859-1"));
應該是String a=new String("中".getBytes("gb2312"),"iso-8859-1");
String a1=newString(a.getBytes("iso-8859-1"));

『叄』 軟體設計師考題中的文法,有限自動機(DFA)的狀態轉換圖

學習一下編譯原理。推薦清華大學的張素琴〈編譯原理〉那本書,貌似第四章是講這個的。這個狀態轉換圖很好理解的,大概看下就行了,不過裡面有化簡的部分稍微復雜一些。看那本書應該可以搞懂。

『肆』 試題題目(編程要求): c語言

第五屆全國ITAT教育工程就業技能大賽復賽試題 C語言程序設計B卷

請考生仔細閱讀並嚴格遵守題目中關於文件保存和命名的要求。

請務必按照試卷要求為文件命名。

考生答題完畢後,首先創建以「准考證號」命名的文件夾(形式如:433034683),並將考試結果嚴格按題目上的命名要求進行命名並直接保存在該文件夾下。

注意:考生不得在該文件夾下創建任何子文件夾,所有考試結果均直接保存在該文件夾根目錄下。

然後選中整個文件夾,用Winrar壓縮工具打包後存放在本考場指定的考試結果存放地址,經監考老師確認上傳無誤後方可離開考場。

注意:在提交答案時,請務必選中上述存放作品的文件夾(如前面創建的433034683文件夾,而不是文件夾下的全部文件)進行壓縮,在完成答案提交後,請確保上述壓縮包仍保存在本地計算機中。

請務必按照試卷要求提交指定的文件,不得包含非題目要求的過程文件和臨時文件,不得包含本試題文件和試題素材。

注意:凡違反上述規定的考生,其成績一律按零分處理。

題目命名要求:請將編寫好的源程序以題號命名,例如第1題的源程序保存為「1.C」 )。

重要提示:由於時間有限,請考生首先保證編寫的程序在Wintc環境下可以編譯通過並執行,並在此基礎上保證完成考題要求的全部功能,以免因編譯不通過影響考生的考試成績。

1、 編程解決如下問題:雞翁一,值錢五;雞母一,值錢三;雞雛三,值錢一。百錢買百雞, 問雞翁,雞母,雞雛各幾何?(20分)

2、 編程實現:有二維數組a[3][3]=,,},將數組a的每一行元素均除以該行上絕對值最大的元素,按行輸出新數組。(20分)

3、 編程:設x、y取值為區間[1,10]的整數, f(x,y)=(3x-2y)/(x+y),求使f(x,y)取最小值的x1、y1,要求使用自定義函數實現f(x,y)功能。(20分)

4、 編寫函數fun,其功能是:在字元串中所有數字字元前加一個「*」字元,要求通過指針實現。(20分)

5、 編程:已知學生記錄由學號和學習成績構成,N名學生的記錄已存入結構體數組中,找出成績最低的學生,並輸出這個學生的信息,已知學生信息如下。(20分)

A01,81;A02,89;A03,66;A04,87;A05,77

A06,90;A07,79;A08,61;A09,80;A10,71

6、 附加題:編寫一個函數InverseByWord(char *sentence),實現一個英文句子按單詞逆序存放的功能,並給出測試程序。(50分)

如:This is an interesting programme.

逆序後變為:.programme interesting an is This

第五屆全國ITAT教育工程就業技能大賽復賽試題
C語言程序設計(A卷)

請考生仔細閱讀並嚴格遵守題目中關於文件保存和命名的要求。請務必按照試卷要求為文件命名。 考生答題完畢後,首先創建以「准考證號」命名的文件夾(形式如:433034683),並將考試結果嚴格按題目上的命名要求進行命名並直接保存在該文件夾下。

注意:考生不得在該文件夾下創建任何子文件夾,所有考試結果均直接保存在該文件夾根目錄下。

然後選中整個文件夾,用Winrar壓縮工具打包後存放在本考場指定的考試結果存放地址,經監考老師確認上傳無誤後方可離開考場。

注意:在提交答案簡世時,請務必選中上述存放作品的文件夾(如前面創建的433034683文件夾,而不是文件夾下的全部文件)進行壓縮,在完成答案提交後,請確保上述壓縮包仍保存在本地計算機中。

請務必按照試卷要求提交指定的文件,不得包含非題目要彎橘求的過程文件和臨時文件,不得包含本試題文件和試題素材。

注意:凡違反上述規定的考生,其成績一律按零分處理。

題目命名要求:請將編寫好的源程序以題號命名,例如第1題的源程序保存為「1.C」 。

重要提示:由於時間有限,請考生首先保證編寫的程序在Wintc環境下可以編譯通過並執行,並在此基礎上完成考題要求的全部功能,以免因編譯不通過影響考生的考試成績。

1、編程解決如下數學問題:有12升水,怎樣利用一個8升和一個5升的容器將水分為兩個6升?要求以如下格式列印出分水步驟。(20分埋咐團)

a12 b8 c5

12 0 0

* * * ( 「*」表示當前狀態下每個容器的盛水量)

......

0 6 6

2、編程實現:有二維數組a[3][3]=,,},將數組a的每一行元素均除以該行上的主對角元素(第1行同除以a[0][0],第2行同除以a[1][1],...),按行輸出新數組。(20分)

3、編程:設x取值為區間[1,20]的整數,求函數f(x)=x-sin(x)- cos(x)的最大值,要求使用自定義函數實現f(x)功能。(20分)

4、編寫函數fun,通過指針實現將一個字元串反向。要求主函數輸入字元串,通過調用函數fun實現輸入字元串反向。(20分)

5、已知學生三門課程基本信息如下。請使用結構體編程,計算學生三門課程平均成績後,列表輸出學生的姓名、數學、英語、計算機、平均分信息,並按平均分排序。(20分)

姓名 數學 英語 計算機

Mary 93 100 88

Jone 82 90 90

Peter 91 76 71

Rose 100 80 92

6、附加題:編程實現輸入一串英文,統計其中各單詞出現的個數(不區分大小寫字母),以「000」作為字元串輸入結束標志,例如:

Twinkle twinkle little star 000(回車)

twinkle little star

2 1 1 (50分)

熱點內容
大秦帝國之崛起下載緩存 發布:2025-03-13 00:34:31 瀏覽:357
xp系統f盤加密 發布:2025-03-13 00:33:42 瀏覽:129
如何讓刪除的微信恢復出廠設置密碼 發布:2025-03-13 00:21:48 瀏覽:254
七殺腳本 發布:2025-03-13 00:19:28 瀏覽:762
建立多級文件夾 發布:2025-03-13 00:13:34 瀏覽:725
存儲器價格 發布:2025-03-13 00:12:14 瀏覽:761
編譯原理上下文無關文法例題 發布:2025-03-13 00:12:12 瀏覽:95
微視頻腳本怎麼寫 發布:2025-03-12 23:59:54 瀏覽:611
蘋果手機文件夾管理 發布:2025-03-12 23:59:12 瀏覽:100
了解排序演算法 發布:2025-03-12 23:58:06 瀏覽:28