您好,欢迎来到化拓教育网。
搜索
您的当前位置:首页安徽专升本计算机编程题类型总结

安徽专升本计算机编程题类型总结

来源:化拓教育网


①求和类:

1. 计算S=1!+2!+3!+4!+。。。。。。+N! S=0 K=1

INPUT \"N=\" TO N FOR i=1 TO N K=K*i S=S+K Endfor ?S

2.求 13335373213 SUM=0

FOR I=1 TO 21 STEP 2 SUM=SUM+I^3 ENDFOR

?”SUM=”,SUM

3.有一分数序列,求前20项之和

求 N的阶乘。(N的值由键盘输入,应小于20 ) INPUT “输入N的值” TO N P=1 FOR I=1 TO N P=P*I ENDFOR ?N,“!=”,P 21M=1 N=2

325385138......

SUM=0

FOR I=1 TO 20 TERM=N/M

SUM=SUM+TERM X=N N=M+N M=X

TERM=N/M ENDFOR ?”SUM=”,SUM

4.求Sn=a+aa+aaa+aaaa„„,其中,a是一个数字,a的个数为n,a和n由键盘输入 INPUT \"输入 a 的值:\" TO A INPUT \"输入项数n:\" TO N SN=0 B=A

FOR I=1 TO N SN=SN+A A=A*10+B ENDFOR

?\"数列之和为:\

5. 求e的台劳级数展开式的前n项之和(运行时输入x=2.0,n=4)

x

e1xxx22!x33!xn1(n1)!

INPUT “X=” TO X INPUT “N=” TO N SUM=1

P=1

FOR I=1 TO N-1 P=P*I T=X^I/P SUM=SUM+T ENDFOR

?”SUM=”,SUM

6.求1*2+3*4+5*6+„„21*22 SUM=0

FOR I=1 TO 21 STEP 2 SUM=SUM+I*(I+1) ENDFOR

?\"和为=\7.通过键盘输入n,求下列级数的 和:

⋅1-1/2+1/3-1/4+„+1/n INPUT TO N S=0 F=1

FOR I=1 TO N

S=S+F*(-1)^(I-1)/I ENDFOR

?S

8.计算连续自然数之和,并且显示和刚大于1000的最后一个自然数

 Sn=1+2+3+4+„+N STORE 0 TO S,N

DO WHILE S<=1000

N=N+1 S=S+N

ENDDO ? N

9.求1^2+4^2+7^2+…一直加到超过1000为止,输出和数与项数。 I=1 S=0 N=0

DO WHILE S<=1000 S=S+I^2 I=I+3 N=N+1 ENDDO ?N

?S

10.求1-100之间所有奇数之和 SUM=0

FOR I=1 TO 100 STEP 2 SUM=SUM+I ENDFOR

? “SUM=”,SUM

10.输出100到200之间所有能被5或7整除的整数,并输出他们的和。

SUM=0

FOR I=100 TO 200

IF MOD(I,10)=5 AND MOD(I,7)=0 SUM=SUM+I ?I

ENDIF ENDFOR ?“SUM=”,SUM

11.编程输出100~500之间能被7整除的奇数的个数。 N=0

FOR I=100 TO 500

IF I%7=0 AND I%2=1 N=N+1 ENDIF ENDFOR ? “N=”,N

N=0 FOR I=101 TO 500 STEP 2 IF MOD(I,7)=0 N=N+1 ENDIF ENDFOR ? “N=”+1/(99*100) ,N 12. 求1/(1*2)+1/(3*4)+1/(5*6)+„„SUM=0

FOR I=1 TO 99 STEP 2 SUM=SUM+1/(I*(I+1)) ENDFOR ?\"SUM=\

13.

求如下级数前N项之和(X和N的值由键盘输入)

1xS=1

x22x33x44xnn

INPUT TO X INPUT TO N FOR I=1 TO N S=S+X^I/I ENDFOR

?“SUM=”,S

14.输出3-100之间的所有素数,并求其和。 SUM=0

FOR J=3 TO 100 FLAG=.T.

