程序设计练习题.docx
《程序设计练习题.docx》由会员分享,可在线阅读,更多相关《程序设计练习题.docx(7页珍藏版)》请在冰豆网上搜索。
![程序设计练习题.docx](https://file1.bdocx.com/fileroot1/2023-1/22/48fdf1ae-2233-4b16-8dd8-391effbe763c/48fdf1ae-2233-4b16-8dd8-391effbe763c1.gif)
程序设计练习题
1、编写一个程序从键盘输入一个数(可以是C、N、D或L类型),保存到变量A中,通过类型判断,输出其类型的汉字说明。
如输入A的值是Hello,则输出为Hello-字符型数据。
clear
input"请输入一个数:
"toa
docase
casetype("a")="C"
?
a,"-","字符型数据"
casetype("a")="N"
?
a,"-","数值型数据"
casetype("a")="L"
?
a,"-","逻辑型数据"
casetype("a")="D"
?
a,"-","日期型数据"
endcase
return
2、求自然数列之和S=1+2+3+….+N,输入参数为n.
clear
s=0
input"请输入要求和项的参数值N:
"ton
fori=1ton
s=s+i
endfor
?
?
"s="
fori=1ton
?
?
alltrim(str(i))
ifi<>n
?
?
"+"
else
?
?
"=",alltrim(str(s))
endif
endfor
return
3、求Fibonacci数列1,2,3,5,8,13,21…..的前N项,N由用户输入。
clear
input"请输入Fibonacci数列的参数N:
"TON
dimensionx(n)
fori=1ton
ifi=1
x
(1)=1
else
ifi=2
x
(2)=2
else
x(i)=x(i-1)+x(i-2)
endif
endif
endfor
?
"Fibonacci数列的前N项为:
"
?
fori=1ton
ifi%10=0
?
?
alltrim(str(x(i)))
?
else
?
?
alltrim(str(x(i))),","
endif
endfor
return
4、利用下列公式求pi/4=1-1/3+1/5-1/7+1/9-1/11+....取前10000项。
clear
input"请输入参数N:
"TON
S=1
fori=1ton-1
s=s+(-1)**I/(2*I+1)
ENDFOR
?
"S=1-1/3+1/5-1/7+...=",s
return
5、利用数组编写程序,从键盘输入10个数,再按逆序输出。
clear
dimensionx(10)
fori=1to10
input"请输入第"+alltrim(str(i))+"数:
"tox(i)
endfor
fori=10to1step-1
?
?
alltrim(str(x(i)))+","
endfor
return
6、编写一个程序将用户输入字符串中的数字取出,并显示所有数字之和。
clear
accept"请输入一个字符串:
"tostr1
S=0
k=""
fori=1tolen(str1)
j=substr(str1,i,1)
ifasc(j)>=48andasc(j)<=57
k=k+j
s=s+val(j)
endif
endfor
fori=1tolen(k)
?
?
substr(k,i,1)
ifi<>len(k)
?
?
"+"
endif
endfor
?
?
"=",alltrim(str(s))
return
7、编写一个程序把10000以内的素数选出来。
clear
?
2
fori=3to10000
forj=2toi-1
ifmod(i,j)=0
exit
endif
endfor
ifj=i
?
?
i
endif
endfor
return
8、从键盘输入两个整数,求它们的最大公约数。
clear
_screen.fontsize=30
input"请输入第一个数:
"toi
input"请输入第二个数:
"toj
a=i
b=j
dowhilea%b!
=0
t=a%b
a=b
b=t
enddo
?
alltrim(str(i))+"与"+alltrim(str(j))+"的最大公约数为:
"+alltrim(str(b))
return
9、设计一个程序在屏幕上面显示jsqk表所有女硕士的姓名、性别、学位、职称等信息。
clear
usejsqk
?
"姓名性别学位职称"
scanforxb="女"andxw="硕士"
?
xm,xb,xw,zc
endscan
return
10、编写程序计算下列表达式的值,变量x,y、z(y≠0,z≠0)的值由键盘输入。
clear
input"请输入变量X的值:
"tox
input"请输入变量Y的值:
"toy
input"请输入变量Z的值:
"toz
?
log(abs(x-y)+sqrt(abs(x*y*z))+abs(y/z))+exp(abs(x+y))*y*z*sin(pi()/5)
Return
11、打印杨辉三角行的前N行数据。
杨辉三角形状如下:
1
11
121
1331
14641
clear
input"请输入杨辉三角形的行数:
"ton
dimea(n,n)
fori=1ton
forj=1toi
docase
casej=1
a(i,j)=1
casej=i
a(i,j)=1
otherwise
a(i,j)=a(i-1,j-1)+a(i-1,j)
endcase
endfor
endfor
fori=1ton
ifn%2=0
?
?
space(n-i)
else
?
?
space(n-i-1)
endif
forj=1toi
?
?
alltrim(str(a(i,j)))
?
?
space
(1)
endfor
?
endfor
return
12、编写程序判断一个3位数是否为水仙花数,返回逻辑值。
Clear
Input"请输入一个三位数:
"ton
ifn>=100andn<=999
Nbw=int(n/100)
Nsw=int(n%100/10)
Ngw=n%10
IfN=Nbw^3+Nsw^3+Ngw^3
?
Str(N,3)+"是水仙花数"
Else
?
Str(N,3)+"不是水仙花数"
Endif
else
?
"输入的数值不是一个三位数!
"
endif
return