浙江版信息技術高考總復習專題五算法與VB語言基礎(講解練)教學講練_第1頁
浙江版信息技術高考總復習專題五算法與VB語言基礎(講解練)教學講練_第2頁
浙江版信息技術高考總復習專題五算法與VB語言基礎(講解練)教學講練_第3頁
浙江版信息技術高考總復習專題五算法與VB語言基礎(講解練)教學講練_第4頁
浙江版信息技術高考總復習專題五算法與VB語言基礎(講解練)教學講練_第5頁
已閱讀5頁,還剩120頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、專題五算法與VB語言基礎技術 浙江專用考點一算法的表示流程圖考向基礎一、算法及算法的特征1.算法的概念算法就是對解題方法的精確而完整的描述,即解決問題的方法和步驟。2.算法的特征(1)有窮性。一個算法必須保證它的執(zhí)行步驟是有限的,即它是能終止的。(2)確定性。算法中的每個步驟必須有確切的含義,不應當模棱兩可。(3)可行性。算法中的每一個步驟都要足夠簡單,是實際能運行的,而且能在有限的時間內完成。(4)有0個或多個輸入。初始數(shù)據(jù)可從外界輸入,也可含于算法之中。(5)有一個或多個輸出。算法一定要有結果且以一定方式輸出。二、算法的三種表示方法1.自然語言就像寫文章時所列的提綱一樣,可以有序地用簡潔的

2、自然語言加數(shù)學符號來描述算法。用自然語言描述的算法通俗易懂,但缺乏直觀性和簡潔性,容易產生歧義。2.流程圖流程圖也叫程序框圖,它是算法的一種圖形化的表示方法,與自然語言相比,它描述的算法形象、直觀,更容易理解。最常用的流程圖構件如表所示。符號名稱圖形功能起止框表示算法的開始和結束輸入/輸出框表示算法的輸入/輸出操作處理框表示算法中的各種處理操作判斷框表示算法中的條件判斷操作流程線表示算法的執(zhí)行方向連接框表示流程圖的延續(xù)3.偽代碼偽代碼使用某些程序設計語言中的控制結構,來描述算法中各步驟的執(zhí)行次序和模式,使用自然語言、數(shù)學符號或其他符號,來表示計算步驟要完成的處理或需要涉及的數(shù)據(jù)。偽代碼是介于自

3、然語言和計算機程序語言之間的一種算法描述,沒有嚴格的語法限制,是專業(yè)軟件開發(fā)人員描述算法的一種常用方法。三、順序、選擇和循環(huán)三種基本結構1.順序結構:按指令的先后順序依次執(zhí)行。2.選擇結構:又稱分支結構,根據(jù)分支條件判斷是否成立,選擇某一條路徑中的指令執(zhí)行。3.循環(huán)結構:首先判斷條件是否成立,如果不成立,則直接執(zhí)行循環(huán)體外的指令,如果條件成立,則執(zhí)行循環(huán)體內的指令,執(zhí)行完后再次判斷條件是否成立,如果條件成立,再次執(zhí)行循環(huán)體內的指令,直至條件不成立跳出循環(huán)體為止。以下是三種基本結構的流程圖:考向突破循環(huán)結構流程圖解題技巧1.常見考法【考法一】流程圖執(zhí)行完后,求某變量的值。例1某算法的部分流程圖如

4、圖所示,執(zhí)行這部分流程后,變量c的值是()A.6B.7C.0D.3解析本題考查算法流程圖。分析流程圖可知,變量c表示循環(huán)次數(shù),45反復減7,減到值小于等于7為止,45-6*7=3,因此是6次。當然也可以將循環(huán)過程全部列出,也能得出正確答案,但比較費時。答案A【考法二】求循環(huán)條件執(zhí)行幾次,循環(huán)體執(zhí)行幾次。循環(huán)條件一般比循環(huán)體多執(zhí)行一次。例2某算法流程圖如圖所示,執(zhí)行該算法后,變量s的值及xx+1執(zhí)行的次數(shù)分別為()A.0,3B.-5,4C.0,4D.-5,3解析本題考查循環(huán)結構流程圖。執(zhí)行過程中變量變化如表所示:因此退出循環(huán)時s=0,循環(huán)體執(zhí)行了4次。 sx第1次循環(huán)10-1=91+1=2第2次

5、循環(huán)9-2=72+1=3第3次循環(huán)7-3=43+1=4第4次循環(huán)4-4=04+1=5答案C【考法三】執(zhí)行流程圖過程中,輸入變量的值,最后求結果。例3(2018浙江紹興柯橋高三選考模擬)某算法部分流程圖如圖所示。執(zhí)行這部分流程,依次輸入1、1、2、4、3、5、6、8、0,則輸出值是()A.243568B.46C.112358D.2358解析本題考查循環(huán)結構流程圖。執(zhí)行過程中變量變化如表所示: nabc第1次輸入c0112第2次輸入c2124第3次輸入c 3第4次輸入c23235第5次輸入c235356第6次輸入c 8第7次輸入c2358580答案D2.解題突破口進入循環(huán)體的前提是滿足循環(huán)條件,因

6、此退出循環(huán)時,一定是不滿足循環(huán)條件的狀態(tài),利用好這一點,可以快速解題。例4某算法的部分流程圖如圖所示,執(zhí)行這部分流程后,變量a和b的值分別為()A.5和6B.11和5C.6和5D.-3和-4解析本題主要考查循環(huán)結構流程圖。退出循環(huán)時,一定是a=b的狀態(tài),只有選項A符合。答案A考點二面向對象程序設計基礎考向基礎1.對象、類、屬性、方法、事件、事件處理過程的概念(1)對象:在現(xiàn)實世界中,我們眼睛看得見摸得著的都是對象,如一本書、一支筆、一個西瓜、一條狗等都是對象。對象是有著狀態(tài)和行為的實體。而在VB程序中,對象是指某個窗體、文本框、標簽、命令按鈕等控件。(2)類:具有相同性質的對象的一種抽象,一個

