历届专升本考试编程题参考答案

更新时间:2024-01-31 07:52:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

历届专升本考试编程题参考答案

安徽省历年普通高校专升本招生考试计算机编程题

一.选择结构试题

1. 假设邮费计算方法为:100克以内(含100克)收费5元,超过100克的部分每克加收

0.2元。试编写程序,要求从键盘输入邮寄物品质量,计算并输出邮费。

5?Y???5?(X?100)?0.2X?100X?100

INPUT “输入邮寄物品质量(克)” TO X IF X<=100 Y=5 ELSE

Y=(X-100)*0.2+5 ENDIF

?“邮寄费为”,Y,“元”

2

2. 现有一元二次方程:ax+bx+c=0,其中a、b、c是整数,且a≠0。若存在实根,则输

出“在实数范围内有解”;若不存在实根,则输出“在实数范围内无解”。

INPUT “输入A的值(不等于0)” TO A INPUT “输入B的值” TO B INPUT “输入C的值” TO C IF B*B-4*A*C>=0

?“在实数范围内有解” ELSE

?“在实数范围内无解” ENDIF

3.输入出租车行驶里程S,输出应付车费F。

S和F的关系如下:

6S?3? F??

?6?(S?3)?1.5S?3INPUT “输入出租车行驶里程” TO S IF S<=3 F=6 ELSE

F=6+(S-3)*1.5 ENDIF

?“应付车费为”,F 4.有一函数:

第 1 页 共 14 页 历届专升本考试编程题参考答案

?x?y??2x?1?3x?11?x?11?x?10 x?10编程序,输入X值,输出Y值

方法一 INPUT “输入X的值” TO X IF X<1 Y=X ELSE

IF X<10

Y=2*X-1

ELSE

Y=3*X-11

ENDIF ENDIF ?“Y=”,Y

方法二 INPUT “输入X的值” TO X DO CASE CASE X<1

Y=X CASE X<10

Y=2*X-1 OTHERWISE

Y=3*X-11

ENDCASE ?“Y=”,Y

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

?x2?Y??0

?2??xx?0x?0 x?0INPUT “输入X的值” TO X IF X>0 Y=X^2 ELSE

IF X=0 Y=0

第 2 页 共 14 页 历届专升本考试编程题参考答案

ELSE

Y=-(X^2) ENDIF ENDIF ?“Y=”,Y

6.某书店开展优惠售书活动,收费方法如下:

?0.9x?y??0.8x?0.7x?x??100100?x?500

x?500其中:x表示原价,y表示实际收费。试编写程序,要求从键盘输入x,计算输出y。

INPUT “输入原价” TO X IF X<=100 Y=0.9*X ELSE

IF X<=500

Y=0.8*X

ELSE

Y=0.7*X

ENDIF ENDIF

?“实际收费为”,Y

7.某商场开展优惠促销活动,购物总额不足100元的不打折;购物总额在100元到500元之间的打9折;购物总额满500元的打8折。计算公式如下:

?x?y??0.9x?0.8x?x?100100??x?500

x??500其中,x为购物总额,y为应付款。编写程序输入顾客的购物总额,输出应付款。

INPUT “输入购物总额” TO X DO CASE

CASE X<100

Y=X CASE X<500

Y=0.9*X CASE X>=500

Y=0.8*X

ENDCASE

第 3 页 共 14 页 历届专升本考试编程题参考答案

?“应付款为”,Y

8.从键盘输入三个整数x、y、z,输出其中最小的数。

INPUT “输入第一个整数” TO X

对于VFP,可以利用MAX、MIN函数,使INPUT “输入第二个整数” TO Y

这类程序大为简化: INPUT “输入第三个整数” TO Z

?MIN(A,B,C) SMALL=X

IF Y

IF Z

? “三个数中最小的整数是”,SMALL

9.从键盘输入三个数,编程求出三个数中的最大数和最小数,并显示输出。

方法一 INPUT “输入第一个数” TO A INPUT “输入第二个数” TO B INPUT “输入第三个数” TO C BIG=A SMALL=A IF B>BIG BIG=B ENDIF

IF BBIG BIG=C ENDIF

