编程题要求.docx

上传人:b****6 文档编号:4422199 上传时间:2022-12-01 格式:DOCX 页数:23 大小:21.83KB
下载 相关 举报
编程题要求.docx_第1页
第1页 / 共23页
编程题要求.docx_第2页
第2页 / 共23页
编程题要求.docx_第3页
第3页 / 共23页
编程题要求.docx_第4页
第4页 / 共23页
编程题要求.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

编程题要求.docx

《编程题要求.docx》由会员分享,可在线阅读,更多相关《编程题要求.docx(23页珍藏版)》请在冰豆网上搜索。

编程题要求.docx

编程题要求

VB编程练习题

说明:

做练习时,工程文件、标准模块及main过程可以自己创建,本练习只提供一个样例。

第一题

【问题描述】

请打开指定文件夹下的工程文件Count.vbp,并在标准模块Module1中的main过程中实现如下功能:

在给定的数据序列中,统计指定的关键字在序列中出现的次数,并将结果写入输出文件out.Txt中。

说明:

1.输出语句使用Print,若同一行上输出多个表达式,多个表达式采用紧凑格式输出。

2.打开文件时,使用相对路径,不使用绝对路径,即直接使用文件名即可。

【输入文件】

输入文件in.txt有2行,第1行中第1个数表示数据序列中数的个数,第1行中第2个数表示要查找的关键字,第2行表示给定的数据序列。

每个数之间用空格隔开。

【输出文件】

输出文件out.Txt是1行,表示统计结果。

【输入样例】

 555

3423551255

【输出样例】

 2

Submain()

DimnAsInteger,numAsLong

DimiAsInteger,xAsLong

DimcountAsInteger

Open"in.txt"ForInputAs#1

Open"out.txt"ForOutputAs#2

Input#1,n,num

Fori=1Ton

Input#1,x

Ifx=numThencount=count+1

Nexti

Print#2,count

Close#1,#2

EndSub

第二题

【问题描述】

请打开指定文件夹下的工程文件CountWord.vbp,并在标准模块Module1中的main过程中实现如下功能:

在给定的单词序列中,统计指定的关键字在序列中出现的次数,并将结果写入输出文件out.Txt中。

说明:

1.输出语句使用Print,若同一行上输出多个表达式,多个表达式采用紧凑格式输出。

2.打开文件时,使用相对路径,不使用绝对路径,即直接使用文件名即可。

【输入文件】

输入文件in.txt有2行,第1行中第1个数表示单词序列中单词的个数,第1行中第2个数据表示要查找的关键字,第2行表示给定的单词序列。

每个单词之间用逗号隔开。

【输出文件】

输出文件out.Txt是1行,表示统计结果。

【输入样例】

 5dog

Cat,dog,good,bear,character

【输出样例】

 1

Submain()

DimnAsInteger,wordAsString

DimiAsInteger,sAsString

DimcountAsInteger

Open"in.txt"ForInputAs#1

Open"out.txt"ForOutputAs#2

Input#1,n,word

Fori=1Ton

Input#1,s

Ifs=wordThencount=count+1

Nexti

Print#2,count

Close#1,#2

EndSub

第三题

【问题描述】

求最大公约数的算法思想:

(最小公倍数=两个整数之积/最大公约数)

(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中。

说明:

1.输出语句使用Print,若同一行上输出多个表达式,多个表达式采用紧凑格式输出。

2.打开文件时,使用相对路径,不使用绝对路径,即直接使用文件名即可。

【输入文件】

输入文件in.txt有1行两个数,用空格分开,表示给定的数据。

【输出文件】

输出文件out.Txt有1行两个数,第一个数表示最大公约数,第二个数表示最小公倍数,两个数之间用空格分开。

【输入样例】

 69

【输出样例】

 318

Submain()

DimmAsLong,nAsLong,rAsLong,tAsLong

Dimm1AsLong,n1AsLong

Open"in.txt"ForInputAs#1

Open"out.txt"ForOutputAs#2

Input#1,m,n

m1=m:

n1=n

Do

r=mModn:

m=n:

n=r:

LoopUntilr=0

Print#2,m;m1/m*n1

Close#1,#2

EndSub

第四题

【问题描述】

基本思想:

n个有序数(从小到大)存放在数组a

(1)—a(n)中,要插入的数x,把数x插到有序数列中,插入后数列仍然有序。

请打开指定文件夹下的工程文件insert.vbp,并在标准模块Module1中的main过程中实现如下功能:

从输入文件in.txt中读入给定的数据,完成上述思想,并将结果写入到输出文件out.Txt中。

说明:

1.输出语句使用Print,若同一行上输出多个表达式,多个表达式采用紧凑格式输出。

2.打开文件时,使用相对路径,不使用绝对路径,即直接使用文件名即可。

【输入文件】

输入文件in.txt有2行,第1行有两个数,用空格分开;第1个数表示有序数列中数的个数,第二个数表示要插入的数;第二行表示有序数列。

【输出文件】

输出文件out.Txt有1行,表示插入指定数后的有序数列,各个数之间用空格分开。

【输入样例】

 524

1215344556

【输出样例】

 121524344556

OptionBase1

Submain()

DimnAsInteger,numAsLong

Dima()AsLong,iAsInteger

Open"in.txt"ForInputAs#1

Open"out.txt"ForOutputAs#2

Input#1,n,num

ReDima(n+1)

Fori=1Ton

Input#1,a(i)

Nexti

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);