7、對象則是類的一個實例。如窗體上有兩個對象Label1和Label2,這兩個對象都屬于Label類,是Label類的兩個實例。常見的控件類有:對象名所屬類中文名如Form1、Form2Form窗體如Text1、Text2TextBox文本框如Label1、Label2Label標簽如List1、List2ListBox列表框如Command1、Command2CommandButton命令按鈕(3)屬性:對象可以通過屬性來描述它的狀態(tài)。方法一:在屬性面板中設置某個對象的各個屬性的屬性值;方法二:在程序中通過語句來設置,一般格式為:對象名.屬性名=屬性值如Label1.Height=1000,可設

8、置Label1對象的高度是1000。常見的屬性有:屬性名屬性值意義Name如:Command1對象的名稱,每個控件都具有的屬性,也是最重要的屬性BackColor如:&H0000FFFF&對象的背景色Left如:2000對象的左上角水平坐標Top如:1000對象的左上角垂直坐標Height如:500對象的高度Width如:1000對象的寬度Font如:宋體對象中文字的字體Caption如:確定對象的標題,一般用于設置窗體、標簽、命令按鈕Text如:10設置文本框的內容,只有文本框對象才有此屬性,一般用于輸入輸出Picture如:LoadPicture(1.jpg)設置對象中顯示的圖片,常用在I

9、mage和PictureBox控件中Enable如:True設置對象是否有效,如設置計時器控件的開關Interval如:1000計時器控件的Timer事件觸發(fā)的時間間隔,單位為毫秒(4)方法:每個對象都有自己的行為,如List1.Clear是List1對象清空自身所有的列表項,List1.AddItem a是往List1對象中添加一條項目。一般格式為:對象名.方法名(參數(shù))(5)事件:事件就是發(fā)生在對象上的事情,通常是由用戶在對象上做的一種動作。常見的事件有:事件名含義說明Load加載一般用于窗體對象Click單擊鼠標左鍵可用于各種對象,常用于命令按鈕DblClick雙擊鼠標左鍵可用于各種對象

10、KeyPress在鍵盤上按鍵,通過參數(shù)KeyAscii獲知按下了鍵盤上哪一個鍵一般用于文本框Change對象內容改變一般用于文本框Timer計時器事件一般用于計時器(6)事件處理過程:一個事件的發(fā)生,可以引起某個對象上的某個事件處理過程(往往是用戶編制的一段程序)的執(zhí)行,這就是面向對象程序設計中的事件驅動概念。例1在Visual Basic中,要在窗體中的標簽對象Label1上顯示文字“請輸入驗證碼:”,應改變的標簽對象屬性是()A.WidthB.FontC.CaptionD.Top解析標簽對象用Caption(標題)屬性設置顯示文字。答案C2.事件處理過程的代碼編寫事件處理過程的一般格式如下

11、:Private Sub對象名_事件名()代碼段End Sub事件處理過程名稱為:對象名_事件名,表示在某個對象上發(fā)生某個事件時,執(zhí)行代碼段里的指令。如:Private Sub Command1_Click()a=b+cEnd Sub則事件處理過程名稱為Command1_Click,即當Command1對象上發(fā)生鼠標單擊事件時,執(zhí)行指令a=b+c。例2在VB中,雙擊名為count的時鐘后,默認出現(xiàn)的事件是()A.timer1_Timer()B.timer1_Click()C.count_Timer()D.count_Click()解析本題考查對VB事件的掌握。雙擊控件會出現(xiàn)對應的默認事件過程代

12、碼,其中事件名由對象名、下劃線、事件名組成,本題中對象名為count,是Timer控件,Timer控件的事件名為Timer。答案C3.VB程序的建立、調試和保存(1)VB程序設計環(huán)境如圖所示:(2)VB程序設計的一般步驟建立窗體添加控件修改控件的屬性添加事件處理過程編寫代碼運行測試保存源文件導出exe可執(zhí)行程序。(3)窗體窗體設計即程序的界面設計,從VB界面圖中的“窗體”上可看到該程序界面共有三個對象,分別是一個窗體、一個文本框、一個按鈕。如果在代碼中訪問窗體中沒有的對象(第一種情況是窗體沒有該對象;第二種情況是窗體中有該對象,但是代碼中訪問時名稱寫錯),則程序運行時會報如下錯誤:(4)工程資

13、源管理器從VB界面圖中的“工程資源管理器”中可看到該程序工程對象的對象名為“工程1”,窗體對象的對象名為“Form1”。該程序只有保存以后才有工程文件和窗體文件,文件名分別是“工程1.vbp”和“test.frm”。(5)屬性面板從VB界面圖中的“屬性面板”中可看到當前選中的控件是Cmd1,屬于CommandButton(命令按鈕)類。該控件的對象名是Cmd1,在屬性面板中左邊一列是該控件所具有的屬性名稱,右邊一列是對應的屬性值,可看到該控件的“Caption”(標題)屬性設置為“計算”。(6)程序的運行和調試程序的界面設計、代碼編寫全部完成后,就可以運行程序來進行測試。點擊菜單欄里的“運行”

14、按鈕或按快捷鍵F5,可直接運行程序。如果程序中有語法錯誤,則程序運行時會提示“編譯錯誤”,并會提示錯誤類型和錯誤的位置,如圖所示:如果程序運行正常,但是結果是錯誤的,則說明沒有語法錯誤,但是有算法設計錯誤,則需要通過“調試”,添加變量監(jiān)視,按快捷鍵F8讓指令逐條運行,并同時觀察變量值的變化過程,找到邏輯錯誤所在。(7)保存和導出VB程序保存時會生成兩個重要文件,一個是工程文件,后綴名為“.vbp”,一個是窗體文件,后綴名為“.frm”。窗體文件又稱源文件,包含了窗體的對象屬性以及事件過程代碼。工程文件包含了窗體、模塊及添加的引用、使用的控件等相關信息,沒有其他代碼,僅僅是工程的相關設置。程序調