FOR I=2 TO SQRT(J) IF MOD(J,I)=0 FLAG=.F. EXIT ENDIF ENDFOR IF FLAG=.T. ?J SUM=SUM+J ENDIF ENDFOR

?\"奇数之和是:\

②方程类

1.完成下面分段函数的计算,程序运行时用户从键盘输入一个数值X,在屏幕上输出Y值。

x2Y0

x2ifififx0x0x0

INPUT \"请输入X值:\" TO X IF X>0 Y=X*X ELSE IF X=0 Y=0 ELSE Y=-(X*X) ENDIF ENDIF ?Y

2.现有一元2次方程 AX^2+BX+C=0 其中A B C 是整数且A不等于0 若存在实根,则输出“在实数范围内有解” 若不存在实根 则输出“在实数范围内无解”/求解 INPUT TO A INPUT TO B INPUT TO C D=B*B-4*A*C IF D>=0

?\"在实数范围内有解\" ELSE

?\"在实数范围内无解\"

ENDIF /

INPUT TO A INPUT TO B INPUT TO C D=B*B-4*A*C IF D>0

X1=(-B+SQRT(D))/(2*A) X2=(-B-SQRT(D))/(2*A) ?X1 ?X2 ELSE IF D>0 X=-B/(2*A) ?\"X1=X2=\ ELSE ?\"无解\" ENDIF ENDIF

X3.输入一个X的值,求Y的值。Y= 2X13X11ifififX11X10 X10INPUT TO X DO CASE CASE X<1 Y=X CASE X<10 Y=2*X-1 CASE X>=10 Y=3*X-11 ENDCASE ?Y

③数组类

1. 输入10个数,输出其中小于平均值S的数。

DIME A(10) S=0

FOR I=1 TO 10 INPUT TO A(I) S=S+A(I) ENDFOR S=S/10 FOR I=1 TO 10 IF A(I)2.输入10个数,求其中最大数和最小数。 DIME A(10) FOR I=1 TO 10

INPUT “ ENTER A NUMBER:”TO A(I) ENDFOR BIG=A(1) SMALL=A(1) FOR I=2 TO 10

IF A(I)>BIG

BIG=A(I) ENDIF

IF A(I)SMALL=A(I) ENDIF ENDFOR

?“THE SMALLEST NUMBER IS”,SMALL ?“THE BIGGEST NUMBER IS”,BIG

3.输入10个数,求其中最大数和最小数,并确定它们的位置。 DIME A(10) FOR I=1 TO 10

INPUT “ ENTER A NUMBER:”TO A(I) ENDFOR BIG=A(1) BP=1 SMALL=A(1) SP=1

FOR I=2 TO 10

IF A(I)>BIG

BIG=A(I)

BP=I ENDIF

IF A(I)SMALL=A(I)

SP=I

ENDIF ENDFOR

?“THE PLACE OF THE SMALLEST NUMBER IS”,SP ?“THE SMALLEST NUMBER IS”,SMALL

?“THE PLACE OF THE BIGGEST NUMBER IS”,BP ?“THE BIGGEST NUMBER IS”,BIG

4.从键盘输入10 个整数,现从中查找某个数,若查到,输出“YES”,否则输出“NO”。

DIMENSION A(10)

FOR I=1 TO 10

INPUT \"输入10个整数\" TO A(I) ENDFOR

INPUT \"输入待查找的整数\" TO X FOR I=1 TO 10 IF X=A(I) ? \"YES\" EXIT ENDIF ENDFOR IF I>10 ? \"NO\" ENDIF 5.

已有按从小到大的顺序排列的10 个数,现输入一个数,要求插入到数列中。插入后数列仍然按从小到大顺序排列。 DIMENSION A(11) FOR I=1 TO 10

INPUT “递增输入10个整数” TO A(I) ENDFOR

INPUT “任意输入一个整数” TO X FOR I=10 TO 1 STEP -1 IF XIF I=1

A(I+1)=A(I) A(I)=X ELSE

A(I+1)=A(I) ENDIF ELSE A(I+1)=X EXIT ENDIF ENDFOR FOR I=1 TO 11 ??A(I) ENDFOR ?

