一级编程题训练
绘图题
画出下面示意图形,要求如下:
(1)画出如下的图形,注:直线部分是由两个步长为200的线段垂直相交组成,圆的直径为200;
(2)图形的中心位置为画布中心;
(3)画笔宽度为2,颜色为红色。
参考程序:
import turtle
turtle.pencolor("red")
turtle.pensize(2)
turtle.forward(-100)
turtle.forward(200)
turtle.left(90)
turtle.circle(100,450)
turtle.left(90)
turtle.forward(200)
turtle.done()
计算题
已知一头奶牛每天可以产20千克牛奶。N(N为变量)头奶牛7天可以产多少千克的牛奶?要求:
(1)程序开始运行后,会有提示字符串:“请输入奶牛的头数:”,完成奶牛头数的输入;
(可以直接赋值提示字符串到程序中,提示字符串包括冒号,但不包括双引号)
(2)程序会根据输入的奶牛头数计算出总共产出的牛奶的重量,并将结果进行修饰然后输出。
示例:如果输入奶牛的头数为10,则输出“10 头奶牛7天可以产 1400 千克的牛奶”
参考程序:
N = input("请输入奶牛的头数:")
N = int(N)
milk = N*20*7
print(N,"头奶牛7天可以产",milk,"千克的牛奶")
计算题-三位数
要求:
(1) 程序开始运行后,输入一个三位数整数;
(2) 程序会根据输入的整数输出百位、十位和个位上的数。 例如,输入123,
输出为:“百:1,十:2,个:3”。
参考程序:
x=int(input('输入一个三位数整数:'))
a=x//100
c=x%10
b=x//10%10
print("百:",a,"十:",b,"个:",c)
计算题-时间转换
时间转换:输入一个总秒数,计算是几小时几分钟几秒,并一行输出。要求:
a)输入一行,一个整数,表示总秒数;
b)输出一行,三个整数,表示小时、分钟、秒,每两个数之间用一个空格隔开。
输入样例:
7201
输出样例:
2 0 1
参考程序:
n = int(input('请输入一个总秒数:'))
m = n % 60
f = n // 60 % 60
s = n // 3600
print(s, f, m)
绘图题
要求:
(1)画一个边长为200的正方形,里面嵌套一个直径为100的圆,如下图;
(2)圆的填充颜色为蓝色,所有的线条为黑色。
(3)圆心位置为画布正中心。
参考程序:
import turtle
turtle.penup()#抬起画笔
turtle.goto(-100,100)#画笔到画正方形初始位置
turtle.pendown()#放下画笔
turtle.forward(200)#从当前画笔方向移动200
turtle.right(90)#顺时针针移动90°
turtle.forward(200)#从当前画笔方向移动200
turtle.right(90)#顺时针针移动90°
turtle.forward(200)#从当前画笔方向移动200
turtle.right(90)#顺时针针移动90°
turtle.forward(200)#从当前画笔方向移动200
turtle.right(90)#顺时针针移动90°
turtle.penup()#画笔抬起
turtle.goto(0,-50)#移动到(0,-50)的位置,也就是画圆开始的位置
turtle.pendown()#放下画笔
turtle.fillcolor('blue')#设置填充颜色为蓝色
turtle.begin_fill()#开始填充
turtle.circle(50)#画一个半径为50的圆
turtle.end_fill()#填充结束
turtle.done()#停止画笔等待关闭画布
绘图题
绘制如下图形:
1.画一个由两个直角三角形组成的正方形,边长为180像素;
2.左上三角形填充为黄色,右下三角形填充为红色;如上图:
3.设置画笔速度为1,线条为黑色;
4.画图结束,隐藏并停止画笔。
参考程序:
import turtle #库准备
turtle.fillcolor('red') #设置填充颜色为红色
turtle.speed(1) #设置画笔移动速度为1
turtle.begin_fill() #开始填充
turtle.forward(180) #从当前方向移动180
turtle.left(90) #逆时针方向旋转90°
turtle.forward(180) #从当前方向移动180
turtle.goto(0,0) #移动到(0,0)的位置,即起始位置
turtle.end_fill() #填充结束
turtle.fillcolor('yellow') #设置填充颜色为黄色
turtle.begin_fill() #开始填充
turtle.forward(180) #从当前方向移动180
turtle.right(90) #顺时针方向旋转90°
turtle.forward(180) #从当前方向移动180
turtle.end_fill() #填充结束
turtle.hideturtle() #隐藏画笔
turtle.done() #停止画笔等待关闭
绘图题
绘制如下图形 ,一个正方形,内有三个红点,中间红点在正方形中心。
要求如下:
(1)正方形边长为200,线条为黑色;
(2)圆点的直径均为20 ,填充颜色为红色,画完后隐藏画笔;
(3)中间圆点的圆心位置为画布正中心,三个圆心之间距离相隔为40。
参考程序:
import turtle
turtle.penup()
turtle.goto(-100,100)
turtle.pendown()
turtle.forward(200)
turtle.right(90)
turtle.forward(200)
turtle.right(90)
turtle.forward(200)
turtle.right(90)
turtle.forward(200)
turtle.right(90)
turtle.penup()
turtle.goto(0,0)
turtle.dot(20,'red')
turtle.penup()
turtle.goto(-40,0)
turtle.dot(20,'red')
turtle.penup()
turtle.goto(40,0)
turtle.dot(20,'red')
turtle.hideturtle()
计算题-龟兔赛跑
龟兔赛跑,兔子刚开始跑得非常快,但是兔子太骄傲了,在领先乌龟100米时,自行休息睡着了,乌龟一步一步进行追赶,乌龟的速度是V m/s(V<10),请计算出乌龟多长时间就可以追上兔子呢?要求:
(1) 程序开始运行时,询问请输入乌龟爬行的速度,输入一个数字;
(2) 程序根据输入的数字计算出乌龟需要多长时间就可以追上兔子;
(3) 输出的格式为:“乌龟能够追上兔子所需的时间是:*秒。”。
参考程序:
a=int(input("请输入乌龟爬行的速度"))
b=100/a
print("乌龟能够追上兔子所需的时间是:",b,"秒")
计算题-长方形的面积与周长
求长方形的面积与周长。
要求:
(1)程序开始运行后,输入长方形的长(a),然后再输入长方形的宽(b);
(2)程序会根据输入的数字给出长方形的面积和长方形的周长;
(3)输出长方形的面积和周长,并且注明是面积还是和周长。
参考程序:
a=int(input("请输入长方形的长:"))
b=int(input("请输入长方形的宽:"))
c=a*b
d=(a+b)*2
print("长方形的面积是:",c)
print("长方形的周长是:",d)
绘图题
绘制如下图形,相关参数及要求如下:
(1)画笔起始位置不限,但是整个图形必须要能够在画布中呈现;
(2)大的正方形由四个小正方形组成;
(3)每个小正方形的边长均为100像素;
(4)左上角和右下角的正方形填充颜色均为黑色;
(5)所有的线条颜色均为黑色;
(6)绘制完成后,隐藏画笔。
参考程序:
import turtle as t
t.forward(200)
t.right(90)
t.forward(200)
t.right(90)
t.forward(200)
t.right(90)
t.forward(200)
t.right(90)
t.fillcolor('black')
t.begin_fill()
t.forward(100)
t.right(90)
t.forward(100)
t.right(90)
t.forward(100)
t.right(90)
t.forward(100)
t.right(90)
t.end_fill()
t.goto(200,-200)
t.right(-90)
t.fillcolor('black')
t.begin_fill()
t.forward(100)
t.left(90)
t.forward(100)
t.left(90)
t.forward(100)
t.left(90)
t.forward(100)
t.left(90)
t.end_fill()
t.done()
计算题
写一个计算长方形面积的程序,并对每行代码进行相应的注释,要求如下: (1)采用多行注释,说明程序的功能(如下): “计算长方形的面积 并输出结果”; (2)设置第1个变量:用“a”表示长方形的长,并赋值为6;使用单行注释说明程序的功能; (3)设置第2个变量:用“b”表示长方形的宽,并赋值为3;使用单行注释说明程序的功能; (3)设置第3个变量:用“s”表示长方形的面积,并体现运算公式,使用单行注释说明程序功能; (4)输出长方形的面积,运行结果格式为:“长方形的面积为:”并使用单行注释说明程序功能。
参考程序:
'''
计算长方形的面积
并输出结果
'''
a=6 #长方形的长
b=3 #长方形的宽
s=a*b #长方形的面积
print("长方形的面积为:",s) #输出长方形的面积
绘图题
绘制如下图形:
(1)画一个由一个正方形和一个菱形组成的图形,其中,正方形的边长为200象素,菱形的四个顶点均在正方形四条边的中点上;
(2)设置画笔速度为1;
(3)菱形的填充颜色为红色,所有线条为黑色;
(4)画图结束,隐藏并停止画笔。
参考程序:
import turtle
turtle.fillcolor("red") #设置填充颜色为红色
turtle.speed(1)#设置画笔移动速度为1
turtle.forward(200) #从当前方向移动200
turtle.left(90)#逆时针方向旋转90度
turtle.forward(200)
turtle.left(90)
turtle.forward(200)
turtle.left(90)
turtle.forward(200)
turtle.up()#抬起画笔
turtle.goto(100,0)#移动到(100,0)的位置,即菱形的第一个顶点位置
turtle.down()#放下画笔
turtle.begin_fill()#开始填充
turtle.goto(200,100)#移动到(200,100)的位置,即菱形的第二个顶点位置
turtle.goto(100,200)#移动到(100,200)的位置,即菱形的第三个顶点位置
turtle.goto(0,100)#移动到(0,100)的位置,即菱形的第四个顶点位置
turtle.goto(100,0)#移动到(100,0)的位置,即菱形的第一个顶点位置
turtle.end_fill()#填充结束
turtle.hideturtle()#隐藏画笔
turtle.done()#停止画笔等待关闭
绘图题-画一个笑脸
要求:画一个笑脸,里面填充如下图。
(1)画一个半径为200的圆,起点坐标(0 ,-200);
(2)左眼为半径20的圆,起点坐标(-100 ,50)填充蓝色,右眼和左眼水平相距200;
(3)鼻子的起点坐标(0 ,50),形状为半径-50圆的内切正三角形;
(4)左嘴角坐标(-150,-70),嘴下部坐标(0,-170),左嘴角到右嘴角的宽度300。
参考程序:
import turtle
#画圆脸
turtle.penup() #画笔抬起
turtle.goto(0, -200) #回到画大圆脸的初始位置
turtle.pendown()#落下画笔
turtle.circle(200)#画一半径为200,圆心在画笔左边圆
#画左眼
turtle.penup()#画笔抬起
turtle.goto(-100, 50) #回到画左眼小圆的初始位置
turtle.pendown()#落下画笔
turtle.fillcolor('blue') #设置填充颜色为蓝色
turtle.begin_fill()#开始填充
turtle.circle(20) #画一半径为20的圆,圆心在画笔左边
turtle.end_fill()#填充结束
#画右眼
turtle.penup()#画笔抬起
turtle.goto(100, 50) #回到画右眼小圆的初始位置
turtle.pendown()#落下画笔
turtle.fillcolor('blue') #设置填充颜色为蓝色
turtle.begin_fill()#开始填充
turtle.circle(20) #画一半径为20的圆,圆心在画笔左边
turtle.end_fill()#填充结束
#画鼻子
turtle.penup()#画笔抬起
turtle.goto(0, 50) #回到画鼻子的初始位置
turtle.pendown()#落下画笔
turtle.circle(-50, steps=3) #画半径-50圆内切正三角形,圆心在画笔右边
#画嘴
turtle.penup()#画笔抬起
turtle.goto(-150, -70) #回到画嘴的初始位置左嘴角
turtle.pendown()#落下画笔
turtle.goto(0, -170)#移动到嘴底部画线
turtle.goto(150, -70) #移动到右嘴角画线
turtle.done()#停止画笔等待关闭画布
计算题-圆的计算
编写一个程序,它以圆的半径作为输入,输出圆的直径、周长和面积(保留两位小数)。
要求: 程序开始运行后,输入一个数字作为半径; 程序会根据输入的数字给出圆的直径、周长和面积,并且注明是直径、周长、面积。
参考程序:
p=3.14
r=eval(input("请输入一个大于0的半径:"))
a=2*r
b=a*p
c=p*r*r
print("圆的直径是:%.2f"%a)
print("圆的周长是:%.2f"%b)
print("圆的面积是:%.2f"%c)
计算题-正方形的周长和面积
计算正方形的周长和面积。
要求:
(1)程序开始运行后,会有提示字符串:“请输入正方形的边长(米):”,完成正边长的输入;
(可以直接赋值提示字符串到程序中,提示字符串包括冒号,但不包括双引号)
(2)程序会根据输入边长计算出正方形的周长和面积,并将结果进行修饰然后输出。
示例:如果输入正方形的边长10,则输出“边长为10米的正方形周长是40米,
面积是100平方米”
参考程序:
a = input("请输入正方形的边长(米):")
a = int(a)
C = a*4
S = a**2
print("边长为",a,"米的正方形周长是",C,"米,面积是",S,"平方米")
绘图题
绘制一个如下的图形,线条和填充颜色均为红色。实心圆的半径为50,外圆的半径为100。
参考程序:
import turtle as t
t.color('red')
t.circle(100)
t.begin_fill()
t.circle(50)
t.end_fill()
t.done()
计算题-高铁问题
已知高铁速度350km/h,输入路程(km),计算需要的时间(小时),并保留两位小数输出。
例如:
输入:
请输入总路程(km):875
输出:
需要运行2.50小数
参考程序:
n=input("请输入总路程(km):")
b=eval(n)
s=b/350
print("需要运行%.2f小时"%(s))
绘图题-同心圆
绘制如下图形,蓝色圆半径100,黄色圆半径为50,红色为25,三个圆的圆心均在画布中心(0,0)点。
参考程序:
import turtle as t
#蓝色的圆
t.penup()
t.goto(0,-100)
t.color('blue')
t.pendown()
t.begin_fill()
t.circle(100)
t.end_fill()
#黄色的圆
t.penup()
t.goto(0,-50)
t.color('yellow')
t.pendown()
t.begin_fill()
t.circle(50)
t.end_fill()
#蓝色的圆
t.penup()
t.goto(0,-25)
t.color('red')
t.pendown()
t.begin_fill()
t.circle(25)
t.end_fill()
t.hideturtle()
绘图题-五角星
按照要求绘制一个五角星:
(1)海龟初始位置的坐标为(0,0);
(2)设置画笔大小为5,
(3)画笔颜色为红色(red);
(4)五角星填充颜色为黄色(yellow)。
(5)五角星大小不限,但是要能清晰看出是五角星,并且完全在考试平台上显示出来。
提示:五角星每个角为36度
参考程序
import turtle
turtle.pensize(5)
turtle.pencolor("red")
turtle.fillcolor("yellow")
turtle.begin_fill()
turtle.forward(200)
turtle.right(144)
turtle.forward(200)
turtle.right(144)
turtle.forward(200)
turtle.right(144)
turtle.forward(200)
turtle.right(144)
turtle.forward(200)
turtle.end_fill()
绘图题-数字2
绘制一个数字2,要求线条颜色为红色,粗细为5个像素,如下图:
参考程序
import turtle
turtle.pencolor("red")
turtle.pensize(5)
turtle.forward(100)
turtle.right(90)
turtle.forward(80)
turtle.right(90)
turtle.forward(100)
turtle.left(90)
turtle.forward(80)
turtle.left(90)
turtle.forward(100)
turtle.done()
计算题-身高
描述:
假设孩子的身高完全由爸爸和妈妈的遗传因素决定,预测一下长大后孩子的身高是多少?
孩子获得了爸爸妈妈各一半的遗传基因,所以可以用以下公式计算孩子未来的身高。(单位:厘米)
孩子未来的身高=(爸爸的身高+妈妈的身高+13乘以性别系数)/2
如果是“男孩”,性别系数值为“1”;如果是“女孩”,则性别系数值为“-1”。
输入格式:
第一行输入一个数字,代表爸爸的身高
第二行输入一个数字,代表妈妈的身高
第三行输入一个数字(1或-1),代表性别系数
(输入使用input(),并有相应提示信息)
输出格式:
输出孩子未来的身高。(输出使用print(),并有相应提示信息)
参考程序
f=input("请输入爸爸的身高:")
m=input("请输入妈妈的身高:")
s=input("请输入性别系数:")
f=float(f)
m=float(m)
s=float(s)
h=(f+m+13*s)/2
print("孩子未来的身高:",h,"(厘米)")
绘图题-4个圆
要求:如图所示绘制四个圆
(1)海龟的初始位置的坐标为(0,0);
(2)绘制第1个左上方的圆形,半径为40;
(3)绘制第2个左下方的圆形,半径为40;
(4)海龟由初始位置坐标(0,0)移动至坐标(80,0);
(5)绘制第3个右上方的圆形,半径为40;
(6)绘制第4个右下方的圆形,半径为40;
参考程序:
import turtle
turtle.circle(40)
turtle.circle(-40)
turtle.forward(80)
turtle.circle(40)
turtle.circle(-40)
turtle.done()
计算题-买本子
买本子:小明同学带了一些钱去帮同学们买本子。请根据所带的元数、单价和数量,算一算钱够不够。
要求:
(1) 程序运行后,输入三次数字(不能一次输完),这三个数字为整数,表示所带的元数(钱数)、本子的单价和数量;
(2) 输出一行,钱足够买就输出"True",钱不够买就输出"False"(不要输出引号)。
输入样例:
100
9
11
输出样例:
True
参考程序:
y = int(input("请输入总元数:"))
dj = int(input("请输入单价:"))
sl = int(input("请输入总数:"))
zj = dj * sl
print(y >= zj)
绘图题
请使用turtle画出如图标志。
要求:
(1)线条颜色为黑色,线条粗细为10;
(2)圆半径为50,填充颜色为蓝色;
(3)等边三角形边长为180;
(4)等边三角形底边中点位置为画布正中心。
参考程序:
import turtle # 加载turtle库
turtle.penup() # 抬笔
turtle.clear() # 清空
turtle.goto(0, 0) # 到达原点
turtle.pensize(10) # 设置线条粗细为10
turtle.pencolor("black") # 设置线条颜色为黑色
turtle.pendown() # 落笔
# 画圆
turtle.fillcolor("blue") # 设置填充颜色为浅蓝色
turtle.begin_fill() # 开始填充
turtle.setheading(0) # 设置方向向右
turtle.circle(50) # 绘制半径为50的圆形
turtle.end_fill() # 结束填充
# 画三角形右边
turtle.forward(90) # 前进90步
turtle.left(120) # 逆时针旋转120度
turtle.forward(180) # 前进180步
# 画中间竖线
turtle.goto(0, 0) # 到达坐标(0, 0)
# 画三角形左边
turtle.setheading(180) # 设置方向向左
turtle.forward(90) # 前进90步
turtle.right(120) # 顺时针旋转120度
turtle.forward(180) # 前进180步
turtle.penup() # 抬笔
turtle.done() # 画笔结束
绘图题
画出下面示意图形,要求如下:
(1)画出如下的图形,注:直线部分是由两个步长为200的线段垂直相交组成,圆的直径为200;
(2)图形的中心位置为画布中心;
(3)画笔宽度为2,颜色为红色。
参考程序:
import turtle as t
t.pencolor("red")
t.pensize(2)
t.forward(100)
t.left(90)
t.fillcolor('yellow')
t.begin_fill()
t.circle(100,90)
t.goto(0,0)
t.end_fill()
t.goto(0,100)
t.fillcolor('blue')
t.begin_fill()
t.circle(100,90)
t.goto(0,0)
t.end_fill()
t.goto(-100,0)
t.fillcolor('yellow')
t.begin_fill()
t.circle(100,90)
t.goto(0,0)
t.end_fill()
t.goto(0,-100)
t.fillcolor('blue')
t.begin_fill()
t.circle(100,90)
t.goto(0,0)
t.end_fill()
计算题
中国电子学会组织来自全国各地的学生参加人工智能活动,按参加学生名单顺序,每 10个人一排,若想知道第n个人在哪一排就坐,请编程实现?
要求如下:
(1)输入学生的编号;
(2)输出所在的排数;
例如:
请输入学生编号:46
编号 46 的学生坐着第 5 排
参考程序
n=input('请输入学生编号:')
n=int(n)
a=(n+9)//10
print('编号',n,'的学生坐着第',a,'排')
计算题
输入一个两位数,可以将十位数和个位数对调位置输出。
例如:输入18,输出81
参考程序:
a=input("请输入一个两位数:")
a=int(a)
b=a//10
c=a%10
d=c*10+b
print(d)
绘图题
绘制如下图形:
1.画一个由四个直角三角形组成的正方形,边长为200像素;
2.颜色分别为红色、蓝色、黄色、黑色;如图:
3.设置画笔速度为1;
4.画图结束,隐藏并停止画笔。
参考程序:
import turtle as t
t.color('red')
t.begin_fill()
t.goto(-100,-100)
t.goto(100,-100)
t.goto(0,0)
t.end_fill()
t.color('blue')
t.begin_fill()
t.goto(100,-100)
t.goto(100,100)
t.goto(0,0)
t.end_fill()
t.color('yellow')
t.begin_fill()
t.goto(100,100)
t.goto(-100,100)
t.goto(0,0)
t.end_fill()
t.color('black')
t.begin_fill()
t.goto(-100,100)
t.goto(-100,-100)
t.goto(0,0)
t.end_fill()
t.hideturtle()
t.done()
绘图题-天狗吃月亮
“天狗吃月亮”是一个古老的神话,以前古人不了解月食这一现象,所以说月亮被狗吃了,天狗吃月亮是古人对“月食”这一天文现象的简称。月食是自然界的一种现象,当太阳、地球、月球三者恰好或几乎在同一条直线上时(地球在太阳和月球之间),太阳到月球的光线便会部分或完全地被地球遮挡,产生月食。请你设计一段程序完成下列图片的月食现象。
要求:
(1)海龟的初始位置的坐标为(0,0),月食现象的图片需在整个画布中完整呈现;
(2)月食现象由两个圆或点组成,分别为半径不同的黄色和白色的圆或点;
(3)绘制半径为150的圆或点,并填充颜色为黄色,该图形的中心位置为画布的正中心位置(0,0);
(4)绘制半径为75的圆或点,并填充颜色为白色,该图形的中心位置坐标为(150,0)。
参考程序:
import turtle
turtle.color("yellow")
turtle.dot(300)
turtle.forward(150)
turtle.color("white")
turtle.dot(150)
计算题-鞋码
每个人都知道自己的鞋码,但是不知道自己的脚长,请写一个程序,帮助大家利用鞋码算出脚长。
要求:
1.允许用户输入自己的鞋码,并有提示语'请输入你的鞋码:',不需要包括单引号;
2.计算鞋码,脚长 = (鞋码 + 10) / 2;
3.输出脚长,并有提示语'你的脚长是(单位:厘米):',不需要包括单引号。
示例:
输入:38
输出:你的脚长是(单位:厘米):24.0
参考程序:
n=input('请输入你的鞋码:')
n=int(n)
x=(n+10)/2
print('你的脚长是(单位:厘米):',x)