15、試完成后,可通過菜單下的“生成工程.exe”命令,將程序編譯成可執(zhí)行程序??枷蛲黄?.??伎丶捌鋵傩院头椒丶麑傩曰蚍椒êx實例窗體(Form)Caption(屬性)標題Load(加載)標簽(Label) 命令按鈕(CommandButton)Click(鼠標單擊)文本框(TextBox)Text(屬性)內容 列表框(ListBox)AddItem(方法)添加列表項 計時器(Timer)Interval(屬性)間隔Timer(計時事件)Enabled(屬性)可用代碼作用說明Label1.Caption=面積:將標簽Label1的標題設置為面積:要注意文本框沒有Caption屬性Text1.

16、Text=hello!將文本框Text1的內容設置為hello!只有文本框才有Text屬性,通過設置文本框的Text屬性可實現(xiàn)輸入輸出Text1.Text=將文本框Text1清空 List1.AddItem abc在列表框List1中輸出字符串“abc”AddItem是方法,其后不能加“=”List1.Clear清空列表框List1中的所有內容 Timer1.Interval=1000表示每隔1秒啟動計時器事件時間間隔的單位是毫秒使用舉例:Timer1.Enabled=True表示開啟計時器True表示開啟,False表示關閉Form_Load()窗體裝載事件該事件在程序啟動時自動觸發(fā),因此程

17、序的初始化代碼可放在該事件處理過程中Command1_Click按鈕上的鼠標單擊事件 例1編寫如下程序:在設計應用程序界面時,應使用圖b所示“控件工具箱”中的(填寫相應編號)添加標簽“Label1”。要在按鈕“Command1”上顯示“計算”字樣,可以修改“Command1”的屬性的屬性值。答案4;Caption例2在設計程序界面時,要清空文本框中的顯示內容,應修改該文本框中的屬性。答案Text2.事件處理過程事件處理過程名:對象名_事件名(),如Command1_Click()。例3代碼“Private Sub Command1_Click()”中的Click是。(單選,填字母:A.對象名/

18、B.屬性名/C.事件名)解析Command1_Click是事件處理過程名,Command1是對象名,Click是事件名。答案C考點三VB語言基礎考向基礎一、VB基本數(shù)據(jù)類型在VB中,常用的基本數(shù)據(jù)類型有以下幾種:Integer(整數(shù)型)、Long(長整數(shù)型)、Single(單精度實數(shù)型)、Double(雙精度實數(shù)型)、String(字符串型)、Boolean(邏輯型)、Date(日期型)。二、常量、變量1.常量常量是在程序執(zhí)行過程中其值不變的存儲單元或數(shù)據(jù)。在VB中,常量有整數(shù)常量、實數(shù)常量、字符串常量和邏輯常量這幾種類型。如整數(shù)常量15、20等;實數(shù)常量3.14159、-2.01等;字符串常

19、量“VB”“15”等;邏輯常量True、False。直接用值的常量叫直接常量,還有一類常量是符號常量。為了方便程序修改、調試及使程序具有更好的可閱讀性,我們通常將某個常量定義成符號常量,并且在代碼中使用該符號來代替實際值。如下列語句定義了符號常量PI,來代替圓周率的近似值:Const PI=3.1416符號常量在定義時同時賦值,代碼中凡是用到符號“PI”的地方,運算時實際用了值3.1416。而且PI一旦被定義為符號常量,則后續(xù)代碼中不允許對“PI”進行再次賦值。2.變量在程序運行時,值一開始不確定,或者運行過程中可能會發(fā)生改變的存儲單元稱為變量。每個變量都要有確定的變量名和數(shù)據(jù)類型。變量的命名

20、規(guī)則:(1)由字母、數(shù)字或下劃線等字符組成,必須以字母開頭;(2)變量名最長為255個字符;(3)VB中不區(qū)分變量名的大小寫;(4)不能使用VB中的關鍵字。變量說明語句的常用形式為:Dim變量名As變量的類型例1在Visual Basic中,下列能作為變量名的是()A.x+1B.x_1C.OrD.If解析本題考查變量的命名規(guī)則。變量的名稱由字母、數(shù)字或下劃線等字符組成,且必須以字母開頭?!皒+1”中“+”是不允許用的。題目中Or、If在VB中有特定用途,不能作為變量名。答案B例2用變量存儲詩朗誦比賽中選手的平均得分(保留2位小數(shù)),則變量的數(shù)據(jù)類型應說明為()A.IntegerB.LongC.

21、SingleD.Date解析Integer是整型,Long是長整型,Single是單精度實數(shù)型,Date是日期型。答案C例3下列Visual Basic程序用于計算1010的值:Private Sub Command1_Click()Dim n As Integer,s As Integern=10s=10nText1.Text=Str(s)End Sub運行程序時,單擊命令按鈕Command1后彈出如圖所示的出錯信息提示,引起該錯誤的原因是()A.變量s的數(shù)據(jù)類型說明不當B.變量n的數(shù)據(jù)類型說明不當C.文本框Text1的寬度不夠D.s值太大,因此不能在文本框Text1中輸出解析每種數(shù)據(jù)類型的