6. 数组A中已存放了10个由小到大排列的数。现从键盘输入一个数X,要求删除数组中与其相

同的数,并将后续的数依次前移,最后输出剩余的数。(7分) 考虑到有重复数的程序如下: DIME A(10) FOR I=1 TO 10

INPUT “按递增输入10个数” TO A(I) ENDFOR

INPUT “输入待删除的数” TO X I=1 J=1

N=0

DO WHILE I<=10 IF A(I)IF A(I)=X I=I+1 N=N+1 ELSE EXIT ENDIF ENDIF ENDDO

FOR K=I TO 10 A(J)=A(K) J=J+1 ENDFOR

FOR K=1 TO 10-N ?A(K)

ENDFOR

7.输入10个数,按升序排列后输出。 DIME A(10)

FOR I=1 TO 10

INPUT “ ENTER AN INTEGER :” TO A(I) ENDFOR

FOR I=1 TO 9 FOR J=I+1 TO 10 IF A(I)>A(J)

TEMP=A(I) A(I)=A(J) A(J)=TEMP ENDIF ENDFOR ENDFOR

FOR I=1 TO 10

?A(I)

ENDFOR 以上是一维数组(数组中只有一个下标)程序举例。在VFP中,还可以建立二维数组。定义方法是:

DIME A(2,3)

第一维代表行,第二维代表列,这样就在内存中开辟了6个连续的存储单元,数组元素的名称分别为:

A(1,1) A(1,2) A(1,3)

A(2,1) A(2,2) A(2,3) 二维数组的元素赋初值及其处理通常要用二重循环,外循环代表行,内循环代表列。如:

FOR I=1 TO 2

FOR J=1 TO 3 INPUT TO A(I,J) ENDFOR ENDFOR

二维数组特别适合用来解决矩阵问题。矩阵中有如下几个术语要掌握:行列相等的矩阵叫方阵;方阵中有主对角线、辅对角线、下三角元素、外围元素等

1. 建立一个六行六列的方阵,求出两条对角线上所有元素之和。

DIME A(6,6) FOR I=1 TO 6 FOR J=1 TO 6 INPUT TO A(I,J) ENDFOR ENDFOR DIME A(6,6) FOR I=1 TO 6 FOR J=1 TO 6 A(I,J)=I+J ENDFOR ENDFOR SUM=0 SUM=0 FOR I=1 TO 6 FOR I=1 TO 6 SUM=A(I,I)+A(I,7-I) SUM=A(I,I)+A(I,7-I) ENDFOR ENDFOR ? “两条对角线上所有元素之和为”,SUM ? “两条对角线上所有元素之和为”,SUM ZF=0 SF=0

FOR I=1 TO 6 FOR J=1 TO 6

IF I=J

SZ=SZ+A(I,J) ENDIF

IF I+J=7

SF=SF+A(I,J) ENDIF

ENDFOR ENDFOR

? “两条对角线上所有元素之和为”,SZ+SF

2. 一个四行五列的矩阵,求出其中最大元素的值,以及所在的行号与列号。 DIME A(4,5) FOR I=1 TO 4 FOR J=1 TO 5

INPUT TO A(I,J)

ENDFOR ENDFOR BIG=A(1,1) ROW=1 COL=1

FOR I=1 TO 4 FOR J=1 TO 5 IF A(I,J)>BIG BIG=A(I,J) ROW=I COL=J ENDIF ENDFOR ENDFOR

?BIG, ROW, COL

3. 求两个矩阵之和,即C(3,4)=A(3,4)+B(3,4) DIME A(3,4),B(3,4),C(3,4) FOR I=1 TO 3 FOR J=1 TO 4 INPUT TO A(I,J) ENDFOR ENDFOR

FOR I=1 TO 3 FOR J=1 TO 4 INPUT TO B(I,J) ENDFOR ENDFOR

FOR I=1 TO 3

FOR J=1 TO 4

C(I,J)=A(I,J)+B(I,J) ENDFOR ENDFOR

FOR I=1 TO 3 FOR J=1 TO 4 ??STR(C(I,J),6) ENDFOR ? ENDFOR

