程序设计题库整理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、编写程序,在100~999三位整数范围内,找出这样的数(水仙花数):该数等于其各位数字的立方和。如:371=33+73+13,即371就是水仙花数。
declare @i int ,@k int,@a int, @b int ,@c int
set @i=100
set @k=0
while @i<=999
begin
set @a=@i/100
set @b=@i/10%10
set @c=@i%10
if @i=power(@a,3)+power(@b,3)+power(@c,3)
begin
print @i
set @k=@k+1
end
set @i=@i+1
end
print '100-999之间的水仙花总共有'+str(@k,1)+'个'
2、求s=a+aa+aaa+…+aaa …aaa(n 个a),其中a 和n 的值由用户使用Set 或Select 语句自己输入。例如,当a=3,n=4时,S=3+33+333+3333。
Declare @a int,@s int,@n int
Set @a=3
Set @n=1
Set @s=0
While @n<=4
Begin
Set @s=@s+replicate(@a,@n)
Set @n=@n+1
End
Print @s
3. 在银行存款,设存款金额p=2000元,存款期限n=5年,年利率r =0.05,编程计算5年后的本利和。
计算在银行存款的本利和公式为:p1=p×(1 + r )n
declare @p float, @n int, @r float ,@p1 float
set @p=2000
set @n=5
set @r=0.05
set @p1=@p*(1+@r)*@n
print '5年后的本利和'+str(@p1)
4. 设圆华氏温度F 的值为20,求摄氏温度,公式为C=)32(9
5 F ,要求用Set 语句或Select 语句给华氏温度F 赋值,输出要有文字说明。
declare @c float ,@f float
set @f=20
set @c=(5*(@f-32))/9
print @c
5. 在国际象棋棋盘的64个格上依次放入小麦1粒、2粒、4粒、8粒…,求按此规律放满64个格需要多少粒小麦。
declare @i float ,@s float
set @i=1
set @s=0
while @i<=64
begin
set @s=@s+power(2,@i-1)
set @i=@i+1
end
print '按此规律放满64个格需要'+str(@s)+'粒小麦'
6、. 编写程序,输入一个正整数,判定该数是否为素数,如果是素数,则输出“该数是素数”的信息,否则输出“该数不是素数”的信息。
Declare @i int,@n int
Set @i=13
Set @n=2
While @n<=@i-1
Begin
If @i%@n=0 break
Set @n=@n+1
End
If @n=@i
Print str(@i)+'是素数'
Else
Print str(@i)+'不是素数'
7、计算1^3+2^3+3^3+…+100^3. 注意:1^3表示1的3次方,2^3表示2的3次方,…,100^3表示100的3次方。
declare @i int ,@s int,@a int,
set @s=0
set @i=1
while @i<=100
begin
set @a=power(@i,3)
set @s=@s+@a
set @i=@i+1
end
print '1^3+2^3+3^3+…+100^3='+str(@s)
8、使用Set语句输入一个整数N,判断其能否同时被3和5整除。使用Print语句输出判断结果
declare @a int
set @a=1
if @a%3=0 and @a%5=0
print '能否同时被3和5整除'
else
print '不能否同时被3和5整除'
9、将100以内的所有的素数打印出来.
declare @a int,@i int
set @a=2
while @a<=100
begin
set @i=2
while @i<=@a-1
begin
if @a%@i=0
break
set @i=@i+1
end
if @i=@a
print @a
set @a=@a+1
end
10、编写程序,输出由1、2、3、4、5、6这六个数字组成的所有可能的两位数,并统计它们的个数。
declare @i int ,@n int,@a int, @b int ,@c int
set @n=0
set @i=1
while @i<=6
begin
set @a=1
while @a<=6
begin
set @b=@i*10+@a
print @b
set @n=@n+1
set @a=@a+1
end
set @i=@i+1
end
print str(@n)+'个'