1、编程题要求VB编程练习题说明:做练习时,工程文件、标准模块及main过程可以自己创建,本练习只提供一个样例。第一题【问题描述】请打开指定文件夹下的工程文件Count.vbp,并在标准模块Module1中的main过程中实现如下功能:在给定的数据序列中,统计指定的关键字在序列中出现的次数,并将结果写入输出文件out.Txt中。说明:1.输出语句使用Print,若同一行上输出多个表达式,多个表达式采用紧凑格式输出。2.打开文件时,使用相对路径,不使用绝对路径,即直接使用文件名即可。【输入文件】输入文件in.txt有2行,第1行中第1个数表示数据序列中数的个数,第1行中第2个数表示要查找的关键字,第
2、2行表示给定的数据序列。每个数之间用空格隔开。【输出文件】输出文件out.Txt 是1行,表示统计结果。【输入样例】5 5534 23 55 12 55【输出样例】2Sub main() Dim n As Integer, num As Long Dim i As Integer, x As Long Dim count As Integer Open in.txt For Input As #1 Open out.txt For Output As #2 Input #1, n, num For i = 1 To n Input #1, x If x = num Then count = c
3、ount + 1 Next i Print #2, count Close #1, #2End Sub第二题【问题描述】请打开指定文件夹下的工程文件CountWord.vbp,并在标准模块Module1中的main过程中实现如下功能:在给定的单词序列中,统计指定的关键字在序列中出现的次数,并将结果写入输出文件out.Txt中。说明:1.输出语句使用Print,若同一行上输出多个表达式,多个表达式采用紧凑格式输出。2.打开文件时,使用相对路径,不使用绝对路径,即直接使用文件名即可。【输入文件】输入文件in.txt有2行,第1行中第1个数表示单词序列中单词的个数,第1行中第2个数据表示要查找的关键
4、字,第2行表示给定的单词序列。每个单词之间用逗号隔开。【输出文件】输出文件out.Txt 是1行,表示统计结果。【输入样例】5 dogCat,dog,good,bear,character【输出样例】1Sub main() Dim n As Integer, word As String Dim i As Integer, s As String Dim count As Integer Open in.txt For Input As #1 Open out.txt For Output As #2 Input #1, n, word For i = 1 To n Input #1, s I
5、f s = word Then count = count + 1 Next i Print #2, count Close #1, #2End Sub第三题【问题描述】求最大公约数的算法思想:(最小公倍数=两个整数之积/最大公约数) (1) 对于已知两数m,n; (2) m除以n得余数r; (3) 若r=0,则n为求得的最大公约数,算法结束;否则执行(4); (4) mn,nr,再重复执行(2)。请打开指定文件夹下的工程文件gcd.vbp,并在标准模块Module1中的main过程中实现如下功能:从输入文件in.txt中读入给定的两个数,并求出这两个数的最大公约数和最小公倍数,并将结果写入到
6、输出文件out.Txt中。说明:1.输出语句使用Print,若同一行上输出多个表达式,多个表达式采用紧凑格式输出。2.打开文件时,使用相对路径,不使用绝对路径,即直接使用文件名即可。【输入文件】输入文件in.txt有1行两个数,用空格分开,表示给定的数据。【输出文件】输出文件out.Txt 有1行两个数,第一个数表示最大公约数,第二个数表示最小公倍数,两个数之间用空格分开。【输入样例】6 9【输出样例】 3 18Sub main() Dim m As Long, n As Long, r As Long, t As Long Dim m1 As Long, n1 As Long Open in
7、.txt For Input As #1 Open out.txt For Output As #2 Input #1, m, n m1 = m: n1 = n Do r = m Mod n: m = n: n = r: Loop Until r = 0 Print #2, m; m1 / m * n1 Close #1, #2End Sub第四题【问题描述】基本思想:n个有序数(从小到大)存放在数组a(1)a(n)中,要插入的数x,把数x插到有序数列中,插入后数列仍然有序。请打开指定文件夹下的工程文件insert.vbp,并在标准模块Module1中的main过程中实现如下功能:从输入文件i
8、n.txt中读入给定的数据,完成上述思想,并将结果写入到输出文件out.Txt中。说明:1.输出语句使用Print,若同一行上输出多个表达式,多个表达式采用紧凑格式输出。2.打开文件时,使用相对路径,不使用绝对路径,即直接使用文件名即可。【输入文件】输入文件in.txt有2行,第1行有两个数,用空格分开;第1个数表示有序数列中数的个数,第二个数表示要插入的数;第二行表示有序数列。【输出文件】输出文件out.Txt 有1行,表示插入指定数后的有序数列,各个数之间用空格分开。【输入样例】5 2412 15 34 45 56【输出样例】 12 15 24 34 45 56Option Base 1S
9、ub main() Dim n As Integer, num As Long Dim a() As Long, i As Integer Open in.txt For Input As #1 Open out.txt For Output As #2 Input #1, n, num ReDim a(n + 1) For i = 1 To n Input #1, a(i) Next i i = n Do While a(i) num And i = 1 a(i + 1) = a(i) i = i - 1 Loop a(i + 1) = num For i = 1 To n + 1 Prin
10、t #2, a(i); Next i第五题【问题描述】字母循环加密的基本思想是:将a-z,AZ各看成一个环,将每个字母加一序数K,即用它后(前)面的第K个字母代替。例如序数k为2,这时大写字母:AC,BD,ZB。 小与字母:ac,bd,zb。请打开指定文件夹下的工程文件jiami.vbp,并在标准模块Module1中的main过程中实现如下功能:读入输入文件in.txt中的数据,实现上述思想,并将结果写入到输出文件out.Txt中。说明:1.输出语句使用Print,若同一行上输出多个表达式,多个表达式采用紧凑格式输出。2.打开文件时,使用相对路径,不使用绝对路径,即直接使用文件名即可。【输入文
11、件】输入文件in.txt有2行,第1行表示每个字母要加的序数,第2行表示待加密的字母序列。【输出文件】输出文件out.Txt 是1行,表示加密后的字母序列。【输入样例】3How are you【输出样例】Krz duh brxSub main()Dim x As String, y As String, m As String, i As IntegerDim key As IntegerDim n As IntegerOpen in.txt For Input As #1Open out.txt For Output As #2Input #1, keyInput #1, xm = For
12、i = 1 To Len(x) y = Mid(x, i, 1) If y = A And y 26 Then n = n - 26 If n = a And y 26 Then n = n - 26 If n max Then max = a(i, j) i1 = i j1 = j End If Next j Next i Print #2, i1; j1 Close #1, #2End Sub第七题素数的定义:除了1和自身没有其他约数的正整数称为素数。经过证明,如果正整数m在2INT()的范围内没有约数,则m为素数。素数判断的基本方法:将正整数m作为被除数,将2INT()之间的各正整数作为
13、除数,如果都不能整除,则m是素数,否则m不是素数。请打开指定文件夹下的工程文件prime.vbp,并在标准模块Module1中的main过程中实现如下功能:从输入文件in.txt中读入给定数,判断该数是不是素数,若是,则在输出文件out.Txt中写入True,若不是素数,则在输出文件out.Txt中写入False。说明:1.输出语句使用Print,若同一行上输出多个表达式,多个表达式采用紧凑格式输出。2.打开文件时,使用相对路径,不使用绝对路径,即直接使用文件名即可。【输入文件】输入文件in.txt有1行,表示给定的正整数。【输出文件】输出文件out.Txt 是1行,表示是否素数的判断结果。【
14、输入样例】17【输出样例】 TrueSub main() Dim n As Long, i As Long Open in.txt For Input As #1 Open out.txt For Output As #2 Input #1, n For i = 2 To Int(Sqr(n) If n Mod i = 0 Then Exit For End If Next If i Int(Sqr(n) Then Print #2, True Else Print #2, False End IfEnd Sub第八题素数的定义:除了1和自身没有其他约数的正整数称为素数。经过证明,如果正整数m
15、在2INT( )的范围内没有约数,则m为素数。素数判断的基本方法:将正整数m作为被除数,将2INT( )之间的各正整数作为除数,如果都不能整除,则m是素数,否则m不是素数。请打开指定文件夹下的工程文件primenumber.vbp,并在标准模块Module1中的main过程中实现如下功能:从输入文件in.txt中读入一个正整数,求出小于等于该数的所有素数,并将结果写入到输出文件out.Txt中。说明:1.输出语句使用Print,若同一行上输出多个表达式,多个表达式采用紧凑格式输出。2.打开文件时,使用相对路径,不使用绝对路径,即直接使用文件名即可。【输入文件】输入文件in.txt有1行,表示给
16、定的正整数。【输出文件】输出文件out.Txt 有1行,表示指定范围内的所有素数,每个素数之间用空格分开。【输入样例】20【输出样例】 2 3 5 7 11 13 17 19Sub main() Dim N As Long, i As Long, K As Long Dim maxN As Long Open in.txt For Input As #2 Input #2, maxN Open out.txt For Output As #1 For N = 2 To maxN K = Int(Sqr(N) For i = 2 To K If N Mod i = 0 Then Exit For
17、 Next i If i K Then Print #1, N; End If Next N Close #1, #2End Sub第九题【问题描述】折半查找思想:设n个有序数(从小到大)存放在数组a(0)-a(n-1)中,要查找的数为x。用变量bot、top、mid 分别表示查找数据范围的底部(数组下界)、顶部(数组的上界)和中间,mid=(top+bot)2。若x=a(mid),则已找到退出循环,否则进行下面的判断;若xa(mid),x必定落在mid+1和top的范围之内,所以修改bot=mid+1;在确定了新的查找范围后,重复进行以上比较。请打开指定文件夹下的工程文件Search.vbp
18、,并在标准模块Module1中的main过程中实现如下功能:在给定的有序数列中,利用折半查找算法查找指定关键字,如果找到则将查找的次数写入输出文件out.Txt中;若没找到则在输出文件out.Txt中写入-1。说明:1.输出语句使用Print,若同一行上输出多个表达式,多个表达式采用紧凑格式输出。2.打开文件时,使用相对路径,不使用绝对路径,即直接使用文件名即可。【输入文件】输入文件in.txt有2行,第1行中第1个数表示数列中数的个数,第1行中第2个数表示要查找的关键字,第2行表示给定的有序数列。每个数之间用空格隔开。【输出文件】输出文件out.Txt 是1行,表示查找关键字所用次数,若没找
19、到则写入-1。【输入样例】5 5612 34 45 56 58【输出样例】2Option Base 1Sub main()Dim find As BooleanDim a() As Long, x As LongDim i%, top%, bot%, mid%, n%Open in.txt For Input As #1Open out.txt For Output As #2Input #1, n, xReDim a(n)For i = 1 To n Input #1, a(i)Nexttop = n: bot = 1find = False find为是否找到的标志变量i = 0Do Wh
20、ile top = bot And find = False mid = (top + bot) 2 i = i + 1 If x = a(mid) Then find = True ElseIf x a(mid) Then top = mid - 1 Else bot = mid + 1 End IfLoop If find = False Then Print #2, -1Else Print #2, iEnd IfClose #1, #2End Sub第十题【问题描述】请打开考号文件夹下的工程文件sort.vbp,并在标准模块Module1中的main过程中实现如下功能:将给定的一组数按
21、照从小到大的顺序排序,并将结果写入到输出文件out.Txt中,所需数据从输入文件in.txt读入。说明:1.输出语句使用Print,若同一行上输出多个表达式,多个表达式采用紧凑格式输出。2.打开文件时,使用相对路径,不使用绝对路径,即直接使用文件名即可。【输入文件】输入文件in.txt有2行,第1行表示参加排序的数的个数,第2行表示要排序的一组数。【输出文件】输出文件out.Txt 是1行,表示排序后的结果,各个数字之间用空格隔开。【输入样例】5 53 34 4 45 10【输出样例】4 10 34 45 53Option Base 1Sub main()Dim a() As Long, t
22、As LongDim i%, j%, n%Open in.txt For Input As #1Open out.txt For Output As 2Input #1, nReDim a(n)For i = 1 To n Input #1, a(i)NextFor i = 1 To n - 1 For j = i + 1 To n If a(j) a(i) Then t = a(i): a(i) = a(j): a(j) = t a(i)与a(j)交换 End If Next j Print #2, a(i); 排好一个输出一个Next iPrint #2, a(n) 输出最后一个数Clos
23、e #1, #2End Sub第十一题【问题描述】请打开考号文件夹下的工程文件string_2.vbp,并在标准模块Module1中的main过程中实现如下功能:将给定字符串中的所有数字字符(09)去掉,并将结果写入到输出文件out.Txt中,给定字符从输入文件in.txt读入。说明:1.输出语句使用Print,若同一行上输出多个表达式,多个表达式采用紧凑格式输出。2.打开文件时,使用相对路径,不使用绝对路径,即直接使用文件名即可。【输入文件】输入文件in.txt有1行,表示源字符串。【输出文件】输出文件out.Txt 也是1行,表示去掉数字字符(09)后的结果字符串。【输入样例】 Abc01
24、9a0b123【输出样例】AbcabSub main()Dim i%, s$, x$, t$Open in.txt For Input As #1Open out.txt For Output As #2Input #1, st = For i = 1 To Len(s) x = Mid(s, i, 1) If x 9 Then t = t & x End IfNextPrint #2, tClose #1, #2End Sub第十二题【问题描述】合并排序是将两个有序数列(均为升序)A、B合并成另一个有序数列C,合并后C仍然为升序)基本思想:1)先在A、B数列中各取第一个元素进行比较,将小的元
25、素放入C数列中;2)取小的元素所在数列的下一个元素与另一数列中上次比较时较大的元素再进行比较,并将小的元素放入C数列中。重复2),直到某个数列已全部放入C中;3)将另一个数列的剩余元素抄入到C数列中,合并排序完成。请打开指定文件夹下的工程文件union.vbp,并在标准模块Module1中的main过程中实现如下功能:读入输入文件in.txt中的数据,实现上述思想,并将结果写入到输出文件out.Txt中。说明:1.输出语句使用Print,若同一行上输出多个表达式,多个表达式采用紧凑格式输出。2.打开文件时,使用相对路径,不使用绝对路径,即直接使用文件名即可。【输入文件】输入文件in.txt有3
26、行,第1行中有两个用空格隔开的数,第1个数表示参与合并的的第1个数列的数据个数,第2个数表示参与合并的第2个数列的数据个数;第2、3行,分别表示参与合并的两个数列。【输出文件】输出文件out.Txt 是1行,表示合并排序后的结果,各个数字之间用空格隔开。【输入样例】3 44 8 105 7 13 18【输出样例】4 5 7 8 10 13 18Option Base 1Sub main() Dim a(), b(), c() Dim i As Integer, m As Integer, n As Integer Dim x As Integer, y As Integer, j As Integer Open in.txt For Input As #1 Open out.txt For Output As #2 Input #1, m, n ReDim a(m) ReDim b(n) ReDim c(m + n) For i = 1 To m Input #1, a(i) Next i For i = 1 To n Input #1, b(i) Next i x = 1
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1