高中信息技術(shù)粵教版:計(jì)算機(jī)程序與程序設(shè)計(jì)語言同步練習(xí)_第1頁
高中信息技術(shù)粵教版:計(jì)算機(jī)程序與程序設(shè)計(jì)語言同步練習(xí)_第2頁
高中信息技術(shù)粵教版:計(jì)算機(jī)程序與程序設(shè)計(jì)語言同步練習(xí)_第3頁
高中信息技術(shù)粵教版:計(jì)算機(jī)程序與程序設(shè)計(jì)語言同步練習(xí)_第4頁
高中信息技術(shù)粵教版:計(jì)算機(jī)程序與程序設(shè)計(jì)語言同步練習(xí)_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

3.3計(jì)算機(jī)程序與程序設(shè)計(jì)語言(2)

學(xué)校:姓名:班級(jí):考號(hào):

一、選擇題

1.計(jì)算機(jī)能直接識(shí)別和執(zhí)行的的語言是()

A.匯編語言B.機(jī)器語言C.高級(jí)語言D.C語言

2.現(xiàn)有流程圖如下,關(guān)于流程圖的說法正確的是()

A.運(yùn)行后,輸入語句一定會(huì)被執(zhí)行三次

B.程序運(yùn)行后,輸入語句至少會(huì)被執(zhí)行一次

C.該程序的循環(huán)次數(shù)為3次

D.第一次輸入guess的值為8,則程序運(yùn)行結(jié)果為“對(duì)不起,你失敗了!”

3.計(jì)算機(jī)能夠直接識(shí)別和執(zhí)行的程序設(shè)計(jì)語言是()。

A.低級(jí)語言B.匯編語言C.機(jī)器語言D.高級(jí)語言

4.x和n都是正整數(shù)且x<=n,下列選項(xiàng)中,與語句“x=xModn+l”功能相同的是()

A.x=(x+l)Modn

B.x=x+l

Ifx=nThenx=l

C.x=x+l

Ifx=n+lThenx=l

D.x=x+l

Ifx=n+lThenx=0

5.下面程序執(zhí)行結(jié)束,文本框Textl中顯示()

PrivateSubForm__Click()

a="123":b="456"

c=Val(a)+Val(b)

Textl.Text=str(c\100)

EndSub

A.123B.3C.5D.579

二、簡(jiǎn)答題

6.高級(jí)語言的編譯過程和解釋過程各有什么優(yōu)勢(shì)和不足。

7.程序設(shè)計(jì)語言有哪些,分別具備什么特點(diǎn)。

三、填空題

8.以下流程圖描述的算法,執(zhí)行結(jié)果是

9.編寫VB程序,實(shí)現(xiàn)如下功能:?jiǎn)螕簟坝?jì)算”按鈕,在列表框Listl中產(chǎn)生10個(gè)[1,

99]隨機(jī)數(shù),文本框Textl顯示相鄰兩個(gè)數(shù)字之間相差最大的差值。運(yùn)行界面如圖所示.

(1)窗體上,“計(jì)算”按鈕的對(duì)象名是O

(2)實(shí)現(xiàn)上述功能的VB程序如下,請(qǐng)?jiān)趧澗€處填入合適的代碼。

Privatesubcmdl_click()

Dimb(lto10)asinteger

DimIasinteger,maxasinteger,aasinteger;casinteger

Max=0

Fori=lto10

Randomize

A=int(rnd*99)+1

Listl.additemstr(a)

Nexti

Fori=2to10

C=________________

Ifc>maxthen__________________

NextI

Endsub

四、判斷題

10.需求分析之后、程序設(shè)計(jì)之前,需要對(duì)系統(tǒng)進(jìn)行總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)??傮w設(shè)計(jì)

就是在需求分析的基礎(chǔ)上對(duì)模型細(xì)化、分解任務(wù),明確程序由哪些模塊組成。

()

五、操作題

11.某數(shù)據(jù)解密算法描述如下:

(1)在輸入的數(shù)字字符串中依次提取有效的密文,有效的密文的特點(diǎn):

①是一組連續(xù)的,都小于5的三位數(shù)字串;②每個(gè)位置上的數(shù)字不能被重復(fù)提?。?/p>

(2)對(duì)有效密文進(jìn)行解密的過程:

將密文作為一個(gè)五進(jìn)制數(shù)轉(zhuǎn)換為對(duì)應(yīng)的十進(jìn)制數(shù)值,根據(jù)ASCII字符的十進(jìn)制編碼表,

得出對(duì)應(yīng)的明文字符(提示:空格符所對(duì)應(yīng)的ASCII碼值為十進(jìn)制數(shù)32,小寫字母“z”

所對(duì)應(yīng)的ASCII碼值為十進(jìn)制數(shù)122).

例如,密文242轉(zhuǎn)換成十進(jìn)制數(shù)為72,對(duì)應(yīng)的明文字符為大寫字母“H”。

程序運(yùn)行界面如下圖所示,在文本框Textl中輸入密文,單擊“解密”按鈕,在文本

框Text2中輸出解密后的明文密碼。

(1)若輸入的密文為“841497230235”,則對(duì)應(yīng)的明文是.

(2)實(shí)現(xiàn)上述功能的VB代碼如下,劃線處的語句有錯(cuò),應(yīng)改為

(3)請(qǐng)?jiān)趧澗€處填入合適的代碼.

