一、问答题
(1)什么是硬件?什么是软件?
答:硬件是计算机系统中各种物理设备的统称,是构成计算机的实体,看得见、摸得着,比如中央处理器(CPU)、内存条、硬盘、显卡、显示器、键盘、鼠标等 ,它们是计算机实现各种功能的物质基础。
软件是一系列按照特定顺序组织的计算机数据和指令的集合,是无形的。软件分为系统软件和应用软件,系统软件如操作系统(Windows、Linux 等)、语言处理程序等,负责管理和控制计算机系统的硬件资源,为用户和其他软件提供运行环境;应用软件如办公软件(Word、Excel)、游戏软件、图像处理软件(Photoshop)等,是为了满足用户不同领域、不同问题的应用需求而设计的 。
(2)比特是什么?字节是什么?
答:比特(bit,也写作 b )是计算机中表示信息的最小单位,它只有两种状态,即 0 和 1,这两种状态可以用来表示逻辑上的 “真” 与 “假”、电路的 “通” 与 “断” 等。
字节(Byte,也写作 B)是计算机信息技术用于计量存储容量的一种计量单位 ,1 字节由 8 个比特组成,即 1B = 8bit。字节是计算机处理数据的基本单元,在实际应用中,文件大小、内存容量等通常以字节为基础单位来计量和描述,并且衍生出了 KB(千字节)、MB(兆字节)、GB(吉字节)等更大的单位 ,换算关系为 1KB = 1024B,1MB = 1024KB,1GB = 1024MB 。
(3)内存和存储设备最主要的区别是什么?
答:
- 数据存储的易失性:内存(如随机存取存储器 RAM)是易失性存储,即计算机断电后,内存中存储的数据会立即丢失。而存储设备(如硬盘、U 盘、固态硬盘等)属于非易失性存储,断电后数据依然可以长期保存 。
- 读写速度:内存的读写速度极快,能快速响应 CPU 的数据读取和写入请求,使计算机快速处理数据。相比之下,存储设备的读写速度相对较慢,比如机械硬盘,受机械部件的限制,其读写速度远不及内存 。
- 功能作用:内存主要用于计算机运行时,临时存储 CPU 正在处理的数据和程序,充当 CPU 与外部存储设备之间的桥梁,方便 CPU 快速访问数据,提高计算机运行效率。存储设备则主要用于长期存储大量的数据和程序,如操作系统、应用程序、用户文件等 。
(4)解释语言和编译语言之间的区别是什么?
答:解释语言和编译语言有以下主要区别:
- 执行过程:编译语言(如 C、C++)在执行前,需通过编译器将源代码一次性全部翻译成目标机器语言(机器码),生成可执行文件,后续直接运行该文件。例如用 C 语言编写的程序,经过gcc编译器编译后产生可执行文件。解释语言(如 Python、JavaScript)则是在运行时,由解释器逐行读取并执行源代码,无需提前全部翻译成机器码 。
- 运行效率:编译语言生成的可执行文件能直接在硬件上运行,运行效率相对较高。解释语言由于逐行解释执行,执行过程中存在额外开销,运行效率通常比编译语言低。
- 可移植性:编译语言生成的可执行文件往往与特定的硬件和操作系统相关,若要在不同平台运行,需针对不同平台重新编译。解释语言只要在相应平台上安装了对应的解释器,源代码就可以运行,可移植性较好 。
- 开发调试:编译语言在编译阶段就能发现大部分语法错误,修改后需重新编译才能运行,开发调试周期可能较长。解释语言可随时修改并立即运行查看效果,方便快速调试,开发效率相对较高 。
(5)操作系统的主要任务是什么?
答:操作系统的主要任务包括:
- 进程管理:对计算机中的进程进行创建、调度、终止等操作,合理分配 CPU 资源,保证多个程序能有序运行。
- 内存管理:负责内存的分配与回收,管理内存空间,使不同程序和数据在内存中合理存放,避免冲突。
- 文件管理:组织、存储、检索和保护计算机中的文件资源,提供对文件的创建、删除、读取、写入等操作接口。
- 设备管理:管理计算机的外部设备,如硬盘、打印机、网卡等,处理设备的驱动程序,实现设备的分配与回收,协调设备与 CPU 等部件的通信。
- 用户接口:为用户提供操作计算机的界面,包括命令行界面和图形用户界面,方便用户与计算机交互,运行程序和管理系统资源。
(6)可以使用两种模式运行Python。解释这两种模式。
- 交互式:在命令行输入 python 进入 Python 交互式环境,每输入一条语句回车后,解释器立即执行并返回结果。适合快速测试代码片段,如验证函数功能、进行简单运算等,方便即时查看效果。
- 脚本式:将 Python 代码编写在扩展名为.py 的文件中,通过命令行执行该文件(如 python 文件名.py ),解释器会按顺序执行文件中的所有代码。
(7)找出下面代码中的错误
print("Hello World! This is "Python" ")
在符号串中引入了符号串,应对符号串中的引号进行转义
(8)列举代码当中四种异常错误,说明错误原因
- 除零错误(ZeroDivisionError):原因:在代码中进行除法运算时,除数为 0,例如 result = 10 / 0,数学中除数不能为 0,程序运行到此处会报错。
- 索引错误(IndexError):原因:访问列表、元组等序列类型数据时,使用了超出范围的索引值,比如 my_list = [1, 2, 3]; print(my_list[3]) ,列表索引从 0 开始,这里索引 3 超出了范围。
- 名称错误(NameError):原因:使用了未定义的变量或函数,如 print(num),但之前没有定义 num 变量,解释器找不到对应名称会报错。
- 类型错误(TypeError):原因:对不兼容的数据类型执行操作,例如 my_str = “hello”; result = my_str + 5 ,字符串和整数不能直接相加,会引发类型错误。
(9)下面哪些标识符是有效的?哪些是Python关键字?
miles Test a+b b-a
4#R $4 #44 apps
if elif x y
有效标识符:miles 、Test、apps 、x 、y 。
关键字:if 、elif 。
(10)如何使用Python编写下面的算数表达式?
4
3
(
r
+
34
)
−
9
(
a
+
b
c
)
+
3
+
d
(
2
+
a
)
a
+
b
d
\frac{4}{3(r+34)}-9(a+bc)+\frac{3+d(2+a)}{a+bd}
3(r+34)4−9(a+bc)+a+bd3+d(2+a)
4 / (3 * (r + 34)) - 9 * (a + b * c) + (3 + d * (2 + a)) / (a + b * d)
(11)下面的语句都正确吗?如果是,给出他们的结果。
value = 4.6
print(int(value))
print(round(value))
print(eval("4 * 5 + 2"))
print(int("04"))
print(int("4.5"))
print(eval("04"))
value = 4.6:正确,结果为4.6。
print(int(value)):正确,int()函数会将浮点数4.6截断取整,结果为4。
print(round(value)):正确,round()函数会对4.6进行四舍五入,结果为5。
print(eval(“4 * 5 + 2”)):正确,eval()函数会计算字符串中的表达式,4 * 5 + 2的结果是22 ,所以输出22。
print(int(“04”)):正确 int()函数会将字符串 “04” 转换为整数,结果为4。
print(int(“4.5”)):错误,int()函数不能直接将包含小数点的字符串转换为整数,会抛出ValueError异常。
print(eval(“04”)):正确,eval()函数会将字符串 “04” 当作整数计算,结果为4。
(12)time .time() 返回的是什么?
在 Python 中,time.time()函数返回的是自 1970 年 1 月 1 日 00:00:00 UTC(协调世界时)到当前时刻的秒数,是一个浮点数类型的时间戳。
(13)变量的命名规则和规范是什么?
- 命名规则:
- 变量名由字母、数字和下划线组成。
- 不能以数字开头。
- 不能是 Python 的关键字,如 if、for、while等。
- 命名规范:
- 尽量使用有意义的名称,便于理解变量的用途,例如用student_name表示学生姓名,而不是无意义的a1。
- 遵循下划线命名法(如user_name)或驼峰命名法(如userName) ,在一个项目中尽量保持一致。
(14)什么是UNIX时间点?
UNIX 时间点,也叫 UNIX 时间戳,是一种时间计量方式。它以协调世界时(UTC)1970 年 1 月 1 日 00:00:00 作为起始时间,通过记录从该起始时刻到当前时刻所经过的秒数来表示时间。UNIX 时间点在计算机系统中被广泛应用于时间记录、时间相关的计算和排序等场景,通常是一个整数或浮点数。
(15)下面的转换是允许的吗?如果允许,给出转换后的结果。
i = int(True)
j = int(False)
b1 = bool(4)
b2 = bool(0)
- i = int(True):允许转换, i 的值为 1。
- j = int(False):允许转换, j 的值为 0。
- b1 = bool(4):允许转换, b1 的值为 True。
- b2 = bool(0):允许转换, b2 的值为 False。
二、编程题
(16)将英尺数转换为米数
题目描述
输入英尺数然后将它转换为米数,并输出结果,一英尺等于0.305米
输入输出描述
输入一个数据表示英尺数
输出转换后的米数,结果保留四位小数点
示例
输入:
16.5
输出:
5.0325
#1.输入英尺数
foot = float(input())
#2.将英尺数转化为米数(一英尺等于0.305米)
meters = 0.305 * foot
#3.输出米数
print(f'{meters:.4f}')
(17)计算小费
题目描述
读取小计和酬金率,然后计算小费以及合计金额。例如客户的小计为10元,酬金率为15%,那么小费是1.5元,合计金额为11.5元
输入输出描述
分别输入小计和酬金率,两个数据用之间用空格分隔
输出两行,第一行为小费,第二行为合计金额,结果保留两位小数
示例
输入:
15.69 15
输出:
2.35
18.04
#1.输入小计,酬金率,
xiaoji, choujinlv = map(float,input().split(" "))
#2.计算小费 计算合计金额
choujinlv /= 100
xiaofei = choujinlv * xiaoji
total = xiaoji + xiaofei
#3.输出小费 合计金额
print(f'{xiaofei:.2f} ', end="\n")
print(f'{total:.2f} ', end="\n")
(18)计算年数和天数【录屏讲解】
讲解链接:
录制文件:https://meeting.tencent.com/crm/lReGdqGJ76
题目描述
输入分钟数,然后将该分钟数转换为年数和天数,假定一年有365天
输入输出描述
输入一个分钟数
输出两行,第一行为年数,第二行为天数
示例
输入:
1000000000
输出:
1902
214
#1.输入分钟数
mintues = int(input())
#2.分钟数转化年数和天数
years = mintues // (60 * 24 * 365)
mintues = mintues % (60 * 24 * 365)
days = mintues // (60 * 24)
#3.输出年数和天数
print(years)
print(days)
(19)计算能量
题目描述
水从初始温度加热到最终温度是需要能量的,请计算需要多少能量,公式如下:
Q
=
M
∗
(
f
i
n
a
l
T
e
m
p
e
r
a
t
u
r
e
−
i
n
i
t
i
a
l
T
e
m
p
e
r
a
t
u
r
e
)
∗
4184
Q = M * (finalTemperature - initialTemperature) * 4184
Q=M∗(finalTemperature−initialTemperature)∗4184
这里的M是按千克计的水量,初始温度和最终温度均为摄氏度,热量Q以焦耳计
输入输出描述
输入三行数据,第一行输入水量,第二行输入初始温度,第三行输入最终温度
输出所需的能量值,结果保留一位小数
示例
输入:
55.5
3.5
10.5
输出:
1625484.0
#1.输入水量 初始温度 最终温度
m = float(input())
initialtem = float(input())
finaltem = float(input())
#2.公式计算能量
q = m * (finaltem -initialtem) * 4184
#3.输出能量
print(f'{q:.1f}')
(20)分割数字【录屏讲解】
讲解链接:https://meeting.tencent.com/crm/234g5E6J97
题目描述
输入一个四位整数,并以反向顺序显示
输入输出描述
输入一个四位整数
输出四行,第一行为个位,第二行为十位,第三行为百位,第四行为千位
示例
输入:
5213
输出:
3
1
2
5
#1.输入四位整数
zhengshu = int(input())
#2.拆分成 个、十、百、千
qianwei = zhengshu // 1000
# bai
bai = zhengshu % 1000
baiwei = bai // 100
#shi
shi = bai % 100
shiwei= shi // 10
#ge
gewei = shi % 10
#3.输出 个、十、百、千
print(gewei)
print(shiwei)
print(baiwei)
print(qianwei)
(21)计算三角形的三个角【录屏讲解】
讲解链接:https://meeting.tencent.com/crm/l6BDeyDp51
题目描述
输入三角形的三个顶点坐标,并计算该三角形的三个角分别是多少(角度制)
A
=
a
c
o
s
(
(
a
∗
a
−
b
∗
b
−
c
∗
c
)
/
(
−
2
∗
b
∗
c
)
)
B
=
a
c
o
s
(
(
b
∗
b
−
a
∗
a
−
c
∗
c
)
/
(
−
2
∗
a
∗
c
)
)
C
=
a
c
o
s
(
(
c
∗
c
−
b
∗
b
−
a
∗
a
)
/
(
−
2
∗
a
∗
b
)
)
A=acos((a*a-b*b-c*c)/(-2*b*c)) \\ B=acos((b*b-a*a-c*c)/(-2*a*c)) \\ C=acos((c*c-b*b-a*a)/(-2*a*b)) \\
A=acos((a∗a−b∗b−c∗c)/(−2∗b∗c))B=acos((b∗b−a∗a−c∗c)/(−2∗a∗c))C=acos((c∗c−b∗b−a∗a)/(−2∗a∗b))
其中a、b、c分别表示三条边,A、B、C分别表示三边对应的角
输入输出描述
输入六个数据,分别表示三角形三个顶点的坐标x1、y1、x2、y2、x3和y3,数据之间用空格分隔
输出三行,分别为A、B、C三个角的度数,结果保留两位小数
示例
输入:
1 1 6.5 1 6.5 2.5
输出:
15.26
90.00
74.74
import math
#1.输入三个顶点坐标x1、y1、x2、y2、x3、y3
x1, y1 ,x2 ,y2, x3, y3 = map(float, input().split(" "))
#2.根据坐标求出边长abc
c = ((x1 - x2) ** 2 +(y1 - y2) ** 2) ** 0.5
b = ((x1 - x3) ** 2 +(y1 - y3) ** 2) ** 0.5
a = ((x3 - x2) ** 2 +(y3 - y2) ** 2) ** 0.5
#3.根据边长计算三个角
A = math.acos((a * a - b * b - c * c) / (-2 * b * c))
B = math.acos((b * b - a * a - c * c) / (-2 * a * c))
C = math.acos((c * c - b * b - a * a) / (-2 * b * a))
#弧度转为角度
A = math.degrees(A)
B = math.degrees(B)
C = math.degrees(C)
#4.输出三个角度数
print(f'{A:.2f}')
print(f'{B:.2f}')
print(f'{C:.2f}')
(22)正多边形的面积
题目描述
正多边形是边长相等的多边形,而且所有的角相等,计算正多边形的公式为:
a
r
e
a
=
n
∗
s
2
4
∗
t
a
n
(
π
n
)
area = \frac{n*s^2}{4*tan(\frac{π}{n})}
area=4∗tan(nπ)n∗s2
输入输出描述
输入两个数据分别表示边的个数n和边的长度s,数据之间用空格分隔
输出边长为s的正n多边形的面积,结果保留两位小数
示例
输入:
5 6.5
输出:
72.69
#1.输入边的个数n 边的长度s
import math
n,s = map(float,input().split(" "))
#2.计算面积
area = (n * s ** 2) / (4 * math.tan(math.pi / n))
#3.输出面积
print(f'{area:.2f}')