当当当……程序填空部分出来辣~
最后检查的时候有些地方有点错误,有时间了再改10-9
修改部分:
下面对以往参考博客答案有误已修正的部分进行再次声明
多选题3-2
python标识符不能由美元符号等特殊符号组成(除开下划线)
艹,这个道题的正确答案居然有A,貌似是吧java的题目照搬过来了
实际上python命名不应该有$
多选题3-4
后面查了一下,操作系统文件主要类型不包含视图
多选题3-8
LIKE字句的通配符没有*,在教材上
程序填空题
也进行了一些修改,一起来看看吧,这里修改的部分比较多
一、判断题
1.关键字可以用来作为变量名,函数名,类名等标识符。(F)
关键字不能用于如上三种写法
2.在Python中的关系运算符可以连续使用。如:3<a<4.(T)
记住就好,可以用到if里面
3.Python中条件表达式中不允许使用赋值运算符“=”。(T)
一个靠谱的说法是避免像c/c++那样吧赋值写进判断条件里面不报错,于是干脆直接不允许赋值符号出现在条件表达式中
4.函数内的局部变量在函数执行结束后会自动释放而不可再访问。(T)
是这样的
5.在python中,字符串属于不可变有序序列。(T)
可变序列:可以对序列执行增删改操作,对象地址不发生更改。
例如:集合、列表、字典
不可变序列:没有增删改的操作。
例如:字符串、元组
结论:不可变序列在内存中是不会改变的,如果对不可变序列做出改变,会将该序列存储在新的地址空间中,而原来的序列因为垃圾回收机制,会被回收。可变序列发生改变时,是不会改变地址的,而是改变内存中的值,或者是扩展内存空间。
参考链接:
6.在GBK和CP936编码中一个汉字需要2个字节;在UTF-8编码中一个汉字需要占用3个字节。(T)
根据参考链接可以知道UTF-8对于1-3字节表示的“字符”有不同的规则
而汉字满足的是2字节的规则
而UTF-8可以看做改良的(有前置标识信息的)Unicode字符集
在标识信息下只有三个字符组合才能表达一个汉字(两字节-16位)
不过文中描述还是比较模糊,真实性有待考证
7.Python 支持单字符类型,一个字符在 Python 中作为字符类型数据使用。(F)
.Python 没有单字符类型,一个字母也当做字符串处理
8.在字符串前加字母r或R,表示原始字符串,其中的所有字符都表示原始的含义,而不会进行任何转义。(T)
在字符串前添加r是的字符串中的转义符号失效
9.Python可以利用字符串方法replace()对字符串对象进行原地修改。(F)
replace()方法对字符串进行处理,返回处理后的字符串,但是不改变原来的字符串
10.已知x为非空字符串,那么表达式 ''.join(x.split()) == x 的值一定为True。(F)
11.已知x为非空字符串,那么表达式 ','.join(x.split(',')) == x 的值一定为True。(T)
x="123 4 56"
print(''.join(x.split())==x )
#结果为False
x="123 4 56"
print(','.join(x.split(','))==x )
#结果为True
split()按函数中目标符号(默认为空格、回车、制表符),对x进行分割,返回分割后元素组成的列表
join()函数按左边的符号参数对列表进行整合,返回一个字符串
所以第二种得到原字符串,永真
12.已知x=7和y=8,执行语句 x, y = y, x 后x的值是7。(F)
简单的python交换语句
13.从python语言的角度来说,如果计算机的硬件允许,python能处理的整数没有最大值限制,浮点数有最大值限制。(T)
一种可靠的说法:
Python浮点数的上限由您的操作系统和硬件平台决定,整数受可用内存的限制
浮点数超过上限表示为inf
print(9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999.99999999999999999)
#输出为inf
14.运算符+不仅可以实现数值的相加、字符串连接,还可以实现列表、元组的合并和集合的并集运算。(F)
a={'123','456'}
b={'789'}
c=a+b
print(c)
#出现报错
集合的并集运算需要使用 ‘|’符号,不能直接使用‘+’符号
15.Python使用缩进来体现代码之间的逻辑关系。(T)
使用缩进来取消花括号以此来代替逻辑性
二、单选题
1.以下最不合适作为Python语言用户标识符的是( )。
A.print
print=3
print("123")
#输入以上代码会报错
#原因是print优先被认为是作为变量被调用
max其实和print这类函数一样,但是max与print相比的频率更低,所以print最不适合作为标识符
2.Python语言中,运算对象最好都为整数的运算符是( )。
A.*
对于乘法,我觉得两边数据要求都是整数有点不符合实际
B./
对于除法,可能是因为版本的问题,这里有一句话:
注意:Python2.x 里,整数除整数,只能得出整数。如果要得到小数部分,把其中一个数改成浮点数即可。
链接:运算符操作介绍
现在3.0版本整数除以整数可能是小数
但是由于2.0+版本整数相除和c一样只能为整数,所以为了精确计算不建议两边写成整数
链接:整除
C.//
经过实验,其是3.0版本出现的产物,支持浮点数作为运算数,不必要都为整数
D.%
模操作对于极小的浮点数取模会丢失精度,如:
print(4%0.1)
#输出结果为0.09999999999999978
#运行软件为pycharm
所以建议两边都为整数
3._______号表示同一行的后面部分是Python程序的注释。
D.#
你看它颜色都不一样,不选它选谁 ヾ(•ω•`)o
4.以下哪句打印出smith\exam1\test.txt?
B.print("smith\\exam1\\test.txt")
在字符串中打印出'\'需要使用一个转义字符‘\’或者在字符串前加一个r
5.下面哪些不属于类型转换函数( )。
D.abs()
没什么好说的
6.下列关于Python变量名的定义,下列选项不正确的是 ____ 。
B.变量名中可以有空格或标点符号
不能有空格或标点符号
7.已知s1和s2两个字符串,
s1='abc'
s2='123'
欲得到新的字符串对象:'abc123',不可以使用如下哪种方式?( )
D.s1.concat(s2)
经实验,ABC皆可
concat()用于链接两个表格
8.对于字符串:str1='SDUTCSSEno1'
,欲获得切片:'1onESS'
,使用的方式是:
D.str1[-1:-7:-1]
可以知道,我们应该要倒着来截取字符串
经过实验,我们可以知道,对于str[start:end:step]来说
step是具有方向的,我们不应该仅仅说‘他’的步长为step,还应该加上他的方向
例如,当start>end的时候,我们应该称其为步长为负step
另外[start:end]依旧是左闭右开区间,需要注意!
9.对于字符串进行操作,如下语句执行结果为:
var1 = 'Hello World!'
print (var1[:6] + 'SDUT!')
A.Hello SDUT!
varl[:6]为从varl开始到下标为5(左闭右开)的子字符串
+为链接字符串操作
10.下面运算符中可以支持字符串和整数进行运算的是?
C.*
字符串的乘法操作
11.下面哪个不是字符串提供的方法?
B.search
A.split B.index C.format
A字符串按指定字符切片
B返回指定字符下标
C格式化输出
12.字符串对象的capitalize()方法是用来将字符串( )。
C.将字符串首字母变为大写
A.转换为大写字符串 str.upper()
B.转换为小写字符串 str.lower()
D.将字符串中每个单词首字母变为大写 str.title()
链接:字符串操作函数
13.字符串对象的title()方法是用来将字符串( )。
D.将字符串中每个单词首字母变为大写
14.已知列表对象x = ['21', '2', '7', '3'],则表达式 max(x) 的值为。
D.'7'
对字符串比较大小,返回最大的,min()同理
链接:max函数
15.Str1 ="Python is beautiful!",表达式 str1.isnumeric() 的结果是。
D.False
isnumeric()返回字符串是否是有数字组成的结果
可知str1不是由数字组成所以结果为False
三、多选题
1.关于五大部件
从传统理论来讲,计算机由 ▁▁▁▁▁ 五大功能部件构成。
C.输入设备 E.输出设备
H.运算器 A.储存器 F.控制器
2.关于标识符的命名规则,哪些语法是正确的?
A.由字母、下划线、美元符号和数字组成
答案里面有A,但是实际上python并不能用$当做标识符
B.长度不受限制
C.if、true、while等关键字不能做标识符
3.T-SQL 中用于控制程序的流程的语句有:
全部
4.在物理层面上,SQL Server 数据库由多个操作系统文件组成,其中操作系统文件主要包括哪些类型?
A.主要数据文件
B.事务日志文件
C.视图
C.事务日志文件
5.SQL Server 数据库的备份方式主要包括哪些?
全部
6.SQL SERVER 中,完整性约束可以分为哪几种方式?
A.列级约束
B.表级约束
7.SQL SERVER 中创建表的方式有哪几种?
A.通过 SQL 命令创建数据表
D.利用 sql server management studio 创建数据
表
8.LIKE 短语中可以包含哪些通配符?
_ % *
没有*号,应该是版本问题,有些地方可以使用,但是翻看教材发现没有
9.ORDER BY子句中关键字包含?
A.ASC 表示按列值从大到小的降序排列
C.DESC 表示按列值从大到小的降序排列
10.对于下面的存储过程:
CREATE PROCEDURE MYP1
@P DATETIME
AS
SELECT StudentName,EntranceTime FROM Student
WHERE EntranceTime=@P
如果在Student 表中查找报道时间为2009-09-10的学生,正确调用存储过程的是:
B.EXEC MYP1 @P= '2009-09-10'
C.EXEC MYP1 '2009-09-10'
11.事务具有哪些属性?
全部
12.身份验证的内容包括哪些?
A.用户的帐号是否有效
B.能否访问系统
C.能访问系统的哪些数据库
13.关于输入设备
下列外部设备中,▁▁▁▁▁ 为输入设备。
B.键盘
C.鼠标
E.扫描仪
H话筒.
I.摄像头
14.关于输出设备
下列外部设备中,▁▁▁▁▁ 为输出设备。
A.显示器
D.打印机
F.音箱
G.耳机
J.绘图仪
15.函数的构成
C 函数是由 ▁▁▁▁▁ 构成的。
D.函数首部
G.函数体
四、填空题
1.join()函数连接字符串(高教社,《Python编程基础及应用》习题10-1)
请写出下述程序的执行结果:
s = [str(x) for x in range(2,35,7)]
print(",".join(s))
解析:
该语句为python特有的推导句,语义为返回一个从2开始步长为7,到34为止的数字数组,并同时将每一个数字转换为字符串类型存储到s列表中,
而join语句即为将列表中的元素加入空字符串‘’中并用,(逗号)隔开
答案:
2,9,16,23,30
2.格式化输出(高教社,《Python编程基础及应用》习题10-2)
请写出下述程序的执行结果:
print("pi={pi:10.3f}".format(pi=3.1415926))
print("2^10={:,}".format(2**10))
解析:
对于语句:
{pi:10.3f}
{}其实相当于c语言当中的占位符的功能
pi表示从参数列表(format)中选取变量名为pi的数值加入语句
如果没有变量名而且有多个{}和列表里有多个数值,那么按参数列表的顺序来对{}进行赋值
:10.3f表示见一个数值以10个宽度,保留三位小数的形式输出
对于语句:
{:,}
我查了半天文档,居然没有找到这个冒号加逗号的使用语法,
在经过几次实验后发现:
1.该语句对整数及整数部分采取美元计数的方法用逗号划分
如:1234567表示成1,234,567
2.该语句对小数的小数部分无效
答案:
pi= 3.142
2^10=1,024
3.Python 表达式 3**2**3
的值为
解析:
语句在同等级的情况下从左到右
则答案为3的平方的三次方
答案:
6561
4.下面程序执行后,输出的结果是:
a=34
b=23
print("{first}-{second}={0}".format(34-23,first=a,second=b))
参考链接:python的输入输出
翻看{}占位符的用法就好了
答案:
34-23=11
5.下面程序执行的结果是:
a=34
b=23
print("{1}-{2}={0}".format(34-23,a,b))
答案:
34-23=11
6.print("{:>08s}".format(bin(31)[2:]))的输出是
解析:
对于语句:
bin(31)[2:]
意为吧10进制的31翻译为二进制,并且截取第二位到最后的字符串作为结果
对于语句:
{:>08s}
<^>分别为左对齐、右对齐、居中对齐
0表示空格用0填充
8代表所占长度
s表示数据为str字符串类型
答案:
00011111
7.print("programming".find("r"))
输出结果是:
print("programming".find("r",2)) 输出结果是:
8.print("programming".find("x"))的输出是
解析:
find()函数有三个参数,按顺序来分别是
1.目标字符
2.第几个,默认为1
3.结束下标,默认为len(str)
返回目标下标,没有找到返回-1
答案:
1
4
-1
9.print("a123".isdigit())的输出是
10.print("aABC".isalpha())
的输出是
解析:
判断字符串是否全为数字和全为字母,返回值逻辑型
答案:
False
True
11.print(" xyz ".strip()," xyz ".rstrip(), " xyz ".lstrip())
的输出是
解析:
三个strip函数是用来去除空格
按顺序,分别是
1.去除两边空格(中间不管)
2.去除右空格
3.去除左空格
问了一下老师答案直接用空格 就行了
答案:
xyz xyz xyz
由于每个输出项额外用一个空格隔开,看起来是会多一个空格的样子
12.Python 表达式 0 and 1 or not 2<True 的值为
解析:
优先级:非>且>或
答案:
True
13.Python 语句 print(hex(16), bin(10))的输出结果是
答案:
0x10 0b1010
14.Python输出 print("hello" 'world')的结果是
太水辣!!!
答案:
helloworld
15.下述代码从键盘读入了以逗号分隔的两个整数a,b:
a,b = eval(input())
print(a,b,type(a),type(b))
当操作者输入 4,5 时,程序的执行结果如下:
4,5
4 5 <class 'int'> <class 'int'>
注意:4,5中间的逗号必须是英文逗号。
不写了,又臭又长,没有什么要奇特的语法,注意审题就行了
四、程序填空题
都没人人提醒我更新这个,鼠鼠我要生气了QAQ
正则表达式戳这里!!!
5-1择数
n=0
#for i in range( 100,999 ):
for i in range( 100,1000 ):
gw= i%10
sw= i//10%10
if (gw+sw)%2==1:
n=n+1
print(n)
5-2 正则表达式-匹配多个单词
p = re.compile(r'[Rr]ub[ye]')
for line in p.findall(contents):
print(line)
5-3正则表达式-取反练习
#p = re.compile(r'[^a-z\n]+ ') 加号后面没有空格,我的锅
p = re.compile(r'[^a-z\n]+')
for line in p.findall(contents):
print(line)
5-4 正则表达式--规律
p = re.compile(r'[a-f0-3]+')#复制太急了,格式没调好
for line in p.findall(contents):
print(line)
#解释 吧字符串分成两边 左边是纯小写字母 右边是纯数字
5-5循环输入
s=input( )
while s!='Y' and s!='y' :
print(s.title(),end=" ")
s=input( )
5-6反转
def change(s):
return s[::-1]
n=input( )
print(change(n) )
5-7三个数排序
a,b,c = eval(input())
if a<=b:
if b<=c:
print(f"{a},{b},{c}")
else:
if a<=c:
print(f"{a},{c},{b}")
else:
print(f"{c},{a},{b}")
else:
if a<=c:
print(f"{b},{a},{c}")
else:
if b<=c:
print(f"{b},{c},{a}")
else:
print(f"{c},{b},{a}")
5-8 range函数练习
print(list(range(4))) 期望输出:[0, 1, 2, 3]
print(list(range(7,11))) 期望输出:[7, 8, 9, 10]
print(list(range(1,16,3))) 期望输出:[1, 4, 7, 10, 13]
print(list(range(15,2,-4))) 期望输出:[15, 11, 7, 3]
print(list(range(-20,20,6))) 期望输出:[-20, -14, -8, -2, 4, 10, 16]
print(list(range(-1,-22,-7))) 期望输出:[-1, -8, -15]
五、编程题
又到了大家喜闻乐见的编程环节了[狗头]
7-1转换函数的使用
输入一个整数和进制,转换成十进制输出
输入格式:
在一行输入整数和进制
输出格式:
在一行十进制输出结果
输入样例:
在这里给出一组输入。例如:
45,8
输出样例:
在这里给出相应的输出。例如:
37
代码:
a,b=map(int,input().split(','))
print(int(str(a),b))
解析:
将以逗号分隔的字符串数据用split()函数根据逗号分隔返回一个列表
再使用map将列表的字符串数据转化为数值赋值给a和b
最后由于int语法:
int(str,int)
功能是将int进制的str字符串转换为十进制的数值
7-2求两个整数的和与平均值
本题目要求读入2个整数A和B,然后输出它们的和。
输入格式:
程序运行后输入任意两个整数m和n
输出格式:
求出两个数的和以及平均数的值是多少?sum=m+n avg=(m+n)/2
输入样例:
在这里给出一组输入。例如:
44
24
输出样例:
在这里给出相应的输出。例如:
68
34
代码:
x=eval(input())
y=eval(input())
t=x+y
print(t)
print("{:.0f}".format(t/2))
解析:
使用eval函数将接收到的数值智能地转换到特定类型
然后使用占位符对浮点数进行保留小数位输出(会四舍五入)
7-3交换两个整数
输入两个整数,交换位置后输出。
输入格式:
在一行中用空格分隔输入两个整数a,b。
输出格式:
交换a,b的值后,按“a=? b=?”的格式输出
输入样例:
在这里给出一组输入。例如:
3 5
输出样例:
在这里给出相应的输出。例如:
a=5 b=3
代码:
a,b=map(int,input().split())
print("a=%d b=%d"%(b,a))
解析:
这是一种占位符的用法----使用%+数据类型字母进行占位,交换两个字母的输出顺序
或者使用a,b=b,a进行交换顺序输出也行
7-4计算两个整数的差
计算两个整数的差。
输入格式:
在一行中用空格分隔输入两个整数a,b。
输出格式:
计算a-b的结果,按“s=?”的格式输出。
输入样例:
在这里给出一组输入。例如:
3 5
输出样例:
在这里给出相应的输出。例如:
s=-2
代码:
a,b=map(int,input().split())
print("s=%d"%(a-b))
解析:
和之前的题目一样,转化为数值,进行占位输出(可以同时运算!!!)
7-5 从键盘输入两个数,求他们的和并输出
读入2个整数A和B,然后输出它们的和。
输入格式:
在第一行中给出一个被加数A;
在第二行中给出一个加数B。
输出格式:
在一行中输出A与B的和。
输入样例:
在这里给出一组输入。例如:
1
2
输出样例:
在这里给出相应的输出。例如:
3
代码:
a=int(input(),10)
b=int(input(),10)
print(a+b)
解析:
由于这里的输入时分开两行的,所以考虑用两个input()接受两个数据
使用int函数将字符串转化为十进制数值
然后运算加减打印输出
7-6分苹果
现有n个苹果,均分给5位同学,剩下的苹果交还老师。请编写程序,解决下述问题:
-
每位同学能分得几个苹果?
-
一共分出去多少个苹果?
-
交还老师的苹果有几个?
输入样例:
输入苹果总数n。例如:
17
输出样例:
每人分得3个苹果.
一共分出去15个苹果.
交还老师2个苹果.
代码:
a=int(input(),10)
print("每人分得{}个苹果.".format(a//5))
print("一共分出去{}个苹果.".format(a-a%5))
print("交还老师{}个苹果.".format(a%5))
解析:
简单的整除操作和取余操作,会使用占位符即可
占位符种类:
%d占位符
{}占位符(使用format格式化输出)
7-7火车相遇
甲列火车长a米,速度为m米/秒;乙列火车长b米,速度为n米/秒。两列火车相向而行,从车头相遇开始至两车车尾分离,共需要多少时间?请编程求解,输出结果保留两位小数,以秒为单位。
下图是a = 150, b = 200, m = 15, n = 12时的两车交汇过程示意图。
输入格式:
a
b
m
n
输出格式:
两车交汇时长为x.yz秒.
其中,x.yz为保留两位小数的浮点数。
输入样例:
150.34
200.21
15.1
12
输出样例:
两车交汇时长为12.94秒.
代码:
a=float(input())
b=float(input())
m=float(input())
n=float(input())
ans=(a+b)/(m+n)
print("两车交汇时长为%.2f秒."%ans)
解析:
看明白题目,明确物理量,
由题分析可知,此题是求相遇问题
获得总路程除以相对速度就是时间
实际上是简单的物理题
7-8英文字母
在计算机内部,英文字母依ASCII码分别由连续的整数来表示。比如,大写的英文字母A的ASCII码值为65,B的码值为66,然后依次递增,Z的码值为90。
请编程计算:
-
从键盘读取大写字母Q(代号,其值由具体输入确定),请问Q所代表的大写字母是字母表中的第几个字母(从1开始计数,即A为第1个字母)?
-
从键盘读取整数N,求字母表中的第N个字母(从1开始计数)是什么?
输入格式:
Q
N
说明:是一个字符的大写字母;N的取值范围为1~26。
输出格式:
请参考输出样例。
输入样例:
B
3
输出样例:
B是字母表中第2个字母.
字母表中第3个字母是C.
提示:使用ord()及chr()函数来完成。
代码:
a=input()
b=int(input())
#c=int(96,10)
print("{}是字母表中第{}个字母.".format(a,ord(a)-64))
#print(ord(a)-64)
print("字母表中第{}个字母是{}.".format(b,chr(64+b)))
#print(chr(96+b))chr(96+b)
解析:
ord()函数--将字符串翻译为对应ASCII值(int)
chr()函数将对应ASCII值转换为对应字符串
实际上是一道函数应用题
广告
拼尽全力还是不会?参考观方指定用书:
《c语言从入门到入土》 -999 ¥
《python从初学到跑路》 999 ¥
《数据库从建库到删库》 0 ¥
作者每天分享一篇关于C/C++/Python的劝退文章,学习编程保证迷路!!!