IF C

?“其中最大数为”,BIG ?“其中最小数为”,SMALL

方法二 INPUT “输入第一个数” TO A INPUT “输入第二个数” TO B INPUT “输入第三个数” TO C ?“其中最大数为”,MAX(A,B,C) ?“其中最小数为”,MIN(A,B,C)

第 4 页 共 14 页 历届专升本考试编程题参考答案

10.整型变量a,b,c中分别存放各不相同的数值。编写程序,实现a,b,c从大到小排序,并以此顺序输出排序后的三个数。

方法一 INPUT “输入第一个整数” TO A INPUT “输入第二个整数” TO B INPUT “输入第三个整数” TO C IF A

方法二 ENDIF

INPUT TO A IF A

INPUT TO B T=A

INPUT TO C A=C

BIG=MAX(A,B,C) C=T

SMALL=MIN(A,B,C) ENDIF

SUM=A+B+C IF B

A=BIG T=B

C=SMALL B=C

B=SUM-BIG-SMALL C=T

?A,B,C ENDIF

? A,B,C

11. 假设一个快递公司针对个人小宗业务(即物品总重量不超过20公斤)的收费规定如下:物品在5公斤(含5公斤)以下,收费8元;在10公斤(含10公斤)以下,超过5公斤部分,每公斤收费0.5元;在20公斤(含20公斤)以下,超过10公斤部分,每公斤收费1.5元。不足1公斤均按1公斤计算。编写程序,输入用户的快递物品重量,计算并输出所需邮费。(6分)计算公式如下:

8x?5??y??0.5x?5.55?x?10

?1.5x?4.510?x?20?INPUT \输入物品重量\IF INT(X)<>X X=INT(X)+1 ENDIF DO CASE

CASE X<=5 Y=8 CASE X<=10

Y=0.5*X+5.5

第 5 页 共 14 页

历届专升本考试编程题参考答案

CASE X<=20

Y=1.5*X-4.5 ENDCASE

?\所需邮费为\元\

二、循环结构试题

1.求两个整数m和n的最大公约数。

INPUT “输入一个整数” TO M INPUT “输入另一个整数” TO N T=MOD(M,N) DO WHILE T<>0 M=N N=T

T=MOD(M,N) ENDDO

?“最大公约数为”,N

2222n2.从键盘输入一个正整数n,编程求出? ,即1+2+??+n,并将结果显示输出。

i?1nINPUT “输入一个正整数” TO N

SUM=0

FOR I=1 TO N SUM=SUM+I*I ENDFOR

?“SUM=”,SUM

3.试使用循环结构编程计算y=2

1

+22+??210,并输出结果。

Y=0

FOR I=1 TO 10

Y=Y+2^I ENDFOR ?“Y=”,Y

4.编程求s=1×2+3×4+5×6+??+99×100的值,并输出结果。 S=0

FOR I=1 TO 100 STEP 2

S=S+I*(I+1) ENDFOR ?“S=”,S

5.根据以下公式计算并输出S的值。

第 6 页 共 14 页 历届专升本考试编程题参考答案

S?1?1111 ?????234100

S=0

FOR I=1 TO 100

S=S+1/I ENDFOR ?“S=”,S

6.编程输出100~500之间能被7整除的奇数的个数。 N=0 N=0 FOR I=100 TO 500 FOR I=101 TO 500 STEP 2 IF I%7=0 AND I%2=1 IF MOD(I,7)=0 N=N+1 N=N+1 ENDIF ENDIF ENDFOR ENDFOR ?“N=”,N ?“N=”,N

7.求Sn=a+aa+aaa+aaaa?? 其中a是一个数字,a的个数为n,a和n由键盘输入

通项公式An?1?10?An?a

INPUT “输入A的值”TO A INPUT “输入项数N” TO N SN=0 T=A

FOR I=1 TO N

SN=SN+A A=A*10+T ENDFOR

?“数列之和为:”,SN

8.某班有45名学生参加“专升本”考试。现要求从键盘输入全班一门课的成绩,输出该课程的平均分、及格人数及其百分比。 SUM=0 N=0