22、存儲空間是不一樣的。存儲空間也決定了數(shù)據(jù)類型的值范圍,比如Integer型占兩個字節(jié),最大為32 767,而Long型占四個字節(jié),最大為2 147 483 647。1010明顯超過了32 767,如果存到Integer型的變量s中,就發(fā)生了“溢出”錯誤。答案A三、VB中常用的標準函數(shù)1.常用數(shù)學函數(shù):Abs(X)、Int(X)、Sqr(X)、Exp(X)、Log(X)、Sin(X)、Cos(X)、Tan(X)。2.常用類型轉換函數(shù)和字符串函數(shù):Asc(X)、Chr(X)、Val(X)、Str(X)、Len(X)、Mid(X,n,k)、Fix(X)。3.隨機函數(shù)Rnd:產生一個大于或等于0且小于

23、1的單精度隨機數(shù)。例4在Visual Basic中,a=-100,表達式“360”+Str(a)的值是()A.260B.360-100C.460D.360100解析類型轉換函數(shù)Str(x)的功能是將數(shù)值x轉換為字符串。a=-100,Str(a)=“-100”,“360”+Str(a)=“360-100”,完成字符串的連接運算。答案B四、算術、關系、邏輯三類基本運算及表達式1.VB的基本運算包括算術運算、關系運算和邏輯運算三大類。算術類基本運算有:、-(取負)、*、/、Mod、+、-(減法)。關系類基本運算有:=、=。邏輯類基本運算有:Not、And、Or。2.表達式主要用來規(guī)定值的計算過程,以