'以下代碼是將有效密文數(shù)字轉(zhuǎn)換為十進(jìn)制數(shù)的函數(shù)

Functionconv(pAsString)AsInteger

DimkAsInteger,qAsString,iAsInteger

k=O:g=""

Fori=1To3

q=Mid(p,i,1)

Nexti

conv=k

EndFunction

PrivateSubCommandl_Click()

DimstAsString,pAsString,resAsString

DimclAsString,c2AsString,c3AsString

DimiAsInteger,dAsInteger,nAsInteger

st=Textl.Text:n=Len(st)

i=1:res="n

DoWhilei<=n-2'提取有效密文,并進(jìn)行轉(zhuǎn)換

cl=Mid(st,i,1):c2=Mid(st,i+1,1):c3=Mid(st,i+2,1)

IfOrc2<”5"Orc3<“5"Then

d=conv(p)

Ifd>=32Andd<=122Thenres=res+Chr(d)

Else

i=i+1

EndIf

Loop

Text2.Text=res

EndSub

12.如果一個(gè)正整數(shù)從左到右讀與從右到左讀是一樣的,就稱它為回文式數(shù)(簡(jiǎn)稱回

數(shù)),如圖321?!盎?cái)?shù)猜想”的主要思想是,對(duì)任意正整數(shù),若它不是回?cái)?shù),則按下

列算法即可獲得一個(gè)回?cái)?shù):

(1)把該整數(shù)的數(shù)字順序顛倒,求得該數(shù)的逆序數(shù);

(2)將該整數(shù)和其對(duì)應(yīng)的逆序數(shù)相加;

(3)若相加結(jié)果不是回?cái)?shù),則將結(jié)果作為新的整數(shù),返回步驟(1)?

小林按照上述算法,設(shè)計(jì)了驗(yàn)證回?cái)?shù)猜想的VB程序(猜想次數(shù)不超過10次),程序

功能如下:在文本框Textl中輸入一個(gè)正整數(shù),單擊“驗(yàn)證”按鈕(Command1),獲

取文本框Textl中的數(shù),當(dāng)該數(shù)不是回?cái)?shù)時(shí),采用回?cái)?shù)猜想的方法進(jìn)行驗(yàn)證,并在列

表框Listl中輸出每次驗(yàn)證的過程,若驗(yàn)證成功或驗(yàn)證次數(shù)超過10次,則停止驗(yàn)證,

最后在列表框Listl中輸出驗(yàn)證結(jié)果。程序運(yùn)行效果如圖所示。

5回教猜想|o||回~~||w£3w|

正整數(shù):一||…際"…||

199+991=1190

1190+911=2101

2101+1012=3113

始證成功!

實(shí)現(xiàn)上述功能的VB程序如下:

PrivateSubCommandl_Click()

DimtAsString,aAsLong,bAsLong

DimcountAsInteger'count用于存儲(chǔ)回?cái)?shù)猜想的驗(yàn)證次數(shù)

t=Text1.Text

count=1

DoWhileCheck⑴=FalseAndcount<=10

a=Val(t)

c=a+b

Listl.AddltemStr(a)&"+"&Str(b)&"="&Str(c)

count=count+1

t=c

Loop

IfCheck(t)Then

Listl.Addltem”驗(yàn)證成功!”

Else

Listl.Addltem”10次內(nèi)未驗(yàn)證成功!”

EndIf

EndSub

,自定義函數(shù)Turn

FunctionTurn(xAsString)AsLong

DimsAsString,iAsInteger

smi

Fori=Len(x)To1Step-1

s=s&Mid(xz\,1)

Nexti

Turn=_________②________

EndFunction

,自定義函數(shù)Check,檢查x是否為回文數(shù)

FunctionCheck(xAsString)AsBoolean

DimiAsInteger

Check=True

Fori=1ToLen(x)\2Step1

IfMid(x,i,1)<>(3)ThenCheck=False

mid(x,len(x)+l-i,l)

Nexti

EndFunction

(1)程序代碼中,自定義函數(shù)Turn(x)的功能是

(2)請(qǐng)?jiān)趧澗€處填入合適代碼。

13.某高一班主任需要對(duì)剛?cè)雽W(xué)的新生排座位,教室座位按6排8列進(jìn)行擺放(班

級(jí)學(xué)生數(shù)不超過48個(gè)),并且要求每列的學(xué)生按身高從低到高排列。編寫VB程序,

實(shí)現(xiàn)教室排座位功能:?jiǎn)螕簟白x取數(shù)據(jù)”按鈕Commandl,從數(shù)據(jù)庫中讀取該班所有

同學(xué)的班內(nèi)學(xué)號(hào)(兩位數(shù)字)和身高數(shù)據(jù)(3位數(shù)字),并在列表框Listl中按8個(gè)

一行顯示;單擊“排座位”按鈕Command2,對(duì)每列數(shù)據(jù)按身高從小到大排列,并

顯示在列表框List2中。程序運(yùn)行界面如圖所示,請(qǐng)回答下列問題:

0琲座位I。I回I—W

[T

171[01]166(02]670r3J15804]159[05]173(06]150[07]172[08]

LJ

174[09]171[10]51r11T162[12]175(13]173[14]161[15]178[16]

781L9J

176[17]151(18]rT160[20]165[21]173(22]151[23]167[24]

682L7J