FOR I=1 TO 45

INPUT “输入成绩” TO SCORE SUM=SUM+SCORE IF SCORE>=60

第 7 页 共 14 页 历届专升本考试编程题参考答案

N=N+1 ENDIF ENDFOR

?“全班平均分为”,SUM/45 ?“及格人数为”,N

?“及格率为”,N/45*100,“%”

9.编写程序输出所有满足以下条件的三位数:它是9的倍数,且个位和十位上的数字之和等于百位上的数字。

FOR I=100 TO 999

G=I

S=INT(I/10) B=INT(I/100)

IF I%9=0 AND G+S=B ?I ENDIF ENDFOR

10.编写程序输出以下图案(必须利用循环语句控制)

a

b b b

c c c c c d d d d d d d c c c c c

b b b a

FOR I=1 TO 4

?? SPACE(4-I) FOR J=1 TO 2*I-1

?? CHR(96+I) ENDFOR

?

ENDFOR

FOR I=3 TO 1 STEP -1

?? SPACE(4-I) FOR J=1 TO 2*I-1

?? CHR(96+I) ENDFOR ? ENDFOR

11.编写子程序(或子函数)实现:

第 8 页 共 14 页 历届专升本考试编程题参考答案

1?x?2x2?3x3???nxn

FUNCTION JS PARA N,X S=1

FOR I=1 TO N

S=S+I*X^I ENDFOR RETURN S ENDFUNC

12.编写程序,统计并输出1980年到2050年之间所有闰年的个数。其中,闰年是指能被400整除,或者能被4整除而不能100整除的年份。(7分) N=0

FOR I=1980 TO 2050

IF I@0=0 OR I0<>0 AND I%4=0 N=N+1 ENDIF ENDFOR

?\一共有\个闰年\

三、数组试题

1.设有十位评委给某选手打分,以去掉一个最高分和一个最低分后的平均分作为该选手的成绩。试编写程序,要求从键盘输入评委的评分并存入到数组中,计算并输出选手的成绩。

DIME S(10) FOR I=1 TO 10

INPUT “输入成绩” TO S(I) ENDFOR

FOR I=1 TO 9

FOR J=I+1 TO 10 IF S(I)>S(J) T=S(I)

S(I)=S(J) S(J)=T

第 9 页 共 14 页 历届专升本考试编程题参考答案

ENDIF ENDFOR ENDFOR SUM=0

FOR I=2 TO 9

SUM=SUM+S(I) ENDFOR

?“平均成绩为”,SUM/8

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

INPUT \递增输入10个整数\ENDFOR

INPUT \输入一个待插入整数\FOR I=10 TO 1 STEP -1 IF A(I)>X

A(I+1)=A(I) ELSE EXIT ENDIF ENDFOR A(I+1)=X

FOR I=1 TO 11 ??A(I) ENDFOR

3.输入30位学生的成绩,统计并输出每个分数段的人数:分数段按90分以上(含90分)、80~89分、70~79分、60~69分及60分以下(不含60分)划分。 DIME S(30) FOR I=1 TO 30

INPUT “输入成绩” TO S(I) ENDFOR

STORE 0 TO N5,N6,N7,N8,N9 FOR I=1 TO 30

DO CASE

CASE S(I)>=90 N9=N9+1 CASE S(I)>=80 N8=N8+1 CASE S(I)>=70 N7=N7+1 CASE S(I)>=60

第 10 页 共 14 页

历届专升本考试编程题参考答案

N6=N6+1 OTHERWISE N5=N5+1 ENDCASE ENDFOR

?“90分以上的人数为”,N9 ?“80分到89分的人数为”,N8 ?“70分到79分的人数为”,N7 ?“60分到69分的人数为”,N6 ?“不及格的人数为”,N5

4.已知三个矩阵A(3×2)、B(2×4)、C(3×4),分别由数组A[3,2]、B[2,4]和C[3,4]表示,请编程实现矩阵乘法,即C=A×B(C(i,j)=A(i,1)×B(l,j)+A(i,2)×B(2,j))。

DIME A(3,2),B(2,4),C(3,4) FOR I=1 TO 3