Nexti

第五题

【问题描述】

字母循环加密的基本思想是:

将a-z,A-Z各看成一个环,将每个字母加一序数K,即用它后(前)面的第K个字母代替。

例如序数k为2,这时大写字母:

"A"→"C","B"→"D",…"Z"→"B"。

小与字母:

"a"→"c","b"→"d",…"z"→"b"。

请打开指定文件夹下的工程文件jiami.vbp,并在标准模块Module1中的main过程中实现如下功能:

读入输入文件in.txt中的数据,实现上述思想,并将结果写入到输出文件out.Txt中。

说明:

1.输出语句使用Print,若同一行上输出多个表达式,多个表达式采用紧凑格式输出。

2.打开文件时,使用相对路径,不使用绝对路径,即直接使用文件名即可。

【输入文件】

输入文件in.txt有2行,第1行表示每个字母要加的序数,第2行表示待加密的字母序列。

【输出文件】

输出文件out.Txt是1行,表示加密后的字母序列。

【输入样例】

3

Howareyou

【输出样例】

 Krzduhbrx

Submain()

DimxAsString,yAsString,mAsString,iAsInteger

DimkeyAsInteger

DimnAsInteger

Open"in.txt"ForInputAs#1

Open"out.txt"ForOutputAs#2

Input#1,key

Input#1,x

m=""

Fori=1ToLen(x)

y=Mid(x,i,1)

Ify>="A"Andy<="Z"Then

n=Asc(y)-64+key

Ifn>26Thenn=n-26

Ifn<1Thenn=n+26

y=Chr(64+n)

EndIf

Ify>="a"Andy<="z"Then

n=Asc(y)-96+key

Ifn>26Thenn=n-26

Ifn<1Thenn=n+26

y=Chr(96+n)

EndIf

m=m&y

Nexti

Print#2,m

Close#1,#2

EndSub

 

第六题

【问题描述】

请打开指定文件夹下的工程文件max.vbp,并在标准模块Module1中的main过程中实现如下功能:

从输入文件in.txt中读入给定的矩阵,求出矩阵中最大元素所在的行和列,并将结果写入到输出文件out.Txt中。

说明:

1.输出语句使用Print,若同一行上输出多个表达式,多个表达式采用紧凑格式输出。

2.打开文件时,使用相对路径,不使用绝对路径,即直接使用文件名即可。

【输入文件】

输入文件in.txt有多行,第1行有两个数,用空格分开;第1个数表示矩阵的行数,第2个数表示矩阵的列数。

其他各行为矩阵数据。

【输出文件】

输出文件out.Txt有1行两个数,表示最大元素的行号和列号,行号和列号之间用空格隔开。

【输入样例】

 33

121534

455610

437820

【输出样例】

32

OptionBase1

Submain()

DimmAsInteger,nAsInteger

Dima()AsInteger,iAsInteger,jAsInteger

DimmaxAsInteger,i1AsInteger,j1AsInteger

Open"in.txt"ForInputAs#1

Open"out.txt"ForOutputAs#2

Input#1,m,n

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

EndIf

Nextj

Nexti

Print#2,i1;j1

Close#1,#2

EndSub

第七题

素数的定义:

除了1和自身没有其他约数的正整数称为素数。

经过证明,如果正整数m在2~INT(

)的范围内没有约数,则m为素数。

素数判断的基本方法:

将正整数m作为被除数,将2~INT(

)之间的各正整数作为除数,如果都不能整除,则m是素数,否则m不是素数。

请打开指定文件夹下的工程文件prime.vbp,并在标准模块Module1中的main过程中实现如下功能:

从输入文件in.txt中读入给定数,判断该数是不是素数,若是,则在输出文件out.Txt中写入True,若不是素数,则在输出文件out.Txt中写入False。

说明:

1.输出语句使用Print,若同一行上输出多个表达式,多个表达式采用紧凑格式输出。

2.打开文件时,使用相对路径,不使用绝对路径,即直接使用文件名即可。

【输入文件】

输入文件in.txt有1行,表示给定的正整数。

【输出文件】

输出文件out.Txt是1行,表示是否素数的判断结果。

【输入样例】

 17

【输出样例】

 True

Submain()

DimnAsLong,iAsLong

Open"in.txt"ForInputAs#1

Open"out.txt"ForOutputAs#2

Input#1,n

Fori=2ToInt(Sqr(n))

IfnModi=0Then

ExitFor

EndIf

Next

Ifi>Int(Sqr(n))Then

Print#2,True

Else

Print#2,False

EndIf

EndSub

 

第八题

素数的定义:

除了1和自身没有其他约数的正整数称为素数。

经过证明,如果正整数m在2~INT()的范围内没有约数,则m为素数。

素数判断的基本方法:

将正整数m作为被除数,将2~INT()之间的各正整数作为除数,如果都不能整除,则m是素数,否则m不是素数。

请打开指定文件夹下的工程文件primenumber.vbp,并在标准模块Module1中的main过程中实现如下功能:

从输入文件in.txt中读入一个正整数,求出小于等于该数的所有素数,并将结果写入到输出文件out.Txt中。

说明:

1.输出语句使用Print,若同一行上输出多个表达式,多个表达式采用紧凑格式输出。

2.打开文件时,使用相对路径,不使用绝对路径,即直接使用文件名即可。

【输入文件】

输入文件in.txt有1行,表示给定的正整数。

【输出文件】

输出文件out.Txt有1行,表示指定范围内的所有素数,每个素数之间用空格分开。

【输入样例】

 20

【输出样例】

 235711131719

Submain()

DimNAsLong,iAsLong,KAsLong

DimmaxNAsLong

Open"in.txt"ForInputAs#2

Input#2,maxN

Open"out.txt"ForOutputAs#1

ForN=2TomaxN

K=Int(Sqr(N))

Fori=2ToK

IfNModi=0ThenExitFor

Nexti

Ifi>KThen

Print#1,N;

EndIf

NextN

Close#1,#2

EndSub

第九题

【问题描述】

折半查找思想:

设n个有序数(从小到大)存放在数组a(0)----a(n-1)中,要查找的数为x。

用变量bot、top、mid分别表示查找数据范围的底部(数组下界)、顶部(数组的上界)和中间,mid=(top+bot)\2。

若x=a(mid),则已找到退出循环,否则进行下面的判断;

若x

若x>a(mid),x必定落在mid+1和top的范围之内,所以修改bot=mid+1;

在确定了新的查找范围后,重复进行以上比较。

请打开指定文件夹下的工程文件Search.vbp,并在标准模块Module1中的main过程中实现如下功能:

在给定的有序数列中,利用折半查找算法查找指定关键字,如果找到则将查找的次数写入输出文件out.Txt中;若没找到则在输出文件out.Txt中写入-1。

说明:

1.输出语句使用Print,若同一行上输出多个表达式,多个表达式采用紧凑格式输出。

2.打开文件时,使用相对路径,不使用绝对路径,即直接使用文件名即可。

【输入文件】

输入文件in.txt有2行,第1行中第1个数表示数列中数的个数,第1行中第2个数表示要查找的关键字,第2行表示给定的有序数列。

每个数之间用空格隔开。

【输出文件】

输出文件out.Txt是1行,表示查找关键字所用次数,若没找到则写入-1。

【输入样例】

 556

1234455658

【输出样例】

 2

OptionBase1

Submain()

DimfindAsBoolean

Dima()AsLong,xAsLong

Dimi%,top%,bot%,mid%,n%

Open"in.txt"ForInputAs#1

Open"out.txt"ForOutputAs#2

Input#1,n,x

ReDima(n)

Fori=1Ton

Input#1,a(i)

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

top=mid-1

Else

bot=mid+1

EndIf

Loop

Iffind=FalseThen