24、及對于某些情況或條件的判斷。一個表達式中可能包括算術運算、關系運算和邏輯運算等多種基本運算,以及這些基本運算所涉及的數(shù)據(jù)(變量和常量)。例5能正確判斷x為偶數(shù)的VB表達式是()A.x Mod 2=0B.Int(x/2)=0C.x/2=0D.x2=0解析判斷“x是不是偶數(shù)”的條件是x能否被2整除,其Visual Basic條件表達式是x Mod 2=0,即x除以2余數(shù)為0。答案A例6已知a=1,b=2,c=3,下列表達式中值為True的是()A.Not(ab And bcC.acD.ac解析本題考查關系表達式和邏輯表達式的運算方法。當ab的值為True時,Not(ab的值為False并且bc的值

25、為False時,ab And bc的值為False。當ac的值為False時,ac的值為True。ac的值為False。答案C考向突破一、VB基本數(shù)據(jù)類型VB中常用的數(shù)據(jù)類型如下表:數(shù)據(jù)類型名說明性質Integer整數(shù)型-32 76832 767范圍內的任何整數(shù)Long長整數(shù)型-2 147 483 6482 147 483 647范圍內的任何整數(shù)Single單精度實數(shù)型絕對值在1.401 298E-45到3.402 823E38內的任何實數(shù),有效數(shù)字約67位Double雙精度實數(shù)型絕對值在10E-324到1.79E308內的任何實數(shù),有效數(shù)字約1415位String字符串型一段文字和符號,放在

26、一對雙引號(英文狀態(tài))之間Boolean邏輯型判斷的結果,其值為真(True)或假(False)Date日期型日期和時間其中邏輯(Boolean)數(shù)據(jù)類型只有兩個值True或False。將邏輯型轉換成整型時,True為-1,False為0;其他數(shù)據(jù)轉換成邏輯型時,非0為True,0為False。例1運行如下Visual Basic程序,單擊命令按鈕Command1,出現(xiàn)如圖所示的出錯信息。Private Sub Command1_Click()Dim p As String,a As Stringp=a=abcdb=p+aLabel1.Caption=Str(p)End Sub發(fā)生“類型不匹配

27、”錯誤時所執(zhí)行的語句是()A.B.C.D.解析程序執(zhí)行到Label1.Caption=Str(p)時出現(xiàn)錯誤,類型轉換函數(shù)Str(p)的作用是將數(shù)值轉換為字符串,而p是字符串型,于是出現(xiàn)“類型不匹配”的問題。正確寫法應該是Label1.Caption=p。答案D例2在VB中,下列表達式的值屬于字符串常量的是()A.Abs(100)B.“false”C.Val(“100”)D.True解析本題考查VB的基本數(shù)據(jù)類型。A和C的值都為100,是整數(shù)型,D為邏輯型,B中false本來是邏輯型,但加了雙引號,則為字符串型。答案B二、基本運算與表達式VB的基本運算包括算術運算、關系運算和邏輯運算三大類。把

28、變量、常量、運算符、函數(shù)和圓括號按一定的規(guī)則組合起來,構成一個表達式,用來描述值的計算過程,或描述對于某種情況下所遇到的條件的判斷。(1)算術類運算符基本運算運算符號優(yōu)先級舉例結果乘冪1238取負-2-aa的相反數(shù)乘法*32*36實數(shù)除法/35/22.5整數(shù)除法4522求余數(shù)Mod55 Mod 21加法+62+35減法-62-3-1數(shù)字越大,優(yōu)先級越低,在一個表達式中先執(zhí)行優(yōu)先級高的運算,同優(yōu)先級則按自左向右順序執(zhí)行,若有括號,則先計算括號內的表達式,如果有多層括號,則按由內向外的順序進行計算。整數(shù)除法的優(yōu)先級比乘法和實數(shù)除法的優(yōu)先級低一級,因此表達式158/4相當于15(8/4),結果為7。

29、此外整數(shù)除法要求被除數(shù)與除數(shù)也必須是整數(shù),得到的商取整。求余數(shù)的運算符Mod是唯一一個由字母構成的運算符,注意與標準函數(shù)的區(qū)別,函數(shù)有參數(shù),而運算符沒有參數(shù)。Mod運算要求被除數(shù)與除數(shù)都必須是整數(shù),得到的余數(shù)也是整數(shù)。Mod的優(yōu)先級是5級,比整數(shù)除法低一級,比加減法優(yōu)先級高。(2)關系運算符所有關系運算具有相同的優(yōu)先級?;具\算運算符號優(yōu)先級舉例結果相等=71=2False不相等712True小于71712False小于等于=71=71=2False關系運算主要是比較運算符兩邊數(shù)據(jù)的大小關系。在VB中,可以對數(shù)值進行比較;也可以對字符進行比較,字符的ASCII值大的,字符值就大;還可以對字符串

30、進行比較,先比較第一個字符,如果相等,則比較第二個字符,依此類推,因此字符串“final”“find”。關系運算的結果是邏輯值真(True)或假(False),表示該表達式成立或不成立?!?=2”相當于“12 或1=2”,“或”運算只要其中一個條件成立,結果即為真(True)。特別注意數(shù)值區(qū)間的寫法,數(shù)學上的“3x3 And x10”。(3)邏輯運算符基本運算運算符號優(yōu)先級舉例結果非Not8Not(12)False與And935False或Or1035True三個邏輯運算符的優(yōu)先級是不一樣的。“非”最高,“與”其次,“或”最低。但都比其他類型運算符低?!芭c”運算中,只要“與”兩邊有一個表達式不

31、成立,“與”運算結果就是False;“與”兩邊的表達式都成立,最后結果才是True?!盎颉边\算中,只要“或”兩邊有一個表達式成立,“或”運算結果就是True;“或”兩邊的表達式都不成立,結果才是False。(4)表達式書寫注意點乘號不能省略,如表達式a=2*b+1寫成a=2b+1會報錯,寫成a=b2+1不會條件表達式中區(qū)間的判斷不能連寫,比如判斷a是否在區(qū)間1,10內,不能寫成1=a=1 And a=10;判斷a,b,c三個變量是否相等,不能寫成a=b=c,應該寫成a=b And b=c。要注意運算的優(yōu)先級,比如求根公式應該寫成(-b-Sqr(b*b-4*a*c)/(2*a),而不是(-b-S

32、qr(b*b-4*a*c)/2*a例3(2018溫州新力量聯(lián)盟)已知a=30,b=10,c=3,則表達式Int(Sqr(a) Mod bc的值為()A.1B.2C.0D.1.67解析a=30,Int(Sqr(a)=5,“”的優(yōu)先級高于“Mod”,因此先算bc=3,再算5 Mod 3=2。答案B報錯,但是程序會把b2看成一個變量名,因此運算結果也是不正確的。例4在VB中,設x=2019,能正確得到其十位數(shù)字“1”的表達式是()A.x Mod 100B.x Mod 10010C.x10 Mod 10D.x100 Mod 10解析Mod運算和運算有一些特殊的功能,比如x Mod 10,可取出x的個位

33、數(shù);x Mod 100可取出x的十位和個位,依次類推。x10相當于劃去個位,x100相當于劃去十位和個位,依次類推。因此取十位數(shù)字表達式為x10 Mod 10,取百位數(shù)字表達式為x100 Mod 10,依次類推。注意“Mod”運算的優(yōu)先級比“”運算的優(yōu)先級低。A選項值為2019 Mod 100=19;B選項值為2019 Mod 10=9;C選項值為201 Mod 10=1;D選項值為20 Mod 10=0。答案C三、常用標準函數(shù)常用的數(shù)學函數(shù):隨機函數(shù)在書寫時可以不要參數(shù),括號也可省略,函數(shù)返回值是一個大于等于0且小于1的單精度隨機數(shù)。產生a,b區(qū)間內的隨機整數(shù)的表達式:函數(shù)名函數(shù)的功能應用舉

34、例函數(shù)返回值Abs(X)求X的絕對值Abs(-3.5)3.5Int(X)求不大于X的最大整數(shù)Int(4.1)Int(-4.1)4-5Sqr(X)求X的算術平方根Sqr(4)Sqr(6)22.44948Rnd()產生一個0,1)之間的隨機實數(shù)Rnd()例如:0.32Int(Rnd*(b-a+1)+a)。如:產生1,100的隨機整數(shù),表達式為Int(Rnd*100+1)。常用的類型轉換函數(shù)和字符串函數(shù):函數(shù)名函數(shù)的功能應用舉例函數(shù)返回值Asc(X)求字符的ASCII值Asc(“A”)65Chr(X)ASCII值轉換為字符Chr(48)“0”Val(X)數(shù)字字符串轉換為數(shù)值Val(“-170”)-1

35、70Str(X)數(shù)值轉換成字符串Str(-170)“-170”Len(X)計算字符串的長度Len(“asd”)3Mid(X,n,k)取字符串X中第n個字符起長度為k的子串Mid(“abcd”,3,2)“cd”Fix(X)截掉數(shù)據(jù)的小數(shù)部分Fix(2.56)2Asc()、Val()、Len()三個函數(shù)的參數(shù)是字符串型,函數(shù)返回值是數(shù)值型。Chr()、Str()兩個函數(shù)的參數(shù)是數(shù)值型,函數(shù)返回值是字符串型。Mid()函數(shù)有三個參數(shù),函數(shù)返回值是字符串型。Len()函數(shù)與Mid()函數(shù)組合使用,可以取出一個字符串的所有字符。代碼如下:n=Len(s)For i=1 to nPrint Mid(s,i

36、,1)Next例5下列VB表達式的值等于23的是()A.Str(20)+“3”B.Len(“-20”)+20C.Val(“-20”)+20D.Abs(Int(-23.3)解析本題考查VB標準函數(shù)。A選項值為“203”,B選項值為23(即3+20),C選項值為0(即-20+20),D選項Int(X)函數(shù)是取不大于X的最大整數(shù),因此Int(-23.3)=-24,取絕對值后是24。答案B例6產生一個隨機大寫字母的VB表達式是()A.Chr(Int(Rnd*25+65)B.Asc(Int(Rnd*25+65)C.Chr(Int(Rnd*26+65)D.Asc(Int(Rnd*26+65)解析“A”的A

37、SCII碼值為65,“AZ”共26個字母,因此產生隨機數(shù)的范圍應該是65,90,隨機數(shù)公式為Int(Rnd*26+65)。Chr()是將ASCII值轉換為相應的字符,Asc()是求字符的ASCII值。因此答案為C。答案C考點四VB基本語句考向基礎一、賦值語句賦值語句的作用是把等號右邊的表達式的計算結果存儲到等號左邊的變量中,或某個對象的屬性中。其格式為:變量名=表達式或對象名.屬性名=表達式說明:如果在同一行中出現(xiàn)多個賦值語句,則語句之間用冒號(:)隔開。如:a=b:b=c:c=a該行代碼中包含了三個賦值語句,最后的結果是變量b和c中的值被交換。對某個對象的某個屬性進行賦值,如:Label1.

38、Caption=“結果”,表示將標簽Label1的標題設置為“結果”兩字?!?”號兩邊的數(shù)據(jù)類型應該一致。二、選擇語句選擇語句又稱為條件語句、分支語句或判斷語句。用于實現(xiàn)三種基本結構中的分支結構。條件語句用If語句來表示,有行If語句和塊If語句兩種語句格式。1.行If語句行If語句必須在一行內寫完。語法格式如下:If條件表達式Then語句1Else語句2或If條件表達式Then語句該指令執(zhí)行過程是:先判斷條件表達式,如果成立,則執(zhí)行語句1,如果不成立,則執(zhí)行語句2。2.塊If語句單個分支:If條件表達式Then語句塊End If兩個分支:If條件表達式Then語句塊1Else語句塊2End

39、If多個分支:If條件表達式1 Then語句塊1ElseIf條件表達式2Then語句塊2ElseIf條件表達式3ThenElse語句塊nEnd If注意:塊If語句必須要以End If結束,如下代碼:For i=1 To 10If i Mod 2=0 ThenPrint“偶數(shù)”ElsePrint“奇數(shù)”Next運行后,會出現(xiàn)如下提示,錯誤原因并非缺少Next,而是缺少了End If。3.If語句的嵌套If條件表達式1 Then語句塊1If條件表達式2 Then語句塊2Else語句塊3End IfElse語句塊4End If這是一個If語句的雙層嵌套,內層If語句是嵌套在外層的Then分支中。因

40、此有如下結論:條件表達式1成立執(zhí)行:語句塊1條件表達式2成立執(zhí)行:語句塊2條件表達式2不成立執(zhí)行:語句塊3條件表達式1不成立執(zhí)行:語句塊4 三、循環(huán)語句1.For循環(huán),也稱計數(shù)型循環(huán),語法結構如下:For循環(huán)變量=初值To終值Step步長循環(huán)體Next循環(huán)變量步長=1時,可省略Step。流程圖如下: 例1有如下Visual Basic 程序:Private Sub Command1_Click()Dim sum As Double, x As Double sum=0 n=0 For i=1 To 5x=n / in=n + 1sum=sum + x NextEnd Sub該程序通過For循環(huán)

41、計算sum的值,下列表達式的值與sum相等的是()A.1+1/2+2/3+3/4+4/5B.1+1/2+2/3+3/4C.1/2+2/3+3/4+4/5D.1+1/2+1/3+1/4+1/5解析本題考查程序閱讀。程序運行過程如下:ix=n/ i執(zhí)行n=n+1后的nsum101021/221/232/331/2+2/343/441/2+2/3+3/454/551/2+2/3+3/4+4/5退出循環(huán) 答案C2.Do循環(huán),也稱當型循環(huán),語法結構如下:Do While條件表達式 循環(huán)體LoopDo語句的執(zhí)行過程畫成流程圖如下:Do語句的執(zhí)行過程相對簡單,先判斷條件,成立則執(zhí)行循環(huán)體,然后再次判斷條件,

42、成立則再次執(zhí)行循環(huán)體,每執(zhí)行完一次循環(huán)體,則回到條件判斷,直到條件不成立,則退出循環(huán)。在事先不知道循環(huán)次數(shù)的情況下,可使用Do語句,但是要設置好循環(huán)條件,否則有可能陷入死循環(huán)。當知道循環(huán)次數(shù)時,既可使用Do語句,也可使用For語句,以下是等價的兩個程序段:For i=1 To 5循環(huán)體Next=i=1Do While i=5循環(huán)體i=i+1Loop例2閱讀如下程序段,程序運行結束時,k和s的值分別是()k=0:s=0Do While k =10s=s+1k=k+1LoopA.k=10,s=10B.k=10,s=11C.k=11,s=10D.k=11,s=11解析k和s的初值都為0,每循環(huán)一次,

43、s加1,k加1;循環(huán)變量k從0開始,一直到k=10,故一共循環(huán)11次,所以程序結束時,s=11,最后一次循環(huán)完成后k=11。當k=11時,循環(huán)條件不滿足,退出循環(huán)。所以程序結束時,k=11,s=11。答案D例3現(xiàn)要求剛好輸出1 至100 內所有能被7 整除的數(shù),下列程序不能實現(xiàn)的是()A.For i=1 To 100If i Mod 7=0 ThenList1.AddItem iEnd IfNext iB.For i=7 To 100 Step 7List1.AddItem iNext iC.i=1: s=7Do While s =100List1.AddItem si=i+1s=i*7Loo

44、pD.s=0Do While s 3 Then x=x+3If x6 Thenx=x-2Elsex=x+5End If最后x的值為()A.8B.10C.13D.6解析代碼中有兩個If語句,一個是行If,一個是塊If,依次執(zhí)行,不互斥。第一個If語句條件成立,執(zhí)行x=x+3=8;到第二個If語句,條件成立,執(zhí)行分支x=x-2=6。答案D例5有如下VB程序段:a=3:b=4:c=5If a=b And a=c Theny=aElseIf b=c Theny=bElsey=cEnd If該程序段運行之后,整數(shù)型變量y的值為()A.0B.3C.4D.5解析本題考查塊If語句的執(zhí)行過程。當a=3,b=4

45、,c=5時,條件表達式a=b And a=c為False,表達式b=c的值為False,程序執(zhí)行y=c語句。答案D例6有如下VB程序段:Dim a As Single, b As Singlea = Val(Text1.Text)If a = 15 Thenb = a 2Else If a= 0 Thenb = 10*aElseb = aEnd IfText1.Text=Str(b)若要測試所有分支程序代碼是否正確,以下測試數(shù)據(jù)中,最恰當?shù)囊唤M是()A.-1,0,1B.16,0,-2C.-5,2,10D.15,25,-1解析本題主要考查分支結構。分支一:a15;分支二:0a15;分支三:a0。

46、為測試所有分支代碼是否正確,應選擇B選項。答案B三、循環(huán)語句的循環(huán)次數(shù)1.For 循環(huán):For 循環(huán)變量=初值 To終值Step步長語句塊Next 循環(huán)變量循環(huán)次數(shù)=Int(終值-初值)/步長)+1。以下情況,循環(huán)次數(shù)是0次:初值大于終值,且步長為正數(shù);初值小于終值,且步長為負數(shù)。以下情況,循環(huán)次數(shù)是1次:(終值-初值)/步長1。如果終值初值,并且步長=0,則程序陷入死循環(huán)。例7以下程序段運行之后,變量s的值為()Dim i, s As Integers = 0For i= 1 To 5 Step -1s = s + iNext iA.15B.10C.0D.程序錯誤解析該For循環(huán)語句的循環(huán)次

47、數(shù)是0次,因此s的值不變。答案C例8有以下一段語句:For i=1 To 5 Step 10Print iNext i則循環(huán)體語句執(zhí)行次數(shù)為()A.1B.5C.10D.2解析本題中(終值-初值)/步長1,執(zhí)行次數(shù)是1次。答案A2.Do循環(huán):首次檢驗條件表達式,如果發(fā)現(xiàn)是假,則循環(huán)體執(zhí)行次數(shù)是0次。例9(2018紹興期末調測)有如下 VB 程序段:n =Val(Text1.Text)i = 2: flag = TrueDo While i = Int(Sqr(n)If n Mod i = 0 Thenflag = FalseElsei=i+1End IfLoopIf flag Then Labe

48、l1.Caption = Yes Else Label1.Caption = No該程序段運行后,若在文本框 Text1 中輸入“15”,則下列說法正確的是()A.flag 的值為 TrueB.Label1 中輸出“No”C.程序將進入死循環(huán)D.條件表達式 n Mod i=0 等價于 Int(n/i)=ni解析i=2,n=15,因此n Mod i=0不成立,執(zhí)行i=i+1=3;第2次循環(huán), n Mod i=0 成立,因此執(zhí)行flag=False,不執(zhí)行i=i+1,i值不變,因此條件n Mod i=0 一直成立,i值一直為3,循環(huán)條件一直成立,因此程序進入死循環(huán)。答案C考點五數(shù)組的定義及使用考向

49、基礎數(shù)組是由一批同類型的變量構成的一個序列,組成數(shù)組的每一個變量被稱為數(shù)組的元素,也稱為下標變量,下標是一個整數(shù),用來指出某個元素在數(shù)組中的位置,數(shù)組中每個元素的位置由它的下標唯一確定。一維數(shù)組的常用形式為:Dim數(shù)組變量名(A1 To A2)As元素的類型經典的數(shù)組問題:1.求數(shù)組中的最小值、最大值。k=a(1)For i=2 To nIf a(i)k Then k=a(i)Next代碼運行完后,k中存儲的是數(shù)組a中的最小值;將a(i)k,則k中是最大值。2.求數(shù)組中最小值(最大值)所在的位置。k=1For i=2 To nIf a(i) 0a(n Mod 10) = 1 n = n 10L

50、oops = 0For i = 0 To 9s = s + a(i)NextIf s = 10 Then Print yes4.統(tǒng)計字符串s中出現(xiàn)次數(shù)最多的小寫字母。Dim a(1 To 26) As IntegerFor i = 1 To Len(s)c = Mid(s,i,1)If c = a And c a(Max) Then Max = iNextPrintChr(Asc(a) + Max - 1)數(shù)組是考試重點,也是難點。數(shù)組下標的靈活運用,可以實現(xiàn)很多算法,同時也增加了考試難度。甚至在數(shù)組中再引入另一個數(shù)組做下標變量,如a(b(i)、a(b(c(i)等,大大增加了解題難度。對于此類

51、題型,沒有捷徑,唯有多練多總結,同時也要熟練掌握循環(huán)語句,才能在考試時,做到胸有成竹、不慌不亂。例1有如下程序段,運行時程序出現(xiàn)如下錯誤提示,出錯語句的位置是 ()Private Sub Command1_Click()Dim i As IntegerDim a(1 to 10)As IntegerFor i=1 To 10a(i)=Rnd* 100Next iLabel1.Caption=Str(a(i)End SubA.B.C.D.解析循環(huán)結束后i= 11, 數(shù)組a下標范圍為 110,因此語句中a(i),也即a(11)出現(xiàn)下標越界。答案D例2有如下VB程序:Private Sub Comm

52、and1_Click()Dim a(1 To 5) As Integera(5)=Val(Text1.Text)For i=4 To 1 Step -1a(i)=a(i+1)2Next i Label1.Caption=Str(a(1)End Sub在文本框Text1中輸入“100”,單擊命令按鈕Command1后,標簽Label1中顯示的內容是()A.25B.6C.12D.50解析根據(jù)代碼可知前一項是后一項的一半(整數(shù)除),因此a(5)=100,a(4)=50,a(3)=25,a(2)=12,a(1)=6。答案B例3有如下程序段:key =5 : pmin = a(1)For i = 2 T

53、o 6If a(i) key And a(i) key,也即在大于5的元素里找出最小值,應該是7。答案C考向突破一、產生不重復的數(shù)產生10個1至100的不重復的數(shù):方法一:利用數(shù)組做標記Dim f(1 To 100) As BooleanFor i = 1 To 10a(i) = Int(Rnd * 100) + 1Do While f(a(i) = Truea(i) = Int(Rnd * 100) + 1Loopf(a(i) = TrueNext利用數(shù)組f做標記,如果某數(shù)值x已經產生,則f(x)=true。方法二:通過查找的方法For i = 1 To 10a(i) = Int(Rnd *

54、 100) + 1For j = 1 To i - 1If a(j) = a(i) Then i = i - 1: Exit ForNext jNext i利用順序查找,查找第i次產生的隨機數(shù)是否與前i-1個數(shù)有相同,如果有相同,則重新產生,此處i=i-1是一個巧妙的運用。方法三:利用自定義函數(shù)Dim a(1 To 10) As IntegerPrivate Sub Command1_Click()Dim i As IntegerFor i = 1 To 10a(i) = Int(Rnd * 100) + 1Do While f(i)a(i) = Int(Rnd * 100) + 1LoopN

55、extEnd SubPublic Function f(n As Integer) As Booleanf = FalseFor i = 1 To n - 1If a(i) = a(n) Then f = True: Exit ForNextEnd Function自定義函數(shù)f的作用是判斷第i個數(shù)是否已經產生,在函數(shù)中利用順序查找,查找第i個數(shù)是否與前i-1個數(shù)有相同,如果有相同則返回函數(shù)值True。因為有兩個過程要使用數(shù)組,因此數(shù)組定義為通用變量。二、在數(shù)組中插入或刪除數(shù)1.在數(shù)組a的第k個位置刪除一個數(shù),并將第k+1至第n個數(shù)依次往前移。For j = i To n - 1a(j) = a

56、(j + 1)Nextn = n-1總個數(shù)減12.在數(shù)組a的第i個位置插入一個數(shù)key,并將第i至第n個數(shù)依次往后移。For j = n + 1 To i + 1 Step -1a(j) =a(j - 1)Nexta(i)=key3.去除數(shù)組中的重復數(shù)。i = 2 從第2個數(shù)開始找重復數(shù)Do While i = nFor j = 1 To i - 1第i個數(shù)與前i-1個數(shù)比較If a(i) = a(j) Thena(i) = a(n) 若a(i)是重復數(shù),將最后位置的數(shù)直接替換a(i)n = n - 1總個數(shù)減1i = i - 1這步操作很重要,因為移過去的數(shù)可能也是重復的,要重新判斷Exit

57、 For 當前數(shù)已經被刪除,不用再比較End IfNexti = i + 1Loop例1(2018紹興期末調測)某數(shù)組 a(1)a(10)中的數(shù)值分別為 5,3,5,10,3,5,12,96,12,10,經過去重后,a(1)a(5)的數(shù)值為 5,3,10,12,96,部分程序如下:i = 1:n=10Do While i = nj=i+1Do While j =nIf ThenFor k = j To n - 1Next kn=n-1Elsej=j+1End IfLoopi=i+1Loop為實現(xiàn)以上功能,劃線處應分別填寫()A.a(j)=a(j+1) a(k)=a(k+1)B.a(j)=a(i

58、) a(k)=a(k+1)C.a(j)=a(j+1) a(k)=a(k-1)D.a(j)=a(i) a(k)=a(k-1)解析這是一個數(shù)組的去重問題。變量i從1至n,表示對數(shù)組中每個a(i)都進行一次去重,變量j從i+1到n,表示每遍去重的方法是:將a(i)與其后的所有元素進行比較,如果有a(j)=a(i),則將a(j)刪去,并將a(j)后的數(shù)依次往前移。因此處填a(j)=a(i),處填a(k)=a(k+1),表示將所有元素依次往前移一個位置。答案B三、可能與不可能問題通過隨機函數(shù)產生數(shù)組,并經過一系列操作后,選出可能或不可能的狀態(tài),這是近來比較熱門的考題,難度往往也比較大。解這類題目的關鍵是

59、:注意隨機數(shù)的范圍;注意元素的奇偶性和奇偶位置;通過模擬代碼執(zhí)行,找出規(guī)律或程序的目的,有助于提高解題速度。例2(2019浙江名校新高考研究聯(lián)盟(Z20聯(lián)盟)第二次聯(lián)考)有如下VB程序段:For i = 1 To 8a(i) = Int(Rnd * 2)Next isum = 0For i = 1 To 8 Step 3For j =i To 8a(j) = 1 - a(j)Next jsum = sum + a(i)Next iText1.Text = Str(sum)執(zhí)行程序段后, 文本框 Text1中顯示的內容不可能是()A.0B.2C.3D.4解析本題考查隨機函數(shù)和數(shù)組的綜合應用。從a(i) = Int(Rnd * 2)可知,a(i)的值要么是0,要么是1。第一次循環(huán)i=1,將第1個到第8個數(shù)的值取反(0變1,1變0),并且將a(1)值累加至sum;第二次循環(huán)i=4,將第5個到第8個數(shù)的值取反, 并且將a(4)值累加至sum;第三次循環(huán)i=7,將第7個到第8個數(shù)的值取反, 并且將a(7)值累加至sum。顯然不必研究數(shù)組中8個元素的值到底是多少,因為sum中最多只加了3個元素(要么0,要么1),所以sum的值不可能是4。答案D例3(2

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論