DIME A(3,4),B(3,4),C(3,4) FOR I=1 TO 3 FOR J=1 TO 4 INPUT TO A(I,J) INPUT TO B(I,J) C(I,J)=A(I,J)+B(I,J) ENDFOR ENDFOR FOR I=1 TO 3 FOR J=1 TO 4 ??STR(C(I,J),6) ENDFOR ? ENDFOR ④判断类

1.键盘输入一个年份,判断是平年还是闰年? INPUT “Enter a year:” TO Y 、

IF MOD(Y,100)<>0 AND MOD(Y,4)=0 OR MOD(Y,400)=0 ?Y,“is a leap year.” ELSE

?Y,“is a common year” ENDIF

2.从键盘输入一个整数,判断是偶数还是奇数。 INPUT \"整数\" TO X IF MOD(X,2)=0 ?\"这是个偶数\" ELSE

?\"这是个奇数\" ENDIF

3.输入一个字符,判断是否为英文字母。 ACCEPT \"请输入一个字符:\" TO CH

IF ASC(CH)>=65 AND ASC(CH)<=90 OR ASC(CH)>=97 AND ASC(CH)<=122 ?CH,\"是英文字母\" ELSE

?CH,\"不是英文字母\" ENDIF

4.一个数如果恰好等于它的因子之和,这个数就称为“完数”,如:6=1+2+3,故6是完数。编程判断从键盘输入一个正整数是否为完数。

输出1000以内的所有完数: FOR I= 2 TO 1000 S=0 FOR J=1 TO I-1 IF MOD(I,J)=0 S=S+J ENDIF ENDFOR IF S=I ?I,\"是完数\" ENDIF INPUT “输入一个正整数” TO N S=0

FOR I=1 TO N-1 IF MOD(N,I)=0 S=S+I

ENDIF ENDFOR IF S=N ?N,“是完数” ELSE

?N,“不是完数” ENDIF

5. 输入一个大于等于2的整数,判断是否为素数?一个正整数,若只能被1和本身整除,则该数称为素数或质数

INPUT “请输入一个大于2的整数” TO N

FLAG=.T. FOR I=2 TO N-1 IF MOD(N,I)=0

FLAG=.F. EXIT ENDIF ENDFOR IF FLAG=.T. ? N,“是素数” ELSE

? N,“不是素数” ENDIF

6.输入一个字符串,判断其中有多少个大写字母、小写字母、数字字符、空格字符以及其他特殊字符?

STORE 0 TO UPPER,LOWER,DIGIT,SPACE,SPECIAL ACCEPT “输入一个字符串” TO ST L=LEN(ST) FOR I=1 TO L

CH=SUBST(ST,I,1) DO CASE

CASE ASC(CH)>=65 AND ASC(CH)<=90 UPPER=UPPER+1

CASE ASC(CH)>=48 AND ASC(CH)<=57 DIGIT=DIGIT+1

CASE ASC(CH)>=97 AND ASC(CH)<=122 LOWER=LOWER+1

CASE ASC(CH) =32 SPACE=SPACE+1

OTHERWISE SPECIAL=SPECIAL+1 ENDCASE

ENDFOR

? “字符串中大写字母的个数是”, UPPER ? “字符串中小写字母的个数是”, LOWER ? “字符串中数字字符的个数是”, DIGIT ? “字符串中空格字符的个数是”, SPACE ? “字符串中其他字符的个数是”, SPECIAL

⑤转换类

1. 输入个大写字母,要求输出它的ASCII码及其对应的小写字母。

ACCEPT “输入一个大写字母:” TO CH

?CH, “的ASCII码为”, ASC(CH)

?CH, “对应的小写字母为”, CHR(ASC(CH)+32)

2.从键盘输入一个八进制数,将其转换成等值的十进制数。 SET TALK OFF CLEAR

S=0

ACCEPT \"ENTER AN OCTAL NUMBER:\" TO N L=LEN(N) FOR I=1 TO L

S=S+VAL(SUBSTR(N,I,1))*8**(L-I) ENDFOR ?\"S=\SET TALK ON CANCEL