Print#2,-1

Else

Print#2,i

EndIf

Close#1,#2

EndSub

第十题

【问题描述】

请打开考号文件夹下的工程文件sort.vbp,并在标准模块Module1中的main过程中实现如下功能:

将给定的一组数按照从小到大的顺序排序,并将结果写入到输出文件out.Txt中,所需数据从输入文件in.txt读入。

说明:

1.输出语句使用Print,若同一行上输出多个表达式,多个表达式采用紧凑格式输出。

2.打开文件时,使用相对路径,不使用绝对路径,即直接使用文件名即可。

【输入文件】

输入文件in.txt有2行,第1行表示参加排序的数的个数,第2行表示要排序的一组数。

【输出文件】

输出文件out.Txt是1行,表示排序后的结果,各个数字之间用空格隔开。

【输入样例】

 5

533444510

【输出样例】

 410344553

OptionBase1

Submain()

Dima()AsLong,tAsLong

Dimi%,j%,n%

Open"in.txt"ForInputAs#1

Open"out.txt"ForOutputAs2

Input#1,n

ReDima(n)

Fori=1Ton

Input#1,a(i)

Next

Fori=1Ton-1

Forj=i+1Ton

Ifa(j)

t=a(i):

a(i)=a(j):

a(j)=t'a(i)与a(j)交换

EndIf

Nextj

Print#2,a(i);'排好一个输出一个

Nexti

Print#2,a(n)'输出最后一个数

Close#1,#2

EndSub

第十一题

【问题描述】

请打开考号文件夹下的工程文件string_2.vbp,并在标准模块Module1中的main过程中实现如下功能:

将给定字符串中的所有数字字符(0~9)去掉,并将结果写入到输出文件out.Txt中,给定字符从输入文件in.txt读入。

说明:

1.输出语句使用Print,若同一行上输出多个表达式,多个表达式采用紧凑格式输出。

2.打开文件时,使用相对路径,不使用绝对路径,即直接使用文件名即可。

【输入文件】

输入文件in.txt有1行,表示源字符串。

【输出文件】

输出文件out.Txt也是1行,表示去掉数字字符(0~9)后的结果字符串。

【输入样例】

 Abc019a0b123

【输出样例】

 Abcab

Submain()

Dimi%,s$,x$,t$

Open"in.txt"ForInputAs#1

Open"out.txt"ForOutputAs#2

Input#1,s

t=""

Fori=1ToLen(s)

x=Mid(s,i,1)

Ifx<"0"Orx>"9"Then

t=t&x

EndIf

Next

Print#2,t

Close#1,#2

EndSub

 

第十二题

【问题描述】

合并排序是将两个有序数列(均为升序)A、B合并成另一个有序数列C,合并后C仍然为升序)

基本思想:

1)先在A、B数列中各取第一个元素进行比较,将小的元素放入C数列中;

2)取小的元素所在数列的下一个元素与另一数列中上次比较时较大的元素再进行比较,并将小的元素放入C数列中。

重复2),直到某个数列已全部放入C中;

3)将另一个数列的剩余元素抄入到C数列中,合并排序完成。

请打开指定文件夹下的工程文件union.vbp,并在标准模块Module1中的main过程中实现如下功能:

读入输入文件in.txt中的数据,实现上述思想,并将结果写入到输出文件out.Txt中。

说明:

1.输出语句使用Print,若同一行上输出多个表达式,多个表达式采用紧凑格式输出。

2.打开文件时,使用相对路径,不使用绝对路径,即直接使用文件名即可。

【输入文件】

输入文件in.txt有3行,第1行中有两个用空格隔开的数,第1个数表示参与合并的的第1个数列的数据个数,第2个数表示参与合并的第2个数列的数据个数;第2、3行,分别表示参与合并的两个数列。

【输出文件】

输出文件out.Txt是1行,表示合并排序后的结果,各个数字之间用空格隔开。

【输入样例】

34

4810

571318

【输出样例】

 4578101318

OptionBase1

Submain()

Dima(),b(),c()

DimiAsInteger,mAsInteger,nAsInteger

DimxAsInteger,yAsInteger,jAsInteger

Open"in.txt"ForInputAs#1

Open"out.txt"ForOutputAs#2

Input#1,m,n

ReDima(m)

ReDimb(n)

ReDimc(m+n)

Fori=1Tom

Input#1,a(i)

Nexti

Fori=1Ton

Input#1,b(i)

Nexti

x=1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1