当前位置:文档之家› 计算机历届专升本考试编程题参考答案

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

一、 选择结构试题1. 假设邮费计算方法为:100克以内(含100克)收费5元,超过100克的部分每克加收0.2元。

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

INPUT “输入邮寄物品质量(克)” TO XIF X<=100Y=5ELSEY=(X-100)*0.2+5ENDIF?“邮寄费为”,Y,“元”2. 现有一元二次方程:ax 2+bx+c=0,其中a 、b 、c 是整数,且a ≠0。

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

INPUT “输入A 的值(不等于0)” TO AINPUT “输入B 的值” TO BINPUT “输入C 的值” TO CIF B*B-4*A*C>=0?“在实数范围内有解”ELSE?“在实数范围内无解”ENDIF3. 输入出租车行驶里程S ,输出应付车费F 。

S 和F 的关系如下:⎩⎨⎧>⨯-+≤=35.1)3(636S S S F INPUT “输入出租车行驶里程” TO SIF S<=3F=6ELSEF=6+(S-3)*1.5ENDIF?“应付车费为”,F4. 有一函数:⎪⎩⎪⎨⎧≥-<≤-<=10113101121x x x x x x y 编程序,输入X 值,输出Y 值INPUT “输入X 的值” TO XIF X<1Y=XELSEIF X<10Y=2*X-1ELSEY=3*X-11ENDIFENDIF?“Y=”,YINPUT “输入X 的值” TO XDO CASECASE X<1Y=XCASE X<10Y=2*X-1OTHERWISEY=3*X-11ENDCASE?“Y=”,Y5. 完成下面分段函数的计算,程序运行时用户从键盘输入一个数值X ,在屏幕上输出Y 值。

⎪⎩⎪⎨⎧<-=>=000022x x x x x Y INPUT “输入X 的值” TO XIF X>0Y=X^2ELSEIF X=0Y=0ELSEY=-(X^2)ENDIFENDIF?“Y=”,Y6. 某书店开展优惠售书活动,收费方法如下:0.9x(x≤100)y= 0.8x (100<x≤500)0.7x (x>500)其中:x表示原价,y表示实际收费。

试编写程序,要求从键盘输入x,计算输出y。

INPUT “输入原价” TO XIF X<=100Y=0.9*XELSEIF X<=500Y=0.8*XELSEY=0.7*XENDIFENDIF?“实际收费为”,Y7.某商场开展优惠促销活动,购物总额不足100元的不打折;购物总额在100元到500元之间的打9折;购物总额满500元的打8折。

计算公式如下:其中,x为购物总额,y为应付款。

编写程序输入顾客的购物总额,输出应付款。

INPUT “输入购物总额” TO XDO CASECASE X<100Y=XCASE X<500Y=0.9*XCASE X>=500Y=0.8*XENDCASE?“应付款为”,Y8.从键盘输入三个整数x、y、z,输出其中最小的数。

INPUT “输入第一个整数” TO XINPUT “输入第二个整数” TO YINPUT “输入第三个整数” TO ZSMALL=XIF Y<SMALLSMALL=YENDIFIF Z<SMALLENDIF? “三个数中最小的整数是”,SMALL9.从键盘输入三个数,编程求出三个数中的最大数和最小数,并显示输出。

INPUT “输入第一个数” TO AINPUT “输入第二个数” TO BINPUT “输入第三个数” TO CBIG=ASMALL=AIF B>BIGBIG=BENDIFIF B<SMALLSMALL=BENDIFIF C>BIGBIG=CENDIFIF C<SMALLSMALL=CENDIF?“其中最大数为”,BIG?“其中最小数为”,SMALLINPUT “输入第一个数” TO AINPUT “输入第二个数” TO BINPUT “输入第三个数” TO C?“其中最大数为”,MAX(A,B,C)?“其中最小数为”,MIN(A,B,C)10.整型变量a,b,c中分别存放各不相同的数值。

编写程序,实现a,b,c从大到小排序,并以此顺序输出排序后的三个数。

INPUT “输入第一个整数” TO AINPUT “输入第二个整数” TO BINPUT “输入第三个整数” TO CIF A<BT=AA=BENDIFIF A<CT=AA=CC=TENDIFIF B<CT=BB=CC=TENDIF? A,B,C二、循环结构试题11. 求两个整数m 和n 的最大公约数。

INPUT “输入一个整数” TO MINPUT “输入另一个整数” TO NT=MOD(M,N)DO WHILE T<>0M=NN=TT=MOD(M,N)ENDDO?“最大公约数为”,N12. 从键盘输入一个正整数n ,编程求出∑=n i n 12 ,即12+22+……+n 2,并将结果显示输出。

INPUT “输入一个正整数” TO NSUM=0FOR I=1 TO NSUM=SUM+I*IENDFOR?“SUM=”,SUM13. 试使用循环结构编程计算y=21+22+……210,并输出结果。

Y=0FOR I=1 TO 10Y=Y+2^IENDFOR?“Y=”,Y14. 编程求s=1×2+3×4+5×6+……+99×100的值,并输出结果。

S=0FOR I=1 TO 100 STEP 2S=S+I*(I+1)ENDFOR?“S=”,S15. 根据以下公式计算并输出S 的值。

10014131211+++++= SS=0FOR I=1 TO 100S=S+1/IENDFOR?“S=”,S16. 编程输出100~500之间能被7整除的奇数的个数。

N=0 FOR I=100 TO 500 IF I%7=0 AND I%2=1 N=N+1 ENDIF ENDFOR ?“N=”,N17. 求Sn=a+aa+aaa+aaaa …… 其中a 是一个数字,a 的个数为n ,a 和n 由键盘输入INPUT “输入A 的值”TO AINPUT “输入项数N ” TO NSN=0T=AFOR I=1 TO NSN=SN+AA=A*10+TENDFOR?“数列之和为:”,SN18. 某班有45名学生参加“专升本”考试。

现要求从键盘输入全班一门课的成绩,输出该课程的平均分、及格人数及其百分比。

SUM=0N=0FOR I=1 TO 45INPUT “输入成绩” TO SCORESUM=SUM+SCOREIF SCORE>=60N=N+1ENDIFENDFOR?“全班平均分为”,SUM/45?“及格人数为”,N?“及格率为”,N/45*100,“%”19.编写程序输出所有满足以下条件的三位数:它是9的倍数,且个位和十位上的数字之和等于百位上的数字。

FOR I=100 TO 999G=I%10S=INT(I/10)%10B=INT(I/100)IF I%9=0 AND G+S=B?IENDIFENDFOR20.编写程序输出以下图案(必须利用循环语句控制)ab b bc c c c cd d d d d d dc c c c cb b baFOR I=1 TO 4?? SPACE(4-I)FOR J=1 TO 2*I-1?? CHR(96+I)ENDFOR?ENDFORFOR I=3 TO 1 STEP -1?? SPACE(4-I)FOR J=1 TO 2*I-1?? CHR(96+I)ENDFOR?ENDFOR21.编写子程序(或子函数)实现:1+χ+2χ2+3χ3+…nχnFUNCTION JSPARA N,XS=1FOR I=1 TO NS=S+I*X^IENDFORRETURN SENDFUNC三、数组试题22.设有十位评委给某选手打分,以去掉一个最高分和一个最低分后的平均分作为该选手的成绩。

试编写程序,要求从键盘输入评委的评分并存入到数组中,计算并输出选手的成绩。

DIME S(10)FOR I=1 TO 10INPUT “输入成绩” TO S(I)ENDFORFOR I=1 TO 9FOR J=I+1 TO 10IF S(I)>S(J)T=S(I)S(I)=S(J)S(J)=TENDIFENDFORENDFORSUM=0FOR I=2 TO 9SUM=SUM+S(I)ENDFOR?“平均成绩为”,SUM/823.已有按从小到大的顺序排列的10 个数,现输入一个数,要求插入到数列中。

插入后数列仍然按从小到大顺序排列。

DIME A(11)FOR I=1 TO 10INPUT "递增输入10个整数" TO A(I)ENDFORINPUT "输入一个待插入整数" TO XFOR I=10 TO 1 STEP -1IF A(I)>XA(I+1)=A(I)ELSEEXITENDIFENDFORA(I+1)=XFOR I=1 TO 11??A(I)ENDFOR24.输入30位学生的成绩,统计并输出每个分数段的人数:分数段按90分以上(含90分)、80~89分、70~79分、60~69分及60分以下(不含60分)划分。

DIME S(30)FOR I=1 TO 30INPUT “输入成绩” TO S(I)ENDFORSTORE 0 TO N5,N6,N7,N8,N9FOR I=1 TO 30DO CASECASE S(I)>=90N9=N9+1CASE S(I)>=80N8=N8+1CASE S(I)>=70N7=N7+1CASE S(I)>=60N6=N6+1OTHERWISEN5=N5+1ENDCASEENDFOR?“90分以上的人数为”,N9?“80分到89分的人数为”,N8?“70分到79分的人数为”,N7?“60分到69分的人数为”,N6?“不及格的人数为”,N525.已知三个矩阵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 3FOR J=1 TO 2INPUT “输入数据” TO A(I,J)ENDFORENDFORFOR I=1 TO 2FOR J=1 TO 4INPUT “输入数据” TO B(I,J)ENDFORENDFORFOR I=1 TO 3FOR J=1 TO 4C(I,J)=A(I,1)*B(1,J)+A(I,2)*B(2,J)ENDFORENDFORFOR I=1 TO 3FOR J=1 TO 4??C(I,J)ENDFOR?ENDFOR26.有一个3×5的矩阵,试编写程序,要求从键盘上输入数据,求其中数值最大的那个元素,然后输出该元素值及其所在的行号和列号(不考虑数据有相同的情况)。

相关主题