FOR J=1 TO 2

INPUT “输入数据” TO A(I,J) ENDFOR ENDFOR

FOR I=1 TO 2

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,1)*B(1,J)+A(I,2)*B(2,J) ENDFOR ENDFOR

FOR I=1 TO 3

FOR J=1 TO 4

??C(I,J) ENDFOR ? ENDFOR

5.有一个3×5的矩阵,试编写程序,要求从键盘上输入数据,求其中数值最大的那个元素,然后输出该元素值及其所在的行号和列号(不考虑数据有相同的情况)。

DIME A(3,5) FOR I=1 TO 3

FOR J=1 TO 5

INPUT “输入数据” TO A(I,J)

第 11 页 共 14 页 历届专升本考试编程题参考答案

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

FOR I=1 TO 3

FOR J=1 TO 5

IF A(I,J)>BIG

BIG=A(I,J) ROW=I COL=J ENDIF ENDFOR ENDFOR

?“最大数为”,BIG

?“最大数所在行为”, ROW ?“最大数所在列为”, COL

6.编程求一个3×4数组的所有元素的平均值及最大值,并输出结果(设数组的各元素为实数,要求从键盘输入其值)。

DIME A(3,4) FOR I=1 TO 3

FOR J=1 TO 4

INPUT “输入数据” TO A(I,J) ENDFOR ENDFOR BIG=A(1,1) SUM=0

FOR I=1 TO 3

FOR J=1 TO 4

SUM=SUM+A(I,J) IF A(I,J)>BIG BIG=A(I,J) ENDIF ENDFOR ENDFOR

?“所有元素的平均值为”,SUM/(3*4) ?“最大元素值为”,BIG

7.输入一个5×5矩阵,分别求两条对角线元素值之和,并输出结果。(要求用循环结构实现)

DIME A(5,5)

第 12 页 共 14 页 历届专升本考试编程题参考答案

FOR I=1 TO 5

FOR J=1 TO 5

INPUT “输入数据” TO A(I,J) ENDFOR ENDFOR ZS=0 FS=0

FOR I=1 TO 5

FOR J=1 TO 5 IF I=J

ZS=ZS+A(I,J) ENDIF IF I+J=6

FS=FS+A(I,J) ENDIF ENDFOR ENDFOR

?“主对角线上元素之和为”,ZS ?“辅对角线上元素之和为”,FS

8.输入一个5×5矩阵,要求对角线元素平均值,并输出结果。(要求用循环结构实现) DIME A(5,5) FOR I=1 TO 5

FOR J=1 TO 5

INPUT “输入数据” TO A(I,J) ENDFOR ENDFOR SUM=0 T=0

FOR I=1 TO 5

FOR J=1 TO 5 IF I=J

SUM=SUM+A(I,J) T=T+1 ENDIF

IF I+J=6 AND I<>J SUM=SUM+A(I,J) T=T+1 ENDIF ENDFOR ENDFOR AVG=SUM/T

?“对角线上元素平均值”,AVG

第 13 页 共 14 页 历届专升本考试编程题参考答案

9. 我国古代数学家张丘建在“算经”里提出一个世界数学史上有名的百鸡问题:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问鸡翁,母,雏各几何? **依题列出方程:

x?y?z?1005x?3y?z/3?100

FOR X=1 TO 100 FOR Y=1 TO 100 Z=100-X-Y

IF 5*X+3*Y+Z/3=100 ?\鸡翁:\ ?\鸡母:\ ?\鸡雏:\ ENDIF ENDFOR ENDFOR

10. 一个养殖大户准备出售n只兔子,每只兔子重量可能不等。编写程序,从键盘输入n的值以及每只免的重量,按18元/斤的价格,计算出并输出该户售出n只兔子后所得。(要求使用循环和数组实现)(7分) INPUT \输入兔子的数量\DIME A(N) FOR I=1 TO N

INPUT \输入兔子的重量\ENDFOR SUM=0

FOR I=1 TO N

SUM=SUM+A(I) ENDFOR

?\总收入为\元\

第 14 页 共 14 页

本文来源:https://www.bwwdw.com/article/vgjw.html

Top