版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
圖像頻率域低通濾波處理程序設(shè)計(常用版)(可以直接使用,可編輯完整版資料,歡迎下載)
專業(yè)綜合課程設(shè)計任務(wù)書圖像頻率域低通濾波處理程序設(shè)計(常用版)(可以直接使用,可編輯完整版資料,歡迎下載)學(xué)生姓名:陳德松專業(yè)班級:電信0901班指導(dǎo)教師:黃朝兵工作單位:信息工程學(xué)院題目:圖像頻率域低通濾波處理程序設(shè)計初始條件:(1)提供實驗機(jī)房及其matlab軟件;(2)數(shù)字圖像處理的基本理論學(xué)習(xí)。要求完成的主要任務(wù):(包括課程設(shè)計工作量及其技術(shù)要求,以及說明書撰寫等具體要求)(1)掌握頻率域處理的基本原理,利用matlab設(shè)計程序完成以下功能;(2)選擇一幅256級的灰度圖像;(3)對該圖像作Fourier變換,得到其頻譜圖像;(4)按照二階Butterworth低通濾波器的表達(dá)式設(shè)計傳遞函數(shù),對該頻譜圖像進(jìn)行低通濾波,對濾波后的頻譜圖像作逆Fourier變換得到濾波結(jié)果,顯示結(jié)果圖;(5)按照高斯低通濾波器的表達(dá)式設(shè)計傳遞函數(shù),對該頻譜圖像進(jìn)行低通濾波,對濾波后的頻譜圖像作逆Fourier變換得到濾波結(jié)果,顯示結(jié)果圖;(6)對二種濾波器的濾波結(jié)果進(jìn)行分析比較;(7)要求閱讀相關(guān)參考文獻(xiàn)不少于5篇;(8)根據(jù)課程設(shè)計有關(guān)規(guī)范,按時、獨(dú)立完成課程設(shè)計說明書。時間安排:(1)布置課程設(shè)計任務(wù),查閱資料,確定方案四天;(2)進(jìn)行編程設(shè)計一周;(3)完成課程設(shè)計報告書三天;指導(dǎo)教師簽名:年月日系主任(或責(zé)任教師)簽名:年月日目錄摘要 I1MATLAB的簡介 12原理與實現(xiàn) 22.1頻率域增強(qiáng)基本理論 22.2傅立葉變換 32.3頻率域巴特沃茲(Butterworth)低通濾波器 42.4頻率域高斯(Gaussian)低通濾波器 63程序設(shè)計 73.1算法設(shè)計(程序設(shè)計流程圖) 73.2對灰度圖像進(jìn)行Fourier變換的程序 73.3二階巴特沃斯(Butterworth)低通濾波程序 83.4高斯(Gaussian)低通濾波程序 94結(jié)果與分析 114.1選擇一幅256級的灰度圖像 114.2對灰度圖像進(jìn)行Fourier變換后的頻譜圖 134.3二階巴特沃斯(Butterworth)低通濾波結(jié)果與分析 144.4高斯(Gaussian)低通濾波結(jié)果與分析 174.5兩種濾波器的濾波結(jié)果的比較 205心得體會 21參考文獻(xiàn) 22摘要數(shù)字圖像處理的目的之一是改善圖像的視覺效果,以便人眼或機(jī)器對圖像進(jìn)一步理解。而圖像增強(qiáng)技術(shù)通過采用某種技術(shù)手段可以改善圖像的視覺效果。其中一種技術(shù)是頻率域增強(qiáng)技術(shù),它是增強(qiáng)技術(shù)的重要組成部分。本設(shè)計重點(diǎn)介紹了用Matlab對一幅256級的灰度圖像作Fourier變換,然后對變換后得到的頻譜圖像進(jìn)行分別進(jìn)行二階Butterworth低通濾波和高斯低通濾波,然后對濾波后的頻譜圖像作逆Fourier變換得到濾波結(jié)果,顯示結(jié)果圖。本程序的設(shè)計很簡潔,加上注釋顯得通俗易懂,而且本程序中很多地方都有輸入提示,有一定的人機(jī)交互。關(guān)鍵詞:Matlab,F(xiàn)ourier變換,Butterworth,高斯(Gaussian),低通濾波1MATLAB的簡介MATLAB是由美國mathworks公司發(fā)布的主要面對科學(xué)計算、可視化以及交互式程序設(shè)計的高科技計算環(huán)境。它將數(shù)值分析、矩陣計算、科學(xué)數(shù)據(jù)可視化以及非線性動態(tài)系統(tǒng)的建模和仿真等諸多強(qiáng)大功能集成在一個易于使用的視窗環(huán)境中,為科學(xué)研究、工程設(shè)計以及必須進(jìn)行有效數(shù)值計算的眾多科學(xué)領(lǐng)域提供了一種全面的解決方案,并在很大程度上擺脫了傳統(tǒng)非交互式程序設(shè)計語言(如C、Fortran)的編輯模式,代表了當(dāng)今國際科學(xué)計算軟件的先進(jìn)水平。MATLAB和Mathematica、Maple并稱為三大數(shù)學(xué)軟件。它在數(shù)學(xué)類科技應(yīng)用軟件中在數(shù)值計算方面首屈一指。MATLAB可以進(jìn)行矩陣運(yùn)算、繪制函數(shù)和數(shù)據(jù)、實現(xiàn)算法、創(chuàng)建用戶界面、連接其他編程語言的程序等,主要應(yīng)用于工程計算、控制設(shè)計、信號處理與通訊、圖像處理、信號檢測、金融建模設(shè)計與分析等領(lǐng)域。2原理與實現(xiàn)2.1頻率域增強(qiáng)基本理論不對Fourier變換(FT)和圖像的頻率域處理技術(shù)有所了解,就不可能完全理解圖像增強(qiáng)這個最基本的圖像處理任務(wù)。頻域增強(qiáng)指在圖像的頻率域內(nèi),對圖像的變換系數(shù)(頻率成分)直接進(jìn)行運(yùn)算,然后通過Fourier逆變換以獲得圖像的增強(qiáng)效果。一般來說,圖像的邊緣和噪聲對應(yīng)Fourier變換中的高頻部分,所以低通濾波能夠平滑圖像、去除噪聲。圖像灰度發(fā)生聚變的部分與頻譜的高頻分量對應(yīng),所以采用高頻濾波器衰減或抑制低頻分量,能夠?qū)D像進(jìn)行銳化處理。卷積理論是頻域技術(shù)的基礎(chǔ),設(shè)函數(shù)f(x,y)與算子h(x,y)的卷積結(jié)果是g(x,
y),即g(x,y)=h(x,y)*f(x,y),那么根據(jù)卷積定理在頻域有: 其中G(u,v),H(u,v),F(xiàn)(u,v)分別是g(x,y),h(x,y),f(x,y)的傅立葉(或其它)變換,H(u,v)是轉(zhuǎn)移函數(shù)。在具體增強(qiáng)應(yīng)用中,f(x,y)是給定的(所以F(u,v)可利用變換得到),需要確定的是H(u,v),這樣具有所需特性的g(x,y)就可算出G(u,v)而得到:2.2傅立葉變換傅里葉變換是將時域信號分解為不同頻率的正弦信號或余弦函數(shù)疊加之和。傅立葉變換是數(shù)字圖像處理技術(shù)的基礎(chǔ),其通過在時空域和頻率域來回切換圖像,對圖像的信息特征進(jìn)行提取和分析,簡化了計算工作量,被喻為描述圖像信息的第二種語言,廣泛應(yīng)用于圖像變換,圖像編碼與壓縮,圖像分割,圖像重建等。因此,對涉及數(shù)字圖像處理的工作者,深入研究和掌握傅立葉變換及其擴(kuò)展形式的特性,是很有價值得。把傅立葉變換的理論通其物理解釋相結(jié)合,將有助于解決大多數(shù)圖像處理問題。傅里葉變換可分為連續(xù)傅里葉變換、離散傅里葉變換、快速傅里葉變換??焖俑道锶~變換(FFT)是計算離散傅里葉變換(DFT)的快速算法。離散傅里葉變換運(yùn)算量巨大,計算時間長,即運(yùn)算時間很長。而快速傅里葉變換的提出將傅里葉變換的復(fù)雜度由降到了,很大程度上減少了計算量。令,,u=0,1,2,…,M-1則,2.3頻率域巴特沃茲(Butterworth)低通濾波器物理上可實現(xiàn)(理想低通濾波器在數(shù)學(xué)上定義得很清楚,在計算機(jī)模擬中也可實現(xiàn),但在截斷頻率處直上直下的理想低通濾波器是不能用實際的電子器件實現(xiàn)的)減少振鈴效應(yīng),高低頻率間的過渡比較光滑n階Butterworth低通濾波器的傳遞函數(shù)為:式中,D0為截止頻率。=1時,=0.5,它的特性是傳遞函數(shù)比較平滑,連續(xù)衰減,而不像理想濾波器那樣陡峭變化,即明顯的不連續(xù)。因此采用該濾波器濾波在抑制噪聲的同時,圖像邊緣的模糊程度大大減小,沒有振鈴效應(yīng)產(chǎn)生,如圖2.1所示。圖2.1Butterworth低通濾波效果階數(shù)對振鈴現(xiàn)象的影響:階數(shù)越高,越明顯,如圖2.2所示圖2.2階數(shù)對振鈴現(xiàn)象的影響2.4頻率域高斯(Gaussian)低通濾波器高斯(Gaussian)低通濾波器的傳遞函數(shù)為:其中,為標(biāo)準(zhǔn)偏差。通過令=D0,我們可以根據(jù)截止參數(shù)D0得到表達(dá)式:當(dāng)D(u,v)=D0時,濾波器H(u,v)由最大值1下降為0.607。GLPF沒有振鈴現(xiàn)象,但與階數(shù)為2的BLPF相比,其通帶要寬些,這樣對應(yīng)的空間濾波器的灰度級輪廓更窄些,因而平滑效果要差些。以上兩種濾波器,振鈴現(xiàn)象從嚴(yán)重到無,但平滑效果從好到差,BLPF可以看成ILPF和GLPF的過渡,階為1時與GLPF差不多,階越高越接近BPLG.圖2.3高斯(Gaussian)低通濾波器對于不同的D0值的濾波效果3程序設(shè)計程序除了有題目中要求的對該圖像作Fourier變換,得到其頻譜圖像外,還擴(kuò)展了調(diào)用了函數(shù)colorbar給一個坐標(biāo)軸對象添加加一條色帶,該色帶可以指示出該圖像中不同顏色的數(shù)據(jù)值,以顯示出圖像的灰度級,功能較多。程序中很多地方都有輸入提示,有一定的人機(jī)交互。3.1算法設(shè)計(程序設(shè)計流程圖)算法流程圖如圖3.1所示:圖3.1程序設(shè)計流程圖3.2對灰度圖像進(jìn)行Fourier變換的程序I=imread('Testpicture.jpg');f=double(I);%數(shù)據(jù)類型轉(zhuǎn)換,MATLAB不支持圖像的無符號整型的計算g=fft2(f);figure,imshow(log(1+abs(fftshift(g))),[])%將頻譜顯示為一幅圖像title('原圖Fourier變換后頻譜圖');3.3二階巴特沃斯(Butterworth)低通濾波程序此函數(shù)的功能為:使用巴特沃斯低通濾波原理實現(xiàn)圖像柔和平滑,為便比較,通過設(shè)置不同的d0值運(yùn)行程序,如果對各個d0一起運(yùn)行,運(yùn)行速度奇慢,所以對各個d0單獨(dú)運(yùn)行。I=imread('Testpicture.jpg');imshow(I);title('原圖');s=fftshift(fft2(I));[M,N]=size(s);%分別返回s的行數(shù)到M中,列數(shù)到N中n=2;%對n賦初值%BLPF濾波,d0=15,30,80d0=input('請輸入d0值:');%初始化d0,d0依次取15,30,80n1=floor(M/2);%對M/2進(jìn)行取整n2=floor(N/2);%對N/2進(jìn)行取整fori=1:Mforj=1:Nd=sqrt((i-n1)^2+(j-n2)^2);%點(diǎn)(i,j)到傅立葉變換中心的距離h=1/(1+(d/d0)^(2*n));%BLPF濾波函數(shù)s(i,j)=h*s(i,j);%BLPF濾波后的頻域表示endends=ifftshift(s);%對s進(jìn)行反FFT移動%對s進(jìn)行二維反離散的Fourier變換后,取復(fù)數(shù)的實部轉(zhuǎn)化為無符號8位整數(shù)s=uint8(real(ifft2(s)));figure;%創(chuàng)建圖形圖像對象imshow(s);%顯示BLPF濾波處理后的圖像title('BLPF濾波(d0=15)');3.4高斯(Gaussian)低通濾波程序此函數(shù)的功能為:使用高斯低通濾波原理實現(xiàn)圖像越柔和平滑,為便比較,通過設(shè)置不同的d0值運(yùn)行程序,如果對各個d0一起運(yùn)行,運(yùn)行速度奇慢,所以對各個d0單獨(dú)運(yùn)行。(1)高斯低通濾波的功能子程序GauseLowPass()functionLowPass=GauseLowPass(ima,Do)%本函的功能為:實現(xiàn)高斯低通濾波原理%H(u,v)=exp(-D(u,v)^2/(2*Do^2));[Row,Col]=size(ima);ima=im2double(ima);forix=1:Row%濾波中心化foriy=1:Colima(ix,iy)=(-1)^(ix+iy)*ima(ix,iy);endendFourIma=fft2(ima);%中心變換后的傅立葉變換[FRow,FCol]=size(FourIma);foru=1:FRow%Do的高斯低通濾波器forv=1:FColD(u,v)=[(u-Row/2)^2+(v-Col/2)^2]^0.5;factc=-D(u,v)^2/(2*Do^2);H(u,v)=exp(factc);G(u,v)=H(u,v)*FourIma(u,v);endendIFourIma=ifft2(G);%高斯低通濾波后的反傅立葉變換forix=1:FRow%反傅立葉變換后*(-1)^(x+y)并取實部foriy=1:FColLowPass(ix,iy)=(-1)^(ix+iy)*IFourIma(ix,iy);endendLowPass=real(LowPass);(2)高斯低通濾波的主程序functionmain()%主程序ima=imread('Testpicture.jpg');imshow(ima);title('原圖');ima0=im2double(ima);figure;ima1=GauseLowPass(ima,input('請輸入d0值:'));%選取Do=15,30,80,調(diào)用自定義高斯低通濾波函數(shù)imshow(ima1);%Do=15高斯低通濾波結(jié)果title(sprintf('%d%s',15,':高斯低通濾波結(jié)果'));4結(jié)果與分析4.1選擇一幅256級的灰度圖像(1)在MTALAB文件夾中拷入個灰度圖片,比如“Testpicture.jpg”文件,在MATLAB命令輸入窗中,調(diào)用函數(shù)info=imfinfo('Testpicture.jpg');觀查Testpicture.jpg是否為灰度圖像。在ColorType:'grayscale'屬性行如此顯示,如圖4.1所示,則說明以Testpicture.jpg命名的文件為灰度圖像。圖4.1灰度圖像的判別(2)設(shè)選擇的圖像的名稱為”Testpicture.jpg”,首先命令窗口輸入f=imread('Testpicture.jpg')讀取圖像文件,然后輸入”whosf”,以顯示圖像的信息如圖4.2所示:圖4.2圖像信息從Class為uint8這一項信息可知圖像的灰度級為256級。(2)另外我們還可以通過函數(shù)colorbar給一個坐標(biāo)軸對象添加加一條色帶,該色帶可以指示出該圖像中不同顏色的數(shù)據(jù)值,以顯示出圖像的灰度級。輸入以下代碼:f=imread('Testpicture.jpg');imshow(f);colorbar;可得到添加色帶后的圖像如圖4.3所示,從圖4.3可知該圖像是數(shù)據(jù)類型為uint8的灰度圖像,其灰度級范圍從0~255,級灰度級為256。圖4.3添加色帶后的灰度圖4.2對灰度圖像進(jìn)行Fourier變換后的頻譜圖在MATLAB命令輸入窗中,輸入Fourier變換程序,按回車即生成Fourier變換后頻譜圖如圖4.4所示:圖4.4原圖Fourier變換后頻譜圖4.3二階巴特沃斯(Butterworth)低通濾波結(jié)果與分析在MATLAB命令輸入窗中,輸入巴特沃斯(Butterworth)低通濾波程序,按回車即生成原圖如圖4.5,Do=15的二階Butterworth低通濾波結(jié)果如圖4.6所示,Do=30的二階Butterworth低通濾波結(jié)果如圖4.7所示,Do=80的二階Butterworth低通濾波結(jié)果如圖4.8所示。圖4.5原圖圖4.6Do=15的二階Butterworth低通濾波結(jié)果圖4.7Do=30的二階Butterworth低通濾波結(jié)果圖4.8Do=80的二階Butterworth低通濾波結(jié)果結(jié)果分析:在任何經(jīng)BLPF處理過的圖像中都沒有明顯的振鈴效果,這是濾波器在低頻和高頻之間的平滑過渡的結(jié)果。低通濾波是一個以犧牲圖像清晰度為代價來減少噪聲干擾效果的修飾過程。通過與原圖相比較,從隨著D0值分別取15,30,80濾波后得到的圖像可以看出,D0的值越大圖像越清晰。巴特沃斯低通濾波器的優(yōu)點(diǎn)是:一、模糊大大減少。因為包含了許多高頻分量;二、沒有振鈴現(xiàn)象。因為濾波器是平滑連續(xù)的。4.4高斯(Gaussian)低通濾波結(jié)果與分析(1)在MATLAB命令輸入窗中,輸入高斯(Gaussian)低通濾波程序,按回車即生成原圖如圖4.9,Do=15的高斯低通濾波結(jié)果如圖4.10所示,Do=30的高斯低通濾波結(jié)果如圖4.11所示,Do=80的高斯低通濾波結(jié)果如圖4.12所示圖4.9原圖圖4.10Do=15的高斯低通濾波結(jié)果圖4.11Do=30的高斯低通濾波結(jié)果圖4.12Do=80的高斯低通濾波結(jié)果結(jié)果分析:通過與原圖相比較,從隨著D0值分別取15,30,80濾波后得到的圖像可以看出,D0的值越大圖像越清晰,高斯低通濾波器中,D0越大,所加的窗就越窄,那么說D0越大,所通過的頻帶是較低的,所濾得的圖像越柔和平滑。4.5兩種濾波器的濾波結(jié)果的比較(1)巴特沃斯低通濾波器在任何經(jīng)巴特沃斯低通濾波處理過的圖像中都沒有明顯的振鈴效果,這是濾波器在低頻和高頻之間的平滑過渡的結(jié)果。低通濾波是一個以犧牲圖像清晰度為代價來減少噪聲干擾效果的修飾過程。巴特沃斯低通濾波器的優(yōu)點(diǎn)是:1、模糊大大減少。因為包含了許多高頻分量;2、沒有振鈴現(xiàn)象。因為濾波器是平滑連續(xù)的。(2)高斯低通濾波器高斯低通濾波后得到的圖像,高斯低通濾波器沒有振鈴現(xiàn)象,但與階數(shù)為2的巴特沃斯低通濾波器相比,其通帶要寬些,這樣對應(yīng)的空間濾波器的灰度級輪廓更窄些,因而平滑效果要差些。(3)巴特沃思濾波器和高斯濾波器濾去的頻率和通過的頻率之間沒有明顯的不連續(xù)性,圖像的模糊程度降低,而且也沒有振鈴效應(yīng),這是由于在低頻和高頻之間,濾波器平滑過渡的緣故。5心得體會經(jīng)過兩周的努力,總算把專業(yè)綜合課程設(shè)計做完了。通過該課程設(shè)計,全面系統(tǒng)的理解了數(shù)字圖像處理的一般原理和基本實現(xiàn)方法。把死板的課本知識變得生動有趣,激發(fā)了學(xué)習(xí)的積極性。把學(xué)過的數(shù)字圖像處理基礎(chǔ)原理的知識強(qiáng)化,能夠把課堂上學(xué)的知識通過自己編寫的程序表示出來,加深了對理論知識的理解。
在這次課程設(shè)計中,我先是認(rèn)真閱讀課本上的相關(guān)知識,理解透后又翻閱關(guān)于Matlab的書籍,學(xué)習(xí)Matlab中一些函數(shù)及運(yùn)算符的用法。總體來說,這次課設(shè)我學(xué)到了很多。在設(shè)計過程中,加深了對可內(nèi)知識的理解就,真正懂得了學(xué)以致用,熟悉了Matlab的使用,了解了Matlab在數(shù)字圖像處理中的重大應(yīng)用。做課程設(shè)計我體會到了設(shè)計的艱辛的同時,更讓我體會到成功的喜悅和快樂.這次數(shù)字圖像處理課程設(shè)計,雖然短暫但是讓我得到多方面的提高:首先,提高了我們的對Matlab語言的運(yùn)用能力。以前也曾用Matlab做過課程設(shè)計,但以前寫的程序既沒有人機(jī)交互功能,這次課程設(shè)計首次運(yùn)用模塊化思想,將多個功能分模塊編寫,然后通過主函數(shù)調(diào)用,并且有一定的人機(jī)交互。Matlab程序設(shè)計中也有順序、選擇、循環(huán)三種結(jié)構(gòu),這一點(diǎn)和C語言很像。其次,掌握了數(shù)字圖像的原理及運(yùn)用Matlab進(jìn)行圖像處理的方法。通過Matlab中提供的圖片讀取函數(shù)可以將一幅黑白圖片轉(zhuǎn)換為二維數(shù)組,然后運(yùn)用C語言里掌握的編程思想和圖像處理的原理,就能編寫出相應(yīng)程序。以前用過photoshop之類的軟件進(jìn)行過圖像處理,但未能理解數(shù)字圖像處理的本質(zhì)。通過此次課程設(shè)計,能夠自己編寫函數(shù)來進(jìn)行圖像處理,有一種成就感。最后,查閱參考書和資料的獨(dú)立思考的能力以及培養(yǎng)非常重要。Matlab我們在設(shè)計程序時,遇到很多不曾用過的函數(shù),如colorbar。一方面我們可以查看教材和參考書,另一方面通過網(wǎng)絡(luò)為我們提供了豐富的學(xué)習(xí)資源,我們可以快速的在網(wǎng)上查到某個函數(shù)的詳細(xì)用法說明,還能找到很多別人的程序。參考文獻(xiàn)[1]楊杰,黃朝兵.《數(shù)字圖像處理及MATLAB實現(xiàn)》.電子工業(yè)出版社,2021.2[2]張強(qiáng),王正林.《精通MATLAB圖像處理》.電子工業(yè)出版社,1997[3]岡薩雷斯.《數(shù)字圖像處理(MATLAB版)》.電子工業(yè)出版社,2005.9[4]陳懷琛.《MATLAB及其在課程中的應(yīng)用指南》.西安電子科技大學(xué)出版社,2000[5]朱習(xí)軍.《MATLAB在信號與系統(tǒng)與圖象處理中的應(yīng)用》.電子工業(yè)出版社,2002本科生課程設(shè)計成績評定表姓名陳德松性別男專業(yè)班級電信0901課程設(shè)計題目:圖像頻率域低通濾波處理程序設(shè)計課程設(shè)計答辯或質(zhì)疑記錄:成績評定依據(jù):最終評定成績(以優(yōu)、良、中、及格、不及格評定)指導(dǎo)教師簽字:年月日《》綜合復(fù)習(xí)資料第一章VisualBasic程序設(shè)計概述一、填空題1、VisualBasic是一種面向__________的可視化程序設(shè)計語言,采取了__________的編程機(jī)制。2、在VB中工程文件的擴(kuò)展名是____________,窗體文件的擴(kuò)展名是____________,標(biāo)準(zhǔn)模塊文件的擴(kuò)展名是____________。3、執(zhí)行“工程”菜單下的__________命令,可選擇并添加ActiveX控件。4、VisualBasic6.0用于開發(fā)__________環(huán)境下的應(yīng)用程序。二、選擇題1、下面不是VB工作模式的是(C)A.設(shè)計模式 B.運(yùn)行模式 C.匯編模式 D.中斷模式2、可視化編程的最大優(yōu)點(diǎn)是(C)A.具有標(biāo)準(zhǔn)工具箱 B.一個工程文件由若干個窗體文件組成C.不需要編寫大量代碼來描述圖形對象 D.所見即所得3、下列不能打開屬性窗口的操作是(C)A.執(zhí)行“視圖”菜單中的“屬性窗口”命令B.按F4鍵C.按Ctrl+TD.單擊工具欄上的“屬性窗口”按鈕4、下列可以打開立即窗口的操作是(D)A.Ctrl+D B.Ctrl+E C.Ctrl+F D.Ctrl+G5、VisualBasic的編程機(jī)制是(D)A.可視化B.面向?qū)ο驝.面向圖形D.事件驅(qū)動三、簡答題1、代碼窗口主要包括哪幾部分?2、在工程資源管理器窗口中,主要列出了哪三類文件?3、窗體布局窗口的主要用途是什么?4、VB的基本特點(diǎn)是什么?5、怎樣理解可視化設(shè)計?6、怎要理解事件驅(qū)動編程?第二章簡單的VB程序設(shè)計一、填空題1、設(shè)置是否可以用Tab鍵來選取命令按鈕,應(yīng)該用______________屬性。2、一個控件在窗體的位置由_______和________屬性決定,其大小由__________和_________屬性決定。3、利用對象的屬性setfocus可獲得焦點(diǎn),對于一個對象,只有其visible屬性和____________屬性為true,才能接受焦點(diǎn)。4、設(shè)置控件背景顏色的屬性名稱是______________________。5、所有控件都具有的共同屬性是__________________屬性。6、一般情況下,控件有兩個屬性項的缺省值是相同的,這兩個屬性項是_______________。7、VB中的每個對象(控件)都有一組特征,這組特征稱為__________,我們通過修改它可以控制對象的外觀和操作。8、通常情況下,VB中一個工程主要包括如下四個文件:窗體文件、工程文件、類模塊文件和_____________文件,后者的擴(kuò)展名為.Bas,通常由Basic語言編寫,是一個可共用的子程序。9、VB有三種工作模式,分別是設(shè)計(Design)模式、_____________和中斷(Break)模式。二、選擇題1、以下能夠觸發(fā)文本框Change事件的操作是(D)A.文本框失去焦點(diǎn) B.文本框獲得焦點(diǎn)C.設(shè)置文本框的焦點(diǎn) D.改變文本框的內(nèi)容2、應(yīng)用程序設(shè)計完成后,應(yīng)將程序保存,保存的過程是(D)A.只保存窗體文件即可B.只保存工程文件即可C.先保存工程文件,之后保存窗體文件D.先保存窗體文件(或標(biāo)準(zhǔn)模塊文件),之后還要保存工程文件3、VB應(yīng)用程序的運(yùn)行模式是(C)A.解釋運(yùn)行模式 B.編譯運(yùn)行模式 C.兩者都有 D.匯編模式4、任何控件都具有的屬性是(C)A.TEXT B.CAPTION C.NAME D.FORECOLOR5、決定控件上文字的字體、字形、大小及效果的屬性是(D)A.TEXT B.CAPTION C.NAME D.FONT6、在窗體上建立了多個控件,如TEXT、LABEL1、COMMAND1,若要使程序一運(yùn)行焦點(diǎn)就定位在COMMAND1控件上,應(yīng)將COMMAND1控件的(B)設(shè)置為0A.INDEX B.TABINDEX C.TABSTOP D.ENABLED7、運(yùn)行時,當(dāng)用戶向文本框輸入新的內(nèi)容,或在程序代碼中對文本框的TEXT屬性進(jìn)行賦值從而改變了文本框的TEXT屬性值時,將觸發(fā)文本框的(D)事件A.CLICK B.DBLCLICK C.GOTFOCUS D.CHANGE8、在運(yùn)行時,按TAB鍵跳過了一個可以獲得焦點(diǎn)的控件(如文本框),則可能是因為(D)A.該控件的TABSTOP屬性值為TRUE B.該控件的TABINDEX屬性值為FALSEC.該控件的ENABLED屬性值為TRUE D.該控件的ENABLED屬性值為FALSE9、為了防止用戶隨意將光標(biāo)置于控件上,應(yīng)(D)A.將控件的TABINDEX屬性設(shè)置為0B.將控件的TABSTOP屬性設(shè)置為TRUEC.將控件的TABSTOP屬性設(shè)置為FALSED.將控件的ENABLED屬性設(shè)置為FALSE10、若要使標(biāo)簽控件顯示時,不覆蓋其背景內(nèi)容,應(yīng)設(shè)置標(biāo)簽控件的(D)屬性A.BACKCOLOR B.BORDERSTYLEC.FORECOLOR D.BACKSTYLE11、如果要在文本框中輸入字符時,只顯示某個字符,如星號(*),運(yùn)行時,在文本框中輸入的字符仍然顯示出來,而不顯示星號,原因可能是(B)A.文本框的MULTILINE屬性值為TRUEB.文本框的LOCKED屬性值為TRUEC.文本框的MULTILINE屬性值為FALSED.文本框的LOCKED屬性為FALSE12、在運(yùn)行階段,要在文本框TEXT1獲得焦點(diǎn)時選中文本框中所有內(nèi)容,對應(yīng)的事件過程是(A)A.PrivateSubText1_GotFocus()Text1.SelStart=0Text1.Sellength=Len(Text1.Text)EndSubB.PrivateSubText1_LostFocus()Text1.SelStart=0Text1.Sellength=Len(Text1.Text)EndSubC.PrivateSubText1_Change()Text1.SelStart=0Text1.Sellength=Len(Text1.Text)EndSubD.PrivateSubText1_SetFocus()Text1.SelStart=0Text1.Sellength=Len(Text1.Text)EndSub13、VisualBasic繼承了Basic語言簡單易用的語法特點(diǎn),同時支持面向?qū)ο蟮木幊虣C(jī)制,其中構(gòu)成其控件(對象)的三要素是(D)A.屬性、事件、事件過程 B.控件、窗體、事件C.屬性、過程、方法 D.屬性、事件、方法14、決定標(biāo)簽(Label)顯示的屬性是(C)A.TextB.NameC.CaptionD.Alignment15、命令按鈕的標(biāo)題文字由(B)屬性來設(shè)置。A.TextB.CaptionC.NameD.(名稱)16、若要設(shè)置文本的顯示顏色,則可用(B)屬性來實現(xiàn)。A.BackColor B.ForecolorC.FillColorD.Backstyle17、在運(yùn)行時,若要調(diào)用某命令鈕的Click事件過程,則可設(shè)置該命令鈕對象的(B)屬性為Ture來實現(xiàn)。A.EnabledB.ValueC.DefaultD.Cancel18、在運(yùn)行時,若要獲得用戶在文本框中所選擇的文本,可通過訪問(D)屬性來實現(xiàn)。A.SelStart B.SelLenght C.Text D.SelText三、簡答題1、事件驅(qū)動的含意是什么?舉例說明。2、交互式開發(fā)方法和傳統(tǒng)的應(yīng)用程序開發(fā)過程有什么不同?3、文本框在什么情況下使用?4、什么是工程?5、結(jié)構(gòu)化程序設(shè)計的三種基本結(jié)構(gòu)是什么?6、對象的三要素是什么?并分別進(jìn)行簡單的解釋。7、為什么要生成可執(zhí)行文件和制作安裝盤?8、使用變量前先聲明有什么好處?9、如何使用幫助功能?10、結(jié)構(gòu)化程序設(shè)計的特點(diǎn)是什么?11、為了把焦點(diǎn)移到某個指定的控件,在代碼中應(yīng)使用的方法是什么?12、啟動VisuaBasic后,只創(chuàng)建了一個窗體,若此時保存,需要保存幾個文件?各是什么文件?先保存的是哪一個?13、為了防止文本框中的信息運(yùn)行后被用戶修改,應(yīng)設(shè)置什么屬性?第三章VB語言基礎(chǔ)一、填空題1、一般可以使用__________關(guān)鍵字聲明常量。2、______類型也稱變體類型,是一種通用的、可變的數(shù)據(jù)類型,它可表示或存儲任何一種數(shù)據(jù)類型。3、變量的聲明分為兩種方法:___隱式_______和____顯示________。4、在VB中,用___________________語句設(shè)定數(shù)組的下界,用_____________和__________________語句分別返回數(shù)組的上、下界。5、在代碼模塊中加入OptionExplicit的目的是_____________________。6、functionaa(a1asdate,optionala2asboolean)assingle,寫出optional命令的作用__________________。7、在VB中,我們用一個簡單的______語句就能實現(xiàn)退出程序。8、生成消息框的命令是____________,生成輸入框的命令是____________。9、通用對話框(commondialog)屬activex控件,它可以顯示多個標(biāo)準(zhǔn)對話框,包括打開/另存為、字體、打印等對話框,若要顯示所有文件,則應(yīng)設(shè)置其屬性filter=____________,若要使它顯示為打印對話框,則應(yīng)使用什么方法____________。10、從字符串中任意位置截取字符的函數(shù)是__________。11、語句Forj=3To20Step3使循環(huán)體執(zhí)行了______次。12、對于正在使用的動態(tài)數(shù)組Arraya(),要增加一個單元,但不能破壞數(shù)組內(nèi)的數(shù)據(jù),則應(yīng)使用語句__________________________________。13、在VisualBasic中聲明靜態(tài)變量的關(guān)鍵字是_________________。14、表達(dá)式10Mod6\4的值為______。15、表達(dá)式chr(Asc("a")+5)的值為_________。16、VB中使用注釋有2種方法,即________和________。17、VB中的數(shù)據(jù)以四種形式存儲:常量、_________、_________和記錄。18、為了在VB中存儲一個4行5列的二維矩陣,需要定義一個整型的數(shù)組,請把數(shù)組定義語句補(bǔ)充完整:DimJuzhen(__)asInteger。19、控件數(shù)組由一組相同類型的控件組成,這些控件共用一個相同的控件名,但是每個控件都有一個唯一的下標(biāo)來區(qū)分,我們使用屬性____來設(shè)置下標(biāo)。20、在過程調(diào)用中,實現(xiàn)調(diào)用過程的實參和被調(diào)用過程的形參之間的數(shù)據(jù)傳遞有兩種方式:按值傳遞和____。21、為了保證程序中必須對變量的強(qiáng)制性定義,需要在代碼模塊的聲明部分加入______________語句。22、分析For……Next循環(huán)結(jié)構(gòu)的實例:Fori=5To30Step2中,循環(huán)體一共執(zhí)行了______次。23、表達(dá)式Mid("UniversityOfPetroleum",8,4)的值為_________。24、常量分為普通常量和____符號______常量。25、要將大寫字母轉(zhuǎn)換為小寫字母,可使用____________函數(shù)。26、不管焦點(diǎn)在哪個控件上,按___ESC_______鍵相當(dāng)于按了取消按鈕。27、執(zhí)行“工程”菜單下的__________命令,可選擇并添加ActiveX控件。28、__________是程序中VB停止執(zhí)行的地方。29、邏輯常量為True或__________。30、使用了__________________的聲明后,當(dāng)程序中使用未經(jīng)聲明的變量時,程序運(yùn)行時會報錯。31、要將小寫字母轉(zhuǎn)換為大寫字母,可使用____________函數(shù)。32、自字符串N1位開始向右取N2個字符,要使用_________________函數(shù)。33、日期常量表示時,用符號__________將日期型數(shù)據(jù)括起來。34、局部變量只能在__________中聲明和使用。35、模塊級變量的聲明關(guān)鍵字是Dim或__________。36、函數(shù)Abs(x)的功能是__________。37、表達(dá)式3/6*5的值是__________。二、選擇題1、以下哪個是合法的變量(D)A.right B.a(chǎn)bc@123 C.123_abc D.a(chǎn)b123c2、下列說法錯誤的是(B)A.在同一模塊不同過程中的變量可以同名B.不同模塊中定義的全局變量不可以同名C.引用另一模塊中的全局變量時,必須在變量名前加模塊名D.同一模塊中不同級的變量可以同名3、把MsgBox的返回值轉(zhuǎn)換為數(shù)值應(yīng)該使用的函數(shù)是(D)A.LogB.StrC.LenD.Val4、語句DIMAA(3,4,5)中定義的數(shù)組有(C)個元素A.12B.60C.120D.3455、下面程序運(yùn)行后輸出的結(jié)果是(B)A$="CHINA"B$=STRING$(3,A$)PRINTB$ENDA.CHIB.CCCC.INAD.AAA6、以下語句的輸出結(jié)果是(C)PrintFormat$(32548.5,"000,000.00")A.32548.5B.325,485.00C.032,548,50D.32,548,507、以下敘述中錯誤的是(D)A.如果過程被定義為Static類型,則該過程中的局部變量都是Static類型B.Sub過程中不能嵌套定義Sub過程C.Sub過程中可以嵌套調(diào)用Sub過程D.事件過程可以像通用過程一樣由用戶定義過程名8、VisualBasic提供的OnErrorResumenext錯誤陷阱語句表示(C)A.當(dāng)發(fā)生錯誤時,使程序轉(zhuǎn)跳到語句標(biāo)號為0的程序塊B.當(dāng)發(fā)生錯誤時,不使用錯誤處理程序塊C.當(dāng)發(fā)生錯誤時,忽略錯誤行,繼續(xù)執(zhí)行下一語句D.當(dāng)發(fā)生錯誤時,終止本過程執(zhí)行,繼續(xù)執(zhí)行下一過程9、在VisualBasic中,若要將控制權(quán)交給操作系統(tǒng)則通過(D)的語句。A.EndB.ExitDoC.ExitSubD.DoEvents10、在VisualBasic中語句的續(xù)行號采用(A)A.空格與下劃線 B.下劃線與空格C.空格與短線D.短線與空格11、假定有以下程序段:Fori=1to3 Forj=5to1Step–1 Printi*j Nextj,i則語句Printi*j的執(zhí)行次數(shù)是(A)A.15B..16C.17D.1812、從鍵盤上輸入兩個字符串,分別保存在變量str1、str2中。確定第二個字符串在第一個字符串中起始位置的函數(shù)是(D)A.LeftB.MidC.StringD.Instr13、如果將布爾常量值TRUE賦值給一個整型變量,則整型變量的值為(B)A.0 B.-1 C.TRUE 14、下列敘述不正確的是(B)A.注釋語句是非執(zhí)行語句,僅對程序的內(nèi)容起注釋作用,它不被解釋和編譯B.注釋語句可以放在代碼中的任何位置C.注釋語句不能放在續(xù)行符的后面D.代碼中加入注釋語句的目的是提高程序的可讀性15、語句PRINT“INT(-13.2)”;INT(-13.2)的輸出結(jié)果為(D)A.INT(-13.2)=-13.2 B.INT(-13.2)=13.2C.INT(-13.2)=-13 D.INT(-13.2)=-1416、如果TAB函數(shù)的參數(shù)小于1,則打印位置在第(B)列A.0 B.1 C.2 17、變量未賦值時,數(shù)值型變量的值為(A)A、0 B.空 C.1 D.無任何值18、下列語句中正確的是(D)A.txt1.text+txt2.text=txt3.text B.=cmdokC.12label.caption=1234 D.a(chǎn)=inputbox(“hello”)19、假設(shè)變量BOOLVAR是一個布爾型變量,則下面正確的賦值語句是(D)A.BOOLVAR=‘TRUE’ B.BOOLVAR=.TRUEC.BOOLVAR=#TRUE# D.BOOLVAR=3<420、以下()程序段可以實施X、Y變量值的變換(C)A.Y=X:X=Y B.Z=X:Y=Z:X=YC.Z=X:X=Y:Y=Z D.Z=X:W=Y:Y=Z:X=Y21、語句PRINT“SGN(-26)=”;SGN(-26)的輸出結(jié)果為(D)A.SGN(-26)=26 B.SGN(-26)=-26C.SGN(-26)=+1 D.SGN(-26)=-122、讀下面程序段,判斷變量Str2的取值是(B)DimStr1,Str2asStringStr1="University"Str2=STRING$(3,Str1)A.Uni B.UUUC.ity D.yyy23、VB支持自定義數(shù)據(jù)類型,在某程序中我們定義了如下類型:TypeStudentnumberAsstringnameAsStringageAsIntegerEndType針對上述定義,如下幾項用法正確的是(B)A.S="張三"B.DimsAsS="張紅"C.DimsAsTypeStudentD.DimsAsT="張三"="張三"24、一個工程中包含兩個名稱分別為Form1、Form2的窗體,一個名稱為mdlFunc的標(biāo)準(zhǔn)模塊。假定在Form1、Form2和mdlFunc中分別建立了自定義過程,其定義格式為:Form1中定義的過程:PrivateSubfrmfunction1()EndSubForm2中定義的過程:PublicSubfrmfunction2()EndSubmdlFunc中定義的過程:PublicSubmdlFunction()EndSub在調(diào)用上述過程的程序中,如果不指明窗體或模塊的名稱,則以下敘述中正確的是(B)A.上述三個過程都可以在工程中的任何窗體或模塊中直接被調(diào)用B.只有mdlFunction過程能夠被工程中各個窗體或模塊直接被調(diào)用C.frmfunction1只能在form1中調(diào)用,而frmfunction2則可以在所有模塊或窗體中被直接調(diào)用D.上述三個過程都只能在各自被定義的模塊中直接調(diào)用25、VB中Do……Loop結(jié)構(gòu)既可以構(gòu)成當(dāng)型循環(huán),也可以構(gòu)成直到型循環(huán),根據(jù)下面的代碼:Dimi,nasIntegern=20i=1DoPrinti;i=i+2LoopUntili>20判斷循環(huán)結(jié)構(gòu)的類型和循環(huán)體的執(zhí)行次數(shù),正確的選項是(B)A.當(dāng)型循環(huán),20次 B.直到型循環(huán),10次C.當(dāng)型循環(huán),10次 D.直到型循環(huán),20次26、在程序中,使用InputBox函數(shù)可以接受用戶的輸入,如果要把它的返回值轉(zhuǎn)換為數(shù)值型的數(shù)據(jù),應(yīng)該使用的函數(shù)是(A)A.Val B.LenC.Str D.Log27、動態(tài)數(shù)組因為在程序運(yùn)行前無法確定數(shù)組的大小,所以經(jīng)常根據(jù)程序的運(yùn)行情況,對數(shù)組進(jìn)行重新定義,以下關(guān)于VB中動態(tài)數(shù)組的敘述中不正確的是(B)A.可以用ReDim語句重新定義動態(tài)數(shù)組,并且可以進(jìn)行多次重定義B.首次用Dim進(jìn)行動態(tài)數(shù)組聲明的時候,必須指明它的類型和上下界C.Preserve為ReDim語句的可選參數(shù),用于保留動態(tài)數(shù)組原來的內(nèi)容D.當(dāng)對動態(tài)數(shù)組使用Erase語句進(jìn)行釋放操作時,將釋放其內(nèi)存28、VB中的控件也叫做部件或組件,主要包括三類,以下哪一項不屬于VB控件的分類(C)A.控件 B.可插入對象C.ADO控件 D.ActiveX控件29、表達(dá)式4+5\6*7/8Mod9的值是(B)A.4 B.5 C.6 D.730、可以同時刪除字符串前導(dǎo)和尾部空白的函數(shù)是(C)A.Ltrim B.Rtrim C.Trim D.Mid三、簡答題1、全局變量聲明有哪些限制?2、字符串是否可以自動轉(zhuǎn)換為數(shù)字類型?3、用Format函數(shù)格式化后的字符格式在不同區(qū)域環(huán)境下的輸出是否相同?為什么?4、在InputBox函數(shù)中,哪一個參數(shù)是必需的?5、在MsgBox函數(shù)中哪一個參數(shù)是必須的?6、在什么情況下使用過程?7、為什么要進(jìn)行程序調(diào)試?8、調(diào)試程序有哪些手段?9、用語句DimA(-3To5)AsInteger定義的數(shù)組的元素個數(shù)是多少?10、設(shè)有如下的VisualBasic表達(dá)式:5*x^2-3*x-2*Sin(a)/3,與它對應(yīng)的數(shù)學(xué)式是什么?11、數(shù)學(xué)式對應(yīng)的VB表達(dá)式是什么?12、表達(dá)式2>3And4<=5Or4>4的值是什么?13、怎樣在程序中設(shè)置斷點(diǎn)?14、在什么情況下可以設(shè)置斷點(diǎn)?15、程序出錯的類型有哪幾種?16、在同一模塊、不同過程中聲明的相同變量名,兩者是否表示同一個變量?為什么?17、什么情況下會出現(xiàn)“數(shù)組下標(biāo)越界錯誤”?18、逐語句和逐過程有什么區(qū)別?19、表達(dá)式2.75*2\3.45的值是什么?20、在程序設(shè)計中為什么盡量不用GoTo語句?四、讀程序題1、分析以下程序,寫出運(yùn)行結(jié)果。PrivateSubForm_Click()score=Int(Rnd*10)+80SelectCasescoreCaseIs<60A$="F"Case60To69A$="D"Case70To79A$="C"Case80To89A$="B"CaseElseA$="A"EndSelectPrintA$EndSub2、讀下面的程序,分析其功能,寫出運(yùn)行結(jié)果。在窗體上有一個命令按鈕,名稱為Command1。然后編寫如下程序:PrivateSubCommand1_Click()ForI=1To4ForJ=0ToIPrintChr$(65+I);NextJPrintNextIEndSub程序運(yùn)行后,如果單擊命令按鈕,則在窗體上顯示的內(nèi)容是什么?3、閱讀下面的程序,分析并寫出其功能。Subinsert(a()AsSingle,ByValxAsSingle)Dimmasinteger,nasintegern=1DoWhilen<20Andx>a(n) n=n+1LoopForm=20-1TonStep–1 a(m+1)=a(m)Nextma(n)=xEndSub4、分析以下程序,寫出運(yùn)行結(jié)果。SubsubP(b()AsInteger)Fori=1To4b(i)=2*iNextiEndSubPrivateSubCommandl_Click()Dima(1To4)AsIntegera(1)=5a(2)=6a(3)=7a(4)=8subPa()Fori=1To4Printa(i)NextiEndSub運(yùn)行上面的程序,單擊命令按鈕,輸出結(jié)果是什么?5、分析以下程序,寫出運(yùn)行結(jié)果。Subsele()DimnasIntegeri=21:n=3DoWhilei>ni=i-nLoopPrintiEndSub6、分析以下程序,寫出運(yùn)行結(jié)果。SubselectPrint()DimaasIntegerDimbasIntegerDimcasIntegera=2:b=5:c=2If(a>=b)and(a>=c)or(b>c)ThenPrintaa=a+2ElsePrintbEndIfPrinta;b;cEndSub7、分析以下程序,寫出運(yùn)行結(jié)果。Subswap()DimxasIntegerDimyasIntegerDimzasIntegerx=1:y=2:z=0Printx;y;zx=x+yx=x*zPrintx,y,zEndSub8、分析以下程序,寫出運(yùn)行結(jié)果。SubselectPrint()DimaasIntegerDimbasIntegerDimcasIntegera=3:b=3:c=2If(a>=b)and(a>c)ThenPrintaPrinta,b,cEndSub五、編程題1、輸入一年號,判斷它是否是閏年。界面如下圖所示,包括兩個標(biāo)簽、一個文本框和一個命令按鈕。提示:如果此年號能被400整除或者不能被400除盡,也不能被100除盡,但能被4整除,則它是閏年;否則,不是閏年。2、輸入兩個正整數(shù)m、n,求m和n的最大公約數(shù)。要求建立如下圖所示的窗體,其中主要的控件包括:兩個標(biāo)簽(Lable1、Lable2)、兩個文本框(Text1、Text2)和一個按鈕(Command1)。3、輸入某學(xué)生成績(百分制),若是100≥成績≥90輸出優(yōu)秀;若是90>成績≥80輸出良好;若是80>成績≥70輸出中等;若是70>成績≥60輸出及格;若是60>成績≥0,輸出不及格;若是其他數(shù)則輸出error信息。4、在窗體中顯示從9號字型到16號字型。5、在有序序列中插入一個數(shù),使插入后的數(shù)列仍然有序(設(shè)按由小到大排列)。6、編程實現(xiàn)二維數(shù)組轉(zhuǎn)置。7、隨機(jī)輸入10個100以內(nèi)的整型數(shù),計算其和及平均值。8、找出所有的水仙花數(shù)。水仙花數(shù)是個三位數(shù),它的各位數(shù)字的立方和等于這個三位數(shù)本身。例如371=33+73+13,則371是水仙花數(shù)。9、從鍵盤輸入一個大于2的正整數(shù),判斷該數(shù)是否是素數(shù)。10、求二維數(shù)組中的最小值及其所在行號、列號。11、求一元二次方程ax2+bx+c=0的根(包括實根和復(fù)根)。12、輸入一個正整數(shù)n,計算出n!并輸出。13、Faibonacci數(shù)列為0,1,1,2,3,5,8,13…,計算并輸出第20項以及前20項的和。第四章常用控件與窗體一、填空題1、向列表框控件添加新項目的方法是__________。2、在VB中,最主要的兩種對象是____________和____________。3、當(dāng)窗體啟動時可通過__________屬性控制窗體位于所有者的中心位置。4、若要將窗體Form1隱藏起來,則可通過執(zhí)行代碼_________________來實現(xiàn)。5、要使裝入到列表框中的數(shù)據(jù)項能自動按字母順序排序,應(yīng)設(shè)置該控件的_________屬性為__________。6、窗體上放置了若干個文本框和命令按鈕,當(dāng)窗體裝入后,要將焦點(diǎn)自動定位到文本框Text1上,則在設(shè)計時需要將__________控件的_________屬性設(shè)置為__________。7、在標(biāo)簽控件中通過編程使文字換行用的代碼是______chr(10)_____________。8、設(shè)置計時器控件只能觸發(fā)______________________事件。9、設(shè)置計時器對象觸發(fā)事件的時間間隔用_____________________屬性。10、滾動條控件主要支持兩個事件,它們是_______________事件。11、要使鼠標(biāo)停留在按鈕上顯示特殊的鼠標(biāo)形狀,應(yīng)設(shè)置的屬性值是_________________。12、設(shè)某列表框共有10項,按題目要求補(bǔ)齊程序,完成相應(yīng)的功能。(1)按下命令按鈕Command1時將列表框第8項的內(nèi)容顯示在窗體上:PrivateSubCommand1_Click()List.__________(7)=TruePrintList1.______________EndSub(2)單擊列表框某一項時立即將該項打印在窗體上:PrivateSubList1_Click()Print_______________EndSub(3)按下命令按鈕Command1時在窗體上刪除第1、3、5、7、9項:PrivateSubCommand1_Click()ForI=1To5List1.____________NextIEndSub(4)在列表框的每一項之后插入一個新的項:PrivateSubCommand1_Click()ForI=1to10X=InputBox(“請輸入插入的第”&I&“項內(nèi)容”)List1.AddItem____________NextIEndSub13、設(shè)在界面上放置了一個滾動條Hscroll1和一個標(biāo)簽控件Label1,要使每次單擊滾動條兩端箭頭時,或單擊滾動條滑塊與兩端箭頭之間的空白區(qū)域時,標(biāo)簽內(nèi)容能夠反映滾動條的值,補(bǔ)齊以下代碼。PrivateSubHscroll1.__________________()Label1.Caption=Hscroll1.___________________EndSub要使拖動滾動條滑塊時標(biāo)簽內(nèi)容能夠反映滾動條的值,補(bǔ)齊以下代碼。PrivateSubHscroll1.________________()Label1.Caption=Hscroll1.__________________EndSub14、列表框(ListBox)用于列出可供選擇的項目的列表,用戶可以選擇一個或多個項目。它具有幾個非常重要的數(shù)組屬性,其中__List__屬性存放了列表框中所有項目的值。15、菜單項一般由標(biāo)題、訪問鍵、快捷鍵和復(fù)選標(biāo)志等構(gòu)成,通過對相應(yīng)的屬性進(jìn)行設(shè)置可以改變這些項目的狀態(tài),其中與復(fù)選標(biāo)志相對應(yīng)的屬性是____。16、keydown與keypress事件各有其參數(shù),若需獲得用戶按下"a"還是"A"需用____________事件。17、控件________組合了文本框和列表框的功能,是VB中一種功能非常強(qiáng)大的選擇類控件。18、若需要將窗體Form2以模態(tài)窗口的形式顯示出來,可通過執(zhí)行代碼_________________來實現(xiàn)。19、菜單中的分隔條是一種菜單控件,不響應(yīng)__________事件,不能被選中。二、選擇題1、當(dāng)程序運(yùn)行時,在窗體上單擊鼠標(biāo),以下哪個事件是窗體不會接收到()A.MouseDown B.MouseUp C.Load D.Click2、窗體Form1的Name屬性是Frm1,它的單擊事件過程名是()A.Form1_ClickB.Form_ClickC.Frm1_ClickD.Me_Click3、用于設(shè)置通用對話框控件顯示文件類型的屬性是()A.FilterB.PathC.ParternD.FoleName4、用于從內(nèi)存刪除窗體的命令是()A.MoveB.HideC.UnloadD.Delete5、用于返回窗體可用區(qū)域?qū)挾鹊膶傩允牵ǎ〢.ScaleWidthB.ScaleLeftC.ScaleHeightD.ScaleTop6、下列關(guān)于屬性設(shè)置的敘述錯誤的是:()A.一個控件具有什么屬性是VB預(yù)先設(shè)計好的,用戶不能改變B.一個控件具有什么屬性是VB預(yù)先設(shè)計好的,用戶可以改變C.一個控件的屬性即可以在屬性窗口中設(shè)置,也可以用程序代碼設(shè)置D.一個控件的屬性在屬性窗口中設(shè)置,還可以利用程序代碼為其設(shè)置新值7、下列說法正確的是()A.對象屬性只能在“屬性窗口”中設(shè)置B.一個新的工程可以在“工程窗口”中建立C.必須先建立一個工程,才能開始設(shè)計應(yīng)用程序D.只能在“代碼窗口”中編寫程序代碼8、下列關(guān)于窗體上控件的基本操作錯誤的是()A.按下一次DEL鍵只能刪除一個控件B.按下一次DEL鍵可以同時刪除多個控件C.按住SHIFT鍵,然后單擊每個要選擇的控件,可以同時選中多個控件D.按住ALT鍵,然后單擊每個要選擇的控件,可以同時選中多個控件9、下列關(guān)于設(shè)置控件屬性的敘述正確的是()A.用戶必須設(shè)置屬性值B.所有的屬性值都可以由用戶隨意設(shè)定C.屬性值不必一一重新設(shè)置D.不同控件的屬性項都完全一樣10、不可以通過下列()操作將焦點(diǎn)賦給對象A.運(yùn)行時使用TAB鍵 B.在代碼中用CALL語句調(diào)用C.在代碼中用SETFOCUS方法 D.用訪問鍵或用鼠標(biāo)單擊選擇對象11、要在FORM_LOAD事件過程中使用PRINT方法在窗體上輸出一定的內(nèi)容,應(yīng)()A.設(shè)置窗體的VISIBLE屬性 B.設(shè)置窗體的CAPTIONC.調(diào)用窗體的SHOW方法 D.設(shè)置窗體ENABLED屬性12、下面()對象無CAPTION屬性A.FORM B.COMMANDBUTTON C.TEXTBOX D.LABEL13、通用對話框控件和文件列表框控件中,都能根據(jù)文件的類型對要顯示的文件進(jìn)行篩選過濾,后者使用()屬性進(jìn)行該項設(shè)置。A.Pattern B.Path C.Filter D.FileName14、對于復(fù)選框控件chkBoy,如果在程序中設(shè)置它為選中狀態(tài),下面語句正確的是()A.chkBoy.Checked=true B.chkBoy.Value=trueC.chkBoy.Selected=true D.chkBoy.Value=115、計時器(Timer)控件用于每隔一段時間自動觸發(fā)一次Timer事件,可以有規(guī)律地重復(fù)執(zhí)行一段程序,它用于設(shè)置兩次事件時間間隔的屬性是()A.Interval B.SmallChange C.LargeChange D.Max16、以下關(guān)于VB中窗體(Form)的說法中,不正確的描述為()A.執(zhí)行UnloadForm語句后,窗體Form消失,但仍在內(nèi)存中B.當(dāng)窗體的Enabled屬性為False時,通過鼠標(biāo)和鍵盤對窗體的操作都被禁止C.窗體的Height、width屬性用于設(shè)置窗體的高和寬D.窗體的load事件在加載窗體時發(fā)生17、關(guān)于滾動條控件,下面說法錯誤的是()A.點(diǎn)擊滾動條的箭頭,可以改變它的value值,從而引發(fā)Change事件B.拖動滾動框,可以觸發(fā)Scroll事件C.通常,水平滾動條的值從左向右遞增,垂直滾動條的值自上而下遞增D.拖動滾動框,可以觸發(fā)Change事件,而且是連續(xù)觸發(fā)的18、在窗體上放置一個命令按鈕,名稱為Command1。單擊命令按鈕時,執(zhí)行如下事件過程:PriVateSubCommand1_C1ick()a$="softwareandhardware"b$=Right(a$,8)c$=Mid(a$,1,8)Msgboxa$,b$,c$,1EndSub則在彈出的信息框的標(biāo)題欄中顯示的信息是()A.softWareandhardware B.softwareC.hardwafe D.出現(xiàn)錯誤19、在多重窗體程序設(shè)計中,關(guān)鍵的問題是要解決不同窗體之間的銜接和窗體的顯示、關(guān)閉等問題,以下關(guān)于窗體的相關(guān)語句和方法的敘述中,錯誤的是()A.Load語句用于加載指定窗體,即在內(nèi)存中創(chuàng)建該窗體B.Show方法兼具Load語句的功能,可以將窗體顯示出來C.Hide方法用于將窗體隱藏起來D.Unload語句用來釋放窗體,但窗體并沒從內(nèi)存中消20、滾動條控件的屬性中,表示取值范圍最大值的屬性是()A.Max B.LargeChangeC.Min D.Value21、程序中如果需要檢測和控制鼠標(biāo)的位置和狀態(tài)的改變,就需要使用鼠標(biāo)事件,其中下面哪個選項用于表示拖動事件()A.DragDrop B.MouseDownC.MouseUp D.MouseMove22、為了使用通用對話框進(jìn)行打開文件的操作,應(yīng)將通用對話框的Action屬性設(shè)定為()。A.0 B.1 C.2 D.3三、簡答題1、什么是單選按鈕?什么是復(fù)選框?在使用上有什么不同?2、滾動條的change事件和scroll事件有什么不同?3、快捷鍵和訪問鍵有什么區(qū)別?4、在程序運(yùn)行期間,如果拖動滾動條上的滾動塊(即滑塊),則觸發(fā)滾動條的什么事件?5、假定有一個菜單項,名為MenuItem,為了在運(yùn)行時使該菜單項失效(變灰),應(yīng)使用什么語句?6、為了暫時關(guān)閉計時器(即時鐘控件),應(yīng)把該計時器的什么屬性設(shè)置為False?7、單選按鈕和復(fù)選框(即檢查框)各用于什么情況?8、如何為一個菜單項設(shè)置熱鍵和快捷鍵?9、菜單的形式有哪兩種?10、在KeyPress事件中,如何取消用戶剛輸入的字符?11、框架的作用是什么?12、如果要計時器每秒鐘發(fā)生4個Timer事件,則Interval屬性值應(yīng)設(shè)多少?13、在一個窗體的程序代碼中能否訪問另一個窗體上控件的屬性?若不行則請說明理由;若行則請說明如何訪問。14、如何在框架中建立控件?15、組合框有哪幾種類型?四、讀程序題1、對窗體編寫如下代碼:OptionBase1PrivateSubForm_KeyPress(KeyAsciiAsInteger)a=Array(237,126,87,48,498)m1=a(1)m2=1IfKeyAscii=13ThenFori=2To5Ifa(i)>mlThenm1=a(j)m2=iEndIfNextiEndIfPrintm1Printm2EndSub程序運(yùn)行后,按回車鍵,輸出結(jié)果是什么?2、閱讀下面的程序,寫出執(zhí)行結(jié)果。PrivateSubForm_load()Form1.showd=0Fora=1To2Forb=1ToaForc=bTo5d=d+1NextcNextbNextaPrintdEndSub五、編程題1、在窗體上有一個文本框控件,名稱為TxtTime;一個計時器控件,名稱為Timer1,要求每一秒在文本框中顯示一次當(dāng)前的時間,請編程實現(xiàn)。2、在Text1中輸入任一英文字母,在Text2中顯示該英文字母及其ASCII碼值。要求在文本框Text2中顯示出所有輸入的英文字母及其ASCII碼值,如下圖所示。Text1Text1Text2Command13、編寫一個程序,能夠?qū)崿F(xiàn)任意個整數(shù)的排序。4、編程實現(xiàn)以下功能:用戶首先分別在兩個文本框中輸入兩個數(shù),然后在具有“加、減、乘、除”等四個菜單項的“計算”菜單中單擊某一項,即可在標(biāo)簽中顯示出相應(yīng)的結(jié)果或者錯誤提示
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年湘教新版必修3歷史上冊階段測試試卷含答案
- 二零二五版苗木種植基地土地租賃合同8篇
- 2025年華師大版九年級歷史下冊月考試卷含答案
- 二零二五版交通事故責(zé)任認(rèn)定與賠償調(diào)解及服務(wù)合同3篇
- 2025年度墓地轉(zhuǎn)賣及墓園物業(yè)管理合同4篇
- 二零二五年度苗圃場租賃與農(nóng)業(yè)信息化建設(shè)合同4篇
- 二零二五年度出租車企業(yè)財務(wù)審計服務(wù)合同3篇
- 二零二五出租車客運(yùn)服務(wù)承包經(jīng)營合同范本7篇
- 二零二五年度農(nóng)業(yè)合作社農(nóng)村電商平臺運(yùn)營合同樣本4篇
- 二零二五版面粉行業(yè)供應(yīng)鏈金融服務(wù)合同3篇
- 新課標(biāo)人教版小學(xué)數(shù)學(xué)六年級下冊集體備課教學(xué)案全冊表格式
- 人教精通版三年級英語上冊各單元知識點(diǎn)匯總
- 小學(xué)四年級數(shù)學(xué)競賽試題(附答案)
- 魯科版高中化學(xué)必修2全冊教案
- 人口分布 高一地理下學(xué)期人教版 必修第二冊
- 子宮內(nèi)膜異位癥診療指南
- 教案:第三章 公共管理職能(《公共管理學(xué)》課程)
- 諾和關(guān)懷俱樂部對外介紹
- 玩轉(zhuǎn)數(shù)和形課件
- 保定市縣級地圖PPT可編輯矢量行政區(qū)劃(河北省)
- 新蘇教版科學(xué)六年級下冊全冊教案(含反思)
評論
0/150
提交評論