版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
全國計(jì)算機(jī)等級(jí)考試二級(jí)C語言上機(jī)答題技巧一、上機(jī)改錯(cuò)題的特點(diǎn)和注意事項(xiàng)1.上機(jī)改錯(cuò)的試題中通常包含兩個(gè)(或三個(gè))錯(cuò)誤需要修改。
2.試題中用"******found******/"來提示在下一行(或下面第二行)有錯(cuò)。
3.錯(cuò)誤的性質(zhì)基本分語法錯(cuò)和邏輯錯(cuò)兩種,也有些試題要求把語句添加在下劃線處。
4.特別要注意的是:只能在出錯(cuò)的行上進(jìn)行修改,不要改動(dòng)程序行的順序,更不要自己另編程序。二、上機(jī)改錯(cuò)測(cè)試時(shí),建議按以下步驟進(jìn)行1.首先仔細(xì)審題,了解試題的要求,看清楚試題給出的輸入和輸出例示,以便檢驗(yàn)改錯(cuò)后程序運(yùn)行的結(jié)果是否正確。
2.當(dāng)在VisualC++6.0環(huán)境下調(diào)出源程序后,審視所在函數(shù),根據(jù)題義理解程序所采用的基本算法,做到心里有數(shù)。
3.先按CTRL+F7對(duì)測(cè)試程序進(jìn)行檢查是否有語法錯(cuò)誤。當(dāng)編譯提示有語法錯(cuò)時(shí),可參考編譯提示來查找并改正錯(cuò)誤。
4.當(dāng)不再出現(xiàn)語法錯(cuò)時(shí),使用F7執(zhí)行,看結(jié)果使用CTRL+F5,按照試題的示例給出的數(shù)據(jù)進(jìn)行試算,若試算的結(jié)果與給出的輸出結(jié)果相同時(shí),該題就做對(duì)了;若試算的結(jié)果與給出的輸出結(jié)果不同,就應(yīng)進(jìn)一步檢查程序中的邏輯錯(cuò)誤。
5.當(dāng)程序存在邏輯錯(cuò)誤時(shí),首先應(yīng)當(dāng)理解題意、讀懂程序的算法,必要時(shí)可按步檢查數(shù)據(jù)的流程,以便確定錯(cuò)誤所在。例如,題目要求數(shù)據(jù)按由小到大排序,而結(jié)果數(shù)據(jù)是按由大到小進(jìn)行了排序,問題可能出現(xiàn)在條件判斷上。又如,輸出的字符串比預(yù)期的短,就有可能字符串的結(jié)束標(biāo)志放錯(cuò)了位置。再如做循環(huán)的時(shí)候數(shù)組上限下限錯(cuò)誤了,基數(shù)是從0開始而不是1開始的。修改程序中的邏輯錯(cuò)時(shí),要求考生認(rèn)真讀懂程序代碼。
6.修改完成,得到正確結(jié)果后,一定不要忘記把修改后的程序存盤。三、上機(jī)編程題的特點(diǎn)和說明1.在二級(jí)C程序設(shè)計(jì)上機(jī)考試中,要求完成一個(gè)獨(dú)立的函數(shù)的編程。目前教育部考試中心已出版了上機(jī)考試習(xí)題集,這些有助于學(xué)習(xí)編程,但考生應(yīng)當(dāng)在學(xué)習(xí)過程中理解基本的算法,通過實(shí)際上機(jī)操作積累經(jīng)驗(yàn),才能掌握基本的編程能力。四、進(jìn)行編程測(cè)試時(shí),建議按以下步驟進(jìn)行1.首先仔細(xì)審題,了解試題的要求,記下試題給出的輸入和輸出例示,以便檢驗(yàn)在完成指定的函數(shù)后程序運(yùn)行的結(jié)果是否正確。
2.當(dāng)在VisualC++6.0環(huán)境下調(diào)出源程序后,應(yīng)對(duì)照函數(shù)首部的形參,審視主函數(shù)中調(diào)用函數(shù)時(shí)的實(shí)參內(nèi)容,以便明確在函數(shù)中需要處理的數(shù)據(jù)對(duì)象。
3.理解試題的要求,審視主函數(shù)中調(diào)用函數(shù)的方式,若在表達(dá)式中調(diào)用函數(shù)(如把函數(shù)值賦給某個(gè)對(duì)象),則要求有函數(shù)值返回,需注意函數(shù)的類型,并在函數(shù)中用return語句返回函數(shù)值;若主函數(shù)中僅用語句形式調(diào)用函數(shù),則需要通過形參間接地返回所得結(jié)果。
4.選擇適當(dāng)?shù)乃惴ㄟM(jìn)行編程,輸入程序語句。不要忘記及時(shí)存盤!
5.編譯程序,直到?jīng)]有語法錯(cuò)誤。
6.調(diào)試程序,利用試題中給出的例示數(shù)據(jù)進(jìn)行輸入(若要求輸入的話),運(yùn)行程序,用例示的輸出數(shù)據(jù)檢驗(yàn)輸出結(jié)果,直到結(jié)果相同。1.書寫標(biāo)識(shí)符時(shí),忽略了大小寫字母的區(qū)別。
main()
{
inta=5;
printf("%d",A);
}
編譯程序把a(bǔ)和A認(rèn)為是兩個(gè)不同的變量名,而顯示出錯(cuò)信息。C認(rèn)為大寫字母和小寫字母是兩個(gè)不同的字符。習(xí)慣上,符號(hào)常量名用大寫,變量名用小寫表示,以增加可讀性。2.忽略了變量的類型,進(jìn)行了不合法的運(yùn)算。
main()
{
floata,b;
printf("%d",a%b);
}
%是求余運(yùn)算,得到a/b的整余數(shù)。整型變量a和b可以進(jìn)行求余運(yùn)算,而實(shí)型變量則不允許進(jìn)行“求余”運(yùn)算。3.將字符常量與字符串常量混淆。
charc;
c="a";
在這里就混淆了字符常量與字符串常量,字符常量是由一對(duì)單引號(hào)括起來的單個(gè)字符,字符串常量是一對(duì)雙引號(hào)括起來的字符序列。C規(guī)定以“\”作字符串結(jié)束標(biāo)志,它是由系統(tǒng)自動(dòng)加上的,所以字符串
“a”實(shí)際上包含兩個(gè)字符:‘a(chǎn)'和‘\',而把它賦給一個(gè)字符變量是不行的。4.忽略了“=”與“==”的區(qū)別。
在許多高級(jí)語言中,用“=”符號(hào)作為關(guān)系運(yùn)算符“等于”。如在BASIC程序中可以寫
if(a=3)then…
但C語言中,“=”是賦值運(yùn)算符,“==”是關(guān)系運(yùn)算符。如:
if(a==3)a=b;
前者是進(jìn)行比較,a是否和3相等,后者表示如果a和3相等,把b值賦給a。由于習(xí)慣問題,初學(xué)者往往會(huì)犯這樣的錯(cuò)誤。5.忘記加分號(hào)。
分號(hào)是C語句中不可缺少的一部分,語句末尾必須有分號(hào)。
a=1
b=2
編譯時(shí),編譯程序在“a=1”后面沒發(fā)現(xiàn)分號(hào),就把下一行“b=2”也作為上一行語句的一部分,這就會(huì)出現(xiàn)語法錯(cuò)誤。改錯(cuò)時(shí),有時(shí)在被指出有錯(cuò)的一行中未發(fā)現(xiàn)錯(cuò)誤,就需要看一下上一行是否漏掉了分號(hào)。
{z=xy;
t=z/100;
printf("%f",t);}
對(duì)于復(fù)合語句來說,最后一個(gè)語句中最后的分號(hào)不能忽略不寫。6.多加分號(hào)。
對(duì)于一個(gè)復(fù)合語句,如:
{z=xy;
t=z/100;
printf("%f",t);
};
復(fù)合語句的花括號(hào)后不應(yīng)再加分號(hào),否則將會(huì)畫蛇添足。
又如:
if(a%3==0);
I;
本是如果3整除a,則I加1。但由于if(a%3==0)后多加了分號(hào),則if語句到此結(jié)束,程序?qū)?zhí)行I語句,不論3是否整除a,I都將自動(dòng)加1。
再如:
for(I=0;I<5;I);
{scanf("%d",&x);
printf("%d",x);}
本意是先后輸入5個(gè)數(shù),每輸入一個(gè)數(shù)后再將它輸出。由于for()后多加了一個(gè)分號(hào),使循環(huán)體變?yōu)榭照Z句,此時(shí)只能輸入一個(gè)數(shù)并輸出它。7.輸入變量時(shí)忘記加地址運(yùn)算符“&”。
inta,b;
scanf("%d%d",a,b);
這是不合法的。Scanf函數(shù)的作用是:按照a、b在內(nèi)存的地址將a、b的值存進(jìn)去。“&a”指a在內(nèi)存中的地址。8.輸入數(shù)據(jù)的方式與要求不符。
①scanf("%d%d",&a,&b);
輸入時(shí),不能用逗號(hào)作兩個(gè)數(shù)據(jù)間的分隔符,如下面輸入不合法:
3,4
輸入數(shù)據(jù)時(shí),在兩個(gè)數(shù)據(jù)之間以一個(gè)或多個(gè)空格間隔,也可用回車鍵,跳格鍵tab。
②scanf("%d,%d",&a,&b);
C規(guī)定:如果在“格式控制”字符串中除了格式說明以外還有其它字符,則在輸入數(shù)據(jù)時(shí)應(yīng)輸入與這些字符相同的字符。下面輸入是合法的:
3,4
此時(shí)不用逗號(hào)而用空格或其它字符是不對(duì)的。
343:4
又如:
scanf("a=%d,b=%d",&a,&b);
輸入應(yīng)如以下形式:
a=3,b=49.輸入字符的格式與要求不一致。
在用“%c”格式輸入字符時(shí),“空格字符”和“轉(zhuǎn)義字符”都作為有效字符輸入。
scanf("%c%c%c",&c1,&c2,&c3);
如輸入abc
字符“a”送給c1,字符“”送給c2,字符“b”送給c3,因?yàn)?c只要求讀入一個(gè)字符,后面不需要用空格作為兩個(gè)字符的間隔。10.輸入輸出的數(shù)據(jù)類型與所用格式說明符不一致。
例如,a已定義為整型,b定義為實(shí)型
a=3;b=4.5;
printf("%f%d\n",a,b);
編譯時(shí)不給出出錯(cuò)信息,但運(yùn)行結(jié)果將與原意不符。這種錯(cuò)誤尤其需要注意。11.輸入數(shù)據(jù)時(shí),企圖規(guī)定精度。
scanf("%7.2f",&a);
這樣做是不合法的,輸入數(shù)據(jù)時(shí)不能規(guī)定精度。12.switch語句中漏寫break語句。
例如:根據(jù)考試成績的等級(jí)打印出百分制數(shù)段。
switch(grade)
{case'A':printf("85~100\n");
case'B':printf("70~84\n");
case'C':printf("60~69\n");
case'D':printf("<60");
default:printf("error");
由于漏寫了break語句,case只起標(biāo)號(hào)的作用,而不起判斷作用。因此,當(dāng)grade值為A時(shí),printf函數(shù)在執(zhí)行完第一個(gè)語句后接著執(zhí)行第二、三、四、五個(gè)printf函數(shù)語句。正確寫法應(yīng)在每個(gè)分支后再加上“break;”。例如
case'A':printf("85~100");break;13..在定義數(shù)組時(shí),將定義的“元素個(gè)數(shù)”誤認(rèn)為是可使的最大下標(biāo)值。
main()
{staticinta[10]={1,2,3,4,5,6,7,8,9,10};
printf("%d",a[10]);
}
C語言規(guī)定:定義時(shí)用a[10],表示a數(shù)組有10個(gè)元素。其下標(biāo)值由0開始,所以數(shù)組元素a[10]是不存在的。
16.在不應(yīng)加地址運(yùn)算符&的位置加了地址運(yùn)算符。
scanf("%s",&str);
========================================================================
C語言編譯系統(tǒng)對(duì)數(shù)組名的處理是:數(shù)組名代表該數(shù)組的起始地址,且scanf函數(shù)中的輸入項(xiàng)是字符數(shù)組名,不必要再加地址符&。應(yīng)改為:
scanf("%s",str);
1、編一個(gè)函數(shù)fun(char*s),函數(shù)的功能是把字符串中的內(nèi)容逆置。
例子如:字符串中原有的內(nèi)容為:abcdefg,則調(diào)用該函數(shù)后,串中的內(nèi)容為:gfedcba
fun(char*s)
{inti=0,t,n=strlen(s);
for(;si{t=*(si);*(si)=*(sn-1-i);*(sn-1-i)=t;}}
注:該題的算法是先分別找出字符串的兩頭,然后同時(shí)逐一往中間移動(dòng),每移動(dòng)一次
都進(jìn)行兩字符的位置對(duì)換,直到中間字符(用si地址,因此要注意把它的內(nèi)容取出再進(jìn)行換位。即先進(jìn)行取內(nèi)容運(yùn)算*)
2、請(qǐng)編寫函數(shù)fun,對(duì)長度為7個(gè)字符的字符串,除首、尾字符外,將其余5個(gè)字符按降序排列。例如,原來的字符串為CEAedca,排序后輸出為CedcEAa。
intfun(char*s,intnum)
{inti,j,t;
for(i=1;ifor(j=i1;jif(s{t=s;
s=s[j];
s[j]=t;}}
該題采用的排序法是選擇法進(jìn)行降序排序,算法是用外for()循環(huán)從字符串的前端往后
端走動(dòng),每走動(dòng)一個(gè)字符都用內(nèi)嵌的for()循環(huán)在該字符后找出最小的字符與該字符進(jìn)
行換位。直到外for()循環(huán)走到最后一個(gè)字符。此外,此題還要注意把首尾字符除開,即
在最外層for()循環(huán)中從1開始,只到num-2即可。
3、請(qǐng)編寫一個(gè)unsignedfun(unsignedw),w是一個(gè)大于10的無符號(hào)整數(shù),若w是n(n>=2)位的整數(shù),函數(shù)求出w的后n-1位的數(shù)作為函數(shù)值返回。例如:w值為5923,則函數(shù)返回923;w值為923則函數(shù)返回23。
unsignedfun(unsignedw)
{if(w>=10000)returnw000;
if(w>=1000)returnw00;
if(w>=100)returnw0;
returnw;
}
注:由于unsigned型整數(shù)在0-65535這間,只要它大于10000則對(duì)10000求余即得出后
面4位,否則如果大于1000則對(duì)1000求余得出后3位數(shù),這樣一層一層往小的判斷。由于
return的作用除了返回值以外,還有當(dāng)執(zhí)行到return時(shí)就跳出該程序,所以可以連續(xù)的
用if()語句。
4、請(qǐng)編一函數(shù)voidfun(inttt[M][N],intpp[N]),tt指向一個(gè)M行N列的二維數(shù)組,求出二維數(shù)組每列中最小元素,并依次放入pp所指一維數(shù)組中,二維數(shù)組中的數(shù)已在主函數(shù)中賦予。
#defineM3
#defineN4
voidfun(inttt[M][N],intpp[N])
{inti,j;
for(i=0;i{pp=tt[0];
for(j=0;jif(tt[j]}}
5、請(qǐng)編一個(gè)函數(shù)fun,其中n所指存儲(chǔ)單元中存放了數(shù)組中元素的個(gè)數(shù)。函數(shù)的功能是:刪除所有值為y的元素。數(shù)組元素中的值和y的值由主函數(shù)通過健盤讀入。
試題程序。
#defineM20
voidfun(intbb[],int*n,inty)
{inti,j=0;
for(i=0;i<*n;i)
if(bb!=y)bb[j]=bb;
*n=j;}
6、請(qǐng)編寫一個(gè)函數(shù)intfun(intx),它的功能是:判斷整數(shù)x是否是同構(gòu)數(shù)。若是同構(gòu)數(shù),函數(shù)返回1;否則返回0。
所謂“同構(gòu)數(shù)”是指這樣的數(shù),它出現(xiàn)在它的平方數(shù)的右邊。例如:輸入整數(shù)5,5的平方數(shù)是25,5是25中右側(cè)的數(shù),所以5是同構(gòu)數(shù)。x的值由主函數(shù)從健盤讀入,要求不大于100。
intfun(intx)
{intxx=x*x;
if(xx==x//xx==x//xx0==x)return1;
elsereturn0;}
7、請(qǐng)編寫函數(shù)fun,它的功能是:求出ss所指字符串中、指定字符的個(gè)數(shù),并返回此值。例如:若輸入字符串:123412132,輸入字符為:1,則輸出:3。
#defineM81
intfun(char*ss,charc)
{intnum=0;
while(*ss!='\0')
{if(*ss==c)num++;
ss++;}
return(num);}
8、請(qǐng)編寫函數(shù)fun,經(jīng)的功能是:求出1到1000之內(nèi)能被7或11整除、但不能同時(shí)補(bǔ)7和11整除的所有整數(shù)并將它們放在a所指的數(shù)組中,通過n返回這些數(shù)的個(gè)數(shù)。
voidfun(int*a,int*n)
{inti,m=0;
for(i=1;i<1000;i)
if(((i%7==0)//(i==0))&&!((i%7==0)&&(i==0)))
{a[m]=i;m=1;}
*n=m;
}10、要求程序的功能是:把20個(gè)隨機(jī)數(shù)存入一個(gè)數(shù)組,然后輸出該數(shù)組中的最小值。其中確定最小值的下標(biāo)的操作在fun函數(shù)中實(shí)現(xiàn),請(qǐng)給出該函數(shù)的定義。
試題程序。
#include
#include
#defineVSIZE20
intvector[VSIZE];
intfun(intlist[],intsize)
{
inti,j=0;
for(i=1;i<size;i++)
if(list[i]<list[j])j=i;
returnj;
}
/*注:該題的算法是用一個(gè)變量(j)來存儲(chǔ)最小值元素的下標(biāo),在循環(huán)過程中讓每個(gè)元素都與原最小值元素進(jìn)行大小比較。
================================================================改錯(cuò)題策略與技巧一般有2—3處錯(cuò)誤,均在以“*******found*******”下按Ctrl+F7編譯出現(xiàn)多個(gè)錯(cuò)誤,由前向后修改。錯(cuò)誤分兩大類
一.語法錯(cuò)誤①丟失分號(hào),或誤寫成逗號(hào)②關(guān)鍵字拼寫錯(cuò)誤,如小寫變大寫③語句格式錯(cuò)誤,如for句中多寫或少寫分號(hào)④表達(dá)式聲明錯(cuò)誤,如少了()⑤函數(shù)類型說明錯(cuò)誤⑥函數(shù)形參類型聲明錯(cuò)誤,如少*號(hào)⑦運(yùn)算符,書寫錯(cuò)誤,如<寫成>
二.邏輯錯(cuò)誤(語義錯(cuò)誤)①變量初值錯(cuò)誤②循環(huán)次數(shù)不對(duì)③下標(biāo)越界④運(yùn)算類型不匹配
編程題策略與技巧
一.認(rèn)真閱讀試題①題目所給出的限制條件②一些術(shù)語解釋③題目提供的算法④程序的執(zhí)行結(jié)果
二.清晰地理解fun函數(shù)①函數(shù)的功能②函數(shù)反回值類型③參數(shù)傳遞方式④運(yùn)行結(jié)果三.調(diào)試運(yùn)行程序①先調(diào)試程序②運(yùn)行程序③利用好VC++調(diào)試工具一、選擇題(每小題1分,共40小題,共40分)
1.下列敘述中正確的是()。
A.一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度必定大
B.一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度必定小
C.一個(gè)算法的時(shí)間復(fù)雜度大,則其空間復(fù)雜度必定小
D.上述3種說法都不對(duì)D?!窘馕觥克惴ǖ臅r(shí)間復(fù)雜度和空間復(fù)雜度是從不同的角度來衡量算法的執(zhí)行情況的,它們之間沒有內(nèi)在聯(lián)系。
2.開發(fā)軟件時(shí)對(duì)提高開發(fā)人員工作效率至關(guān)重要的是()。
A.操作系統(tǒng)的資源管理功能
B.先進(jìn)的軟件開發(fā)工具和環(huán)境
C.程序員的數(shù)量
D.計(jì)算機(jī)的并行處理能力B?!窘馕觥肯冗M(jìn)的軟件開發(fā)工具和環(huán)境對(duì)提高開發(fā)人員工作效率是至關(guān)重要的。
3.程序設(shè)計(jì)語言的基本成分是數(shù)據(jù)成分、運(yùn)算成分、控制成分和()。
A.對(duì)象成分
B.變量成分
C.語句成分
D.傳輸成分D?!窘馕觥砍绦蛟O(shè)計(jì)語言的基本成分有:數(shù)據(jù)成分,用于描述程序所涉及的數(shù)據(jù);運(yùn)算成分,用于描述程序中所包含的運(yùn)算;控制成分,用于描述程序中所包含的控制;傳輸成分,用于表達(dá)程序中數(shù)據(jù)的傳輸。
4.對(duì)長度為n的線性表進(jìn)行順序查找,在最壞情況下需要比較的次數(shù)為()。
A.125
B.n/2
C.n
D.n+lC。【解析】對(duì)線性表進(jìn)行順序查找時(shí),從表中的第一個(gè)元素開始,將給定的值與表中逐個(gè)元素的關(guān)鍵字進(jìn)行比較,直到兩者相符,查找到所要找的元素為止。在最壞情況
下,要查找的元素是表的最后一個(gè)元素或查找失敗,這兩種情況都需要將這個(gè)元素與表中的所有元素進(jìn)行比較,因此比較次數(shù)為n。
5.有下列二叉樹,對(duì)此二叉樹前序遍歷的結(jié)果為()。
A.XZCYAB
B.XYZABC
C.XYABCZ
D.XYAZBCD。【解析】對(duì)二叉樹的前序遍歷是指:先訪問根結(jié)點(diǎn),然后訪問左子樹,最后訪問右子樹,并且,在訪問左、右子樹時(shí),先訪問根結(jié)點(diǎn),再依次訪問其左、右子樹。
6.下列敘述中正確的是()。
A.在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,各個(gè)對(duì)象之間具有密切的關(guān)系
B.在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,各個(gè)對(duì)象都是公用的
C.在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,各個(gè)對(duì)象之間相對(duì)獨(dú)立,相互依賴性小
D.上述3種說法都不對(duì)C。【解析】面向?qū)ο蟮某绦蛟O(shè)計(jì)是用對(duì)象模擬問題領(lǐng)域中的實(shí)體,各對(duì)象之間相對(duì)獨(dú)立,相互依賴性小,通過消息來實(shí)現(xiàn)對(duì)象之間的相互聯(lián)系。
7.軟件工程的理論和技術(shù)性研究的內(nèi)容主要包括軟件開發(fā)技術(shù)和()。
A.消除軟件危機(jī)
B.軟件工程管理
C.程序設(shè)計(jì)自動(dòng)化
D.實(shí)現(xiàn)軟件可重用B。【解析】基于軟件工程的目標(biāo),軟件工程的理論和技術(shù)性研究的內(nèi)容主要包括軟件開發(fā)技術(shù)和軟件工程管理。
8.在對(duì)象方法中,一個(gè)對(duì)象請(qǐng)求另一個(gè)對(duì)象為其服務(wù)的方式是通過發(fā)送()。
A.調(diào)用語句
B.命令
C.H令
D.消息D?!窘馕觥吭诿嫦?qū)ο蠓椒ㄖ校瑢?duì)象之間通過消息進(jìn)行通信。消息中只包含傳遞者的要求,但并不指示接受者應(yīng)該怎么完成這些處理。
9.下列選項(xiàng)中,是軟件調(diào)試技術(shù)的是()。
A.錯(cuò)誤推斷
B.集成測(cè)試
C.回溯法
D.邊界值分析C?!窘馕觥寇浖{(diào)試技術(shù)包括強(qiáng)行排錯(cuò)法、回溯法和原因排除法。邊界值分析、錯(cuò)誤推斷都是黑盒測(cè)試的方法。
10.?dāng)?shù)據(jù)庫DB、數(shù)據(jù)庫系統(tǒng)DBS、數(shù)據(jù)庫管理系統(tǒng)DBMS之間的關(guān)系是()。
A.DB包括DBS和DBMS
B.DBMS包括DB和DBS
C.DBS包括DB和DBMS
D.沒有任何關(guān)系C?!窘馕觥繑?shù)據(jù)庫系統(tǒng)(DBS)由數(shù)據(jù)庫(DB)、數(shù)據(jù)庫管理系統(tǒng)(DBMS)、數(shù)據(jù)庫管理員、硬件平臺(tái)和軟件平臺(tái)5個(gè)部分組成,因此DB和DBMS都是DBS的組成部分。11.下列()不是高級(jí)程序設(shè)計(jì)語言。
A.FORTRAN
B.Java
C.C++
D.VisualASMD?!窘馕觥扛呒?jí)語言是一類人工設(shè)計(jì)的語言,因?yàn)樗鼘?duì)具體的算法進(jìn)行了描述,所以又稱為算法語言。它是面向程序設(shè)計(jì)獨(dú)立于計(jì)算機(jī)的硬件。目前,計(jì)算機(jī)常用的高級(jí)語言有:BASIC語言、FORTRAN語言、COBOL語言、PASCAL語言、C語言、PROLOG語言、而當(dāng)前流行的,面向?qū)ο蟮某绦蛟O(shè)計(jì)語言有C++和用于網(wǎng)絡(luò)環(huán)境的程序設(shè)計(jì)語言Java等。
12.16根地址總線的尋址范圍是()。
A.531KB
B.64KB
C.640KB
D.1MBB?!窘馕觥考僭O(shè)地址總線有n條,內(nèi)存的尋址范圍是2n。
13.在一所大學(xué)中,每個(gè)系都有自己的局域網(wǎng),則連接各個(gè)系的校園網(wǎng)()。
A.是廣域網(wǎng)
B.還是局域網(wǎng)
C.是地區(qū)網(wǎng)
D.這些局域網(wǎng)不能互連B。【解析】廣域網(wǎng)是指遠(yuǎn)距離的計(jì)算機(jī)互聯(lián)網(wǎng)絡(luò),分布范圍可達(dá)幾千千米乃至上萬千米甚至跨越國界、州界、遍及全球范圍。局域網(wǎng)是指一個(gè)局部區(qū)域中的、近距離的計(jì)算機(jī)互聯(lián)網(wǎng)絡(luò),通常采用有線方式連接,分布范圍從幾百米到幾千米。例如,一座大樓內(nèi)或相鄰的幾座樓之間的互聯(lián)網(wǎng)絡(luò)。一個(gè)單位、學(xué)校內(nèi)部的網(wǎng)絡(luò)多為局域網(wǎng)。
14.下列關(guān)于信息加密的敘述中,正確的是()。
A.加密通過加密算法實(shí)現(xiàn)
B.加密前的文件稱為密文
C.加密后的文件稱為明文
D.將明文變?yōu)槊芪牡倪^程稱為解密A。【解析】一般人們將加密前的文件稱為明文,而加密后的文件稱為密文,因此加密的目的就是將明文變?yōu)槊芪?。而反過來將密文變?yōu)槊魑牡倪^程則稱為解密。
15.下列關(guān)于域名和IP地址的敘述中,不正確的是()。
A.在Internet中訪問一臺(tái)主機(jī)必須使用它的主機(jī)名
B.200.201.202.203是一個(gè)C類IP地址
C.IP地址采用的是分層結(jié)構(gòu)
D.主機(jī)名與IP地址是一一對(duì)應(yīng)的A?!窘馕觥棵颗_(tái)直接連接到Internet上的計(jì)算機(jī)、路由器都必須有唯一的IP地址。IP地址是Internet賴以工作的基礎(chǔ)。Internet中的計(jì)算機(jī)與路由器的IP地址采用分層結(jié)構(gòu),它是由網(wǎng)絡(luò)地址與主機(jī)地址兩部分組成。對(duì)于C類地址,其網(wǎng)絡(luò)地址空間長度為21位,主機(jī)地址空間長度為8位,C類IP地址范圍從:l92.0.0.0~223.255.255.255。主機(jī)名與它的IP地址一一對(duì)應(yīng),因此在Internet上訪問一臺(tái)主機(jī)既可以使用它的主機(jī)名,也可以使用它的IP地址。
16.Java語言中。負(fù)責(zé)并發(fā)管理的機(jī)制是()。
A.垃圾回收
B.虛擬機(jī)
C.代碼安全
D.多線程D。【解析】多線程是Java程序的并發(fā)機(jī)制,它能同步共享數(shù)據(jù)、處理不同的事件。
17.下列描述中,錯(cuò)誤的是()。
A.Java要求編程者管理內(nèi)存
B.Java的安全性體現(xiàn)在多個(gè)層次上
C.Applet要求在支持Java的瀏覽器上運(yùn)行
D.Java有多線程機(jī)制A?!窘馕觥繛榱顺浞掷觅Y源,Java有一個(gè)系統(tǒng)級(jí)的線程,用來對(duì)內(nèi)存的使用進(jìn)行跟蹤,它可以在系統(tǒng)空閑時(shí)對(duì)不用的內(nèi)存空間進(jìn)行回收,從而使程序員從繁忙的內(nèi)存管理中解放出來。
18.Java為移動(dòng)設(shè)備提供的平臺(tái)是()。
A.J2MEB.J2SE
C.J2EED.JDK5.0A?!窘馕觥縅ava2平臺(tái)包括:J2ME平臺(tái)、J2SE平臺(tái)和J2EE平臺(tái)。其中:J2ME是為嵌入式和移動(dòng)設(shè)備提供的Java平臺(tái);J2SE是面向企業(yè)級(jí)應(yīng)用與服務(wù)的綜合性標(biāo)準(zhǔn)開發(fā)平臺(tái);J2EE是面向大型企業(yè)級(jí)用容器管理專用構(gòu)件的應(yīng)用平臺(tái)。而JDK5.0是一個(gè)Java開發(fā)軟件包。
19.JDK中提供的文檔生成器是()。
A.javadoc.exe
B.javap.exe
C.java.exe
D.javaprof.exeA。【解析】在JDK中:javadoc.exe是文檔生成器,將Java源代碼和包以MML格式生成AP文檔;java.exe是Java解釋器;javap.exe是Java反匯編器;javaprof.exe是Java剖析工具,提供解釋器剖析信息。
20.下列不屬于Swing中構(gòu)件的是()。
A.JPanel
B.JTable
C.Menu
D.JFrameC?!窘馕鯹JPanel是Swing的中間容器;JTable是Swing中可編輯信息的構(gòu)件;JFrame是Swing的頂層容器。閱讀下面程序
importjava.io.*;
publicclassTypeTransition{
publicstaticvoidmain(Stringargs[]){
chara=’h’;
inti=100;
intJ=97;
intaa=a+i;
System.out.println("aa="+aa);
charbb=(char)j;
System.out.println("bb="+bb):
}
}
如果輸出結(jié)果的第二行為bb=a,那么第一行的輸出結(jié)果是()。
A.a(chǎn)a=I
B.a(chǎn)a=204
C.a(chǎn)a=v
D.a(chǎn)a=156B。【解析】本題考查的是Java的基本數(shù)據(jù)類型及其運(yùn)算。程序開始生成了一個(gè)字符型變量a和3個(gè)整型變量i、j、aa。而整型變量aa的初始值是a+i,其中a是一個(gè)字符
型變量。如何進(jìn)行加法運(yùn)算呢?Java語言規(guī)定,char型數(shù)據(jù)可以自動(dòng)轉(zhuǎn)換成int類型,轉(zhuǎn)換的結(jié)果就是該字符的ASCIl碼值。因此,整型變量aa的初始值為字符”h”的ASCIl碼值加上l00。如果記住h的ASCIl碼值是104,則直接就確定aa的初始值是204,選項(xiàng)B為正確答案。如果記不得h的ASCIl碼,題目中則給出提示。題目中說”輸出結(jié)果的第二行為bb=a”,也就是字符bb的值為字符a,bb的生成語句是charbb=(char)j,是把整型變量j的值強(qiáng)制轉(zhuǎn)換為字符型。同樣,把ASCIl碼值為j(97)所對(duì)應(yīng)的字符賦值給bb。顯然,字符a的ASCIl碼值為97,字符b的ASCIl碼值為98,依次類推,字符h的ASCIl碼為l04。因此,本題的正確答案是B。
22.閱讀下面程序
publicclassOperatorsAndExpressions(
voidequalsMethodl(){
Stringsl一newString("howareyou");
Strings2=newString("howareyou");
System.out.println(s1==s2):
}
publicstaticvoidmain(Stringargs[]){
OperatorsAndExpressionsOperAndExp=newOper-
atorsAndExpressions
();
//用于復(fù)合類型數(shù)據(jù)的”==”運(yùn)算符
OperAndExp.equalsMethodl();
}
}
程序運(yùn)行結(jié)果是()。
A.==
B.true
C.false
D.equal
C?!窘馕觥勘绢}考查的是Java語言中運(yùn)算符的特殊用法。相等比較運(yùn)算符"==",不僅可用于基本類型的數(shù)據(jù)之間的比較,還可以用于復(fù)合類型數(shù)據(jù)之間的比較。但是,對(duì)于復(fù)合類型數(shù)據(jù)的"=="運(yùn)算,其比較的目標(biāo)是兩個(gè)操作數(shù)是否是同一個(gè)對(duì)象。如果需要比較兩個(gè)對(duì)象的值是否相同,則可以調(diào)用equals()方法。題目中函數(shù)equalsMethodl()的代碼非常簡(jiǎn)單,首先生成兩個(gè)字符串對(duì)象sl和s2,然后輸出表達(dá)式"sl==s2"的結(jié)果。根據(jù)上面介紹的相等比較運(yùn)算符的用法,字符串對(duì)象sl和s2是復(fù)合類型數(shù)據(jù),因此表達(dá)式"sl==s2"比較的是sl和s2是否同一個(gè)對(duì)象。顯然,sl和s2雖然具有相同的值,即"howareyou",但它們是兩個(gè)不同的對(duì)象。因此,本題的正確答案是C。23.閱讀下面代碼
if(x==0){System.out.println("冠軍");)
elseif(x>一3){System.Out.println("亞軍");}
else{System.out.println("季軍");}
若要求打印字符串”季軍”,則變量X的取值范圍是()。
A.x=d&x<=-3
B.x>O
C.x>-3
D.x<=-3
23.D?!窘馕觥勘绢}考查的是條件分支語句if-else。if-else根據(jù)判定條件的真假來執(zhí)行兩種操作中的一種。當(dāng)條件為真時(shí),執(zhí)行if語句后面的代碼塊;當(dāng)條件為假時(shí),執(zhí)行else后面的代碼塊。題目中的代碼段是一個(gè)if-else的嵌套語句,根據(jù)if-else語句的執(zhí)行過程來進(jìn)行分析。當(dāng)x的值為0時(shí),布爾表達(dá)式"x==0"的結(jié)果為真,就輸出”冠軍”;當(dāng)x的值不為0時(shí),則執(zhí)行else語句中的內(nèi)容。else語句中的代碼又是一個(gè)if-else語句,還是和上面一樣進(jìn)行分析。當(dāng)X的值不等于0且大于-3時(shí),布爾表達(dá)式”x>-3”的結(jié)果為真,輸出"亞軍";當(dāng)x的值不等于0且不大干-3,也就是X的值不等于0同時(shí)x的值小于等于-3時(shí),則輸出"季軍"。經(jīng)過上述分析可知,要想輸出"季軍",x所滿足的條件為x!=O&x<=-3,但是當(dāng)x<=-3時(shí),x的值一定不會(huì)為0。所以,X所滿足的條件可以簡(jiǎn)寫為x<=-3。因此,本題的正確答案為D。
24.下列關(guān)于構(gòu)造方法的敘述中,錯(cuò)誤的是()。
A.Java語言規(guī)定構(gòu)造方法名與類名必須相同
B.Java語言規(guī)定構(gòu)造方法沒有返回值,但不用void聲明
C.Java語言規(guī)定構(gòu)造方法不可以重載
D.Java語言規(guī)定構(gòu)造方法只能通過new自動(dòng)調(diào)用C。【解析】本題考查的是構(gòu)造方法的使用。Java語言中,構(gòu)造方法是一種特殊的方法,是為對(duì)象初始化操作編寫的方法,用它來定義對(duì)象的初始狀態(tài)。Java中的每個(gè)類都有構(gòu)造方法,它也是由方法名、參數(shù)和方法體組成的。構(gòu)造方法有如下特點(diǎn):
·構(gòu)造方法的名字必須與類名相同。
·構(gòu)造方法不返回任何數(shù)據(jù),但不用void來聲明。
·用戶不能直接調(diào)用構(gòu)造方法,必須通過關(guān)鍵字new自動(dòng)調(diào)用。
·構(gòu)造方法可由用戶在類中定義,默認(rèn)時(shí)由Java語言自動(dòng)生成。但它是個(gè)空方法,變量被賦予該數(shù)據(jù)類型的默認(rèn)值。
·在構(gòu)造方法實(shí)現(xiàn)中,可以進(jìn)行方法重載,即定義多個(gè)構(gòu)造方法。重載構(gòu)造方法的目的是使類具有不同的初始值,為類對(duì)象的初始化提供方便。根據(jù)上述構(gòu)造方法的特點(diǎn)可知,本題選項(xiàng)C的說法是錯(cuò)誤的。
25.下列適配器類中不屬于事件適配器的是()。
A.MouseAdapter
B.KeyAdapter
C.ComponentAdapter
D.FrameAdapter
D?!窘馕觥勘绢}考查java.a(chǎn)wt.event包中定義的適配器類。該包中定義的適配器類包括①ComponentAdapter構(gòu)件適配器;②ContainerAdapter容器適配器;③FocusAdapter焦點(diǎn)適配器;④MouseAdapter鼠標(biāo)適配器;⑤KeyAdapter鍵盤適配器⑥WindowAdapter窗口適配器,由此可知本題答案為D。26.下列類中屬于字節(jié)輸入抽象類的是()。
A.FileInputStream
B.ObjectInputStream
C.FiterInputStream
D.InputStream
D。【解析】在Java中定義了兩種類型的流,字節(jié)型和字符型,這兩種流分別用4個(gè)抽象類表示:InputStream,OutputStream,Reader,Writer,其中InptutStream和OutStream表示字節(jié)流,Reader和Reader是表示字符流,所以字節(jié)輸入抽象類為InptutStream。27.能向內(nèi)部直接寫入數(shù)據(jù)的流是()。
A.FileOutputStream
B.FileInputStream
C.ByteArrayOutputStream
D.ByteArraylnputStream
C?!窘馕觥勘绢}考查Java的內(nèi)存讀寫。在java.io中,還提供了ByteArrayInputStream、ByteArrayoutputStream和StringBufferInputStream類可直接訪問內(nèi)存,它們是InputStream和OutputStream的子類。用ByteArrayOutputStream可向字節(jié)數(shù)組寫入數(shù)據(jù);ByteArrayInputStream可從字節(jié)數(shù)組中讀取數(shù)據(jù)。28.下列運(yùn)算符中屬于關(guān)系運(yùn)算符的是()。
A.==
B.=
C.+=
D.-=
A?!窘馕觥勘绢}考查Java的關(guān)系運(yùn)算符。B中寫法不正確,C、D均為賦值運(yùn)算符。29.下列方法中,聲明拋出InterruptedException類型異常的方法是()。
A.suspend()
B.resume()
C.sleep()
D.start()
C?!窘馕觥勘绢}考查線程的基本操作。Java中提供了interrupt方法用來中斷一個(gè)線程,當(dāng)調(diào)用一個(gè)線程的interrupt方法時(shí),即向該線程發(fā)送一個(gè)中斷請(qǐng)求。在調(diào)用線程的interrupt方法時(shí),如果該線程由于調(diào)用了sleep方法或wait方法而正在處于阻塞狀態(tài),那么線程會(huì)拋出一個(gè)InterruptException異常。30.下列關(guān)于System類的敘述中,錯(cuò)誤的是()。
A.System類是一個(gè)final類
B.System類不能實(shí)例化
C.System類中沒有定義屬性
D.System類主要提供了系統(tǒng)環(huán)境參數(shù)的訪問C。【解析】本題考查System類的基本知識(shí)。Systern類是一個(gè)final類,所有的方法都用類變量來調(diào)用,對(duì)System類不可能實(shí)例化。System類主要用來提供標(biāo)準(zhǔn)輸入/輸出和系統(tǒng)環(huán)境信息的訪問設(shè)置。而System類的屬性有:①publicstaticfinalInputStreamin;標(biāo)準(zhǔn)輸入;②publicstaticfinalOutputStreamout;標(biāo)準(zhǔn)輸出;③pubhcstaticfinalPrintStreamerr;標(biāo)準(zhǔn)錯(cuò)誤輸出。閱讀下面程序
publicclassIncrement{
publicstaticvoidmain(stringargs[]){
intC;
c=5:
System.out.println(c);
System.out.println(c++):
System.out.println(c);
}
}
程序運(yùn)行結(jié)果是()。
A.5
6
6
B.5
5
6
C.6
7
7
D.6
6
6
B。【解析】本題考查的是Java增量運(yùn)算符"++"。x++是先使用后加l,即首先使用X的值進(jìn)行表達(dá)式的計(jì)算,然后才對(duì)x的值加1。而++x是先加1后使用,即首先對(duì)x的值加1,然后使用x的值進(jìn)行表達(dá)式的計(jì)算。本題首先生成一個(gè)整型變量C,其初始值為5。第一條輸出語句輸出c的初始值,即5。然后,第二條輸出表達(dá)式c++的結(jié)果,即先輸出C的值,然后才對(duì)c的值加1,所以,第二條輸出語句輸出的是5,輸出后c的結(jié)果才為6。最后一條輸出語句輸出結(jié)果為6。因此,本題的正確答案為B。32.下列敘述中,錯(cuò)誤的是()。
A.JavaApplication與Applet所用編譯命令相同
B.通常情況下JavaApplication只能有一個(gè)main()方法
C.JavaApplet必須有HTML文件才能運(yùn)行
D.JavaApplet程序的.class文件可用Java命令運(yùn)行
D?!窘馕觥勘绢}考查的是Java中的Applet以及Applet與Application的區(qū)別。Applet是能夠嵌入HTML語言中,并能夠在瀏覽器中運(yùn)行的類。Applet的運(yùn)行環(huán)境是Web瀏覽器,所以必須建立HTML文件,告訴瀏覽器如何加載與運(yùn)行Applet。因?yàn)锳pplet是不能直接通過Java命令行啟動(dòng)運(yùn)行的。所以選項(xiàng)D的說法錯(cuò)誤。33.下列關(guān)于Java語言中線程的敘述中,正確的是()。
A.線程由代碼、數(shù)據(jù)、內(nèi)核狀態(tài)和一組寄存器組成
B.線程間的數(shù)據(jù)是不共享的
C.用戶只能通過創(chuàng)建Thread類的實(shí)例或者定義和創(chuàng)建Thread子類的實(shí)例,建立和控制自己的線程
D.因多線程并發(fā)執(zhí)行而引起的執(zhí)行順序的不確定性可能造成執(zhí)行結(jié)果的不確定
D。【解析】本題考查線程的基本知識(shí)。線程與進(jìn)程在概念上是相關(guān)的,線程是由表示程序運(yùn)行狀態(tài)的寄存器、程序計(jì)數(shù)器、棧指針以及堆棧組成,它不包含進(jìn)程地址空間中的代碼和數(shù)據(jù)。代碼所操作的數(shù)據(jù)是Java線程模型中的一個(gè)組成部分,數(shù)據(jù)與代碼是獨(dú)立的。數(shù)
據(jù)可以被多個(gè)線程共享,也可不共享。Java語言中提供兩種創(chuàng)建線程的方法,一種是通過繼承Thread類創(chuàng)建線程,另一種是通過實(shí)現(xiàn)Runnable接口來創(chuàng)建線程。34.處理對(duì)象傳輸?shù)慕涌谑?)。
A.Serializable
B.C:loneable
C.hemListener
D.ActionListener
A?!窘馕觥刻幚韺?duì)象傳輸就是把對(duì)象串行化。Java語言中,如果要串行化某些類的對(duì)象,這些類就必須實(shí)現(xiàn)Serializable接口。35.在讀取二進(jìn)制數(shù)據(jù)文件的記錄時(shí),為了提高效率常
常使用的一種輔助類是()。
A.InputStream
B.FileInputStream
C.StringBuffer
D.BufferedReader
C?!窘馕觥勘绢}考查Java語言的輸入/輸出流。InputStream類、FilelnputStream類和BufferedReader類都是Java語言中和輸入輸出直接相關(guān)的類,不屬于輔助類,因此可以直接判斷出選項(xiàng)C為正確答案。36.在Applet中顯示文字、圖形等信息時(shí),應(yīng)使用的方法是()。
A.init()
B.start()
C.paint()
D.destroy()
C?!窘馕觥縫aint()是與Applet顯示相關(guān)的方法,由它來具體執(zhí)行Applet的繪制功能。init()方法用于初始化Applet,start()方法用于激活A(yù)pplet。在init()方法完成后,將調(diào)用start()方法,而且在Applet每次顯示時(shí)都要調(diào)用。destroy()方法用于徹底終止Applet。37.關(guān)于線程的生命周期以下狀態(tài)正確的是()。
A.新建狀態(tài)、可運(yùn)行狀態(tài)、阻塞狀態(tài)、恢復(fù)狀態(tài)和終止?fàn)顟B(tài)
B.新建狀態(tài)、運(yùn)行狀態(tài)、阻塞狀態(tài)、恢復(fù)狀態(tài)和終止?fàn)顟B(tài)
C.新建狀態(tài)、可運(yùn)行狀態(tài)、運(yùn)行狀態(tài)、阻塞狀態(tài)和終止?fàn)顟B(tài)
D.新建狀態(tài)、可運(yùn)行狀態(tài)、運(yùn)行狀態(tài)、恢復(fù)狀態(tài)和終止?fàn)顟B(tài)
C?!窘馕觥烤€程生命周期中出現(xiàn)的狀態(tài)包括:新建狀態(tài)、可運(yùn)行狀態(tài)、運(yùn)行狀態(tài)、阻塞狀態(tài)和終止?fàn)顟B(tài)。38.Thread類中能運(yùn)行線程的方法是()。
A.resume()
B.start()
C.run()
D.init()
C?!窘馕觥縭esume()是Thread類提供的用于線程控制的方法;start()是Thread類中的方法,新建的線程不會(huì)自動(dòng)運(yùn)行,必須調(diào)用線程的start()方法才能運(yùn)行該線程;run()是Thread類中的方法,在該方法中定義了線程的具體行為,線程開始執(zhí)行時(shí),就是從它的run()方法開始執(zhí)行的,就像Java應(yīng)用程序從main()開始、Applet從ink()開始一樣;init()不是Thread類中的方法。39.以下不是APPLET標(biāo)記的選項(xiàng)是()。
A.PARAM
B.BODY
C.CODEBASE
D.ALT
B。【解析】標(biāo)記的一般格式是:
[CODEBASE=codebaseURL]
CODE=appletFile
[ALT=alternateText]
[NAME=appletlnstanceName]
WIDTH=pixels
HEIGHT=pixels
[ALIGN=alignment]
[VSPACE=pixels]
[HSPACE=pixels]
[ARCHIVE=archiveFiles]
>
[
ue>]
[
ue>]
[alternateHTML]
因此可以看出,選項(xiàng)B不是APPLET標(biāo)記。40.在Java中,與數(shù)據(jù)庫連接的技術(shù)是()。
A.開放數(shù)據(jù)庫連接
B.Java數(shù)據(jù)庫連接
C.?dāng)?shù)據(jù)庫廠家驅(qū)動(dòng)程序
D.?dāng)?shù)據(jù)庫廠家的連接協(xié)議B?!窘馕觥块_放數(shù)據(jù)庫連接(ODBC,OpenDatebaseConnectivity),它是用C語言定義的。由于J2EE要求與Java綁定,因此規(guī)定使用Java數(shù)據(jù)庫連接(JDBC,JavaDataBaseConnectivity),作為Java與數(shù)據(jù)庫連接的技術(shù)?;静僮黝}(共18分)
本題定義了一個(gè)求兩個(gè)數(shù)的最大值的方法max,并調(diào)用該方法計(jì)算67和23的最大值。
publicclassjaval{
publicstaticvoidmain(String[]args){
javaltemp=newjaval();
intres=max(67,23);
System.out.println("res="+res);
}
staticintmaX(){
intmaxNum;
if(a>b)
;
else
maxNum=b;
;
}
}第1處:inta,intb
第2處:maxNum=a
第3處:returnmaxNum
【解析】第1處定義max()方法中的兩個(gè)整型形參;第2處將兩者中較大的賦給maxNum;第3處返回最大值。
三、簡(jiǎn)單應(yīng)用題(共24分)
本題的功能是對(duì)下拉菜單項(xiàng)的操作,包括添加和刪除。頁面包括一個(gè)下拉菜單、一個(gè)文本框和兩個(gè)按鈕“刪除”和“添加”,選中下拉菜單的一項(xiàng)后,可以通過“刪除”按鈕從下拉菜單中刪除該項(xiàng),在文本框中填入字符串后,單擊“添加”按鈕就可以將該項(xiàng)添加到下拉菜單中,所有信息都將顯示在右側(cè)的文本域中。
importjava.a(chǎn)wt.*;
importjava.a(chǎn)wt.event.*;
publicclassjava2extendsjava.a(chǎn)pplet.Appletimple-
mentshemListener,ActionListener
{Choicechoice;
TextFieldtext;
TextAreaarea;
Buttonadd,del;
publicvoidinit().
{choice:newChoice();
text=newTextField(8);
area:newTextArea(6,15);
choice.a(chǎn)dd("音樂天地");
choice.a(chǎn)dd("武術(shù)天地");
choice.a(chǎn)dd("象棋樂園");
choice.a(chǎn)dd("交友聊天");
add=newButton("添加");
del=newButton("刪除");
add.a(chǎn)ddActionListener(this);
del.a(chǎn)ddActionListener(this);
choice.a(chǎn)ddItemListener(this);
add(choice);
add(del);add(text);add(add);add(area);
}
publicvoiditemStateChanged(hemEvente)
{Stringname=;
intindex=choice.getSelectedIndex();
area.setText("\n"+index+":"+name);
}
publicvoidactionPerformed(ActionEvente)
{if(e.getSource()==add||e.getSource()==
text)
{Stringname=text.getText();
if(name.length()>0)
{choice.a(chǎn)dd(name);
choice.select(name);
area.a(chǎn)ppend("\n添加"+name);
}
}
elseif(e.getSource()==del)
{choice.remove();
area.a(chǎn)ppend("\n刪除"+choice.getSelectedItem
());
}
}
}第1處:choice.getSelectedltem()
第2處:choice.getSelectedIndex()
【解析】第1處是獲取當(dāng)前選中項(xiàng)的數(shù)據(jù);第2處清除選中項(xiàng)的索引號(hào)。綜合應(yīng)用題(共18分)
本題的功能是定義自已的組件類。窗口中排布著12
個(gè)按鈕,鼠標(biāo)移動(dòng)按鈕時(shí),按鈕背景顏色改變,用鼠標(biāo)單擊
按鈕時(shí),后臺(tái)將顯示該按鈕對(duì)應(yīng)的字符。
importjava.a(chǎn)wt.*;
importjava.a(chǎn)wt.event.*;
importjava.util.*;
classjava3extendsFrame{
Stringkeys="l23456789*0#";
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 西安財(cái)經(jīng)大學(xué)《生物與土壤地理學(xué)實(shí)踐》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年度國畫藝術(shù)產(chǎn)業(yè)投資合同3篇
- 2024版簡(jiǎn)單鋼結(jié)構(gòu)合同
- 二零二五年度建筑工程承包合同標(biāo)的和工程量清單2篇
- 2024版智慧城市建設(shè)項(xiàng)目合同
- 2025年度國際環(huán)保技術(shù)引進(jìn)與實(shí)施合同3篇
- 2024影視制作基地建設(shè)與運(yùn)營合同
- 四川文軒職業(yè)學(xué)院《大數(shù)據(jù)處理與Mapeduce編程模型實(shí)踐》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五版工業(yè)自動(dòng)化設(shè)備安裝施工合同范本2篇
- 二零二五版?zhèn)€人信用擔(dān)保車輛購置貸款合同樣本3篇
- 分割不動(dòng)產(chǎn)的協(xié)議書(2篇)
- 菏澤2024年山東菏澤市中心血站招聘15人筆試歷年典型考點(diǎn)(頻考版試卷)附帶答案詳解版
- 供熱通風(fēng)與空調(diào)工程施工企業(yè)生產(chǎn)安全事故隱患排查治理體系實(shí)施指南
- 精-品解析:廣東省深圳市羅湖區(qū)2023-2024學(xué)年高一上學(xué)期期末考試化學(xué)試題(解析版)
- 記賬實(shí)操-基金管理公司的會(huì)計(jì)處理分錄示例
- 中國慢性便秘診治指南
- 兒童流感診療及預(yù)防指南(2024醫(yī)生版)
- 沐足行業(yè)嚴(yán)禁黃賭毒承諾書
- 2025年蛇年紅色喜慶中國風(fēng)春節(jié)傳統(tǒng)節(jié)日介紹
- 河北省承德市2023-2024學(xué)年高一上學(xué)期期末物理試卷(含答案)
- 山西省2024年中考物理試題(含答案)
評(píng)論
0/150
提交評(píng)論