164[25]158[26]rT169[28]157[29]158[30]174⑶]174[32]

773L5J

167[33]179(34]704r3T156[36]170[37]179(38]157[39]166[40]

153[41]179(42]LJ150[44]167[45]

排座位

rT

51lJ

153141]151(18]7r11T150[44]157[29]158[30]150[07]166[40]

6LJ

164[25]158(26)r03T156[36]159(05]173(14]151[23]167[24]

68L27J

167[33]166(02]rT158[04]165[21]173[22]157[39]172[08]

70l43J

171[01]171(10)rT160[20]167[45]173(06]161[15]174[32]

77L35J

174[09]179(34]78r19T182[12]170[37]179(38]174[31]178[16]

176[17]179[42]LJ169[28]175[131

(1)要使窗體的標(biāo)題欄文字顯示為“排座位”,則應(yīng)設(shè)置窗體的屬性(單選,

填字母:

A.Text/B.Name/C.Caption)o

(2)程序中加框處代碼有錯(cuò),請(qǐng)改正。

(3)實(shí)現(xiàn)上述功能的VB程序如下,請(qǐng)?jiān)趧澗€處填入合適的代碼。

Constm=6

Constn=8

Dima(lTom*n)AsString1存儲(chǔ)學(xué)號(hào)

Dimb(lTom*n)AsInteger,存儲(chǔ)身高

DimnumAsInteger,班級(jí)總?cè)藬?shù)

PrivateSubCommandl_Click()

'從數(shù)據(jù)庫中讀取該班的學(xué)號(hào)和身高數(shù)據(jù)存入數(shù)組a和數(shù)組b,班級(jí)人數(shù)存入變量

num,代碼略.

'以下代碼為在列表框Listl中輸出數(shù)據(jù)

s:”“:Listl.Addltem”(講臺(tái))“

Fori=1Tonum

=s=s&Str(b(i))&"["&a(i)&"]"

Ifi=mThen

Listl.Addltems:s=',H

EndIf

Nexti

Ifs<>""ThenListl.Addltems

EndSub

PrivateSubCommand2__Click()

DimiAsInteger,jAsInteger;iminAsInteger

DimtlAsString,t2AsInteger,sAsString

List2.Addltem"(講臺(tái))

Fori=1To①

s=""

Forj=(i-1)*n+1To(i-1)*n+n

Ifj<=numThen

____

Ifimin<>jThen

tl=a(imin):a(imin)=a(j):a(j)=tl

t2=b(imin):b(imin)=b(j):b(j)=t2

EndIf

s=s&Str(b(j))&"["&a(j)&"]"

EndIf

Nextj

List2.Additems

NextiEndSub

FunctionfPos(pAsInteger)AsInteger

DimiAsInteger,jAsInteger;kAsInteger

k=p

Fori=?_____________

Ifb(i)<b(k)Thenk=i

Nexti

fPos=kEndFunction

14.某校老師編寫一個(gè)VB程序分析學(xué)生技術(shù)成績(jī),功能如下:在列表框Listl中顯示

原始學(xué)生信息,單擊“分析”按鈕Commandl,統(tǒng)計(jì)各班參加考試人數(shù)、高分(97及

以上)人數(shù)和均分,并按班級(jí)均分從大到小顯示在列表框List2中,程序運(yùn)行界面如圖

所示。

o班級(jí)技術(shù)瞰s分折

原始數(shù)據(jù)分析結(jié)果

瞬班級(jí)參灣人數(shù)高分人數(shù)平均分

942431992.95

915531792.36

97733788.73

102031285.29

971340384.63

88

97

97

82

10

91

85

實(shí)現(xiàn)上述功能的VB程序段如下,請(qǐng)回答下列問題:

(1)學(xué)生成績(jī)存儲(chǔ)在數(shù)據(jù)表中,其字段名是

(2)請(qǐng)?jiān)趧澗€處填入合適的代碼。

DimrecCountAsInteger'存放學(xué)生人數(shù)

DimsClassflTo1000)AsInteger,存放學(xué)生班級(jí)

DimsName(lTo1000)AsString'存放學(xué)生姓名

DimsScore(lTo1000)AsInteger'存放學(xué)生成績(jī)

PrivateSubCommandl_Click()

DimiAsInteger,tAsInteger,ncAsInteger

Dima(lTo20)AsInteger,b(lTo20)AsInteger,分別存放班級(jí)高分人

數(shù)和班級(jí)參加考試人數(shù)

Dimsum(lTo20)AsInteger,ave(lTo20)AsSingle,分別存放班級(jí)總分和班

級(jí)均分

Dimc(lTo20)AsInteger

Fori=1TorecCount

b(t)=b(t)+1

Ifb(t)=1Then

nc=nc+1

EndIf

IfsScore(i)>=97Thena(t)=a(t)+1

sum(t)=sum(t)+sScore(i)

Nexti

Fori=1Tonc

ave(c(i))=lnt(sum(c(i))/b(c(i))*100+0.5)/100

Nexti

Fori=1Tonc-1

Forj=ncToi+1Step-1

If③Then

t=c(j):c(j)=c(j-1):c(j-1)=t

EndIf

Nextj

Nexti

Fori=1Tonc

List2.AddltemStr(c(i))+n"+Str(b(c(i)))+""+Str(a(c(i)))+""+Str(ave(c(i)))

Next?

EndSub

PrivateSubForm_Load()