3.从键盘输入一个十进制数,将其转换成等值的八进制数。 SET TALK OFF CLEAR

INPUT \"ENTER A DECIMAL NUMBER:\" TO N OCT=\"\" IF N=0 OCT=\"0\" ENDIF

DO WHILE N>0 R=MOD(N,8) OCT= STR(R,1)+OCT N=INT(N/8) ENDDO ?OCT SET TALK ON CANCEL

4.从键盘输入一个二进制数,将其转换成等值的十进制数。 S=0

ACCEPT “ENTER A BINARY NUMBER:” TO N L=LEN(N) FOR I=1 TO L

S=S+VAL(SUBSTR(N,I,1))*2**(L-I) ENDFOR

?“等值的十进制数为”,S

从键盘输入一个十进制数,将其转换成等值的二进制数。 INPUT \"ENTER A DECIMAL NUMBER:\" TO N BIN=“” IF N=0 BIN=“0” ENDIF

DO WHILE N>0

R=MOD(N,2)

BIN= STR(R,1)+BIN N=INT(N/2)

ENDDO

? “等值的二进制数为”,BIN

⑥真实情况类

1.输入乘车的公里数,输出乘车费(计费标准:2.5公里之内是6元,2.5公里以外,每超过1公里增加1元2角) INPUT \"输入公里数\" TO X IF X>2.5

PAY=(X-2.5)*1.2+6 ELSE PAY=6

ENDIF

?\"应付费\元\"

2. 6) 设交纳所得税的规定如下: DO CASE 语句

收入<=1500元 免交所得税

1500元 < 收入 <=3000元 所得税为5% 3000元 < 收入 <=6000元所得税为 8% 6000元 < 收入 <=10000元所得税为 10% 10000元 < 收入 <=50000元所得税为 15% 收入>50000元所得税为 20%

请编程,从键盘输入一个数,计算应交纳的所得税。

INPUT “INCOME=” TO X DO CASE

CASE X<=1500⑦ TAX=0 CASE X<=3000

TAX=(X-1500)*0.05 CASE X<=6000

TAX=(X-3000)*0.08+(3000-1500)*0.05 CASE X<=10000

TAX=(X-6000)*0.1+(6000-3000)*0.08+(3000-1500)*0.05 CASE X<=50000

TAX=(X-10000)*0.15+(10000-6000)*0.1+(6000-3000)*0.08+(3000-1500)*0.05 OTHERWISE

TAX=(X-50000)*0.2+(50000-10000)*0.15+(10000-6000)*0.1&

+(6000-3000)*0.08+(3000-1500)*0.05

ENDCASE

?“INCOME TAX IS”,TAX,“元”

3.键盘输入学生的成绩,若95-100则输出优秀,85-94是很好,70-84则输出好,60-69 是一般60分以下输出不及格。 INPUT \"成绩\" TO FS DO CASE CASE FS>=95 ?\"优秀\" CASE FS>=85 ?\"很好\" CASE FS>=70 ?\"好\" CASE FS>=60

?\"一般\" OTHERWISE ?\"不及格\" ENDCASE

4. 编写学生成绩统计程序。设有三位同学,考数学、物理、化学三门课,统计每个同学的总分和平均分 SET TALK OFF CLEAR DIME S(3,6) FOR I=1 TO 3 FOR J=1 TO 4

INPUT \"INPUT STUDENT-NO AND SCORE:\" TO S(I,J) ENDFOR ENDFOR FOR I=1 TO 3

S(I,5)=S(I,2)+S(I,3)+S(I,4) S(I,6)=ROUND(S(I,5)/3,1)

ENDFOR

?SPACE(5),\"STUNO\\"TOTAL\?

FOR I=1 TO 3 FOR J=1 TO 6 ??S(I,J) ENDFOR ?

ENDFOR

SET TALK ON

CANCEL

5.某班有45名参加考试的同学,现在要求从键盘输入全班一门课的成绩,输出该课程的平均分,以及及格人数和半分比。 SUM=0 N=1

FOR I= 1 TO 45

INPUT\"全班一门课的成绩\" TO X SUM=SUM+X IF X>=60 N=N+1 ENDIF ENDFOR

