普通专升本考试VF编程题总结

?\输出转换后的字符串SS:\ SET TALK ON CANCEL

2、程序的功能是:将s所指字符串中ASCII值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。 例如,若s所指字符串中的内容为:“ABCDEFG12345”,其中字符B的ASCII码值为偶数、?、字符2的ASCII码值为偶数、?、都应当删除,其它依此类推。最后t所指的数组中的内容应是:“ACEG135”。

set talk off clear

ACCEPT \请输入一串字符:\n=len(s) C=\

for I=1 TO N

w=substr(s, i,1)

ACI=ASC(W) &&返回最左边的一个字符的ASCII值。 if ACI%2=0

s=STUFF(s,i,1,C) endif endfor

?\输出转换后的字符串S:\ SET TALK ON CANCEL

3、编写程序,实现将s所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的先后次序。例如,原字符串为:def35adh3kjsdf7,执行结果为:defadhkjsdf3537

set talk off clear

ACCEPT \请输入一串字符:\n=len(s) C=\B=\

for I=1 TO N

w=substr(s, i,1)

if (w>=\ b=b+w

s=STUFF(s,i,1,C) i=i-1 endif endfor S=S+b

?\输出转换后的字符串S:\ SET TALK ON CANCE

4、假定输入的字符串中只包含字母和*号。请编写程序,它的功能是:使字符串中尾部的*号不得多于n个;若多于n个,则删除多于的*号;若少于或等于n个,则什么也不做,字符串中间和前面的*号不删除。 set talk off clear J=0

ACCEPT \请输入一串字符:\

INPUT \请输入使字符串中尾部的*号最大值:\

6

LS=len(s)

for I=1 TO LS

w=substr(s, i,1) if W!=\ J=0 endif

if W==\

J=J+1 &&J用于统计串尾连续的*个数 endif endfor IF J>N

S=LEFT(S,LS-(J-N)) ENDIF

?\输出转换后的字符串S:\ SET TALK ON CANCEL

5、(对字符串排序处理)有5个英文单词,分别为:Word,Excel,Powerpoint,Type,Angle,要求设计出如下程序:

(1)在键盘上输入数N(本例输入5),把英文单词放入名为X大小为N的数组中 (2)显示出X数组中的英文单词 (3)对数组中的英文单词从小到大排序 (4)显示出排序后X数组中英文单词 set talk off clear

INPUT \请输入数组的个数:\DIMENSION A(N) for I=1 TO N

ACCEPT \请输入一串字符:\ENDFOR

for i=1 to n-1 for j=i+1 to n if a(i)>a(j) temp=a(i) a(i)=a(j) a(j)=temp endif endfor endfor

for i=1 to n &&输出排序以后的数组 ??a(i),space(3) endfor

SET TALK ON

7

CANCEL

三、数据的处理

1、程序的功能是:将两个两位数的正整数a.b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的千位和十位上。 例如,当a=45,b=12时,执行该程序后,c=1524。

set talk off clear

INPUT \请输入第一个正整数:\INPUT \请输入第二个正整数:\c=int(a/10)+(a-int(a/10)*10)*100

c=c+int(b/10)*1000+(b-int(b/10)*10)*10 ?\SET TALK ON CANCEL

2、请编写程序,它的功能是:求出1到1000之间能被7或11整除,但不能同时被7和11整除的所有整数并将它们放在a所指的数组中,通过n返回这些数的个数。

set talk off clear j=0

dimension a(500)

for i=1 to 1000 do case

case i%7==0 if i!=0 j=j+1

a(j)=i endif case i==0 if i%7!=0 j=j+1

a(j)=i endif otherwise loop endcase endfor

?\到1000之间能被7或11整除,但不能同时被7和11整除的所有整数的个数:\for i=1 to j ??a(i) endfor

SET TALK ON CANCEL

3、编写程序,求Fibonacci数列中大于t的最小的一个数。其中Fibonacci数列F(n)的定义为: F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)。例如:当t=1000时,函数值为:1597。

8

clear

set talk off

input \请输入Fibonacci数列中的个数\dime f(n) f(1)=0 f(2)=1

for i=3to n

f(i)=f(i-1)+f(i-2) endfor

for i=1 to n

?\endfor

set talk on cancel

4、编写程序,实现根据输入的三个边长(整型值),判断能否构成三角形;构成的是等边三角形,还是等腰三角形。若能构成等边三角形函数返回3,若能构成等腰三角形函数返回2,若能构成一般三角形函数返回1,若不能构成三角形函数返回0。

set talk off clear

input \请输入三角形的第一条边长值A=\input \请输入三角形的第一条边长值b=\input \请输入三角形的第一条边长值c=\s=f1(a,b,c)

?\返回构成等边三角形的类型:\,S SET TALK ON CANCEL

*自定义函数F1 FUNCTION F1 PARAMETER X,Y,Z

if (X+Y)>Z.AND.(X+Z)>Y.AND.(Y+Z)>X DO CASE

CASE X=Y.AND.X=Z.AND.Z=Y FAN=3

CASE X==Y.or.X==Z.or.Z==Y FAN=2 OTHERWISE FAN=1 ENDCASE ELSE

FAN=0 ENDIF

RETURN (FAN)

5、编写程序,实现计算并输出3到n之间(含3和n)所有素数的平方根之和。例如,n=100,则输出s=148.874270,注意:要求n的值大于2但不大于100。

9

clear a=0 b=0 s=0

input \请输入n的值:\for i=3 to N a=sqrt(i)

for b=2 to a if i%b=0 exit endif endfor if b>a ??i

S=S+sqrt(i) endif endfor

?\输出3到n之间(含3和n)所有素数的平方根之和:\return

6、编写程序,它的功能是:利用以下所示的简单迭代方法求方程:cos(x)-x=0的一个实根。迭代表达式为:xn+1=cos(xn)

(1) 取x1初值为0.0; (2) x0=x1,把x1的值赋给x0; (3) x1=cos(x0),求出一个新的x1;

(4) 若x0-xl的绝对值小于0.000001,执行步骤(5),否则执行步骤(2); (5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。

clear x1=0.0 x0=x1

x1=cos(x0)

do while (abs(x0-x1)>=0.000001) x0=x1

x1=cos(x0) enddo

?\的一个实根是:\ return

1. 有3个数a,b,c,要求按大小顺序把它们打印出来。 2. 求1+2+3+………+100。

3. 判断一个数n 能否同时被3和5整除。 4. 将100~200之间的素数打印出来 5. 求两个数m和n的最大公约数。

6. 求方程式ax2+bx+c=0的根。分别考虑:(1)有两个不等的实根:(2)有两个相等的实根。

8. 有一个函数: x (x<1) y= 2x-1 (1≤x<10) 3x-11 (x≥10)

10

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4