'鏈接數(shù)據(jù)庫,代碼略

recCount=0

DoWhileNotrs.EOF

recCount=recCount+1

sClass(recCount)=rs.Fields("class")

sName(recCount)=rs.Fields("name")

sScore(recCount)=rs.Fields("score")

rs.MoveNext

Loop

瞪數(shù)據(jù)顯示在列表框Listl中,代碼略

EndSub

15.某地區(qū)中考錄取采用“平行志愿”的投檔錄取方式,該錄取方式的具體規(guī)則為:

①根據(jù)考生的考試總分從高到低依次對(duì)考生的填報(bào)志愿進(jìn)行投檔;

②每位考生可填三個(gè)志愿學(xué)校,輪到該考生投檔時(shí)依次對(duì)其三個(gè)志愿進(jìn)行投檔,若第

一志愿學(xué)校還有剩余招生名額,就被第一志愿學(xué)校錄取,結(jié)束該考生的投檔,否則需

對(duì)其后續(xù)志愿學(xué)校進(jìn)行同樣的投檔操作,若該考生所填的所有志愿學(xué)校都沒有剩余招

生名額,則該考生無法被任何學(xué)校錄取,該考生的投檔結(jié)束。

③當(dāng)所有學(xué)校都已完成計(jì)劃招生數(shù)時(shí),停止投檔,錄取結(jié)束。

編寫VB程序,實(shí)現(xiàn)上述“平行志愿”投檔錄取的功能,單擊“讀取考生數(shù)據(jù)”按鈕

Commandl,則從數(shù)據(jù)庫中獲取所有考生的成績(jī)、志愿信息以及每個(gè)學(xué)校的計(jì)劃招生

數(shù),單擊“投檔錄取”按鈕Command2,開始進(jìn)行投檔錄取,并在列表框Listl中

輸出每個(gè)學(xué)校的計(jì)劃招生數(shù)、實(shí)際招生數(shù)、錄取分?jǐn)?shù)線和最低錄取名次信息,程序運(yùn)

行界面如圖所示。請(qǐng)回答下列問題:

0平行志愿費(fèi)欄錄取

分取

學(xué)校代碼計(jì)劃招生數(shù)買際招生數(shù)s5

16206205461

2680680505N.1292

3480480481752讀取考生數(shù)據(jù)

44804804568.2237

5520520422758

投檔錄取

(1)若A校計(jì)劃招生520人,B校計(jì)劃招生480人,C校計(jì)劃招生540人,某同

學(xué)的考分名次為490名,其三個(gè)志愿學(xué)校依次為B校、A校、C校,且已知同名次的

人數(shù)最多有30人,則該同學(xué)不可能被哪所學(xué)校錄?。簅

(2)實(shí)現(xiàn)上述功能的VB程序如下,請(qǐng)?jiān)趧澗€處填入合適的代碼。

ConstschCnt=5'學(xué)校數(shù)量

ConststuMaxCnt=10000'最多考生人數(shù)

DimzsCnt(lToschCnt)AsInteger'存儲(chǔ)每個(gè)學(xué)校的計(jì)劃招生人數(shù)

DimzsCnt2(lToschCnt)AsInteger'存儲(chǔ)每個(gè)學(xué)校的實(shí)際招生人數(shù)

Dima(lTostuMaxCnt)AsSingle1存儲(chǔ)考生總分成績(jī)

Dimb(lTostuMaxCnt*3)AsInteger'存儲(chǔ)考試志愿,每個(gè)考生有3個(gè)志愿,每個(gè)志愿為

學(xué)校編號(hào)

DimstuCntAsInteger'實(shí)際考生總?cè)藬?shù)

PrivateSubCommandl_Click()

'從數(shù)據(jù)庫中讀取所有考生的總分和志愿信息存儲(chǔ)到數(shù)組a和數(shù)組b中(第1個(gè)考生總

分存儲(chǔ)到a(l),第1個(gè)考生的3個(gè)志愿分別存儲(chǔ)到b(l)、b(2)、b(3)中然后按總分

對(duì)數(shù)組a和數(shù)組b進(jìn)行降序排序,總分相同時(shí),需根據(jù)各科成績(jī)決定排序先后,但名次

相同,考生總?cè)藬?shù)存儲(chǔ)到stuCnt變量中;

,讀取每個(gè)學(xué)校的計(jì)劃招生數(shù),存儲(chǔ)到數(shù)組zsCnt中;

'以上功能代碼略

EndSub

PrivateSubCommand2__Click()

DimschAsInteger'學(xué)校代碼,用廣5中的一個(gè)數(shù)字表示某學(xué)校代碼

DimiAsInteger,jAsInteger,finishedAslnteger,prevScoreAsSingle

DimstuMc(lTostuMaxCnt)AsInteger

DimMinScore(lToschCnt)AsSingle

DimMinMc(lToschCnt)AsInteger

finished=0:i=1

prevScore=-1

DoWhile①

Ifa(i)=prevScoreThen

stuMc(i)=stuMc(i-1)

Else

②____________

EndIf

prevScore=a(i)

Forj=lTo3

{3)

IfzsCnt2(sch)<zsCnt(sch)Then

zsCnt2(sch)=zsCnt2(sch)+1

MinScore(sch)=a(i)

MinMc(sch)=stuMc(i)

ExitFor

EndIf

Nextj

finished=0

