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

2021年粵教版高中信息技術必修一for循環的應用練習(原卷+解析卷)

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

2021年粵教版高中信息技術必修一for循環的應用練習(原卷+解析卷)

資源簡介

中小學教育資源及組卷應用平臺
4.4.1for循環的應用-粵教版(2019)高中信息技術必修一練習
學校:___________姓名:___________班級:___________考號:___________
一、選擇題
1.下面的程序段運行后的結果為(

s=0
for
i
in
range(1,6,2):
s=s+i
print(s)
A.15
B.10
C.12
D.9
2.下面的程序運行后的輸出結果為(

n=1
for
i
in
range(0,5):
n=n
i
print(n)
A.120
B.24
C.0
D.25
3.有以下程序段:
for
value
in
[1,2,3]:
print(value)
print("no")
程序運行后輸出的結果為:


A.1
no
2
no
3
no
B.1
2
3
no
C.1
"no"
2
"no"
3
"no"
D.1
2
3
"no"
4.有如下VB程序段:
Fori=1To1000
a=Int(Rnd
100+1)
b=Int(Rnd
100+1)
x=a+b
y=a-b
c=Sqr(x)
d=Sqr(y)
Nexti
調試時出現如圖所示的錯誤提示,產生此錯誤的語句是(

A.a=Int(Rnd
100+1)
B.y=a–b
C.c=Sqr(x)
D.d=Sqr(y)
5.有如下程序段:
Fori=1ToLen(Text1.Text)
c=Mid(Text1.Text,i,1)
Ifc>="0"Andc<="9"Thenc=Chr(Asc(c)+1)
Ifc>="A"Andc<="Z"Thenc=Chr(Asc(c)+32)
s=s+c
Nexti
若文本框Text1的內容為“Number2468!”執行程序后,變量s的值為(

A.NUMBER3579!
B.NUMBER2468!
C.number3579!
D.number2468!21世紀教育網版權所有
6.有如下VB程序段:
s
=
Text1.Text
For
i=1
To
Len(s)
ch
=
Mid(s,i,1)
If
ch>="A"
And
ch<="Z"
Then
t=t+ch
If
ch>="a"
And
ch<="z"
Then
ch
=
Chr(Asc(ch)-32)
t=t+ch
ElseIf
ch
>=
"0"And
ch
<=
"9"
Then
t=ch+t
End
If
Next
i
Text2.Text
=
t
已知'A'的ASCI碼為65,'a'的ASCI碼為97.程序運行后,在文本框Textl中輸人“Text2.text=”Abc1234“”(外括號不包括),則在Text2中顯示的內容是(
A.TEXT2.TEXTABC1234
B.43212TexttextABC
C.43212TEXTTEXTABC
D.TEXTTEXTABC43212
7.有如下程序段:
Dim
i
As
Integer,
t
As
Integer,
s
As
Integer
s
=
0:
t
=
0
For
i
=
0
To
10
If
i
Mod
5
=
0
then
s
=
s
+
1
t
=
t
+
i
Next
i
Text1.Text
=
Str(s)
執行該程序段后,變量s和t的值分別是(

A.3
55
B.3
15
C.2
15
D.2
55
8.編寫VB程序,計算斐波那契數列中第n項(n
>=
3)的值,并在標簽Label2中輸出結果。(斐波那契數列是指這樣的數列:1,1,2,3,5,8,13…。即:第1項和第2項的值均為1,從第3項開始,每一項的值是它前面兩項之和),主要代碼如下:21教育網
n
=
Val(Text1.Text)
f1
=
1:
f2
=
1
For
k
=
3
To
n
f
=
f1
+
f2


Next
k
Label2.Caption
=
"斐波那契數列第"
+
Str(n)
+
"項的值為"
+
Str(f)
代碼中①②兩處分別應為(

A.①f2
=
f1
②f1
=
f
B.①f1
=
f2
②f2
=
f
C.①f1
=
f
②f2
=
f1
D.①f2
=
f
②f1
=
f2
9.有如下Visual
Basic程序段:
Private
Sub
Command1_
Click
()
Dim
a(1
To
10)
As
Integer,
i
As
Integer,
k
As
Integerwww.21-cn-jy.com
a(1)=1:a(2)=17:a(3)=8:a(4)=9:a(5)=18
a(6)=15:a(7)=20:a(8)=13:a(9)=7:a(10)=11
k=0
For
i=
2
To
9
If(a(i)-a(i-1))
(a(i+1)-a(i))<
0
Then
k=k+1
Next
i
Text1.
Text
=
Str
(k)
End
Sub
該程序段運行后后,文本框Text1中顯示的內容是(

A.6
B.7
C.8
D.9
10.有如下
VB
程序段:
For
i
=
1
To
6
a(i)
=
Int(Rnd
20)
+
1:
b(i)
=
i
Next
i
For
i
=
1
To
5
For
j
=
i+1
To
6
If
a(b(i))>a(b(j))
Then
t
=
b(j):
b(j)
=
b(i):
b(i)
=
t
End
If
Next
j
Next
i
i
=
1
:
j
=
6:
s=""
:
Key
=
Val(Text1.Text)
Do
While
i
<=
j
m
=
(i
+
j)
\
2
If
Key
=
a(b(m))
Then
Exit
Do
If
Key
<
a(b(m))
Then
j
=
m
-
1
Else
i
=
m
+
1
21cnjy.com
s
=
s
+
Str(m)
Loop
Text2.Text
=
s
在文本框Text1中輸入10,運行以上程序段后,文本框Text2中顯示的內容為
3
5
4,則
a
數組中
a(1)到
a(6)各元素的值可能的是(

A.11,6,4,13,18,15
B.4,5,8,19,10,17
C.2,11,7,6,3,18
D.9,2,11,21,5,16
11.數組a中存儲著某市2010年到
2019
年的GDP數值,編寫VB程序,實現找出相鄰兩年GDP變化最大(即相鄰兩年GDP差值最大)的年份區間。若有多個符合要求的年份區間,只輸出距今最近的年份區間。部分代碼如下所示
Dim
i
As
Integer,
imax
As
Integer

For
i
=
3
To
10
If
Abs(a(i)
-
a(i
-
1))
>=

Then
imax
=
iwww-2-1-cnjy-com
Next
i
Text1.Text
=
"GDP變化最大的年份區間是"
+
Str(imax
+
2008)
+
"-"
+
Str(imax
+
2009)
21
cnjy
com
劃線處①、②應填入的代碼為(

A.①imax=1
②Abs(a(i
-
1)
-
a(i
-
2))
B.①imax=1
②Abs(a(imax)
-
a(imax
-
1))【版權所有:21教育】
C.①imax=2
②Abs(a(i
-
1)
-
a(i
-
2))
D.①imax=2
②Abs(a(imax)
-
a(imax
-
1))21教育名師原創作品
12.有如下VB程序段:
s
="cbafedgh"
m=3:c="":n=
Len(s)
For
i
=1
To
n
j=(i-1)Mod
3
+
1
If
m>
n
Then
Exit
For
'退出For循環
c=c+
Mid(s,m-j+1,1)
If
j
Mod
3
=0
Then
m
=m+3
Next
i
If
i
<
n
Then
c
=
Mid(s,i,n-i
+
1)+c
執行該程序段后,變量c的值是(

A.abcdef
B.abcdefgh
C.ghabcdef
D.hgabcdef
13.下面的程序段運行后的結果為(

s=1
for
i
in
range(1,6,2):
s=s+i
print(s)
A.15
B.10
C.12
D.9
14.下列有關for循環語句說法正確的是(
)。
A.for
循環變量
in
列表后面必須加冒號
B.For循環所包含的語句是不以縮進為標志的。
C.列表的幾種表達方式有直接羅列,先定義后使用和使用range()函數
D.For循環所包含的語句是以縮進為標志的。
15.有如下VB程序段,執行該程序段后,a(1)
到a(6)各元素的值可能為(  )
Randomize
For
i=1
To
6
a(i)
=
Int(Rnd
21)
2+11
If
I
Mod
2=1
Then
a(i)
=
a(i)
+2
Else
If
a(i)a(i)=a(i一1)
End
If
Next
i
A.13,
15,
25,
37,
23,
54
B.16,
44,
23,
51,
22,
22
C.19,
37,
23,
45,
53,
53
D.13,37,
11,
45,
33,
51
16.小明想用數據移位思想將一段長度為n的序列a(n),
以t位置為分界,把前t-1個數和后n-t+1個數調換前后順序,但保持每段中數據的相對位置不變。例如一段長度為6的序列1、2、3、4、5、6。t=4時,數組a中元素順序變成4、5、6、1、2、3.實現上述功能的代碼如下,下列①、②處填寫正確的是(  )
t
=
Val(Text1.
Text):
m=
2
For
i=t-1
To
1
Step-1
k
=
a(i)
For
j=i
To
n-
1

Next
j

n=n-1
Next
i
A.①a(j+1)=a(j)②a(j+1)=k
B.①a(j)=a(j+1)②a(j+1)=k
C.①a(j+1)=a(j)
②a(j)=k
D.①a(j)=a(j+1)
②a(j)=k
17.字符串數組a中a(1)到a(6)的原始數據為57,3,24,34,
6,120,為了對該數組進行排序操作,編寫了以下VB程序。21·cn·jy·com
i=2
Do
While
i<=6
For
j=6
To
i+2
Step
-2
If
a(j)>a(j-2)Then
t=a(j):a(j)=a(j-2):a(j-2)=t
Next
j
i=i+2
Loop
則程序運行之后,數組元素a(1)和a(2)的值分別是(  )
A.6
3
B.57
120
C.120
57
D.6
34
18.有如下VB程序段:
s
=
Text1.Text:
n
=
Len(s):
Count
=
0
For
i=1
To
n\2
If
Mid(s,
i,1)
<>
Mid(s,
n-i+1,1)
Then
Count
=
Count
+
1
End
If
Next
i
若在文本框Text1中輸入字符串“
200good2”,則Count的值為(  )
A.3
B.1
C.6
D.7
二、填空題
19.下面的程序段運行后的結果為__________
s=0
for
i
in
range(1,8,3):
s=s+i
print(s)
20.運行下列程序,正確的結果是_________________
s=0
for
i
in
range
(1
5):
s=s+i
print("i=",i,"s=",s)
三、操作題
21.給定兩個十進制整數X和Y(X<=Y),求出從X到Y的所有整數中出現“1”的個數。例如:X=6,Y=15時,6,7,8,9,10,11,12,13,14,15,出現了7個“1”。小明編寫了一個VB程序,功能如下:在文本框Text1中輸入整數X,在文本框Text2中輸入整數Y,單擊“統計”按鈕Command1后,在列表框List1中顯示X到Y,并在標簽Label3中顯示從X到Y的所有整數中出現“1”的個數。程序運行界面如圖所示,請在劃線處填入合適代碼。
(1)下列程序段中句List1.AddItem中的AddItem是___(填字母:A.屬性名/B.事件名/C.方法名/D.對象)2·1·c·n·j·y
(2)為了實現上述功能,請在劃線處填入合適的代碼。
PrivateSubCommand1_Click(

DimxAsInteger,yAsInteger,tAsInteger
DimiAsInteger,nAsInteger,countAsInteger
x=Val(Text1.Text)
y=Val(Text2.Text)
count=0
For
i=x
To
y
List1.AddItem
Str(i)
n=i
DoWhile
n>0
If
n
Mod
10=1
Then
count=count+1
End
If
____
Loop
Next
i
Label3.Caption="X到Y之間1的個數有"+____+"個"
End
Sub
(3)如果刪除加框處代碼,并運行程序,在文本框Text1中輸入“40”,在文本框Text2中輸入“10”,單擊“統計”按鈕,則標簽框Label3顯示X到Y之間1的個數有____個。21·世紀
教育網
22.編寫一個VB程序,實現如下功能:輸入s位數字構成的數字字符串(第1位數字不為0),移除k
(0y.co
m】
算法分析:要使得到的5位數字最小,首先需保證能取到5個數字,且首位應盡量小,那么取首位數的范圍應保證余下有4個數字,即在前4位中選最小非0的數字。【出處:21教育名師】
程序運行時,在文本框Text1中輸入一個數字字符串,在文本框Text2中輸入要移除的數字個數,單擊“運行”按鈕CmdRun后,在標簽Labell顯示得到的最小新數,程序運行界面如圖b所示。21
cnjy
com
(1)程序運行時,若要在名為Form1的窗體標題上顯示“刪數”,可以在Form
Load事件處理過程中添加語句為_________(單選,填字母:A.
Form1.
Text
="刪數"\B.
Form1.
Caption
="刪數"\C.
Form1.
AddItem"刪數")
(2)實現上述功能的VB程序代碼如下,請在劃線處填入合適的代碼。
Private
Sub
CmdRun_
Click()
Dim
Num
As
String,New_num
As
String
'
Num為輸入的數字字符串
Dim
i
As
Integer,
j
As
Integer,
m
As
Integer,
Dim
As
Integer,
s
As
Integer,
k
As
Integer
Dim
a(30)
As
String,
b(30)
As
Integer
Num
=
Text1.
Text:
s
=
Len(Num)
k
=
Val
(Text2.
Text)
'k為刪除數字個數
For
i=1
To
s
a(i)
=
Mid(Num,i,1)
Nexti
j
=1
m=1
n=①_________
For
i=m+l
To
n
'取第一個非零最小數字
If
Then
m=I
'加框處程序代碼有誤,請改正
Next
i
b(j)=
m
Do
While②________
'取其他最小數字
m=m+1
n=n+1
For
i=m+1
To
n
If
a(i)
<
a(m)
Then
m=
i
Next
i
j
=j+1:b(j)=m
Loop
For
i=
m+1
To
s
'最后直接取的數字
j
=j+1:b(j)=i
Next
i
For
j=1
To
s-
k
'輸出最小數
New_
num
=③________
Next
j
Labell.
Caption
=
New_num
End
Sub
(3)加框處程序代碼有誤,請改正。
____________________________
23.編寫程序,實現以下功能:計算s=1+2/5+3/10+……i/i^2+1
的值,n由鍵盤輸入,計算結果s保留3位小數。【來源:21·世紀·教育·網】
Private
Sub
Command1_Click()
Dim
n
as
integer,
i
as
integer,s
as
double
n=val(inputbox("請輸入n的值"))
s=0:i=1
do
while


i=i+1
Loop
s=

Print
s
End
Sub
(1)實現該程序功能的主體算法結構是____________________。
(2)現有如下VB程序,請完善劃線處①、②內容,完成上述功能。
①_____________________________
②_____________________________2-1-c-n-j-y
(3)劃線處③能使變量s的值四舍五入精確到小數點后第3位小數,以下可以實現的語句是(
)。
A.Int(s
100)
/
100
B.Int(s
1000)
/
1000
C.Int(s
100
+
0.5)
/
100
D.Int((s
1000
+
0.5))
/
1000
四、判斷題
24.循環結構表示程序反復執行某個或某些操作,只有用戶干預才能終止循環。(_______)
21世紀教育網
www.21cnjy.com
精品試卷·第
2

(共
2
頁)
21世紀教育網(www.21cnjy.com)中小學教育資源及組卷應用平臺
4.4.1for循環的應用-粵教版(2019)高中信息技術必修一練習
學校:___________姓名:___________班級:___________考號:___________
一、選擇題
1.下面的程序段運行后的結果為(

s=0
for
i
in
range(1,6,2):
s=s+i
print(s)
A.15
B.10
C.12
D.9
【答案】D
【解析】
【詳解】
本題考查的是Python循環語句。range(1,6,2)生成的是1,3,5的整數,故s=0+1+3+5=9。選項D正確。
2.下面的程序運行后的輸出結果為(

n=1
for
i
in
range(0,5):
n=n
i
print(n)
A.120
B.24
C.0
D.25
【答案】C
【解析】
【詳解】
本題考查的知識點是Python的列表函數。python中
range()
函數可創建一個整數列表,一般用在
for
循環中。range(0,5)等價于列表[0,1,2,3,4],故程序結果為1
0
1
2
3
4=0,故選項C正確。www-2-1-cnjy-com
3.有以下程序段:
for
value
in
[1,2,3]:
print(value)
print("no")
程序運行后輸出的結果為:


A.1
no
2
no
3
no
B.1
2
3
no
C.1
"no"
2
"no"
3
"no"
D.1
2
3
"no"
【答案】A
【解析】
【分析】
【詳解】
本題考查程序執行的相關知識點
每一次for循環里面都執行一遍print(value)和print("no")。故本題選A選項
4.有如下VB程序段:
Fori=1To1000
a=Int(Rnd
100+1)
b=Int(Rnd
100+1)
x=a+b
y=a-b
c=Sqr(x)
d=Sqr(y)
Nexti
調試時出現如圖所示的錯誤提示,產生此錯誤的語句是(

A.a=Int(Rnd
100+1)
B.y=a–b
C.c=Sqr(x)
D.d=Sqr(y)
【答案】D
【解析】
【詳解】
本題考查VB相關知識。無效的過程調用或參數是指函數或者過程的參數有誤,代碼中涉及函數sqr和Int,a=Int(Rnd
100+1),b=Int(Rnd
100+1),這兩條代碼沒有問題,y=a-b,會出現y<0,導致Sqr(y)參數有誤,sqr為平方根函數,參數必須大于0,小于0則代碼會出錯。故產生錯誤語句是d=Sqr(y),本題選D。
5.有如下程序段:
Fori=1ToLen(Text1.Text)
c=Mid(Text1.Text,i,1)
Ifc>="0"Andc<="9"Thenc=Chr(Asc(c)+1)
Ifc>="A"Andc<="Z"Thenc=Chr(Asc(c)+32)
s=s+c
Nexti
若文本框Text1的內容為“Number2468!”執行程序后,變量s的值為(

A.NUMBER3579!
B.NUMBER2468!
C.number3579!
D.number2468!
【答案】C
【解析】
【詳解】
本題考查VB程序段。若文本框Text1的內容為“Number2468!”,根據代碼for
i=1
to
len(text1.text),c=Mid(Text1.Text,i,1),If
c>=“0”Andc<=“9”Thenc=Chr(Asc(c)+1),若取出的字符c是數字,則往后推移一個數字。Ifc>=“A”
And
c<=“Z”Then
c=Chr(Asc(c)+32),如果取出的字符c是大寫字母,則變為小寫字母。其余字符不變。故可知本題選C。
6.有如下VB程序段:
s
=
Text1.Text
For
i=1
To
Len(s)
ch
=
Mid(s,i,1)
If
ch>="A"
And
ch<="Z"
Then
t=t+ch
If
ch>="a"
And
ch<="z"
Then
ch
=
Chr(Asc(ch)-32)
t=t+ch
ElseIf
ch
>=
"0"And
ch
<=
"9"
Then
t=ch+t
End
If
Next
i
Text2.Text
=
t
已知'A'的ASCI碼為65,'a'的ASCI碼為97.程序運行后,在文本框Textl中輸人“Text2.text=”Abc1234“”(外括號不包括),則在Text2中顯示的內容是(
A.TEXT2.TEXTABC1234
B.43212TexttextABC
C.43212TEXTTEXTABC
D.TEXTTEXTABC43212
【答案】C
【解析】
【詳解】
本題考查VB程序段。根據判斷條件If
ch>=“A”
And
ch<=“Z”
Then
t=t+ch,大寫字母直接順序疊加,又If
ch>=“a”
And
ch<=“z”
Then
ch=Chr(Asc(ch)-32)t=t+ch,可知,小寫字母轉換為大寫字母后疊加。再看If
ch>=
“0”And
ch<=
“9”Then
t=ch+t,可知數字采取倒序疊加,故最后結果數字在前,全都是大寫字母,故選C。2·1·c·n·j·y
7.有如下程序段:
Dim
i
As
Integer,
t
As
Integer,
s
As
Integer
s
=
0:
t
=
0
For
i
=
0
To
10
If
i
Mod
5
=
0
then
s
=
s
+
1
t
=
t
+
i
Next
i
Text1.Text
=
Str(s)
執行該程序段后,變量s和t的值分別是(

A.3
55
B.3
15
C.2
15
D.2
55
【答案】A
【解析】
【詳解】
本題主要考查VB程序的執行。for循環中,變量i的范圍是從0-10,當i是5的倍數時(i=0,5,10),變量s遞增,故s=s+1執行了3次,每次循環都執行t=t+i,故程序結束時t=0+1+2+3+4+5+6+7+8+9+10=55,所以執行該程序段后,變量s和t的值分別是3
55,故本題選A選項。
8.編寫VB程序,計算斐波那契數列中第n項(n
>=
3)的值,并在標簽Label2中輸出結果。(斐波那契數列是指這樣的數列:1,1,2,3,5,8,13…。即:第1項和第2項的值均為1,從第3項開始,每一項的值是它前面兩項之和),主要代碼如下:
n
=
Val(Text1.Text)
f1
=
1:
f2
=
1
For
k
=
3
To
n
f
=
f1
+
f2


Next
k
Label2.Caption
=
"斐波那契數列第"
+
Str(n)
+
"項的值為"
+
Str(f)
代碼中①②兩處分別應為(

A.①f2
=
f1
②f1
=
f
B.①f1
=
f2
②f2
=
f
C.①f1
=
f
②f2
=
f1
D.①f2
=
f
②f1
=
f2
【答案】B
【解析】
【詳解】
本題主要考查VB程序的執行。f=f1+f2,接下來應該將f2的值賦給f1,將f的值賦給f2,故代碼中①②兩處分別應為①f1
=
f2
②f2
=
f,故本題選B選項。
9.有如下Visual
Basic程序段:
Private
Sub
Command1_
Click
()
Dim
a(1
To
10)
As
Integer,
i
As
Integer,
k
As
Integer21·世紀
教育網
a(1)=1:a(2)=17:a(3)=8:a(4)=9:a(5)=18
a(6)=15:a(7)=20:a(8)=13:a(9)=7:a(10)=11
k=0
For
i=
2
To
9
If(a(i)-a(i-1))
(a(i+1)-a(i))<
0
Then
k=k+1
Next
i
Text1.
Text
=
Str
(k)
End
Sub
該程序段運行后后,文本框Text1中顯示的內容是(

A.6
B.7
C.8
D.9
【答案】A
【解析】
【詳解】
本題考查VB程序段。在FOR循環中,If(a(i)-a(i-1))
(a(i+1)-a(i))<0成立時共有六種情況,分別是i=2,3,5,6,7,9。故本題選A。
10.有如下
VB
程序段:
For
i
=
1
To
6
a(i)
=
Int(Rnd
20)
+
1:
b(i)
=
i
Next
i
For
i
=
1
To
5
For
j
=
i+1
To
6
If
a(b(i))>a(b(j))
Then
t
=
b(j):
b(j)
=
b(i):
b(i)
=
t
End
If
Next
j
Next
i
i
=
1
:
j
=
6:
s=""
:
Key
=
Val(Text1.Text)
Do
While
i
<=
j
m
=
(i
+
j)
\
2
If
Key
=
a(b(m))
Then
Exit
Do
If
Key
<
a(b(m))
Then
j
=
m
-
1
Else
i
=
m
+
1
21世紀教育網版權所有
s
=
s
+
Str(m)
Loop
Text2.Text
=
s
在文本框Text1中輸入10,運行以上程序段后,文本框Text2中顯示的內容為
3
5
4,則
a
數組中
a(1)到
a(6)各元素的值可能的是(

A.11,6,4,13,18,15
B.4,5,8,19,10,17
C.2,11,7,6,3,18
D.9,2,11,21,5,16
【答案】A
【解析】
【詳解】
本題主要考查VB程序的執行。rnd()函數隨機生成[0,1)之間的數,故a(i)是隨機生成[1,21)的整數,第二個嵌套for循環實現a數組升序,i=1,j=6,s="",key=10,while循環實現折半查找,第一遍循環,m=(1+6)/2=3,顯然a(3)<10,i=m+1=4;s=3,第二遍循環,m=(4+6)/2=5,根據文本框Text2中顯示的內容為
3
5
4,所以判斷key10,故本題選A選項。
11.數組a中存儲著某市2010年到
2019
年的GDP數值,編寫VB程序,實現找出相鄰兩年GDP變化最大(即相鄰兩年GDP差值最大)的年份區間。若有多個符合要求的年份區間,只輸出距今最近的年份區間。部分代碼如下所示
Dim
i
As
Integer,
imax
As
Integer

For
i
=
3
To
10
If
Abs(a(i)
-
a(i
-
1))
>=

Then
imax
=
i【出處:21教育名師】
Next
i
Text1.Text
=
"GDP變化最大的年份區間是"
+
Str(imax
+
2008)
+
"-"
+
Str(imax
+
2009)
【版權所有:21教育】
劃線處①、②應填入的代碼為(

A.①imax=1
②Abs(a(i
-
1)
-
a(i
-
2))
B.①imax=1
②Abs(a(imax)
-
a(imax
-
1))21教育名師原創作品
C.①imax=2
②Abs(a(i
-
1)
-
a(i
-
2))
D.①imax=2
②Abs(a(imax)
-
a(imax
-
1))
【答案】D
【解析】
【詳解】
本題主要考查VB程序的執行。abs()是求絕對值函數,i的初值為3,a(i)
-
a(i
-
1)=a(3)-a(2),這個區間應該首先與a(2)-a(1)進行比較,故imax=2,第二空填Abs(a(imax)
-
a(imax
-
1)),故本題選D選項。21教育網
12.有如下VB程序段:
s
="cbafedgh"
m=3:c="":n=
Len(s)
For
i
=1
To
n
j=(i-1)Mod
3
+
1
If
m>
n
Then
Exit
For
'退出For循環
c=c+
Mid(s,m-j+1,1)
If
j
Mod
3
=0
Then
m
=m+3
Next
i
If
i
<
n
Then
c
=
Mid(s,i,n-i
+
1)+c
執行該程序段后,變量c的值是(

A.abcdef
B.abcdefgh
C.ghabcdef
D.hgabcdef
【答案】C
【解析】
【分析】
【詳解】
本題考查執行VB程序相關的知識點
第一次循環
m-j+1
=
3,截取s中的a賦值給c
第二次循環
i=2,j=2,m-j+1=2,c=ab
第三次循環
i=3,j=3,m-j+1=1,c=abc,m=6
第四次循環
i=4,j=1,m-j+1=6,c=
abcd
第五次循環
i=5,j=2,m-j+1=5,c=
abcde
第六次循環
i=6,j=3,m-j+1=4,c
=
abcdef
,m=9
第七次循環
i=7,j=1,退出循環
c=
ghabcdef
故本題選C
13.下面的程序段運行后的結果為(

s=1
for
i
in
range(1,6,2):
s=s+i
print(s)
A.15
B.10
C.12
D.9
【答案】B
【解析】
【詳解】
本題主要考查程序的運行。for循環中,變量i的變化是1,3,5,7,當i=7時退出循環,此時s的值為,s=1+1+3+5=10,故本題選B選項。
14.下列有關for循環語句說法正確的是(
)。
A.for
循環變量
in
列表后面必須加冒號
B.For循環所包含的語句是不以縮進為標志的。
C.列表的幾種表達方式有直接羅列,先定義后使用和使用range()函數
D.For循環所包含的語句是以縮進為標志的。
【答案】ACD
【解析】
【詳解】
本題主要考查Python的for循環語句。for
循環變量
in
列表后面必須加冒號、列表的幾種表達方式有直接羅列,先定義后使用和使用range()函數、For循環所包含的語句是以縮進為標志的。故本題選ACD選項。
15.有如下VB程序段,執行該程序段后,a(1)
到a(6)各元素的值可能為(  )
Randomize
For
i=1
To
6
a(i)
=
Int(Rnd
21)
2+11
If
I
Mod
2=1
Then
a(i)
=
a(i)
+2
Else
If
a(i)a(i)=a(i一1)
End
If
Next
i
A.13,
15,
25,
37,
23,
54
B.16,
44,
23,
51,
22,
22
C.19,
37,
23,
45,
53,
53
D.13,37,
11,
45,
33,
51
【答案】C
【解析】
【詳解】
本題考查VB程序段。根據a(i)=Int(Rnd
21)
2+11,a數組是[11,51]之間的奇數,并且一定執行a(i)=a(i)+2,那么a數組是[13,53]之間的奇數,故本題選C。www.21-cn-jy.com
16.小明想用數據移位思想將一段長度為n的序列a(n),
以t位置為分界,把前t-1個數和后n-t+1個數調換前后順序,但保持每段中數據的相對位置不變。例如一段長度為6的序列1、2、3、4、5、6。t=4時,數組a中元素順序變成4、5、6、1、2、3.實現上述功能的代碼如下,下列①、②處填寫正確的是(  )
t
=
Val(Text1.
Text):
m=
2
For
i=t-1
To
1
Step-1
k
=
a(i)
For
j=i
To
n-
1

Next
j

n=n-1
Next
i
A.①a(j+1)=a(j)②a(j+1)=k
B.①a(j)=a(j+1)②a(j+1)=k
C.①a(j+1)=a(j)
②a(j)=k
D.①a(j)=a(j+1)
②a(j)=k
【答案】D
【解析】
【詳解】
本題考查VB程序段。實現數據移位的效果,根據題目中代碼,可做如下解釋。假設t=4,則第一次移位后,數組變為1,2,4,5,6,3。第二次移位數據變為1,4,5,6,2,3。第三次移位得到結果4,5,6,1,2,3。在根據選項將代碼填入,可得到選項D為正確選項。21
cnjy
com
17.字符串數組a中a(1)到a(6)的原始數據為57,3,24,34,
6,120,為了對該數組進行排序操作,編寫了以下VB程序。21
cnjy
com
i=2
Do
While
i<=6
For
j=6
To
i+2
Step
-2
If
a(j)>a(j-2)Then
t=a(j):a(j)=a(j-2):a(j-2)=t
Next
j
i=i+2
Loop
則程序運行之后,數組元素a(1)和a(2)的值分別是(  )
A.6
3
B.57
120
C.120
57
D.6
34
【答案】B
【解析】
【詳解】
本題考查排序算法。i=2,j=6
to
4,經過交換,a(1)到a(6)數據變為57,120,24,3,
6,34。i=4,j=6
to
6,經過交換,a(1)到a(6)數據變為57,120,24,34,
6,3。故數組元素a(1)和a(2)的值分別是57和120,故本題選B。
18.有如下VB程序段:
s
=
Text1.Text:
n
=
Len(s):
Count
=
0
For
i=1
To
n\2
If
Mid(s,
i,1)
<>
Mid(s,
n-i+1,1)
Then
Count
=
Count
+
1
End
If
Next
i
若在文本框Text1中輸入字符串“
200good2”,則Count的值為(  )
A.3
B.1
C.6
D.7
【答案】A
【解析】
【詳解】
本題考查VB程序段。若在文本框Text1中輸入字符串“200good2”,根據If
Mid(s,
i,1)<>Mid(s,
n-i+1,1)Then
Count=Count+1,可知統計字符串前后對應位置不相等字符個數,故本題選A。21·cn·jy·com
二、填空題
19.下面的程序段運行后的結果為__________
s=0
for
i
in
range(1,8,3):
s=s+i
print(s)
【答案】12
【解析】
【詳解】
本題考查的知識點是Python的循環函數。range()函數可創建一個整數列表,一般用在
for
循環中。range(1,8,3)等同于整數列表[1,4,7],故該程序結果為=0+1+4+7=12。【來源:21cnj
y.co
m】
20.運行下列程序,正確的結果是_________________
s=0
for
i
in
range
(1
5):
s=s+i
print("i=",i,"s=",s)
【答案】i=4
s=10
【解析】
【詳解】
本題主要考查程序的運行。for循環中i的變化范圍是從1~4,循環結束時i
=4,s=0+1+2+3+4=10。
三、操作題
21.給定兩個十進制整數X和Y(X<=Y),求出從X到Y的所有整數中出現“1”的個數。例如:X=6,Y=15時,6,7,8,9,10,11,12,13,14,15,出現了7個“1”。小明編寫了一個VB程序,功能如下:在文本框Text1中輸入整數X,在文本框Text2中輸入整數Y,單擊“統計”按鈕Command1后,在列表框List1中顯示X到Y,并在標簽Label3中顯示從X到Y的所有整數中出現“1”的個數。程序運行界面如圖所示,請在劃線處填入合適代碼。
(1)下列程序段中句List1.AddItem中的AddItem是___(填字母:A.屬性名/B.事件名/C.方法名/D.對象)
(2)為了實現上述功能,請在劃線處填入合適的代碼。
PrivateSubCommand1_Click(

DimxAsInteger,yAsInteger,tAsInteger
DimiAsInteger,nAsInteger,countAsInteger
x=Val(Text1.Text)
y=Val(Text2.Text)
count=0
For
i=x
To
y
List1.AddItem
Str(i)
n=i
DoWhile
n>0
If
n
Mod
10=1
Then
count=count+1
End
If
____
Loop
Next
i
Label3.Caption="X到Y之間1的個數有"+____+"個"
End
Sub
(3)如果刪除加框處代碼,并運行程序,在文本框Text1中輸入“40”,在文本框Text2中輸入“10”,單擊“統計”按鈕,則標簽框Label3顯示X到Y之間1的個數有____個。【來源:21·世紀·教育·網】
【答案】C
n=n\10
str(count)
0
【解析】
【詳解】
本題考查VB綜合能力。(1)List1.AddItem中的AddItem是方法名。(2)代碼第一空,根據do
while
n>0,以及If
n
Mod
10=1
Then
count=count+1
End
If,可以判斷,需要將n中的每一個數字取出判斷,故代碼第一空填入n=n\10。(3)代碼第二空,X到Y之間1的個數有count個,注意數據類型,故填入str(count)。(4)如果刪除加框處代碼,若出現x>y,則for
i=x
to
y的for循環不會執行,所以在文本框Text1中輸入“40”,在文本框Text2中輸入“10”時,Label3顯示X到Y之間1的個數有0個。
22.編寫一個VB程序,實現如下功能:輸入s位數字構成的數字字符串(第1位數字不為0),移除k
(0算法分析:要使得到的5位數字最小,首先需保證能取到5個數字,且首位應盡量小,那么取首位數的范圍應保證余下有4個數字,即在前4位中選最小非0的數字。
程序運行時,在文本框Text1中輸入一個數字字符串,在文本框Text2中輸入要移除的數字個數,單擊“運行”按鈕CmdRun后,在標簽Labell顯示得到的最小新數,程序運行界面如圖b所示。
(1)程序運行時,若要在名為Form1的窗體標題上顯示“刪數”,可以在Form
Load事件處理過程中添加語句為_________(單選,填字母:A.
Form1.
Text
="刪數"\B.
Form1.
Caption
="刪數"\C.
Form1.
AddItem"刪數")
(2)實現上述功能的VB程序代碼如下,請在劃線處填入合適的代碼。
Private
Sub
CmdRun_
Click()
Dim
Num
As
String,New_num
As
String
'
Num為輸入的數字字符串
Dim
i
As
Integer,
j
As
Integer,
m
As
Integer,
Dim
As
Integer,
s
As
Integer,
k
As
Integer
Dim
a(30)
As
String,
b(30)
As
Integer
Num
=
Text1.
Text:
s
=
Len(Num)
k
=
Val
(Text2.
Text)
'k為刪除數字個數
For
i=1
To
s
a(i)
=
Mid(Num,i,1)
Nexti
j
=1
m=1
n=①_________
For
i=m+l
To
n
'取第一個非零最小數字
If
Then
m=I
'加框處程序代碼有誤,請改正
Next
i
b(j)=
m
Do
While②________
'取其他最小數字
m=m+1
n=n+1
For
i=m+1
To
n
If
a(i)
<
a(m)
Then
m=
i
Next
i
j
=j+1:b(j)=m
Loop
For
i=
m+1
To
s
'最后直接取的數字
j
=j+1:b(j)=i
Next
i
For
j=1
To
s-
k
'輸出最小數
New_
num
=③________
Next
j
Labell.
Caption
=
New_num
End
Sub
(3)加框處程序代碼有誤,請改正。
____________________________
【答案】B

k
+
1或其他可行答案

j
<
k

j
<>
k

m
<
n

m
<>
n
或其他可行答案

New_num
+
a(b(j))或其他可行答案
a(i)
<
a(m)
And
a(i)
<>
"0"或其他可行答案
21cnjy.com
【解析】
【詳解】
本題考查VB綜合能力。(1)程序運行時,若要在名為Form1的窗體標題上顯示“刪數”,可以在Form
Load事件處理過程中添加語句為Form1.
Caption
=“刪數”。(2)n為最多能從前多少位取出第一個數字,故n=k+1。(2)剩余的數字數量要滿足取出的數量,故填入m
<>
n。(3)將結果顯示,是一個結果變量疊加過程,故填入New_num+a(b(j))。(5)找最小的并且不能為零,故填入a(i)And
a(i)<>“0”。
23.編寫程序,實現以下功能:計算s=1+2/5+3/10+……i/i^2+1
的值,n由鍵盤輸入,計算結果s保留3位小數。
Private
Sub
Command1_Click()
Dim
n
as
integer,
i
as
integer,s
as
double
n=val(inputbox("請輸入n的值"))
s=0:i=1
do
while


i=i+1
Loop
s=

Print
s
End
Sub
(1)實現該程序功能的主體算法結構是____________________。
(2)現有如下VB程序,請完善劃線處①、②內容,完成上述功能。
①_____________________________
②_____________________________2-1-c-n-j-y
(3)劃線處③能使變量s的值四舍五入精確到小數點后第3位小數,以下可以實現的語句是(
)。
A.Int(s
100)
/
100
B.Int(s
1000)
/
1000
C.Int(s
100
+
0.5)
/
100
D.Int((s
1000
+
0.5))
/
1000
【答案】(1)???循環結構??????
(2)????i<=n???????????????s=s+i/(i^2+1)???????????
(3)?????D
【解析】
【詳解】
本題考查VB綜合能力。(1)程序有三大結構,實現該程序功能的主體算法結構是循環結構。(2)根據題干,do
while循環中是根據n的值執行循環次數,故條件為
i<=n。(3)根據題干,計算公式是s=s+i/(i^2+1)。(4)int函數是不超過參數的最大整數,故使變量s的值四舍五入精確到小數點后第3位小數,可以實現的語句是Int((s
1000
+
0.5))/1000。
四、判斷題
24.循環結構表示程序反復執行某個或某些操作,只有用戶干預才能終止循環。(_______)
【答案】錯
【解析】
【分析】
【詳解】
本題考查循環結構
循環結構表示程序反復執行某個或某些操作,直到判斷條件為假(或為真)時才可終止循環。表述錯誤
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. 主站蜘蛛池模板: 楚雄市| 嘉荫县| 遵义县| 通化市| 申扎县| 凤城市| 龙江县| 安平县| 酒泉市| 扶绥县| 吴江市| 锦屏县| 金华市| 丹巴县| 吴桥县| 十堰市| 稻城县| 青海省| 霍山县| 封开县| 玉林市| 巴东县| 衡阳县| 南召县| 长岭县| 乌兰察布市| 陆良县| 富宁县| 德州市| 刚察县| 万宁市| 内黄县| 轮台县| 德兴市| 类乌齐县| 新巴尔虎右旗| 萨嘎县| 左贡县| 九龙城区| 苏州市| 镇赉县|