中文字幕精品无码一区二区,成全视频在线播放观看方法,大伊人青草狠狠久久,亚洲一区影音先锋色资源

3.3計算機程序與程序設計語言(2)練習(原卷+解析卷)

資源下載
  1. 二一教育資源

3.3計算機程序與程序設計語言(2)練習(原卷+解析卷)

資源簡介

中小學教育資源及組卷應用平臺
3.3計算機程序與程序設計語言(2)-粵教版(2019)高中信息技術必修一練習
學校:___________姓名:___________班級:___________考號:___________
一、選擇題
1.計算機能直接識別和執行的的語言是(

A.匯編語言
B.機器語言
C.高級語言
D.C語言
【答案】B
【解析】
【詳解】
本題考查的是計算機語言。計算機語言有:機器語言、匯編語言、高級語言。機器語言能被計算機直接識別和執行。匯編語言、高級語言需要翻譯成機器語言才能執行。故選項B正確。【版權所有:21教育】
2.現有流程圖如下,關于流程圖的說法正確的是(

A.運行后,輸入語句一定會被執行三次
B.程序運行后,輸入語句至少會被執行一次
C.該程序的循環次數為3次
D.第一次輸入guess的值為8,則程序運行結果為“對不起,你失敗了!”
【答案】B
【解析】
【分析】
【詳解】
本題考查流程圖相關知識點
輸入語句執行次數,取決于cout值,不一定為三次。故選項A說法錯誤
程序是要與guess值進行比較,故輸入語句至少會被執行一次。故本題選B選項
該程序的循環次數受cout制約,有多種可能。故選項C說法錯誤
第一次輸入guess的值為8,則程序運行結果為“對不起,您猜錯了!”。故選項D說法錯誤
3.計算機能夠直接識別和執行的程序設計語言是(
)。
A.低級語言
B.匯編語言
C.機器語言
D.高級語言
【答案】C
【解析】
【詳解】
本題考查的是程序語言。程序設計語言可以分為:機器語言、匯編語言(低級語言)、高級語言。機器語言是由二進制
0、1
代碼指令構成,能夠被計算機直接識別和執行。匯編語言指令是機器指令的符號化,與機器指令存在著直接的對應關系。高級語言是面向用戶的、基本上獨立于計算機種類和結構的語言。故選項C正確。
4.x和n都是正整數且x<=n,下列選項中,與語句“x=x
Mod
n
+1
”功能相同的是(
)21世紀教育網版權所有
A.x=(x+1)
Mod
n
B.x=x+1
If
x=n
Then
x=1
C.x=x+1
If
x=n+1
Then
x=1
D.x=x+1
If
x=n+1
Then
x=0
【答案】C
【解析】
【詳解】
本題考查賦值語句,VB運算。題干x=x
Mod
n
+1,有兩種情況。(1)x5.下面程序執行結束,文本框
Text1
中顯示(

Private
Sub
Form_Click()
a
=
"123":
b
=
"456"
c
=
Val(a)
+
Val(b)
Text1.Text=str(c\100)
End
Sub
A.123
B.3
C.5
D.579
【答案】C
【解析】
【分析】
【詳解】
本題主要考查VB程序設計的相關知識。a="123"是將字符串型數據”123”賦值給a,b="456"
將字符串型數據”456”賦值給b,c=val(a)+val(b)是分別把a和b的值轉換為數值型,然后相加,此時c=579,Text1.Text=str(c\100)是將c整除100后,轉換為字符類型賦值給Text1.Text,因此,文本框
Text1
中顯示5,故C選項正確。
二、簡答題
6.高級語言的編譯過程和解釋過程各有什么優勢和不足。
【答案】(1)編譯型語言優點是程序執行速度快,程序執行效率高,同等條件下對系統要求較低。不足之處是跨平臺性差些。
(2)解釋型語言優點是不同系統平臺間的兼容性高。不足之處是程序執行效率比較低。
【解析】
【詳解】
本題考查的是高級語言的編譯與解釋的區別。(1)編譯型語言優點是程序執行速度快,程序執行效率高,同等條件下對系統要求較低。不足之處是跨平臺性差些。(2)解釋型語言優點是不同系統平臺間的兼容性高。不足之處是程序執行效率比較低。
7.程序設計語言有哪些,分別具備什么特點。
【答案】(1)機器語言:是由“0”和“1”這樣的二進制代碼指令組來表示。每一條機器指令包含兩個主要部分:操作(指出計算機應做什么)和被操作的對象(指出處理的數據或它的地址),計算機能直接識別和執行。21cnjy.com
(2)匯編語言:使用了一種類似英文縮略詞且帶有助記性符號的語言,來替代一個特定的指令的二進制串,每條指令都和一條機器指令相對應。需要一個專門的語言翻譯器,負責將程序中的每條語句都翻譯成用二進制數表示的機器語言。
(3)高級語言:接近于數學語言或人的自然語言,并且不再過度地倚賴某種特定的機器或環境,必須經過翻譯器將其翻譯成機器語言。www-2-1-cnjy-com
【解析】
【分析】
【詳解】
本題考查程序設計語言及其特點相關知識點
(1)機器語言:是由“0”和“1”這樣的二進制代碼指令組來表示。每一條機器指令包含兩個主要部分:操作(指出計算機應做什么)和被操作的對象(指出處理的數據或它的地址),計算機能直接識別和執行。2·1·c·n·j·y
(2)匯編語言:使用了一種類似英文縮略詞且帶有助記性符號的語言,來替代一個特定的指令的二進制串,每條指令都和一條機器指令相對應。需要一個專門的語言翻譯器,負責將程序中的每條語句都翻譯成用二進制數表示的機器語言。
(3)高級語言:接近于數學語言或人的自然語言,并且不再過度地倚賴某種特定的機器或環境,必須經過翻譯器將其翻譯成機器語言。
三、填空題
8.以下流程圖描述的算法,執行結果是_______。
【答案】@@@@########
【解析】
【分析】
【詳解】
本題考查的知識點是程序的識讀。
初始值t=0,n=1,執行輸出“@@@@”語句,再執行判斷n>2表達式,不符合該條件表達式,故執行輸出“####”,再執行n=n+1語句,即n=2,再執行判斷t=1表達式,不符合該條件表達式,故執行判斷n>2表達式,不符合該條件表達式,故執行輸出“####”,再執行n=n+1語句,即n=3,再執行判斷t=1表達式,不符合該條件表達式,故執行判斷n>2表達式,符合該條件表達式,故執行輸出“”,
再執行t=1語句,再執行n=n+1語句,即n=4;再執行判斷t=1表達式,符合該條件表達式,故程序結束。21
cnjy
com
所以流程圖的執行結果為:@@@@########。
故答案為@@@@########。
9.編寫VB程序,實現如下功能:單擊“計算”按鈕,在列表框List1中產生10個[1,99]隨機數,文本框Text1顯示相鄰兩個數字之間相差最大的差值。運行界面如圖所示。
(1)窗體上,“計算”按鈕的對象名是_____。
(2)實現上述功能的VB程序如下,請在劃線處填入合適的代碼。
Private
sub
cmd1_click(
)
Dim
b(1
to
10)
as
integer
Dim
I
as
integer,max
as
integer
,a
as
integer,
c
as
integer
Max=0
For
i=1
to
10
Randomize
A=int(rnd
99)+1
_______________________
List1.additem
str(a)
Next
i
For
i=2
to
10
C=________________
If
c>max
then
__________________
Next
I
____________________________
End
sub
【答案】Cmd1
b(i)=a
abs(b(i﹣1)﹣b(i))
max=c
text2.text=str(max)
【解析】
【詳解】
(1)Cmd1_Click
Cmd1表示對象名稱,Click表示它是一個點擊事件,“計算”按鈕的對象名是Cmd1;(2)①該處獲取的a是一個隨機數,需要將a存儲在b(i)中,所以該處為:b(i)=a;
②次數將所有的隨機數逐個比較,c表示臨時生成的最大差值,所以該處為:abs(b(i﹣1)﹣b(i));③
根據條件If
c>max
,可以看出如果差值比最大差值大,改變最大差值max的值為c,所以該處為max=c,④結果在文本框中輸出,所有答案為text2.text=str(max),此題同等類似答案都可,不唯一。
四、判斷題
10.需求分析之后、程序設計之前,需要對系統進行總體設計和詳細設計。總體設計就是在需求分析的基礎上對模型細化、分解任務,明確程序由哪些模塊組成。
(____)
【答案】對
【解析】
【詳解】
本題考查的是程序設計。需求分析之后、程序設計之前,需要對系統進行總體設計和詳細設計。總體設計就是在需求分析的基礎上對模型細化、分解任務,明確程序由哪些模塊組成。題干說法正確。
五、操作題
11.某數據解密算法描述如下:
(1)在輸入的數字字符串中依次提取有效的密文,有效的密文的特點:
①是一組連續的,都小于5的三位數字串;②每個位置上的數字不能被重復提取;
(2)對有效密文進行解密的過程:
將密文作為一個五進制數轉換為對應的十進制數值,根據ASCII字符的十進制編碼表,得出對應的明文字符(提示:空格符所對應的ASCII碼值為十進制數32,小寫字母“z”所對應的ASCII碼值為十進制數122).
例如,密文242轉換成十進制數為72,對應的明文字符為大寫字母“H”。
程序運行界面如下圖所示,在文本框Text1中輸入密文,單擊“解密”按鈕,在文本框Text2中輸出解密后的明文密碼。
(1)若輸入的密文為“841497230235”,則對應的明文是__________。
(2)實現上述功能的VB代碼如下,劃線處的語句有錯,應改為__________________。
(3)請在劃線處填入合適的代碼.
'以下代碼是將有效密文數字轉換為十進制數的函數
Function
conv(p
As
String)
As
Integer
Dim
k
As
Integer,
q
As
String,
i
As
Integer
k
=
0:
g
=
""
For
i
=
1
To
3
q
=
Mid(p,
i,
1)
________________
Next
i
conv
=
k
End
Function
Private
Sub
Command1_Click()
Dim
st
As
String,
p
As
String,
res
As
String
Dim
c1
As
String,
c2
As
String,
c3
As
String
Dim
i
As
Integer,
d
As
Integer,
n
As
Integer
st
=
Text1.Text:
n
=
Len(st)
i
=
1:
res
=
""
Do
While
i
<=
n

2
'提取有效密文,并進行轉換
c1
=
Mid(st,
i,
1):
c2
=
Mid(st,
i
+
1,
1):
c3
=
Mid(st,
i
+
2,
1)【來源:21cnj
y.co
m】
If
c1<"5"
Or
c2
<"5"
Or
c3
<"5"
Then
______________
d=conv(p)
If
d
>=
32
And
d
<=
122
Then
res
=
res
+
Chr(d)
______________
Else
i
=
i
+
1
End
If
Loop
Text2.Text
=
res
End
Sub
【答案】mA
c1<"5"
And
c2<"5"
And
c3<"5"
或其它等價答案

k=k
5+Val(q)

k=k+Val(q)
5^(3-i)
或其它等價答案
②p=Mid(st,i,3)
③i=i+3
【解析】
【詳解】
本題考查VB綜合能力。(1)若輸入的密文為“841497230235”,可知,414轉為m,230轉為A。(2)改錯語句條件是同時小于5,故改為c1<“5”And
c2<“5”
And
c3<“5”(3)代碼第一空,將有效密文數字轉換為十進制數的函數,采用位權相加,故填入k=k
5+Val(q)。(4)代碼第二空,將連續的三個字符取出,填入p=Mid(st,i,3)。(5)第三空,繼續往下判斷,故填入i=i+3。21教育名師原創作品
12.如果一個正整數從左到右讀與從右到左讀是一樣的,就稱它為回文式數(簡稱回數),如圖321。“回數猜想”的主要思想是,對任意正整數,若它不是回數,則按下列算法即可獲得一個回數:
(1)把該整數的數字順序顛倒,求得該數的逆序數;
(2)將該整數和其對應的逆序數相加;
(3)若相加結果不是回數,則將結果作為新的整數,返回步驟(1)。
小林按照上述算法,設計了驗證回數猜想的VB程序(猜想次數不超過10次),程序功能如下:在文本框Text1中輸入一個正整數,單擊“驗證”按鈕(Command1),獲取文本框Text1中的數,當該數不是回數時,采用回數猜想的方法進行驗證,并在列表框List1中輸出每次驗證的過程,若驗證成功或驗證次數超過10次,則停止驗證,最后在列表框List1中輸出驗證結果。程序運行效果如圖所示。
實現上述功能的VB程序如下:
Private
Sub
Command1_Click()
Dim
t
As
String,
a
As
Long,
b
As
Long
Dim
count
As
Integer
'
count用于存儲回數猜想的驗證次數
t
=
Text1.Text
count
=
1
Do
While
Check(t)
=
False
And
count
<=
10
a
=
Val(t)

c
=
a
+
b
List1.AddItem
Str(a)
&
"
+"
&
Str(b)
&
"
="
&
Str(c)
count
=
count
+
1
t
=
c
Loop
If
Check(t)
Then
List1.AddItem
"驗證成功!"
Else
List1.AddItem
"10次內未驗證成功!"
End
If
End
Sub
'
自定義函數Turn
Function
Turn(x
As
String)
As
Long
Dim
s
As
String,
i
As
Integer
s
=
""
For
i
=
Len(x)
To
1
Step
-1
s
=
s
&
Mid(x,
i,
1)
Next
i
Turn
=

End
Function
'
自定義函數Check,檢查x是否為回文數
Function
Check(x
As
String)
As
Boolean
Dim
i
As
Integer
Check
=
True
For
i
=
1
To
Len(x)
\
2
Step
1
If
Mid(x,
i,
1)
<>

Then
Check
=
False
mid(x,len(x)+1-i,1)
Next
i
End
Function
(1)程序代碼中,自定義函數Turn(x)的功能是
(2)請在劃線處填入合適代碼。
【答案】(1)
求x的逆序數
(2)①b=turn(t)
②Val(s)

mid(x,len(x)+1-i,1)
【解析】
【分析】
【詳解】
本題主要考查VB程序的執行與調試。(1)函數Turn(x)通過for循環從后開始截取數實現求x的逆序數(2)①將文本框中的原始數賦值給a,將t的逆序數賦值給b,然后將兩數相加,故此處填b=turn(t)
②最后將逆序數s的值轉為整型賦值給Val(s)
③判斷是不是回文數,截取兩端的數進行比較是不是相等,故此處填
mid(x,len(x)+1-i,1)。
13.某高一班主任需要對剛入學的新生排座位,教室座位按
6

8
列進行擺放(班級學生數不超過48個),并且要求每列的學生按身高從低到高排列。編寫
VB
程序,實現教室排座位功能:單擊“讀取數據”按鈕
Command1,從數據庫中讀取該班所有同學的班內學號(兩位數字)和身高數據(3
位數字),并在列表框
List1
中按
8
個一行顯示;單擊“排座位”按鈕
Command2,對每列數據按身高從
小到大排列,并顯示在列表框
List2
中。程序運行界面如圖所示,請回答下列問題:
(1)要使窗體的標題欄文字顯示為“排座位”,則應設置窗體的______屬性(單選,填字母:A.Text
/
B.Name
/C.Caption)。
(2)程序中加框處代碼有錯,請改正。
________
(3)實現上述功能的
VB
程序如下,請在劃線處填入合適的代碼。
Const
m
=
6
Const
n
=
8
Dim
a(1
To
m
n)
As
String
'存儲學號
Dim
b(1
To
m
n)
As
Integer
'存儲身高
Dim
num
As
Integer
'班級總人數
Private
Sub
Command1_Click()
'從數據庫中讀取該班的學號和身高數據存入數組
a
和數組b,班級人數存入變量
num,代碼略.
'以下代碼為在列表框
List1
中輸出數據
s
=
""
:
List1.AddItem
"




"
For
i
=
1
To
num
=s
=
s
&
Str(b(i))
&
"["
&
a(i)
&
"]
"
If
i
=
m
Then
List1.AddItem
s
:s
=
""
End
If
Next
i
If
s
<>
""
Then
List1.AddItem
s
End
Sub
Private
Sub
Command2_Click()
Dim
i
As
Integer,
j
As
Integer,
imin
As
Integerwww.21-cn-jy.com
Dim
t1
As
String,
t2
As
Integer,
s
As
String
List2.AddItem
"




"
For
i
=
1
To①_______
s
=
""
For
j
=
(i
-
1)
n
+
1
To
(i
-
1)
n
+
n
If
j
<=
num
Then
②__________
If
imin
<>
j
Then
t1
=
a(imin):
a(imin)
=
a(j):
a(j)
=
t1
t2
=
b(imin):
b(imin)
=
b(j):
b(j)
=
t2
End
If
s
=
s
&
Str(b(j))
&
"["
&
a(j)
&
"]
"
End
If
Next
j
List2.AddItem
s
Next
i
End
Sub
Function
fPos(p
As
Integer)
As
Integer
Dim
i
As
Integer,
j
As
Integer,
k
As
Integer
21教育網
k
=
p
For
i
=③_____________
If
b(i)
<
b(k)
Then
k
=
i
Next
i
fPos
=
k
End
Function
【答案】C
I
Mod
n=0或i/n=i\n或i/n=int(i/n)(注此處n可以用8替換.)其他等價答案
①(num-1)\n+1或其他等價答案
imin=fPos(j)
p+n
To
num
Step
n或其他等價答案
2-1-c-n-j-y
【解析】
【分析】
【詳解】
本題主要考查VB程序的執行與調試。(1)要使窗體的標題欄文字顯示為“排座位”,則應設置窗體的Caption屬性,故本題選C選項。(2)輸出數據為每8個數據一行,此處條件應為I是8(或N)的整數倍。所以此處要寫的表達式意義為i能被n整除,故應改為iModn=0,或i/n=i\n或i/n=int(i/n),這里n可以用8代替。故此處填i
Mod
n=0或i/n=i\n或i/n=int(i/n)。(3)①根據班級實際人數num計算共幾排,例如num<8為1排,8<=num<=16為2排,我們要的表達式要實現這個目標,表達式肯定要用到整除運算,如果用num直接整除8,num<8時則為0排。要實現有1排則表達式應為num\8+1。當num=8時代入這個表達式,如現成了兩排與事實不符,為了讓num=8時也是1排,則表達式中num需要減1。(num-1)\n+1,經過驗證此表達式條例num變化實現。故此處填(num-1)\n+1。④根據Forj=(i-1)
n+1To(i-1)
n+n可知,該循環是生成第i行數據,比如當i等于2時,應選擇從第2行到最后一行中該列身高最小值所在的位置,然后將該位置的數據和第j個元素交換。故該處為代碼為fPos函數的調用,該函數返回第j個學生所在的這一列且行號大于等于i的身高最小的元素位置。故此處填imin=fPos(j)。⑤該自定義函數內的循環體功能是尋找第p個元素所在的這一列中最小身高所在的位置(但不包含第p個元素之前的身高數據)。因此該處所填代碼為p+n
To
num
Step
n。
14.某校老師編寫一個VB程序分析學生技術成績,功能如下:在列表框List1中顯示原始學生信息,單擊“分析”按鈕Command1,統計各班參加考試人數、高分(97及以上)人數和均分,并按班級均分從大到小顯示在列表框List2中,程序運行界面如圖所示。
實現上述功能的VB程序段如下,請回答下列問題:
(1)學生成績存儲在數據表中,其字段名是
(2)請在劃線處填入合適的代碼。
Dim
recCount
As
Integer
'存放學生人數
Dim
sClass(1
To
1000)
As
Integer
'存放學生班級
Dim
sName(1
To
1000)
As
String
'存放學生姓名
Dim
sScore(1
To
1000)
As
Integer
'存放學生成績
Private
Sub
Command1_Click()
Dim
i
As
Integer,
t
As
Integer,
nc
As
Integer
Dim
a(1
To
20)
As
Integer,
b(1
To
20)
As
Integer
'分別存放班級高分人數和班級參加考試人數21·cn·jy·com
Dim
sum(1
To
20)
As
Integer,
ave(1
To
20)
As
Single
'分別存放班級總分和班級均分
Dim
c(1
To
20)
As
Integer
For
i
=
1
To
recCount

b(t)
=
b(t)
+
1
If
b(t)
=
1
Then
nc
=
nc
+
1

End
If
If
sScore(i)
>=
97
Then
a(t)
=
a(t)
+
1
sum(t)
=
sum(t)
+
sScore(i)
Next
i
For
i
=
1
To
nc
ave(c(i))
=
Int(sum(c(i))
/
b(c(i))
100
+
0.5)
/
10021·世紀
教育網
Next
i
For
i
=
1
To
nc
-
1
For
j
=
nc
To
i
+
1
Step
-1
If

Then
t
=
c(j):
c(j)
=
c(j
-
1):
c(j
-
1)
=
t
End
If
Next
j
Next
i
For
i
=
1
To
nc
List2.AddItem
Str(c(i))
+
"
"
+
Str(b(c(i)))
+
"
"
+
Str(a(c(i)))
+
"
"
+
Str(ave(c(i)))
Next
i
End
Sub
Private
Sub
Form_Load()
'鏈接數據庫,代碼略
recCount
=
0
Do
While
Not
rs.EOF
recCount
=
recCount
+
1
sClass(recCount)
=
rs.Fields("class")
sName(recCount)
=
rs.Fields("name")
sScore(recCount)
=
rs.Fields("score")
rs.MoveNext
Loop
'將數據顯示在列表框List1中,代碼略
End
Sub
【答案】(1)
score
(2)①t
=
sClass
(i)
②c(nc)=
t或其他相同答案
③ave(c(j))
>
ave(c(j
-1))【來源:21·世紀·教育·網】
【解析】
【分析】
【詳解】
本題考查VB綜合能力,VB連接數據庫等(1)根據sScore(recCount)=rs.Fields(score)這條代碼可知,學生成績存儲在數據表中,其字段名是score。(2)代碼第一空,聯系上下代碼,可知此處關于t的賦值,t代表班級,故t=sClass(i)是該空答案。(3)代碼第二空是c數組賦值,c數組中存放的是按順尋訪問到的是第幾個班級,故c(nc)=t是該空答案。(4)第三空是冒泡排序內循環,根據平均分降序排序,故填入ave(c(j))
>
ave(c(j-1))。【出處:21教育名師】
15.某地區中考錄取采用“平行志愿”的投檔錄取方式,該錄取方式的具體規則為:
①根據考生的考試總分從高到低依次對考生的填報志愿進行投檔;
②每位考生可填三個志愿學校,輪到該考生投檔時依次對其三個志愿進行投檔,若第一志愿學校還有剩余招生名額,就被第一志愿學校錄取,結束該考生的投檔,否則需對其后續志愿學校進行同樣的投檔操作,若該考生所填的所有志愿學校都沒有剩余招生名額,則該考生無法被任何學校錄取,該考生的投檔結束。21
cnjy
com
③當所有學校都已完成計劃招生數時,停止投檔,錄取結束。
編寫
VB
程序,實現上述“平行志愿”投檔錄取的功能,單擊“讀取考生數據”按鈕
Command1,
則從數據庫中獲取所有考生的成績、志愿信息以及每個學校的計劃招生數,單擊“投檔錄取”按鈕
Command2,開始進行投檔錄取,
并在列表框
List1
中輸出每個學校的計劃招生數、實際招生數、錄取分數線和最低錄取名次信息,程序運行界面如圖所示。請回答下列問題:
(1)若
A
校計劃招生
520
人,B
校計劃招生480人,C校計劃招生540人,某同學的考分名次為490名,其三個志愿學校依次為B校、A校、C校,且已知同名次的人數最多有30人,則該同學不可能被哪所學校錄取:______。
(2)實現上述功能的
VB
程序如下,請在劃線處填入合適的代碼。
Const
schCnt
=
5
'
學校數量
Const
stuMaxCnt
=
10000
'
最多考生人數
Dim
zsCnt(1
To
schCnt)
As
Integer
'
存儲每個學校的計劃招生人數
Dim
zsCnt2(1
To
schCnt)
As
Integer
'
存儲每個學校的實際招生人數
Dim
a(1
To
stuMaxCnt)
As
Single
'
存儲考生總分成績
Dim
b(1
To
stuMaxCnt
3)
As
Integer
'
存儲考試志愿,每個考生有3個志愿,每個志愿為學校編號
Dim
stuCnt
As
Integer
'
實際考生總人數
Private
Sub
Command1_Click()
'從數據庫中讀取所有考生的總分和志愿信息存儲到數組a和數組b
中(第1個考生總分存儲到a(1),第1個考生的
3
個志愿分別存儲到b(1)、b(2)、b(3)中,
…),然后按總分對數組
a
和數組
b
進行降序排序,總分相同時,需根據各科成績決定排序先后,但名次相同,考生總人數存儲到
stuCnt
變量中;
'讀取每個學校的計劃招生數,存儲到數組
zsCnt
中;
'以上功能代碼略
End
Sub
Private
Sub
Command2_Click()
Dim
sch
As
Integer
'
學校代碼,

1~5
中的一個數字表示某學校代碼
Dim
i
As
Integer,
j
As
Integer,
finished
As
Integer,prevScore
As
Single
Dim
stuMc(1
To
stuMaxCnt)
As
Integer
Dim
MinScore(1
To
schCnt)
As
Single
Dim
MinMc(1
To
schCnt)
As
Integer
finished
=
0:
i
=
1
prevScore
=
-1
Do
While①______
If
a(i)
=
prevScore
Then
stuMc(i)
=
stuMc(i
-
1)
Else
②____________
End
If
prevScore
=
a(i)
For
j
=
1
To
3
③________
If
zsCnt2(sch)
<
zsCnt(sch)
Then
zsCnt2(sch)
=
zsCnt2(sch)
+
1
MinScore(sch)
=
a(i)
MinMc(sch)
=
stuMc(i)
Exit
For
End
If
Next
j
finished
=
0
For
j
=
1
To
schCnt
If
zsCnt2(j)
=
zsCnt(j)
Then
finished
=
finished
+
1
End
If
Next
j
i
=
i
+
1
Loop
'在
List1
中輸出每所學校的代碼、計劃招生數、實際招生數、錄取分數線、最低錄取名次,代碼略
End
Sub
【答案】C校
i<=stuCntAndfinishedstuMc(i)=i
sch=b((i-1)
3+j)
【解析】
【詳解】
本題主要考查VB程序的執行與調試。①某同學的考分名次為490名,且已知同名次的人數最多有30人,所以該同學可能被B校或A校錄取,不可能被C校錄取,故本題填C校。②此處通過while循環完成每個學校的錄取工作,循環條件是,變量i小于等于學校數,并且已完成的學校數小于總的學校數,故此處填i<=stuCnt
And
finished3+j)。
21世紀教育網
www.21cnjy.com
精品試卷·第
2

(共
2
頁)
21世紀教育網(www.21cnjy.com)中小學教育資源及組卷應用平臺
3.3計算機程序與程序設計語言(2)-粵教版(2019)高中信息技術必修一練習
學校:___________姓名:___________班級:___________考號:___________
一、選擇題
1.計算機能直接識別和執行的的語言是(

A.匯編語言
B.機器語言
C.高級語言
D.C語言
2.現有流程圖如下,關于流程圖的說法正確的是(

A.運行后,輸入語句一定會被執行三次
B.程序運行后,輸入語句至少會被執行一次
C.該程序的循環次數為3次
D.第一次輸入guess的值為8,則程序運行結果為“對不起,你失敗了!”
3.計算機能夠直接識別和執行的程序設計語言是(
)。
A.低級語言
B.匯編語言
C.機器語言
D.高級語言
4.x和n都是正整數且x<=n,下列選項中,與語句“x=x
Mod
n
+1
”功能相同的是(
)21世紀教育網版權所有
A.x=(x+1)
Mod
n
B.x=x+1
If
x=n
Then
x=1
C.x=x+1
If
x=n+1
Then
x=1
D.x=x+1
If
x=n+1
Then
x=0
5.下面程序執行結束,文本框
Text1
中顯示(

Private
Sub
Form_Click()
a
=
"123":
b
=
"456"
c
=
Val(a)
+
Val(b)
Text1.Text=str(c\100)
End
Sub
A.123
B.3
C.5
D.579
二、簡答題
6.高級語言的編譯過程和解釋過程各有什么優勢和不足。
7.程序設計語言有哪些,分別具備什么特點。
三、填空題
8.以下流程圖描述的算法,執行結果是_______。
9.編寫VB程序,實現如下功能:單擊“計算”按鈕,在列表框List1中產生10個[1,99]隨機數,文本框Text1顯示相鄰兩個數字之間相差最大的差值。運行界面如圖所示。
(1)窗體上,“計算”按鈕的對象名是_____。
(2)實現上述功能的VB程序如下,請在劃線處填入合適的代碼。
Private
sub
cmd1_click(
)
Dim
b(1
to
10)
as
integer
Dim
I
as
integer,max
as
integer
,a
as
integer,
c
as
integer2·1·c·n·j·y
Max=0
For
i=1
to
10
Randomize
A=int(rnd
99)+1
_______________________
List1.additem
str(a)
Next
i
For
i=2
to
10
C=________________
If
c>max
then
__________________
Next
I
____________________________
End
sub
四、判斷題
10.需求分析之后、程序設計之前,需要對系統進行總體設計和詳細設計。總體設計就是在需求分析的基礎上對模型細化、分解任務,明確程序由哪些模塊組成。
(____)【來源:21·世紀·教育·網】
五、操作題
11.某數據解密算法描述如下:
(1)在輸入的數字字符串中依次提取有效的密文,有效的密文的特點:
①是一組連續的,都小于5的三位數字串;②每個位置上的數字不能被重復提取;
(2)對有效密文進行解密的過程:
將密文作為一個五進制數轉換為對應的十進制數值,根據ASCII字符的十進制編碼表,得出對應的明文字符(提示:空格符所對應的ASCII碼值為十進制數32,小寫字母“z”所對應的ASCII碼值為十進制數122).21教育名師原創作品
例如,密文242轉換成十進制數為72,對應的明文字符為大寫字母“H”。
程序運行界面如下圖所示,在文本框Text1中輸入密文,單擊“解密”按鈕,在文本框Text2中輸出解密后的明文密碼。21
cnjy
com
(1)若輸入的密文為“841497230235”,則對應的明文是__________。
(2)實現上述功能的VB代碼如下,劃線處的語句有錯,應改為__________________。
(3)請在劃線處填入合適的代碼.
'以下代碼是將有效密文數字轉換為十進制數的函數
Function
conv(p
As
String)
As
Integer
Dim
k
As
Integer,
q
As
String,
i
As
Integer
k
=
0:
g
=
""
For
i
=
1
To
3
q
=
Mid(p,
i,
1)
________________
Next
i
conv
=
k
End
Function
Private
Sub
Command1_Click()
Dim
st
As
String,
p
As
String,
res
As
String
Dim
c1
As
String,
c2
As
String,
c3
As
String
Dim
i
As
Integer,
d
As
Integer,
n
As
Integer
st
=
Text1.Text:
n
=
Len(st)
i
=
1:
res
=
""
Do
While
i
<=
n

2
'提取有效密文,并進行轉換
c1
=
Mid(st,
i,
1):
c2
=
Mid(st,
i
+
1,
1):
c3
=
Mid(st,
i
+
2,
1)
If
c1<"5"
Or
c2
<"5"
Or
c3
<"5"
Then
______________
d=conv(p)
If
d
>=
32
And
d
<=
122
Then
res
=
res
+
Chr(d)
______________
Else
i
=
i
+
1
End
If
Loop
Text2.Text
=
res
End
Sub
12.如果一個正整數從左到右讀與從右到左讀是一樣的,就稱它為回文式數(簡稱回數),如圖321。“回數猜想”的主要思想是,對任意正整數,若它不是回數,則按下列算法即可獲得一個回數:www-2-1-cnjy-com
(1)把該整數的數字順序顛倒,求得該數的逆序數;
(2)將該整數和其對應的逆序數相加;
(3)若相加結果不是回數,則將結果作為新的整數,返回步驟(1)。
小林按照上述算法,設計了驗證回數猜想的VB程序(猜想次數不超過10次),程序功能如下:在文本框Text1中輸入一個正整數,單擊“驗證”按鈕(Command1),獲取文本框Text1中的數,當該數不是回數時,采用回數猜想的方法進行驗證,并在列表框List1中輸出每次驗證的過程,若驗證成功或驗證次數超過10次,則停止驗證,最后在列表框List1中輸出驗證結果。程序運行效果如圖所示。
實現上述功能的VB程序如下:
Private
Sub
Command1_Click()
Dim
t
As
String,
a
As
Long,
b
As
Long
Dim
count
As
Integer
'
count用于存儲回數猜想的驗證次數
t
=
Text1.Text
count
=
1
Do
While
Check(t)
=
False
And
count
<=
10
a
=
Val(t)

c
=
a
+
b
List1.AddItem
Str(a)
&
"
+"
&
Str(b)
&
"
="
&
Str(c)21cnjy.com
count
=
count
+
1
t
=
c
Loop
If
Check(t)
Then
List1.AddItem
"驗證成功!"
Else
List1.AddItem
"10次內未驗證成功!"
End
If
End
Sub
'
自定義函數Turn
Function
Turn(x
As
String)
As
Long
Dim
s
As
String,
i
As
Integer
s
=
""
For
i
=
Len(x)
To
1
Step
-1
s
=
s
&
Mid(x,
i,
1)
Next
i
Turn
=

End
Function
'
自定義函數Check,檢查x是否為回文數
Function
Check(x
As
String)
As
Boolean
Dim
i
As
Integer
Check
=
True
For
i
=
1
To
Len(x)
\
2
Step
1
If
Mid(x,
i,
1)
<>

Then
Check
=
False
mid(x,len(x)+1-i,1)
Next
i
End
Function
(1)程序代碼中,自定義函數Turn(x)的功能是
(2)請在劃線處填入合適代碼。
13.某高一班主任需要對剛入學的新生排座位,教室座位按
6

8
列進行擺放(班級學生數不超過48個),并且要求每列的學生按身高從低到高排列。編寫
VB
程序,實現教室排座位功能:單擊“讀取數據”按鈕
Command1,從數據庫中讀取該班所有同學的班內學號(兩位數字)和身高數據(3
位數字),并在列表框
List1
中按
8
個一行顯示;單擊“排座位”按鈕
Command2,對每列數據按身高從
小到大排列,并顯示在列表框
List2
中。程序運行界面如圖所示,請回答下列問題:
(1)要使窗體的標題欄文字顯示為“排座位”,則應設置窗體的______屬性(單選,填字母:A.Text
/
B.Name
/C.Caption)。
21教育網
(2)程序中加框處代碼有錯,請改正。
________
(3)實現上述功能的
VB
程序如下,請在劃線處填入合適的代碼。
Const
m
=
6
Const
n
=
8
Dim
a(1
To
m
n)
As
String
'存儲學號
Dim
b(1
To
m
n)
As
Integer
'存儲身高
Dim
num
As
Integer
'班級總人數
Private
Sub
Command1_Click()
'從數據庫中讀取該班的學號和身高數據存入數組
a
和數組b,班級人數存入變量
num,代碼略.
'以下代碼為在列表框
List1
中輸出數據
s
=
""
:
List1.AddItem
"




"
For
i
=
1
To
num
=s
=
s
&
Str(b(i))
&
"["
&
a(i)
&
"]
"
If
i
=
m
Then
List1.AddItem
s
:s
=
""
End
If
Next
i
If
s
<>
""
Then
List1.AddItem
s
End
Sub
Private
Sub
Command2_Click()
Dim
i
As
Integer,
j
As
Integer,
imin
As
Integer21·cn·jy·com
Dim
t1
As
String,
t2
As
Integer,
s
As
String
www.21-cn-jy.com
List2.AddItem
"




"
For
i
=
1
To①_______
s
=
""
For
j
=
(i
-
1)
n
+
1
To
(i
-
1)
n
+
n
21·世紀
教育網
If
j
<=
num
Then
②__________
If
imin
<>
j
Then
t1
=
a(imin):
a(imin)
=
a(j):
a(j)
=
t1
2-1-c-n-j-y
t2
=
b(imin):
b(imin)
=
b(j):
b(j)
=
t2
【來源:21cnj
y.co
m】
End
If
s
=
s
&
Str(b(j))
&
"["
&
a(j)
&
"]
"
【版權所有:21教育】
End
If
Next
j
List2.AddItem
s
Next
i
End
Sub
Function
fPos(p
As
Integer)
As
Integer
Dim
i
As
Integer,
j
As
Integer,
k
As
Integer
k
=
p
For
i
=③_____________
If
b(i)
<
b(k)
Then
k
=
i
Next
i
fPos
=
k
End
Function
14.某校老師編寫一個VB程序分析學生技術成績,功能如下:在列表框List1中顯示原始學生信息,單擊“分析”按鈕Command1,統計各班參加考試人數、高分(97及以上)人數和均分,并按班級均分從大到小顯示在列表框List2中,程序運行界面如圖所示。【出處:21教育名師】
實現上述功能的VB程序段如下,請回答下列問題:
(1)學生成績存儲在數據表中,其字段名是
(2)請在劃線處填入合適的代碼。
Dim
recCount
As
Integer
'存放學生人數
Dim
sClass(1
To
1000)
As
Integer
'存放學生班級
Dim
sName(1
To
1000)
As
String
'存放學生姓名
Dim
sScore(1
To
1000)
As
Integer
'存放學生成績
Private
Sub
Command1_Click()
Dim
i
As
Integer,
t
As
Integer,
nc
As
Integer
Dim
a(1
To
20)
As
Integer,
b(1
To
20)
As
Integer
'分別存放班級高分人數和班級參加考試人數
Dim
sum(1
To
20)
As
Integer,
ave(1
To
20)
As
Single
'分別存放班級總分和班級均分
Dim
c(1
To
20)
As
Integer
For
i
=
1
To
recCount

b(t)
=
b(t)
+
1
If
b(t)
=
1
Then
nc
=
nc
+
1

End
If
If
sScore(i)
>=
97
Then
a(t)
=
a(t)
+
1
sum(t)
=
sum(t)
+
sScore(i)
Next
i
For
i
=
1
To
nc
ave(c(i))
=
Int(sum(c(i))
/
b(c(i))
100
+
0.5)
/
100
Next
i
For
i
=
1
To
nc
-
1
For
j
=
nc
To
i
+
1
Step
-1
If

Then
t
=
c(j):
c(j)
=
c(j
-
1):
c(j
-
1)
=
t
End
If
Next
j
Next
i
For
i
=
1
To
nc
List2.AddItem
Str(c(i))
+
"
"
+
Str(b(c(i)))
+
"
"
+
Str(a(c(i)))
+
"
"
+
Str(ave(c(i)))
Next
i
End
Sub
Private
Sub
Form_Load()
'鏈接數據庫,代碼略
recCount
=
0
Do
While
Not
rs.EOF
recCount
=
recCount
+
1
sClass(recCount)
=
rs.Fields("class")
sName(recCount)
=
rs.Fields("name")
sScore(recCount)
=
rs.Fields("score")
rs.MoveNext
Loop
'將數據顯示在列表框List1中,代碼略
End
Sub
15.某地區中考錄取采用“平行志愿”的投檔錄取方式,該錄取方式的具體規則為:
①根據考生的考試總分從高到低依次對考生的填報志愿進行投檔;
②每位考生可填三個志愿學校,輪到該考生投檔時依次對其三個志愿進行投檔,若第一志愿學校還有剩余招生名額,就被第一志愿學校錄取,結束該考生的投檔,否則需對其后續志愿學校進行同樣的投檔操作,若該考生所填的所有志愿學校都沒有剩余招生名額,則該考生無法被任何學校錄取,該考生的投檔結束。
③當所有學校都已完成計劃招生數時,停止投檔,錄取結束。
編寫
VB
程序,實現上述“平行志愿”投檔錄取的功能,單擊“讀取考生數據”按鈕
Command1,
則從數據庫中獲取所有考生的成績、志愿信息以及每個學校的計劃招生數,單擊“投檔錄取”按鈕
Command2,開始進行投檔錄取,
并在列表框
List1
中輸出每個學校的計劃招生數、實際招生數、錄取分數線和最低錄取名次信息,程序運行界面如圖所示。請回答下列問題:
(1)若
A
校計劃招生
520
人,B
校計劃招生480人,C校計劃招生540人,某同學的考分名次為490名,其三個志愿學校依次為B校、A校、C校,且已知同名次的人數最多有30人,則該同學不可能被哪所學校錄取:______。21
cnjy
com
(2)實現上述功能的
VB
程序如下,請在劃線處填入合適的代碼。
Const
schCnt
=
5
'
學校數量
Const
stuMaxCnt
=
10000
'
最多考生人數
Dim
zsCnt(1
To
schCnt)
As
Integer
'
存儲每個學校的計劃招生人數
Dim
zsCnt2(1
To
schCnt)
As
Integer
'
存儲每個學校的實際招生人數
Dim
a(1
To
stuMaxCnt)
As
Single
'
存儲考生總分成績
Dim
b(1
To
stuMaxCnt
3)
As
Integer
'
存儲考試志愿,每個考生有3個志愿,每個志愿為學校編號
Dim
stuCnt
As
Integer
'
實際考生總人數
Private
Sub
Command1_Click()
'從數據庫中讀取所有考生的總分和志愿信息存儲到數組a和數組b
中(第1個考生總分存儲到a(1),第1個考生的
3
個志愿分別存儲到b(1)、b(2)、b(3)中,
…),然后按總分對數組
a
和數組
b
進行降序排序,總分相同時,需根據各科成績決定排序先后,但名次相同,考生總人數存儲到
stuCnt
變量中;
'讀取每個學校的計劃招生數,存儲到數組
zsCnt
中;
'以上功能代碼略
End
Sub
Private
Sub
Command2_Click()
Dim
sch
As
Integer
'
學校代碼,

1~5
中的一個數字表示某學校代碼
Dim
i
As
Integer,
j
As
Integer,
finished
As
Integer,prevScore
As
Single
Dim
stuMc(1
To
stuMaxCnt)
As
Integer
Dim
MinScore(1
To
schCnt)
As
Single
Dim
MinMc(1
To
schCnt)
As
Integer
finished
=
0:
i
=
1
prevScore
=
-1
Do
While①______
If
a(i)
=
prevScore
Then
stuMc(i)
=
stuMc(i
-
1)
Else
②____________
End
If
prevScore
=
a(i)
For
j
=
1
To
3
③________
If
zsCnt2(sch)
<
zsCnt(sch)
Then
zsCnt2(sch)
=
zsCnt2(sch)
+
1
MinScore(sch)
=
a(i)
MinMc(sch)
=
stuMc(i)
Exit
For
End
If
Next
j
finished
=
0
For
j
=
1
To
schCnt
If
zsCnt2(j)
=
zsCnt(j)
Then
finished
=
finished
+
1
End
If
Next
j
i
=
i
+
1
Loop
'在
List1
中輸出每所學校的代碼、計劃招生數、實際招生數、錄取分數線、最低錄取名次,代碼略
End
Sub
21世紀教育網
www.21cnjy.com
精品試卷·第
2

(共
2
頁)
21世紀教育網(www.21cnjy.com)

展開更多......

收起↑

資源列表

<pre id="tfb94"><li id="tfb94"></li></pre>

<bdo id="tfb94"><rt id="tfb94"></rt></bdo>
  • <menu id="tfb94"><dl id="tfb94"></dl></menu><i id="tfb94"><acronym id="tfb94"><sub id="tfb94"></sub></acronym></i>

    1. 主站蜘蛛池模板: 云林县| 库伦旗| 寿光市| 临沭县| 壶关县| 广汉市| 丰原市| 宁明县| 博罗县| 海淀区| 云龙县| 罗江县| 鄂托克旗| 乌鲁木齐市| 柳河县| 贺州市| 肥东县| 邻水| 顺义区| 准格尔旗| 阳东县| 岗巴县| 玛曲县| 错那县| 绥江县| 习水县| 平阳县| 陵水| 渝北区| 仪陇县| 芜湖县| 昌吉市| 商丘市| 离岛区| 衡阳县| 灵台县| 合阳县| 涪陵区| 高州市| 伊川县| 长汀县|