Forj=1ToschCnt

IfzsCnt2(j)=zsCnt(j)Then

finished=finished+1

EndIf

Nextj

i=i+l

Loop

'在Listl中輸出每所學(xué)校的代碼、計(jì)劃招生數(shù)、實(shí)際招生數(shù)、錄取分?jǐn)?shù)線、最低錄取

名次,代碼略

EndSub

3.3計(jì)算機(jī)程序與程序設(shè)計(jì)語言(2)

學(xué)校:姓名:班級(jí):考號(hào):

一、選擇題

1.計(jì)算機(jī)能直接識(shí)別和執(zhí)行的的語言是()

A.匯編語言B.機(jī)器語言C.高級(jí)語言D.C語言

【答案】B

【解析】

【詳解】

本題考查的是計(jì)算機(jī)語言。計(jì)算機(jī)語言有:機(jī)器語言、匯編語言、高級(jí)語言。機(jī)器語

言能被計(jì)算機(jī)直接識(shí)別和執(zhí)行。匯編語言、高級(jí)語言需要翻譯成機(jī)器語言才能執(zhí)行。

故選項(xiàng)B正確。

2.現(xiàn)有流程圖如下,關(guān)于流程圖的說法正確的是()

A.運(yùn)行后,輸入語句一定會(huì)被執(zhí)行三次

B.程序運(yùn)行后,輸入語句至少會(huì)被執(zhí)行一次

C.該程序的循環(huán)次數(shù)為3次

D.第一次輸入guess的值為8,則程序運(yùn)行結(jié)果為“對(duì)不起,你失敗了!”

【答案】B

【解析】

【分析】

【詳解】

本題考查流程圖相關(guān)知識(shí)點(diǎn)

輸入語句執(zhí)行次數(shù),取決于cout值,不一定為三次。故選項(xiàng)A說法錯(cuò)誤

程序是要與guess值進(jìn)行比較,故輸入語句至少會(huì)被執(zhí)行一次。故本題選B選項(xiàng)

該程序的循環(huán)次數(shù)受cout制約,有多種可能。故選項(xiàng)C說法錯(cuò)誤

第一次輸入guess的值為8,則程序運(yùn)行結(jié)果為“對(duì)不起,您猜錯(cuò)了!"。故選項(xiàng)D

說法錯(cuò)誤

3.計(jì)算機(jī)能夠直接識(shí)別和執(zhí)行的程序設(shè)計(jì)語言是()o

A.低級(jí)語言B.匯編語言C.機(jī)器語言D.高級(jí)語言

【答案】C

【解析】

【詳解】

本題考查的是程序語言。程序設(shè)計(jì)語言可以分為:機(jī)器語言、匯編語言(低級(jí)語言)、

高級(jí)語言。機(jī)器語言是由二進(jìn)制0、1代碼指令構(gòu)成,能夠被計(jì)算機(jī)直接識(shí)別和執(zhí)行。

匯編語言指令是機(jī)器指令的符號(hào)化,與機(jī)器指令存在著直接的對(duì)應(yīng)關(guān)系。高級(jí)語言是

面向用戶的、基本上獨(dú)立于計(jì)算機(jī)種類和結(jié)構(gòu)的語言。故選項(xiàng)C正確。

4.x和n都是正整數(shù)且x<=n,下列選項(xiàng)中,與語句“x=xModn+l”功能相同的是()

A.x=(x+l)Modn

B.x=x+l

Ifx=nThenx=l

C.x=x+l

Ifx=n+lThenx=l

D.x=x+l

Ifx=n+lThenx=0

【答案】c

【解析】

【詳解】

本題考查賦值語句,VB運(yùn)算。題干x=xModn+1,有兩種情況。(1)x<n,則x=x+l。

(2)x=n,則結(jié)合選項(xiàng)判斷,選項(xiàng)A,當(dāng)*巾-1時(shí)候,A選項(xiàng)的結(jié)果是x=0,故

有誤。選項(xiàng)B,首先進(jìn)行x=x+l,故接下來的判斷實(shí)際上是x+1和n的判斷,若x+1=n,

則x=l,有誤。選項(xiàng)C正確。選項(xiàng)D,當(dāng)x和n相等時(shí),x應(yīng)該是1,故選項(xiàng)D有誤。

本題選項(xiàng)C為正確選項(xiàng)。

5.下面程序執(zhí)行結(jié)束,文本框Textl中顯示()

PrivateSubForm_Click()

a="123":b="456"

c=Val(a)+Val(b)

Textl.Text=str(c\100)

EndSub

A.123B.3C.5D.579

【答案】c

【解析】

【分析】

【詳解】

本題主要考查VB程序設(shè)計(jì)的相關(guān)知識(shí)。a="123"是將字符串型數(shù)據(jù)"123”賦值給a,

b="456"將字符串型數(shù)據(jù)"456”賦值給b,c=val(a)+val(b)是分別把a(bǔ)和b的值轉(zhuǎn)換為數(shù)

值型,然后相加,此時(shí)c=579,Textl.Text=str(c\100)是將c整除100后,轉(zhuǎn)換為字符類

型賦值給Textl.Text,因此,文本框Textl中顯示5,故C選項(xiàng)正確。

二、簡(jiǎn)答題

6.高級(jí)語言的編譯過程和解釋過程各有什么優(yōu)勢(shì)和不足。

