编程题要求文档格式.docx
《编程题要求文档格式.docx》由会员分享,可在线阅读,更多相关《编程题要求文档格式.docx(23页珍藏版)》请在冰豆网上搜索。
Nexti
Print#2,count
Close#1,#2
EndSub
第二题
请打开指定文件夹下的工程文件CountWord.vbp,并在标准模块Module1中的main过程中实现如下功能:
在给定的单词序列中,统计指定的关键字在序列中出现的次数,并将结果写入输出文件out.Txt中。
输入文件in.txt有2行,第1行中第1个数表示单词序列中单词的个数,第1行中第2个数据表示要查找的关键字,第2行表示给定的单词序列。
每个单词之间用逗号隔开。
5dog
Cat,dog,good,bear,character
1
DimnAsInteger,wordAsString
DimiAsInteger,sAsString
ForInputAs#1
Input#1,n,word
Input#1,s
Ifs=wordThencount=count+1
第三题
求最大公约数的算法思想:
(最小公倍数=两个整数之积/最大公约数)
(1)对于已知两数m,n;
(2)m除以n得余数r;
(3)若r=0,则n为求得的最大公约数,算法结束;
否则执行(4);
(4)m←n,n←r,再重复执行
(2)。
请打开指定文件夹下的工程文件gcd.vbp,并在标准模块Module1中的main过程中实现如下功能:
从输入文件in.txt中读入给定的两个数,并求出这两个数的最大公约数和最小公倍数,并将结果写入到输出文件out.Txt中。
输入文件in.txt有1行两个数,用空格分开,表示给定的数据。
输出文件out.Txt有1行两个数,第一个数表示最大公约数,第二个数表示最小公倍数,两个数之间用空格分开。
69
318
DimmAsLong,nAsLong,rAsLong,tAsLong
Dimm1AsLong,n1AsLong
Input#1,m,n
m1=m:
n1=n
Do
r=mModn:
m=n:
n=r:
LoopUntilr=0
Print#2,m;
m1/m*n1
第四题
基本思想:
n个有序数(从小到大)存放在数组a
(1)—a(n)中,要插入的数x,把数x插到有序数列中,插入后数列仍然有序。
请打开指定文件夹下的工程文件insert.vbp,并在标准模块Module1中的main过程中实现如下功能:
从输入文件in.txt中读入给定的数据,完成上述思想,并将结果写入到输出文件out.Txt中。
输入文件in.txt有2行,第1行有两个数,用空格分开;
第1个数表示有序数列中数的个数,第二个数表示要插入的数;
第二行表示有序数列。
输出文件out.Txt有1行,表示插入指定数后的有序数列,各个数之间用空格分开。
524
1215344556
121524344556
OptionBase1
DimnAsInteger,numAsLong
Dima()AsLong,iAsInteger
ReDima(n+1)
Input#1,a(i)
i=n
DoWhilea(i)>
numAndi>
=1
a(i+1)=a(i)
i=i-1
Loop
a(i+1)=num
Fori=1Ton+1
Print#2,a(i);
第五题
字母循环加密的基本思想是:
将a-z,A-Z各看成一个环,将每个字母加一序数K,即用它后(前)面的第K个字母代替。
例如序数k为2,这时大写字母:
"
A"
→"
C"
,"
B"
D"
,…"
Z"
。
小与字母:
a"
c"
b"
d"
z"
请打开指定文件夹下的工程文件jiami.vbp,并在标准模块Module1中的main过程中实现如下功能:
读入输入文件in.txt中的数据,实现上述思想,并将结果写入到输出文件out.Txt中。
输入文件in.txt有2行,第1行表示每个字母要加的序数,第2行表示待加密的字母序列。
输出文件out.Txt是1行,表示加密后的字母序列。
3
Howareyou
Krzduhbrx
DimxAsString,yAsString,mAsString,iAsInteger
DimkeyAsInteger
DimnAsInteger
Open"
Input#1,key
Input#1,x
m="
Fori=1ToLen(x)
y=Mid(x,i,1)
Ify>
="
Andy<
Then
n=Asc(y)-64+key
Ifn>
26Thenn=n-26
Ifn<
1Thenn=n+26
y=Chr(64+n)
EndIf
n=Asc(y)-96+key
y=Chr(96+n)
m=m&
y
Nexti
Print#2,m
Close#1,#2
第六题
请打开指定文件夹下的工程文件max.vbp,并在标准模块Module1中的main过程中实现如下功能:
从输入文件in.txt中读入给定的矩阵,求出矩阵中最大元素所在的行和列,并将结果写入到输出文件out.Txt中。
输入文件in.txt有多行,第1行有两个数,用空格分开;
第1个数表示矩阵的行数,第2个数表示矩阵的列数。
其他各行为矩阵数据。
输出文件out.Txt有1行两个数,表示最大元素的行号和列号,行号和列号之间用空格隔开。
33
121534
455610
437820
32
DimmAsInteger,nAsInteger
Dima()AsInteger,iAsInteger,jAsInteger
DimmaxAsInteger,i1AsInteger,j1AsInteger
ReDima(m,n)
max=-32768
Fori=1Tom
Forj=1Ton
Input#1,a(i,j)
Ifa(i,j)>
maxThen
max=a(i,j)
i1=i
j1=j
Nextj
Print#2,i1;
j1
第七题
素数的定义:
除了1和自身没有其他约数的正整数称为素数。
经过证明,如果正整数m在2~INT(
)的范围内没有约数,则m为素数。
素数判断的基本方法:
将正整数m作为被除数,将2~INT(
)之间的各正整数作为除数,如果都不能整除,则m是素数,否则m不是素数。
请打开指定文件夹下的工程文件prime.vbp,并在标准模块Module1中的main过程中实现如下功能:
从输入文件in.txt中读入给定数,判断该数是不是素数,若是,则在输出文件out.Txt中写入True,若不是素数,则在输出文件out.Txt中写入False。
输入文件in.txt有1行,表示给定的正整数。
输出文件out.Txt是1行,表示是否素数的判断结果。
17
True
DimnAsLong,iAsLong
Input#1,n
Fori=2ToInt(Sqr(n))
IfnModi=0Then
ExitFor
Next
Ifi>
Int(Sqr(n))Then
Print#2,True
Else
Print#2,False
第八题
经过证明,如果正整数m在2~INT()的范围内没有约数,则m为素数。
将正整数m作为被除数,将2~INT()之间的各正整数作为除数,如果都不能整除,则m是素数,否则m不是素数。
请打开指定文件夹下的工程文件primenumber.vbp,并在标准模块Module1中的main过程中实现如下功能:
从输入文件in.txt中读入一个正整数,求出小于等于该数的所有素数,并将结果写入到输出文件out.Txt中。
输出文件out.Txt有1行,表示指定范围内的所有素数,每个素数之间用空格分开。
20
235711131719
DimNAsLong,iAsLong,KAsLong
DimmaxNAsLong
ForInputAs#2
Input#2,maxN
ForOutputAs#1
ForN=2TomaxN
K=Int(Sqr(N))
Fori=2ToK
IfNModi=0ThenExitFor
KThen
Print#1,N;
NextN
第九题
折半查找思想:
设n个有序数(从小到大)存放在数组a(0)----a(n-1)中,要查找的数为x。
用变量bot、top、mid分别表示查找数据范围的底部(数组下界)、顶部(数组的上界)和中间,mid=(top+bot)\2。
若x=a(mid),则已找到退出循环,否则进行下面的判断;
若x<
a(mid),x必定落在bot和mid-1的范围之内,所以修改top=mid-1;
若x>
a(mid),x必定落在mid+1和top的范围之内,所以修改bot=mid+1;
在确定了新的查找范围后,重复进行以上比较。
请打开指定文件夹下的工程文件Search.vbp,并在标准模块Module1中的main过程中实现如下功能:
在给定的有序数列中,利用折半查找算法查找指定关键字,如果找到则将查找的次数写入输出文件out.Txt中;
若没找到则在输出文件out.Txt中写入-1。
输入文件in.txt有2行,第1行中第1个数表示数列中数的个数,第1行中第2个数表示要查找的关键字,第2行表示给定的有序数列。
输出文件out.Txt是1行,表示查找关键字所用次数,若没找到则写入-1。
556
1234455658
DimfindAsBoolean
Dima()AsLong,xAsLong
Dimi%,top%,bot%,mid%,n%
Input#1,n,x
ReDima(n)
Fori=1Ton
Next
top=n:
bot=1
find=False'
find为是否找到的标志变量
i=0
DoWhiletop>
=botAndfind=False
mid=(top+bot)\2
i=i+1
Ifx=a(mid)Then
find=True
ElseIfx<
a(mid)Then
top=mid-1
bot=mid+1
Loop
Iffind=FalseThen
Print#2,-1
Else
Print#2,i
EndIf
第十题
请打开考号文件夹下的工程文件sort.vbp,并在标准模块Module1中的main过程中实现如下功能:
将给定的一组数按照从小到大的顺序排序,并将结果写入到输出文件out.Txt中,所需数据从输入文件in.txt读入。
输入文件in.txt有2行,第1行表示参加排序的数的个数,第2行表示要排序的一组数。
输出文件out.Txt是1行,表示排序后的结果,各个数字之间用空格隔开。
5
533444510
410344553
Dima()AsLong,tAsLong
Dimi%,j%,n%
ForOutputAs2
Input#1,n
Fori=1Ton-1
Forj=i+1Ton
Ifa(j)<
a(i)Then
t=a(i):
a(i)=a(j):
a(j)=t'
a(i)与a(j)交换
'
排好一个输出一个
Print#2,a(n)'
输出最后一个数
第十一题
请打开考号文件夹下的工程文件string_2.vbp,并在标准模块Module1中的main过程中实现如下功能:
将给定字符串中的所有数字字符(0~9)去掉,并将结果写入到输出文件out.Txt中,给定字符从输入文件in.txt读入。
输入文件in.txt有1行,表示源字符串。
输出文件out.Txt也是1行,表示去掉数字字符(0~9)后的结果字符串。
Abc019a0b123
Abcab
Dimi%,s$,x$,t$
Input#1,s
t="
Fori=1ToLen(s)
x=Mid(s,i,1)
Ifx<
"
0"
Orx>
9"
t=t&
x
Print#2,t
第十二题
合并排序是将两个有序数列(均为升序)A、B合并成另一个有序数列C,合并后C仍然为升序)
1)先在A、B数列中各取第一个元素进行比较,将小的元素放入C数列中;
2)取小的元素所在数列的下一个元素与另一数列中上次比较时较大的元素再进行比较,并将小的元素放入C数列中。
重复2),直到某个数列已全部放入C中;
3)将另一个数列的剩余元素抄入到C数列中,合并排序完成。
请打开指定文件夹下的工程文件union.vbp,并在标准模块Module1中的main过程中实现如下功能:
输入文件in.txt有3行,第1行中有两个用空格隔开的数,第1个数表示参与合并的的第1个数列的数据个数,第2个数表示参与合并的第2个数列的数据个数;
第2、3行,分别表示参与合并的两个数列。
输出文件out.Txt是1行,表示合并排序后的结果,各个数字之间用空格隔开。
34
4810
571318
4578101318
Dima(),b(),c()
DimiAsInteger,mAsInteger,nAsInteger
DimxAsInteger,yAsInteger,jAsInteger
ReDima(m)
ReDimb(n)
ReDimc(m+n)
Input#1,b(i)
x=1