?\"平均分\" ,SUM/45 ?\"几个人数\

?\"合格率\

⑦矩阵类

1.建立一个五行五列的矩阵,求出外围所有元素之和。

DIMENSION A(5,5) S=0

S1=0

FOR I=1 TO 5 FOR J=1 TO 5 INPUT TO A(I,J) S=S+A(I,J) ENDFOR ENDFOR FOR I=2 TO 4 FOR J=2 TO 4 S1=S1+A(I,J) ENDFOR ENDFOR ?S-S1

1.打印如下图形:

***** ***** ***** *****

CLEAR FOR I=1 TO 5 ?SPACE(I) FOR J=1 TO 5 ??”*” ENDFOR ENDFOR

附:打印如下图形: ***** **** *** ** * ** *** **** *****

FOR I=5 TO 1 STEP -1 ??SPACE(5-I) FOR J=1 TO I ??”*” ENDFOR ?

ENDFOR

FOR I=2 TO 5 ??SPACE(5-I)

⑧打印图形类

FOR J=1 TO I

??”*” ENDFOR ?

ENDFOR

2. 打印如下所示的九九乘法表

①clear

for N=1 TO 9

for M=1 TO N

?? alltrim(str(N))+\"×\"+alltrim(str(M))+\"=\"+ alltrim(str(N*M))+space(5) endfor ? Endfor ②clear N=1

DO WHILE N<=9 M=1

DO WHILE M<=N

?? alltrim(str(N))+\"×\"+alltrim(str(M))+\"=\"+ alltrim(str(N*M))+space(5) M=M+1 ENDDO ? N=N+1 ENDDO

⑨其他类

1. 输入两个数和一个运算符(加、减、乘、除),求其值。例如,输入3和5以及*,则输出15

INPUT “输入一个数:” TO A INPUT “输入另一个数:” TO B ACCEPT “输入运算符:” TO CH DO CASE

CASE CH=“+”

? “两数之和为:”,A+B

CASE CH=”-“

? “两数之差为:”,A-B

CASE CH=”*”

? “两数之积为:”,A*B

CASE CH=“/”

? “两数之商为:”,A/B

OTHERWISE

? “运算符有错!”

ENDCASE

2.输入一个正整数,分解出所有因子。如18=1*2*3*3,23=1*23 INPUT \"输入一个正整数\" TO N ?? N,\"=1\" I=2

DO WHILE I<=N

IF MOD(N,I)=0

??\"*\"+ALLTRIM(STR(I)) N=N/I ELSE I=I+1 ENDIF ENDDO ?

3.直接求最小公倍数参考程序如下:

INPUT \"输入一个正整数\" TO M INPUT \"输入另一个正整数\" TO N FOR I=M TO M*N

IF MOD(I,N)=0 AND MOD(I,M)=0 ?\"最小公倍数为\ EXIT ENDIF ENDFOR

4.求FIBONACCI数列1,1,2,3,5,8„„的第与第1。 DIMENSION F(18) F(1)=1 F(2)=1

FOR I=3 TO 18

F(I)=F(I-1)+F(I-2) ENDFOR

? “第是:”,F(8) ? “第1是:”,F(18)

⑩次序类

1.从键盘输入3个数,分别赋予A,B,C三个变量,编程使得A中存放最大数,C存放最小数,并按ABC得次序输出。 INPUT TO A INPUT TO B

INPUT TO C BIG=MAX(A,B,C) SMALL=MIN(A,B,C) SUM=A+B+C A=BIG C=SMALL

B=SUM-BIG-SMALL ?A,B,C

2. 输入一个字符串,按其倒序输出。 ACCEPT \"ENTER A STRING:\" TO ST L=LEN(ST)

FOR I=L TO 1 STEP -1

??SUBSTR(ST,I,1) ENDFOR ?

3. 输入10个数,按输入的相反次序输出

DIME A(10) FOR I=1 TO 10 INPUT TO A(I) ENDFOR

FOR I=10 TO 1 STEP –1 ?A(I) ENDFOR

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo9.cn 版权所有 赣ICP备2023008801号-1

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务