【答案】(1)編譯型語言優(yōu)點(diǎn)是程序執(zhí)行速度快,程序執(zhí)行效率高,同等條件下對(duì)系

統(tǒng)要求較低。不足之處是跨平臺(tái)性差些。

(2)解釋型語言優(yōu)點(diǎn)是不同系統(tǒng)平臺(tái)間的兼容性高。不足之處是程序執(zhí)行效率比較

低。

【解析】

【詳解】

本題考查的是高級(jí)語言的編譯與解釋的區(qū)別。(1)編譯型語言優(yōu)點(diǎn)是程序執(zhí)行速度快,

程序執(zhí)行效率高,同等條件下對(duì)系統(tǒng)要求較低。不足之處是跨平臺(tái)性差些。(2)解釋

型語言優(yōu)點(diǎn)是不同系統(tǒng)平臺(tái)間的兼容性高。不足之處是程序執(zhí)行效率比較低。

7.程序設(shè)計(jì)語言有哪些,分別具備什么特點(diǎn)。

【答案】(1)機(jī)器語言:是由“0”和“1”這樣的二進(jìn)制代碼指令組來表示。每一條

機(jī)器指令包含兩個(gè)主要部分:操作(指出計(jì)算機(jī)應(yīng)做什么)和被操作的對(duì)象(指出處

理的數(shù)據(jù)或它的地址),計(jì)算機(jī)能直接識(shí)別和執(zhí)行。

(2)匯編語言:使用了一種類似英文縮略詞且?guī)в兄浶苑?hào)的語言,來替代一個(gè)

特定的指令的二進(jìn)制串,每條指令都和一條機(jī)器指令相對(duì)應(yīng)。需要一個(gè)專門的語言翻

譯器,負(fù)責(zé)將程序中的每條語句都翻譯成用二進(jìn)制數(shù)表示的機(jī)器語言。

(3)高級(jí)語言:接近于數(shù)學(xué)語言或人的自然語言,并且不再過度地倚賴某種特定的

機(jī)器或環(huán)境,必須經(jīng)過翻譯器將其翻譯成機(jī)器語言。

【解析】

【分析】

【詳解】

本題考查程序設(shè)計(jì)語言及其特點(diǎn)相關(guān)知識(shí)點(diǎn)

(1)機(jī)器語言:是由“0”和“1”這樣的二進(jìn)制代碼指令組來表示。每一條機(jī)器指

令包含兩個(gè)主要部分:操作(指出計(jì)算機(jī)應(yīng)做什么)和被操作的對(duì)象(指出處理的數(shù)

據(jù)或它的地址),計(jì)算機(jī)能直接識(shí)別和執(zhí)行。

(2)匯編語言:使用了一種類似英文縮略詞且?guī)в兄浶苑?hào)的語言,來替代一個(gè)

特定的指令的二進(jìn)制串,每條指令都和一條機(jī)器指令相對(duì)應(yīng)。需要一個(gè)專門的語言翻

譯器,負(fù)責(zé)將程序中的每條語句都翻譯成用二進(jìn)制數(shù)表示的機(jī)器語言。

(3)高級(jí)語言:接近于數(shù)學(xué)語言或人的自然語言,并且不再過度地倚賴某種特定的

機(jī)器或環(huán)境,必須經(jīng)過翻譯器將其翻譯成機(jī)器語言。

三、填空題

8.以下流程圖描述的算法,執(zhí)行結(jié)果是o

【答案】@@@@########$$$$

【解析】

【分析】

【詳解】

本題考查的知識(shí)點(diǎn)是程序的識(shí)讀。

初始值t=0,n=l,執(zhí)行輸出“@@@@”語句,再執(zhí)行判斷n>2表達(dá)式,不符合該條

件表達(dá)式,故執(zhí)行輸出"####",再執(zhí)行n=n+l語句,即n=2,再執(zhí)行判斷t=l表達(dá)

式,不符合該條件表達(dá)式,故執(zhí)行判斷n>2表達(dá)式,不符合該條件表達(dá)式,故執(zhí)行輸

出“####",再執(zhí)行n=n+l語句,即n=3,再執(zhí)行判斷t=l表達(dá)式,不符合該條件表

達(dá)式,故執(zhí)行判斷n>2表達(dá)式,符合該條件表達(dá)式,故執(zhí)行輸出“$$$$”,再執(zhí)行

t=l語句,再執(zhí)行加計(jì)1語句,即n=4;再執(zhí)行判斷t=l表達(dá)式,符合該條件表達(dá)式,

故程序結(jié)束。

所以流程圖的執(zhí)行結(jié)果為:@@@@########$$$$。

故答案為@@@@########$$$$?

9.編寫VB程序,實(shí)現(xiàn)如下功能:?jiǎn)螕簟坝?jì)算”按鈕,在列表框Listl中產(chǎn)生10個(gè)[1,

99]隨機(jī)數(shù),文本框Textl顯示相鄰兩個(gè)數(shù)字之間相差最大的差值。運(yùn)行界面如圖所示。

(1)窗體上,“計(jì)算”按鈕的對(duì)象名是O

(2)實(shí)現(xiàn)上述功能的VB程序如下,請(qǐng)?jiān)趧澗€處填入合適的代碼。

Privatesubcmdl_click()

Dimb(lto10)asinteger

DimIasinteger;maxasinteger,aasintegeocasinteger

Max=0

