33C1.在文本文件testf1.txt中,从第一个数开始,每四个数为一组,第一个数为不同商场的代号,其余三个数代表三类商品的营业额(万元)。编写程序,统计计算并向文件t2.dat输出各商场第一类商品的总营业额S和该类商品在各商场的平均营业额V。Dima,b,c,d,sum,averAsSingleDimnAsIntegern=0:sum=0FileOpen(1,D:\12345678\testf1.txt,OpenMode.Input)FileOpen(2,D:\12345678\t2.dat,OpenMode.output)WhileNotEOF(1)Input(1,a)Input(1,b)Input(1,c)Input(1,d)sum=sum+bn=n+1EndWhileAver=sum/nMsgBox(总营业额为:+Str(sum)+Chr(10)+平均营业额为:+Str(aver))Write(2,sum,aver)Fileclose(1,2)‘Fileclose(1):Fileclose(2)34C2.已知在正文文件da1.dat中,每个纪录只有两项数据,第一项为一整数表示学生的学号,第二项为形如xx.x的一个实数,试统计计算并向文件t2.dat输出全部学生的平均成绩V与90分以上(含90分)的学生人数N。Dimi,id,nAsIntegerDimcj,total,averAsDoubletotal=0FileOpen(1,D:\12345678\da1.dat,OpenMode.Input)FileOpen(2,D:\12345678\f2.dat,OpenMode.Output)i=0n=0WhileNotEOF(1)Input(1,id)Input(1,cj)If(cj=90)Thenn=n+1EndIftotal=total+cji=i+1EndWhileIfi0Thenaver=total/iEndIfMsgBox(total=+Str(total)++aver=+Str(aver)++i=+Str(i)++n=+Str(n))Write(2,aver,n)FileClose(1)FileClose(2)35C3.已知在正文文件ch1.dat中,每个记录的数据是有一个由字母组成的字符个数不多于10个的字符串,如:″absolute″。试查找文件中从第150个记录到第250个记录间的最大的字符串,并向文件t2.dat输出查找结果和该字符串中的字符个数n。Dimstr1,str2AsStringDimi,nAsintegerstr1=i=0FileOpen(1,D:\12345678\ch1.dat,OpenMode.Input)FileOpen(2,D:\12345678\f2.dat,OpenMode.Output)WhileNotEOF(1)Input(1,str2)i=i+1If(i=150)And(i=250)ThenIfstr1str2Thenstr1=str2EndIfEndIfEndWhilen=Len(str1)FileClose(1)MsgBox(最大的字符串:+str1+其字符串个数:+Str(n))WriteLine(2,str1,n)FileClose(2)36C4.已知在正文文件ch1.dat中,每个记录的数据是有一个由字母组成的字符个数不多于10个的字符串,如:″absolute″。统计在该文件中只有4个字符的字符串的个数n1和字符串的最后一个字符是f的字符串的个数n2,并将统计结果存入文本文件t2.dat中。Dimstr1,str2AsStringDimn1,n2,iAsIntegern1=0n2=0FileOpen(1,D:\12345678\ch1.dat,OpenMode.Input)FileOpen(2,D:\12345678\f2.dat,OpenMode.Output)WhileNotEOF(1)Input(1,str1)i=Len(str1)If(i0)ThenIf(i=4)Thenn1=n1+1EndIfstr2=Mid$(str1,i,1)If(str2=fOrstr2=F)Thenn2=n2+1EndIfEndIfEndWhileFileClose(1)MsgBox(在该文件中只有4个字符的字符串的个数n1=+Str(n1))MsgBox(和字符串的最后一个字符是f的字符串的个数n2=+Str(n2))WriteLine(2,n1)WriteLine(2,n2)FileClose(2)37C5.已知在正文文件t1.dat中,每个纪录只有一个实数,其格式为:x.xxxxx,试把该文件中从第100个数开始(包括第100个数)的225个数依序依序按行读入到一个15*15的二维数组中,计算并向文件t2.dat输出数组中上三角形元素值〔含主对角线元素值〕之和S与每列和数中的最大值MX。Dima(14,14),s_col(14)AsDoubleDimi,j,nAsIntegerDims,mx,tAsDoubleDimstr1AsStringn=0FileOpen(1,D:\12345678\t1.dat,OpenMode.Input)FileOpen(2,D:\12345678\t2.dat,OpenMode.Output)'DoWhileNotEOF(1)'Input(1,t)'n=n+1'Ifn=99ThenExitDo'LoopFori=1To99Input(1,t)NextFori=0To14Forj=0To14Input(1,a(i,j))NextjNextis=0Fori=0To14Forj=0To14If(i=j)Thens=s+a(i,j)EndIfNextNextstr1=Fori=0To14s_col(i)=0Forj=0To14s_col(i)=s_col(i)+a(j,i)Nextstr1=str1+CStr(s_col(i))+Chr(13)+Chr(10)NextMsgBox(str1)mx=s_col(0)Fori=1To14If(mxs_col(i))Thenmx=s_col(i)EndIfNextMsgBox(数组中上三角形元素值〔含主对角线元素值〕之和S=+Str(s))MsgBox(数组中每列和数中的最大值MX=+Str(mx))WriteLine(2,s)WriteLine(2,mx)FileClose(1)FileClose(2)38C6.已知在正文文件da1.dat中,每个纪录只有两项数据,第一项为一整数表示学生的学号,第二项为形如xx.x的一个实数,试统计计算并向文件t2.dat输出全部学生的平均成绩V与成绩排序在后20名的学生的平均成绩V1。Dimi,j,k,num,pAsIntegerDimstr1AsStringDima(1000)AsSingleDimv,v1,sum1,sum2,tAsSinglei=0sum1=0FileOpen(1,D:\12345678\da1.dat,OpenMode.Input)FileOpen(2,D:\12345678\t2.dat,OpenMode.Output)WhileNotEOF(1)Input(1,num)Input(1,a(i))sum1=sum1+a(i)i=i+1EndWhilev=sum1/i'paixu'方法一:'p=1'Whilep=1'p=0'Fork=0Toi-2'Ifa(k)a(k+1)Then't=a(k)'a(k)=a(k+1)'a(k+1)=t'p=1'EndIf'Next'EndWhile'方法二一:Forj=0Toi-2Fork=j+1Toi-1Ifa(j)a(k)Thent=a(j)a(j)=a(k)a(k)=tEndIfNextNextstr1=Fork=0Toi-1str1=str1+Str(a(k))+Chr(13)+Chr(10)NextTextBox1.Text=str1sum2=0Fori=0To19sum2=sum2+a(i)Nextiv1=sum2/20MsgBox(全部学生的平均成绩V=+Str(v))MsgBox(全部学生成绩排序在后20名的学生的平均成绩V1=+Str(v1))WriteLine(2,v)WriteLine(2,v1)FileClose(1)FileClose(2)39C7.编一个写把二维数组(矩阵)A(m,k)和B(k,n)相乘的应用程序,结果放入二维数组C(m,n)中。提示:数组C(m,n)中第i行第j列的元素值C(i,j)的计算公式为:C(i,j)=∑A(i,p)*B(p,j)(p=1,2,…k)读文件daf.dat为数组A(6,6)赋值,计算C=A*A,然后求数组C的主对角线元素值之积M。方法一:Subjz(ByVala(,)AsSingle,ByValb(,)AsSingle,ByRefc(,)AsSingle,ByValmAsInteger,ByValkAsInteger,ByValnAsInteger)'矩阵乘积Dimi,j,pAsIntegerDims1AsSingleDimstr1AsStringFori=0TomForj=0Tonc(i,j)=0Forp=0Tokc(i,j)=c(i,j)+a(i,p)*b(p,j)NextNextNext'输出矩阵Cstr1=Fori=0TomForj=0Tonstr1=str1+Str(c(i,j))+Nextstr1=str1+Chr(13)+Chr(10)NextTextBox1.Text=str1EndSubPrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.ClickDima(,)AsSingleDimc(,)AsSingleDimi,j,k,m,nAsIntegerDimsAsDoubleDimstr1AsStringm=InputBox(请输入m)k=InputBox(请输入k)n=InputBox(请输入n)ReDima(m,k)ReDimc(m,n)FileOpen(1,D:\12345678\DAF.txt,OpenMode.Input)Fori=0TomForj=0TokInput(1,a(i,j))NextNext'调用过程Calljz(a,a,c,m,k,n)'求对角线元素之积s=1Fori=0Toms=s*a(i,i)NextMsgBox(对角线元素之积为+Str(s))EndSub方法二:Dima(5,5),b(5,5),c(5,5)AsSingleDimi,j,k,m,n,pAsIntegerDimsAsDoubleDimstr1AsStringm=5n=5k=5FileOpen(1,D:\12345678\DAF.txt,OpenMode.Input)Fori=0TomForj=0TokInput(1,a(i,j))NextNextFori=0TomForj=0Tonc(i,j)=0Forp=0Tokc(i,j)=c(i,j)+a(i,p)*a(p,j)NextNextNext'求对角线元素之积s=1Fori=0Toms=s*c(i,i)NextMsgBox(对角线元素之积为+Str(s))40C8.计算90°—180°之间每间隔40°(不含边界)的正弦值,并将它们写到文件sc.out中;然后从该文件中读出这些数据并在屏幕上显示输出。(提示:弧度=度数×π/180)~0.766044,0.173648Dimfs,ls,sep,piAsDoubleDimstr1AsStringpi=3.1415926fs=90*pi/180.0ls=180*pi/180.0sep=40*pi/180.0FileOpen(1,D:\12345678\sc.out,Open