Fori=lto10

Randomize

A=int(rnd*99)+1

Listl.additemstr(a)

Nexti

Fori=2to10

C=________________

Ifc>maxthen__________________

NextI

Endsub

【答案】Cmdlb(i)=aabs(b(i-1)-b(i))max=ctext2.text=str

(max)

【解析】

【詳解】

(1)Cmdl_ClickCmdl表示對(duì)象名稱,Click表示它是一個(gè)點(diǎn)擊事件,"計(jì)算"按鈕的

對(duì)象名是Cmdl;(2)①該處獲取的a是一個(gè)隨機(jī)數(shù),需要將a存儲(chǔ)在b(i)中,所

以該處為:b(i)=a;②次數(shù)將所有的隨機(jī)數(shù)逐個(gè)比較,c表示臨時(shí)生成的最大差

值,所以該處為:abs(b(i-1)-b(i));③根據(jù)條件lfc>max,可以看出如果差

值比最大差值大,改變最大差值max的值為c,所以該處為max=c,④結(jié)果在文本框

中輸出,所有答案為text2.text=str(max),此題同等類似答案都可,不唯一。

四、判斷題

10.需求分析之后、程序設(shè)計(jì)之前,需要對(duì)系統(tǒng)進(jìn)行總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)??傮w設(shè)計(jì)

就是在需求分析的基礎(chǔ)上對(duì)模型細(xì)化、分解任務(wù),明確程序由哪些模塊組成。

()

【答案】對(duì)

【解析】

【詳解】

本題考查的是程序設(shè)計(jì)。需求分析之后、程序設(shè)計(jì)之前,需要對(duì)系統(tǒng)進(jìn)行總體設(shè)計(jì)和

詳細(xì)設(shè)計(jì)??傮w設(shè)計(jì)就是在需求分析的基礎(chǔ)上對(duì)模型細(xì)化、分解任務(wù),明確程序由哪

些模塊組成?題干說法正確。

五、操作題

11.某數(shù)據(jù)解密算法描述如下:

(1)在輸入的數(shù)字字符串中依次提取有效的密文,有效的密文的特點(diǎn):

①是一組連續(xù)的,都小于5的三位數(shù)字串;②每個(gè)位置上的數(shù)字不能被重復(fù)提??;

(2)對(duì)有效密文進(jìn)行解密的過程:

將密文作為一個(gè)五進(jìn)制數(shù)轉(zhuǎn)換為對(duì)應(yīng)的十進(jìn)制數(shù)值,根據(jù)ASCII字符的十進(jìn)制編碼表,

得出對(duì)應(yīng)的明文字符(提示:空格符所對(duì)應(yīng)的ASCII碼值為十進(jìn)制數(shù)32,小寫字母“z”

所對(duì)應(yīng)的ASCII碼值為十進(jìn)制數(shù)122).

例如,密文242轉(zhuǎn)換成十進(jìn)制數(shù)為72,對(duì)應(yīng)的明文字符為大寫字母“H”。

程序運(yùn)行界面如下圖所示,在文本框Textl中輸入密文,單擊“解密”按鈕,在文本

框Text2中輸出解密后的明文密碼。

(1)若輸入的密文為“841497230235”,則對(duì)應(yīng)的明文是。

(2)實(shí)現(xiàn)上述功能的VB代碼如下,劃線處的語句有錯(cuò),應(yīng)改為

(3)請(qǐng)?jiān)趧澗€處填入合適的代碼.

'以下代碼是將有效密文數(shù)字轉(zhuǎn)換為十進(jìn)制數(shù)的函數(shù)

Functionconv(pAsString)AsInteger

DimkAsInteger,qAsString,iAsInteger

k=O:g=""

Fori=1To3

q=Mid(p,i,1)

Nexti

conv=k

EndFunction

PrivateSubCommandl_Click()

DimstAsString,pAsString,resAsString

DimclAsString,c2AsString,c3AsString

DimiAsInteger,dAsInteger,nAsInteger

st=Textl.Text:n=Len(st)

i=1:res=""

DoWhilei<-n-2'提取有效密文,并進(jìn)行轉(zhuǎn)換

cl=Mid(st,i,1):c2=Mid(st,i+1,1):c3=Mid(stzi+2,1)

Ifcl<“5”O(jiān)rc2<”5“Orc3<“5"Then

d=conv(p)

Ifd>=32Andd<=122Thenres=res+Chr(d)

日se

i=i+l

EndIf

Loop

Text2.Text=res

EndSub

【答案】mAcl<"5"Andc2<"5"Andc3<"5"或其它等價(jià)答案①k=k*5+Val(q)或

k=k+Val(q)*5A(3-i)或其它等價(jià)答案②p=Mid(st,i,3)?i=i+3

【解析】

【詳解】

本題考查VB綜合能力。(1)若輸入的密文為“841497230235”,可知,414轉(zhuǎn)為m,

230轉(zhuǎn)為A。(2)改錯(cuò)語句條件是同時(shí)小于5,故改為cl<“5"Andc2<“5"And

c3<“5”(3)代碼第一空,將有效密文數(shù)字轉(zhuǎn)換為十進(jìn)制數(shù)的函數(shù),采用位權(quán)相加,

故填入k=k*5+Val(q)。(4)代碼第二空,將連續(xù)的三個(gè)字符取出,填入p=Mid(st,i,

3)。(5)第三空,繼續(xù)往下判斷,故填入i=i+3。

12.如果一個(gè)正整數(shù)從左到右讀與從右到左讀是一樣的,就稱它為回文式數(shù)(簡(jiǎn)稱回

數(shù)),如圖321。“回?cái)?shù)猜想”的主要思想是,對(duì)任意正整數(shù),若它不是回?cái)?shù),則按下

列算法即可獲得一個(gè)回?cái)?shù):

(1)把該整數(shù)的數(shù)字順序顛倒,求得該數(shù)的逆序數(shù);

(2)將該整數(shù)和其對(duì)應(yīng)的逆序數(shù)相加;

(3)若相加結(jié)果不是回?cái)?shù),則將結(jié)果作為新的整數(shù),返回步驟(1)?

小林按照上述算法,設(shè)計(jì)了驗(yàn)證回?cái)?shù)猜想的VB程序(猜想次數(shù)不超過10次),程序

功能如下:在文本框Textl中輸入一個(gè)正整數(shù),單擊"驗(yàn)證"按鈕(Commandl),獲

取文本框Textl中的數(shù),當(dāng)該數(shù)不是回?cái)?shù)時(shí),采用回?cái)?shù)猜想的方法進(jìn)行驗(yàn)證,并在列

表框Listl中輸出每次驗(yàn)證的過程,若驗(yàn)證成功或驗(yàn)證次數(shù)超過10次,則停止驗(yàn)證,

最后在列表框Listl中輸出驗(yàn)證結(jié)果。程序運(yùn)行效果如圖所示。

5回教猜想|o||回~~||w£3w|

正整數(shù):一||…際"…||

199+991=1190

1190+911=2101

2101+1012=3113

始證成功!

實(shí)現(xiàn)上述功能的VB程序如下:

PrivateSubCommandl_Click()

DimtAsString,aAsLong,bAsLong

DimcountAsInteger'count用于存儲(chǔ)回?cái)?shù)猜想的驗(yàn)證次數(shù)

t=Text1.Text

count=1

DoWhileCheck⑴=FalseAndcount<=10

a=Val(t)

c=a+b

Listl.AddltemStr(a)&"+"&Str(b)&"="&Str(c)

count=count+1

t=c

Loop

IfCheck(t)Then

Listl.Addltem”驗(yàn)證成功!”

Else

Listl.Addltem”10次內(nèi)未驗(yàn)證成功!”

EndIf

EndSub

,自定義函數(shù)Turn

FunctionTurn(xAsString)AsLong

DimsAsString,iAsInteger

smi

Fori=Len(x)To1Step-1

s=s&Mid(xzi,1)

Nexti

Turn=_________?________

EndFunction

,自定義函數(shù)Check,檢查x是否為回文數(shù)

FunctionCheck(xAsString)AsBoolean

DimiAsInteger

Check=True

Fori=1ToLen(x)\2Step1

IfMid(x,i,1)<>(3)ThenCheck=False

mid(x,len(x)+l-i,l)

Nexti

EndFunction

(1)程序代碼中,自定義函數(shù)Turn(x)的功能是

(2)請(qǐng)?jiān)趧澗€處填入合適代碼。

【答案】(1)求x的逆序數(shù)

(2)?b=turn(t)②Val(s)(3)mid(x,len(x)+l-i,l)

【解析】

【分析】

【詳解】

本題主要考查VB程序的執(zhí)行與調(diào)試。(1)函數(shù)Turn(x)通過for循環(huán)從后開始截取

數(shù)實(shí)現(xiàn)求x的逆序數(shù)(2)①將文本框中的原始數(shù)賦值給a,將t的逆序數(shù)賦值給b,

然后將兩數(shù)相加,故此處填6=川171(。②最后將逆序數(shù)s的值轉(zhuǎn)為整型賦值給Vai(s)

③判斷是不是回文數(shù),截取兩端的數(shù)進(jìn)行比較是不是相等,故此處填

mid(x,len(x)+l-i,1)。

13.某高一班主任需要對(duì)剛?cè)雽W(xué)的新生排座位,教室座位按6排8列進(jìn)行擺放(班

級(jí)學(xué)生數(shù)不超過48個(gè)),并且要求每列的學(xué)生按身高從低到高排列。編寫VB程序,

實(shí)現(xiàn)教室排座位功能:?jiǎn)螕簟白x取數(shù)據(jù)”按鈕Commandl,從數(shù)據(jù)庫中讀取該班所有

同學(xué)的班內(nèi)學(xué)號(hào)(兩位數(shù)字)和身高數(shù)據(jù)(3位數(shù)字),并在列表框Listl中按8個(gè)

一行顯示;單擊“排座位”按鈕Command2,對(duì)每列數(shù)據(jù)按身高從小到大排列,并

顯示在列表框List2中。程序運(yùn)行界面如圖所示,請(qǐng)回答下列問題:

n排座位回1W

6#自】

171[01]166(02]167[03]158[04]159[05]173[06]150[07]172[08]

174[09]171[10]151[U]162[12]175[13]173[14]161[15]178[16]

176[17]151(18]178[19]160[20]185[21]!73[22]151[23]167[24]

164[25]158(26]168[27]169[28]157[29]158[30]174[31]174[32]

167[33]179(34]177[35]156[36]170[37]179(38]157[39]166[40]

153(41]179(42]170[43

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論