精华内容
下载资源
问答
  • 6.for i in range(2,n):if n%i==0:breakif i==n-1:print('是素数')...8.对于有else子句的for循环和while循环,但循环因循环条件不成立而自然结束时__会__(会或不会)执行else代码。10.已知x='hello world.',那...

    6.for i in range(2,n):

    if n%i==0:break

    if i==n-1:

    print('是素数')

    else:

    print('不是素数')

    7.'abcabcabc'.count('abc')的值为__3__。

    8.对于有else子句的for循环和while循环,但循环因循环条件不成立而自然结束时__会__(会或不会)执行else中的代码。

    10.已知x='hello world.',那么表达式x.find('x')和x.rfind('x')的值都为__-1__。

    12.print("{:#>4d}".format(23))的输出结果是__##23__。

    13.以下哪个选项不是Python中的合法名称(2_g):_ag,a_g,ag_,2_g

    14.以下哪个选项是python中的合法名称(num_1):2num,num-1,num_1,num 1

    15.print(3+5)语句的运行结果是(8)

    16.print(2**4+16%3)  __17__

    17.以下程序的输出结果是__0__。

    a=8

    a%=2

    print(a)

    18.print("**"*3)的输出结果是(******)。

    19.表达式True and False的值为:__False__。

    20.以下程序的输出结果是(7)

    x=371

    print(x%100//10)

    21.a,b=1,2则a的值为__1__。

    22.在循环语句中,__continue___语句的作用是提前结束本层循环。

    23.表达式"abc10'.isalnum()的值为__True__。

    24.表达式True*3的值为 __3__。

    25.表达式'c:\windows\notepad.exe'.endswith('.exe')的值为__True__。

    26.表达式'test.py'.endswith('.py')的值为__True__。

    27.表达式 int('123')的值为__123__。

    28.表达式 'Beautifule is better than ugly.'.startswith('Be',5)的值为__False__。

    29.假设a,b=10,50,则条件表达式a>10 and b<100的值为__False_____。

    30.python3.x语句 for i in range(3):print(i,end=',')的输出结果为__0,1,2,__。

    31.程序的基本结构:__顺序结构、选择结构和循环结构__。

    32.在python语言内置的random库中,哪个函数功能是从序列s中随即选择一个元素(A):A、choice(s),B、randint(m,n),C、shuffle(s),D、uniform(m,n)

    33.以下程序的输出结果(3

    5)

    print(3,end="")

    print()

    print(5)

    34.表达式int(False)的值为:__0__。

    35.以下程序的输出结果是(-3)

    a=-8

    a//=3

    print(a)

    36.print(15%4)的输出结果是(3)

    37.有python语句:

    for s in "abced":

    print(s,end=' ')

    的运行结果是(a b c d e)。

    38.print("{:&>8}".format("python"))的输出结果是($$python)

    39.有python语句:

    for i in range(100,999+1):

    a=i//100

    b=i//10%10

    c=i%10

    if a**3 + b**3 + c**3 == i:

    print(i,end="  ")

    的运行结果是(153  370  371  407)。

    40.下列Python语句:

    x,y=30,70

    min = x if x

    print(min)

    的运行结果是(30)。

    41.表达式'abc' in ('abcdefg')的值为__True__。

    42.已知x,y=3,5,那么执行x,y=y,x之后,x的值为__5__。

    43.表达式'aaasdf'.strip('a')的值为__'sdf'__。

    44.已知x=3,那么执行语句 x += 6之后,x的值为__9__。

    45.python用于表示逻辑与运算的关键字是__and__。

    46.表达式 int(4**0.5)的值为__2__。

    47.表达式len('aaaassddf'.strip('afds'))的值为__0__。

    48.在循环语句中,__continue__语句的作用是提前进入下一次循环。

    49.Python标准库random中的__choice()__方法作用是从序列中随机选择1个元素。

    50.已知x=3,那么执行语句 x*=6之后,x的值为__18__。

    51.以下程序的输出结果是(9630)。

    s="0123456789"

    print(s[::-3])

    52.在python语句中,条件表达式中判断相等用的关系运算符是(==)。

    53.表达式 chr(ord('A')+2)的值为__'C'__。

    54.表达式 sum(range(10))的值为__45__。

    55.x=-9

    print(x) if x>=0 else print(-x)

    的输出结果为__9__。

    56.python的内置函数__len()__可以返回列表、元组、字典、集合、字符串以及range对象中元素个数。

    57.表达式'apple.peach,banana,pear'.find('p')的值为__1__。

    58.表达式 len('SDIBT')的值为__5__。

    59.表达式':'.join('hello world.'.split())的值为__'hello:world.'__。

    60.python语句''.join(list('hello world!'))执行的结果是__'hello world!'__。

    61.表达式 3 or 5 的值为__3__。

    62.表达式 16**0.5的值为 __4.0__。

    63.有关for循环和while循环的退出(有两种方式:一是循环条件不成立或循环序列遍历结束,二是在循环过程中遇到break语句)。

    64.分支结构的类型:单分支、双分支、多分支和嵌套if结构。

    65.关于多分支结构if-elif-else语句的说法正确的是:最多只会执行一个分支。

    66.表达式not (True and False)的值为(True)。

    67.s.islower()方法是用来:判断字符串s中的字母是否全为小写。

    68.以下程序的输出结果为(bird-fish-monkey-rabbit)

    s=['bird','fish','monkey','rabbit']

    print("-".join(s))

    69.python语言的运行方式有__交互__式和文件式两种。

    70.表达式'a'+'b'的值为 __'ab'__。

    71.表达式'Hello world'.lower()的值为__'hello world'__。

    72.表达式 1234%1000//100的值为__2__。

    73.表达式'abc10'.isdigit()的值为__False__。

    74.表达式 'hello world, hellow every one'.replace('hello','hi')的值为__'hi world, hiw every one'__。

    75.表达式 5 if 5>6 else (6 if 3>2 else 5)的值为__6__。

    76.表达式 len(range(1,10))的值为__9__。

    77.表达式 'abcab'.replace('a','yy')的值为__'yybcyyb'__。

    78.Python标准库math中用来计算平方根的函数是__sqrt()__。

    79.以下程序的输出结果是(('bird,fish,monkey,rabbit,tiger,','monkey','')):

    s='bird,fish,monkey,rabbit,tiger,monkey'

    print(s.rpartition("monkey"))

    80.int(2<3)的值为__0__。

    81.gcd(27,42)的值为__3__。

    82.python语言的提示符是__>>>__。

    83.表达式':'.join('1,2,3,4,5'.split(','))的值为__'1:2:3:4:5'__。

    84.eval()函数可以将__字符串__解析成数值。

    85.表达式min(['11','2','3'])的值为__'11'__。

    86.print("{:=<8}".format("python"))的输出结果是__python==__。

    87.print(str(3+5))的输出结果是__8__。

    88.Python语言的主要应用领域是(人工智能,网络爬虫,数据分析与处理)

    89.判断三条线段a,b,c能否构成三角形的条件表达式,正确的是__(a>0)and(b>0)and(c>0)and(a+b>c)and(a+c>b)and(b+c>a)__。

    90.语句a,b=b,a的功能是__交换a和b的值__。

    91.下列Python语句:

    k=16

    while k>1:

    k=k/2

    print(k)

    的运行结果是__1.0__。

    92.在Python语句内置的random库中,哪个函数的功能是生成一个[m,n]之间的随机小数:__uniform(m,n)__。

    93.表达式'aaaassddf'.strip('af')的值为__'ssdd'__。

    94.Python语句中的当行注释语句以符号__#__作为开始。

    95.Python运算符中用来计算整商的是__//__。

    96.表达式True*3的值为 __3__。

    97.表达式 len('Hello world!'.ljust(20))的值为__20__。

    98.表达式'a'.join('abc',partition('a'))的值为__'aaabc'__。

    二、判断题

    1.s[1:5]可以去除字符串s中从索引值1开始到5结束的子字符串。(F)

    2.Python是一种跨平台、开源、免费的高级动态编程语言。(T)

    3.判断整数x是否偶数的条件表达式为x%2=0。(F)

    4.判断整数x是否偶数的条件表达式为x%2==0。(T)

    5.带有else子句的循环如果因为执行了break语句而退出的话,则会执行else子句中的代码。(F)

    6.print(1+'2')的输出结果是'3'。(F)

    7.编写多层循环时,为了提高运行效率,应尽量减少内循环中不必要的计算。(T)

    8.print(s[0,5,-1])输出的是字符串s左起6个字符的反向字符串。(F)

    9.python使用缩进来体现代码之间的逻辑关系。(T)

    10.在python的循环体内,continue语句的作用是结束该语句所在的循环。(F)

    11.如果仅仅是用于控制循环次数,那么使用for i in range(20)和 for i in range(20,40)的作用是等价的。(T)

    12.在python的循环体内,continue语句的作用是结束这一轮的循环,程序跳转到循环头部。(T)

    13.s[::-1]的功能是对字符串s反向取整串。(T)

    14.python变量名区分大小写,所以student和Student不是同一个变量。(T)

    15.python不允许使用关键字作为变量名,允许使用内置函数作为变量名,但这会改变函数名的含义。(T)

    16.放在一对三引号之间的任何内容将被认为是注释。(F)

    17.print(8,end="")的功能是输出8以后不换行。(T)

    18.a,b,c=10,20语句执行完以后,变量c的值为0。(F)

    19.如果需要连接大量字符串成为一个字符串,那么使用字符串对象的join()方法比运算符+具有更高的效率。(T)

    20.python标准库random的方法randint(m,n)用来生成一个[m,n]区间上的随机整数。(T)

    21.ord("c")-ord("a")的值为2。(T)

    22.Python运算符%不仅可以用来求余数,还可以用来格式化字符串。(T)

    23.a**=b等价于a=a**b。(T)

    24.s.replace(" ","")的功能是在字符串s尾部添加空格。(F)

    25.a=b=10语句执行完以后,变量a和b的值都是10。(T)

    26.在循环中continue语句的作用是跳出当前循环。(F)

    27.表达式 'a'+1的值为'b'。(F)

    28.Python语句只有一种运行方式——文件式。(F)

    29.加法运算符可以用来连接字符串并生成新字符串。(T)

    30.range(m,n)得到的迭代序列为:m,m+1,m+2,m+3,...,n-1。(T)

    31.在python中0xad是合法的十六进制数字表示形式。(T)

    32.当作为条件表达式时,空值、空字符串、空列表、空元组、空字典、空集合、空迭代对象以及任意形式的数字0都等价于False。(T)

    33.已知x=3,那么赋值语句x='abcedfg'是无法正常执行的。(F)

    34.在python中,变量不直接存储值,而是存储值的引用,也就是值在内存中的地址。(T)

    35.在random模块的函数randint(1,100)获取随机数时,有可能会得到100。(T)

    36.在python中可以使用for作为变量名。(F)

    37.Python代码的注释只有一种方式,那就是使用#符号。(F)

    38.random库中的函数random()返回左闭右开区间[0.0,0.1)中的一个随机浮点数。(T)

    39.在python的循环体内,break语句的作用是结束该语句所在的循环。(T)

    40.在python中,关系运算符可以连续使用,例如00并且a

    41."ABC">"ab"结果为False。(T)

    42.带有else子句的循环如果因为执行了break语句而退出的话,则会执行else子句的代码。(F)

    43.在python3.0中可以使用中文作为变量名。(T)

    44.Python中一切内容都可以称为对象。(T)

    45.Python语言的标示符只能以字母开头,后面可以跟字母、数字、下划线。(F)

    46.程序中异常处理结构在大多数情况下是没必要的。(F)

    三、编程题

    '''

    使用循环方法求解百钱买百鸡问题。假设公鸡5元一只,母鸡3元一只,小鸡1元三只,

    现有100元钱想买100只鸡,编程计算买鸡的方案,有多少种买法?

    '''

    for a in range(0,21):

    for b in range(0,34):

    for c in range(0,101):

    if a+b+c==100 and a*5+b*3+c/3==100:

    print(a,b,c)

    #韩信点兵

    for i in range(1000,1101):

    if i%3==2 and i%5==4 and i%7==6:

    print(i)

    #打印九九乘法表

    for i in range(1,10):

    for j in range(1,i+1):

    print("{}*{}={:2d}".format(i,j,i*j),end=" ")

    print()

    #从键盘输入任意一个正整数,编程计算该数的阶乘 如:输入5,阶乘结果120 。

    x=eval(input("请输入一个正整数"))

    t=1

    for i in range(1,x+1):

    t=t*i

    print(t)

    #编程分别计算100以内(含100)奇数与偶数的和。

    s1,s2=0,0

    for i in range(1,101):

    if i%2==1:

    s1=s1+i

    else:

    s2=s2+i

    print(s1,s2)

    #编程计算前30项的和:s=1+(1+2)+(1+2+3)+(1+2+3+4)+…+(1+2+3+4+…+n)

    s,y=0,0

    for i in range(1,31):

    s=s+i

    y=y+s

    print(y)

    #编程产生菲波拉契数列20项,例如:0  1   1  2  3   5   8   13    21    ……

    x1=0

    x2=1

    print(x1,end=" ")

    print(x2,end=" ")

    for i in range(1,18+1):

    x3=x1+x2

    print(x3,end=" ")

    x1=x2

    x2=x3

    #一小球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?

    h=100

    s=0

    for i in range(1,11):

    s=s+h

    h=h/2

    s=s+h

    print(s-h,h)

    '''

    猴子第一天摘了若干个桃子,当天吃了一半,还不过隐,有多吃了一个,第二天早上又将剩下的桃子吃了一半,又多吃了一个,以后每天早上都吃了前一天剩下的一半零一个,到第10天早上想再吃时,见只剩下一个桃子,问第一天共摘了多少个桃子

    '''

    x=1

    for i in range(1,10):

    x=(x+1)*2

    print(x)

    #商场购物

    x=eval(input("x="))

    if x<1000:

    y=x

    elif x<2000:

    y=0.9*x

    elif x<3000:

    y=0.8*x

    else:

    y=0.7*x

    print(y)

    #分段函数1

    import math

    x=eval(input("x="))

    if x>5:

    y=math.sin(x)+(x**2+1)**0.5

    elif x>0:

    y=math.e**x+math.log(x,5)+x**(1/5)

    else:

    y=math.cos(x)-x**3+3*x

    print(y)

    #分段函数2

    x=eval(input("x="))

    if x<0:

    y=0

    elif x<5:

    y=x

    elif x<10:

    y=3*x-5

    elif x<20:

    y=0.5*x-2

    else:

    y=0

    print(y)

    #判断素数

    x=eval(input("x="))

    for i in range(2,x):

    if x%i==0:

    print("不是素数")

    break

    else:

    print("是素数")

    '''

    一个富翁试图与陌生人做一笔换钱生意,换钱规则为:陌生人每天给富翁10万元钱,直到满一个月(30天);而富翁第一天给陌生人1分钱,第2天给2分钱,第3天给4分钱,…,富翁每天给穷人的钱是前一天的两倍,直到满一个月,分别显示富翁给陌生人的钱和陌生人给富翁的钱各是多少?

    '''

    s1,s2=0,0

    x=0.01

    for i in range(1,31):

    s1=s1+100000

    s2=s2+x

    x=2*x

    print(s1,s2)

    #判断闰年

    x = eval(input('请输入一个年份'))

    if x%400==0 or (x%4==0 and not x%100==0):

    print('是闰年')

    else:

    print('不是闰年')

    四五章选择判断填空编程

    一、选择题

    1.下列表达式值为False的是:______。2 in {1:2,3:4}

    2.下列代码执行的正确结果为(.[1,4,9]

    lnum=[]

    for i in range(1,4)

    lnum.append(i**2)

    print(lnum)

    3. 执行语句x={},x的类型是:______.字典

    4.已知 x = {1:2, 2:3},那么表达式 x.get(3, 4) 的值为__.4

    5.列表guests=["萧峰","杨过","令狐冲","张无忌","郭靖"],下列删除"张无忌"的方法,哪种是错误的?(guests.remove[3]

    6. 下列元组定义正确的是(.tupScores=(“萧峰”,)

    7. 有关pop()方法的说法,正确的是:_____集合的pop()方法是从集合中随机删除一个元素

    8.已知s={1,2,3,4},以下操作执行会报错的是:___s.remove(5)

    9.下列集合运算的运算符,求交集的是:___.&

    10.以下哪种不是字典的遍历方式:___按"元素"遍历

    11.列表guests=[“萧峰”,”杨过”,”令狐冲”,”张无忌”,”郭靖”],下列哪种方法能够在”令狐冲”前插入”张三丰”?(guests.insert(2, ”张三丰”)

    12.假设d1,d2是两个字典,执行操作d1.update(d2)后,下列说法正确的是: d1的内容被更新,d2不变

    13.courses="计算机,数学",执行代码courses1=list(courses)后,courses1的值为()。

    .['计','算','机', ' , ', '数','学']

    14.下列关于列表与元组的说法正确的是( )。列表的元素能修改

    15.列表guests=["萧峰","杨过","令狐冲","张无忌","郭靖"],下列删除"张无忌"的方法,哪种是错误的?( )guests.remove[3]

    15.字典对象的________方法以"(键,值)"的形式返回字典中的所有条目的列表。.items()

    16下列代码执行结果为( )?.[6, 6, 6, 6, 6, 6, 6, 6, 6, 6]

    ls=[6]*10

    print(ls)

    17. 下列代码执行的正确结果为(.[1,4,9]

    )。

    lnum=[i**2 for i in range(1,4)]

    print(lnum)

    18. 下列有关字典条目的说法,错误的是:__字典中的值必须是不可变类型

    19. group=[("张三丰",95),("杨过",94)],下列操作不正确的是(group[1][0]="虚竹"将'杨过'修改为'虚竹'。)。

    20. score = eval(input("请输入3个学生的分数列表 "))

    maxScore = max(score)

    minScore = min(score)

    aveScore = sum(score)/len(score)

    print(maxScore,minScore,aveScore))

    如输入分数为[94,96,95],代码执行的正确结果为(96 94 95

    21. 列表guests=[”令狐冲”,”张无忌”,”郭靖”],ls=[“98”,”97”,”99”],guests+ls执行结果正确的是(.["令狐冲’,’张无忌’,’郭靖’, "98’,’97’,’99’]

    22.。下列列表定义错误的是(names=[萧峰,96,令狐冲]

    23. 表达式sorted({4:2,3:1,5:6})的值为___.[3,4,5]

    24. 下列代码执行的正确结果为(.[1,4,9]

    )。

    lnum=[]

    for i in range(1,4)

    lnum.append(i**2)

    print(lnum)

    25. 执行语句x={},x的类型是:____.字典

    26.已知 x = {1:2, 2:3},那么表达式 x.get(3, 4) 的值为___4

    27.列表guests=["萧峰","杨过","令狐冲","张无忌","郭靖"],下列删除"张无忌"的方法,哪种是错误的?(guests.remove[3]

    28. 下列元组定义正确的是(tupScores=(“萧峰”,)

    29. 有关pop()方法的说法,正确的是:____集合的pop()方法是从集合中随机删除一个元素

    s={1,2}

    s.add({2,3})

    print(s)

    31. guests=["李秋水","郭襄","赵敏"],彻底从内存中删除guests的方法是(del guests

    32.列表guests=["张三丰","萧峰","杨过","令狐冲","张无忌"],下列表达式用来判断指定的元素是否在列表中,下列描述正确的是?(."杨" not in guests,返回True。

    33. 列表courses=[”法律”,“管理”,”计算机”,”数学”],列表切片结果错误的是(courses[0:3:-2]切片结果为["法律’,’计算机’]。

    34. 执行下列代码的结果为:报错

    s={1,2}

    s.add({2,3})

    print(s)

    35.下列集合运算的运算符,求并集的是:___.|

    36. 下列哪种方法能够生成一份列表courses的备份?(courses.copy()

    37. 已知x={'a':2,'b':4},以下操作会报错的是:___x.pop('c')

    38. 以下说法正确的是:___集合可以作为字典的值

    39. 关于列表复制,下列说法错误的是(利用列表赋值实现复制会生成列表的备份。

    40. 执行下列代码的结果为:.{1:4,2:5,3:6}

    l1=[1,2,3]

    l2=[4,5,6]

    d={}

    for j in range(3):

    d[l1[i]]=l2[i

    41.已知x = {1:2, 2:3},那么表达式x.get(3, 4)的值为__4

    42.列表guests=["萧峰","杨过","令狐冲","张无忌","郭靖"],下列删除"张无忌"的方法,哪种是错误的?(guests.remove[3]

    43. 列表guests=["张三丰","萧峰","杨过","令狐冲","张无忌"],下列表达式用来判断指定的元素是否在列表中,下列描述正确的是?(."杨" not in guests,返回True。

    44. 下列关于列表与元组的说法不正确的是(列表的元素不能修改

    45. 按照指定的键访问字典中对应条目的值应采用的方法是:get()

    46,下列从输入设备获取数值列表的方法正确的是(lnum=eval(input(“请输入数值列表: ”))

    47. 字典对象的____keys()

    ____方法返回字典中的"键"的列表。

    48下列哪个函数可以将range()函数生成的数值对象转换成数值列表?(list()

    49. 以下创建集合的操作错误的是:____s={}

    50.已知x={1:2,3:4},以下选项返回False的是:_2 in x

    51. 以下哪种不是字典的遍历方式:__按"元素"遍历

    二、判断题

    1、del命令和pop命令删除列表元素的方式相同。F

    2、字典和集合属于无序序列。T

    3、Python字典中的“键”可以是列表。F

    4、使用del命令或者列表对象的remove()方法删除列表中元素时会影响列表中部分元素的索引。T

    5、可以使用del删除集合中的部分元素。F

    6、假设x为列表对象,那么x.pop()和x.pop(-1)的作用是一样的。T

    7、元组可以作为字典的“键”。T

    8、已知列表x中包含超过5个以上的元素,那么语句 x = x[:5]+x[5:] 的作用是将列表x中的元素循环左移5位。F

    9、字典中的值不允许重复。F

    10、Python字典中的“键”可以是元组。T

    11、字典可以通过索引访问所存储的条目。F

    12、Python集合可以包含相同的元素。F

    13、访问字典是通过键访问条目的值。T

    14、已知x = list(range(20)),那么语句print(x[100:200])无法正常执行。F

    15、Python集合中的元素可以是列表。F

    16、元组是不可变的,不支持列表对象的insert()、remove()等方法,也不支持del命令删除其中的元素,但可以使用del命令删除整个元组对象。T

    17、元组也是用来存放一组相关的数据,所以元组与列表相同。F

    18、集合中的元素不允许重复。T

    19、在Python 3.5中运算符+不仅可以实现数值的相加、字符串连接,还可以实现列表、元组的合并和集合的并集运算。F

    20、列表可以作为字典的“键”。F

    21、Python支持使用字典的“键”作为下标来访问字典中的值。T

    22、字典的“键”必须是不可变的。T

    23、Python集合中的元素可以是元组。T

    24、语句s1={}创建了一个空集合。F

    25、对于数字n>2,如果表达式 0 not in [n%d for d in range(2, n)] 的值为True则说明n是素数。T

    26、已知x = (1, 2, 3, 4),那么执行x[0] = 5之后,x的值为(5, 2, 3, 4)。F

    27、Python字典和集合属于无序序列。T

    28、同一个列表对象中所有元素必须为相同类型。F

    29、已知x = {1:1, 2:2},那么语句x[3] =3无法正常执行。F

    30、假设x是含有5个元素的列表,那么切片操作x[10:]是无法执行的,会抛出异常。F

    31、列表scores=[98,96,95,94,92],scores[::1]与scores[::-1]返回列表的值相等。F

    32、只能对列表进行切片操作,不能对元组和字符串进行切片操作。F

    33、Python列表、元组、字符串都属于有序序列。T

    34、列表的长度是列表中元素的个数减1。F

    35、字典中的键必须是不可变的类型,比如字符串、元祖或者列表。F

    36、字典的键一旦被加入到字典中,除非随着条目一起被删除,否则都是始终保持不变的。T

    37、已知x = {1:1, 2:2},那么语句x[3] =3无法正常执行F

    38、只能通过切片访问列表中的元素,不能使用切片修改列表中的元素。F

    39、在Python中元组的值是不可变的,因此,已知x = ([1], [2]),那么语句x[0].append(3)是无法正常执行的。F

    40、运算符“-”可以用于集合的差集运算。T

    41、删除列表中重复元素最简单的方法是将其转换为集合后再重新转换为列表。T

    42、遍历列表用for和range()函数配合可以减少代码的重复度。T

    43、已知x = list(range(20)),那么语句del x[::2]可以正常执行。T

    44、字典的“键”必须是不可变的。T

    45、无法删除集合中指定位置的元素,只能删除指定值的元素。T

    46、列表对象的pop()方法默认删除并返回最后一个元素,如果列表已空则抛出异常。T

    47、Python集合不支持使用下标访问其中的元素。T

    48、删除列表中重复元素最简单的方法是将其转换为集合后再重新转换为列表。T

    49、遍历列表用for和range()函数配合可以减少代码的重复度。T

    50、字典和集合都支持双向索引。F

    51、del命令和pop命令删除列表元素的方式相同。F

    52、字典和集合属于无序序列。T

    53、Python支持使用字典的“键”作为下标来访问字典中的值。T

    54、字典可以通过索引访问所存储的条目。F

    55、Python集合可以包含相同的元素。F

    56、已知x = list(range(20)),那么语句print(x[100:200])无法正常执行。F

    57、元组是不可变的,不支持列表对象的insert()、remove()等方法,也不支持del命令删除其中的元素,但可以使用del命令删除整个元组对象。T

    58、元组也是用来存放一组相关的数据,所以元组与列表相同。F

    59、集合中的元素不允许重复。T

    60、在Python 3.5中运算符+不仅可以实现数值的相加、字符串连接,还可以实现列表、元组的合并和集合的并集运算。F

    61、Python支持使用字典的“键”作为下标来访问字典中的值。T

    62、对于数字n>2,如果表达式0 not in [n%d for d in range(2, n)]的值为True则说明n是素数。T

    63、同一个列表对象中所有元素必须为相同类型。F

    64、假设x是含有5个元素的列表,那么切片操作x[10:]是无法执行的,会抛出异常。F

    65、del命令和pop命令删除列表元素的方式相同。F

    66、使用del命令或者列表对象的remove()方法删除列表中元素时会影响列表中部分元素的索引。I

    67、可以使用del删除集合中的部分元素。F

    68、假设x为列表对象,那么x.pop()和x.pop(-1)的作用是一样的。T

    69、字典中的值不允许重复。F

    70、Python字典中的“键”可以是元组。T

    71、使用列表对象的remove()方法可以删除列表中首次出现的指定元素,如果列表中不存在要删除的指定元素则抛出异常。T

    72、使用Python列表的方法insert()为列表插入元素时会改变列表中插入位置之后元素的索引。T

    73、使用pop()方法删除字典的指定键对应的条目时,如果缺省指定键参数,则随机删除一个条目。F

    74、表达式 list('[1, 2, 3]') 的值是[1, 2, 3]。F

    75、利用append()方法只能在列表尾部追加新的元素。T

    76、列表切片缺省“起始索引”时,切片默认从索引1元素开始。F

    77、已知x是个列表对象,那么执行语句y = x之后,对y增加一个元素的操作都会同样作用到x上。T

    78、采用copy()方法与列表之间赋值实现复制的过程相同。F

    79、无法删除集合中指定位置的元素,只能删除特定值的元素。T

    三、填空题

    1.已知列表对象x = ['11', '2', '3'],则表达式 max(x) 的值为_____'3'______。

    2.已知列表 x = [1, 2, 3],那么执行语句 x.pop(0) 之后,x的值为__[2,3]____

    3.已知 x = [3, 5, 7],那么执行语句 x[:3] = [2]之后,x的值为_______[2]_________。

    4.列表guests=[“萧峰”,”杨过”,”令狐冲”,”张无忌”,”郭靖”],删除”杨过”的方法是guests._____ remove______(”杨过”)。

    5.表达式 {1, 2, 3} | {3, 4, 5} 的值为_________{1,2,3,4,5}____________。

    6.表达式 (1,) + (2,) 的值为______(1,2)_______。

    7.表达式 {1, 2, 3} & {3, 4, 5} 的值为______{3}________。

    8.已知列表 x = [1, 2],那么连续执行命令 y = x[:] 和 y.append(3) 之后,x的值为___[1,2]_____。

    9.表达式 [1,2,3].count(4) 的值为________0_______。

    10.已知 x = (3,),那么表达式 x * 3 的值为________(3,3,3)_____。

    11.guests=[“赵敏”,”任盈盈”,”袁紫衣”],复制guests并生成备份的方法是guests.______copy____( )。

    12.列表、元组、字符串是Python的_____有序____(有序或无序)序列。

    13.guests=[“赵敏”,”任盈盈”,”袁紫衣”],执行guests___*__2的返回结果为["赵敏’,’任盈盈’,’袁紫衣’,"赵敏’,’任盈盈’,’袁紫衣’]。

    14.已知 x = {1:2},那么执行语句 x[2] = 3之后,x的值为_______{1:2,2:3}_________。

    15.已知x = [1, 2, 3],那么连续执行y = [1, 2, 3]和y.append(4)这两条语句之后,x的值为_________[1,2,3]___________。

    16.已知 x = [1, 2, 3, 2, 3],执行语句 x.remove(2) 之后,x的值为_____[1,3,2,3]_______。

    17.字典对象的______clear()_____方法可以一次性清空字典中所有条目。

    18.已知 x = [3, 5, 7],那么执行语句 x[len(x):] = [1, 2]之后,x的值为______[3,5,7,1,2]________。

    19.已知 x = [1, 2, 3, 2, 3],执行语句 x.pop() 之后,x的值为_______[1,2,3,2]______。

    20.列表group=[("郭靖",99),("杨过",98)],则group[0][1]=__99___。

    21.表达式 [1, 2] * 2 的值为________[1,2,1,2]______。

    22.已知 x = [3, 7, 5],那么执行语句 x.sort(reverse=True)之后,x的值为______[7,5,3]___________。

    23.表达式 set([1,2,3]) == {1, 2, 3} 的值为_____True_______。

    24.表达式type({3})的值为_________set___________。

    25.执行下列语句:

    x={1:1,2:2}

    x[1]=3

    print(len(x))

    显示结果为:2

    26.表达式 {1, 2, 3} - {3, 4, 5}的值为____{1,2}_______。

    27.表达式 sum(range(1, 10, 2)) 的值为_____25_______。

    28.列表courses=[”法律”,“管理”,”计算机”,”数学”],执行下列代码能对courses列表的元素降序排序,并改变原列表的顺序,courses._____sort____(reverse=False)。

    29.字典对象的______keys______方法返回字典的"键"列表。

    30.表达式sorted({'a':3, 'b':9, 'c':78}.values())的值为_____[3,9,78]________。

    31.表达式[1,2]*3的执行结果为_________[1,2,1,2,1,2]_____________。

    32.表达式 list(range(50, 60, 3)) 的值为________[50,53,56,59]_______________。

    33.表达式 len([i for i in range(10)]) 的值为______10____。

    34.已知列表 x = [1, 2, 3],那么执行语句 x.insert(1, 4)之后 ,x的值为_____[1,4,2,3]______。

    35.已知列表 x = list(range(10)),那么执行语句 del x[::2]之后,x的值为____[1,3,5,7,9]_____。

    36.已知 x = (3), 那么表达式 x * 3 的值为_____9_____。

    37.列表guests=[”a”,“b”,”cd”,”e”],表达式“d” in guests,返回结果为____False____。

    38.表达式 [1, 2] + [3] 的值为_________[1,2,3]_________。

    39.表达式 str([1, 2, 3]) 的值为__________'[1,2,3]'________。

    40.表达式type({}) == set的值为________False_______。

    41.已知列表 x = list(range(5)),那么执行语句 x.remove(3) 之后,表达式 x.index(4) 的值为____3____。

    42.已知列表 x = [1, 2],那么执行语句 x.append([3]) 之后,x的值为_____[1,2,[3]]________。

    43.已知列表 x = [1, 2, 3],那么执行语句 x.insert(1, 4)之后 ,x的值为____[1,4,2,3]_______。

    44.已知 x = [1, 2, 3, 4, 5],那么执行语句 del x[1:3] 之后,x的值为______[1,4,5]______。

    45.已知列表 x = [1, 2],那么执行语句 x.extend([3]) 之后, x的值为_____[1,2,3]_______。

    46.已知 x = [1, 2, 3, 2, 3],执行语句 x.remove(2) 之后,x的值为____[1,3,2,3]________。

    47.已知 x = {1:2, 2:3, 3:4},那么表达式 sum(x.keys()) 的值为____6_______。

    48.表达式sorted({3:'a',8:'b',5:'c'}.values())的值为:___ ['a','b','c']_____。

    49.已知 x = {1, 2, 3},那么执行语句 x.add(3) 之后,x的值为___{1,2,3}_______。

    50.guests=["令狐冲","张无忌","郭靖"],ls=["李秋水","郭襄","赵敏"],将guests列表的值修改为['令狐冲', '张无忌', '郭靖', '李秋水', '郭襄', '赵敏']的方法是guests.____ extend______(ls)。

    51.字典对象的________get___方法可以获取指定“键”对应的“值”,如果指定的键在字典中不存在,则返回默认值。

    52.清空列表guests=["赵敏","任盈盈","袁紫衣"]的命令是____del____guests[:]。

    53.已知 x = {'a':'b', 'c':'d'},那么表达式 'b' in x.values() 的值为_____True_________。

    54.执行下列语句:

    x={1:1,2:2}

    x[3]=1

    print(len(x))

    显示结果为:3

    55.已知x = ([1], [2]),那么执行语句x[0].append(3)后x的值为________([1,3],[2])________。

    56.执行下列代码可以创建数值列表:lnum=____list____(range(1,9))。

    57.已知 x = {'a':'b', 'c':'d'},那么表达式 'b' in x 的值为___False___。

    58.表达式sorted({3:'a',8:'b',5:'c'})的值为:___ [3,5,8]_____。

    59.已知x为非空且元素无序的列表,那么表达式 x.sort() == sorted(x) 的值为____False______。

    60.表达式[3] in [1, 2, 3, 4]的值为______False__________。

    61.表达式sorted({3:'a',8:'b',5:'c'})的值为:___ [3,5,8]_____。

    62.表达式 {1, 2, 3} ^ {3, 4, 5} 的值为___{1,2,4,5}________。

    63.表达式 list(range(5)) 的值为______[0,1,2,3,4]__________。

    64.已知 x = {'a':'b', 'c':'d'},那么表达式 'a' in x 的值为______True________。

    65.列表courses=[”Falv”,“Guanli”,”Jisuanji”,”Shuxue”,”Lishi”,’Dili’],courses[1:5:__2__]切片结果为[“Guanli”,”Shuxue”]。

    66.执行下列语句:

    67.x={1:1,2:2}

    x[3]=1

    print(len(x))

    显示结果为:3

    68.清空列表guests=["赵敏","任盈盈","袁紫衣"]的命令是____del____guests[:]。

    69.已知列表 x = [1, 2, 3],那么执行语句 x.insert(0, 4) 只有,x的值为_____[4,1,2,3]______。

    70.已知列表 x = [1, 2, 3],那么执行语句 x.pop(0) 之后,x的值为____[2,3]_____。

    71.已知 x = [3, 5, 7],那么表达式 x[10:]的值为______[]______。

    72.表达式type({}) == set的值为_______False________。

    73.已知 x = [1, 2],那么执行语句 x[0:1] = [3, 3]之后,x的值为_____[3,3,2]______。

    74.已知x = list(range(20)),那么表达式x[-1]的值为________19____________。

    75.______del________命令既可以删除列表中的一个元素,也可以删除整个列表。

    76.表达式 type(3.0) in (int, float, complex) 的值为______True______。

    77.表达式 3 not in [1, 2, 3]的值为____False______。

    78.表达式 3 in {1, 2, 3} 的值为_____True____。

    79.表达式 len(range(1, 10)) 的值为_____9______。

    字典对象的_______values_______方法返回字典的“值”列表。

    三、编程题

    '''

    编写一个程序,接受逗号分隔的单词序列作为输入,按字母顺序排序后按逗号分隔的序列打印单词。假设向程序提供以下输入:

    without,hello,bag,world

    则输出为:

    bag,hello,without,world

    '''

    x=input("x=")

    l=x.split(",")

    l.sort()

    print(",".join(l))

    '''

    编写一个程序来计算输入中单词的频率。 按字母顺序对键进行排序后输出。

    假设为程序提供了以下输入:

    New to Python or choosing between Python 2 and Python 3 Read Python 2 or Python 3

    然后,输出应该是:

    2:2

    3:2

    New:1

    Python:5

    Read:1

    and:1

    between:1

    choosing:1

    or:2

    to:1

    '''

    x=input("x=")

    l=x.split()

    d={}

    for i in l:

    d[i]=d.get(i,0)+1

    l2=sorted(d)

    for i in l2:

    print("{}:{}".format(i,d[i]))

    #依次输入三个整数放在一个列表中,请把这三个数由小到大输出。

    l=[]

    for i in range(3):

    x=int(input("x="))

    l.append(x)

    l.sort()

    for i in l:

    print(i,end=" ")

    '''

    使用列表生成式方法求解百钱买百鸡问题。

    假设大鸡5元一只,中鸡3元一只,小鸡1元三只,

    现有100元钱想买100只鸡,有多少种买法?

    '''

    l=[(i,j,k) for i in range(0,100) for j in range(0,100) for k in range(0,100) if i+j+k==100 and 5*i+3*j+k/3==100]

    for i in l:

    print(i)

    '''

    使用给定的整数n,编写一个程序生成一个包含(i, i*i)的字典,该字典包含1到n之间的整数(两者都包含)。然后程序应该打印字典。

    假设向程序提供以下输入:8

    则输出为:

    {1:1,2:4,3:9,4:16,5:25,6:36,,7:49,8:64}

    '''

    n=eval(input("n="))

    d={}

    for i in range(1,n+1):

    d[i]=i*i

    print(d)

    '''

    使用列表生成式随机产生10个两位的正整数,存入列表ls中,输出ls中的这10个随机数,

    然后对这10个随机数求平均值,并输出统计高于平均值的数有多少个。

    '''

    from random import *

    ls=[randint(10,99) for i in range(10)]

    print(ls)

    pj=sum(ls)/10

    n=0

    for i in ls:

    if i>pj:

    n=n+1

    print(n)

    #编写一个程序,输出2000到3200(含2000和3200)之间所有是7的倍数,但不是5的倍数的整数。要求:用列表保存符合条件的整数,输出结果各整数之间用逗号分隔,并输出在一行上。

    l=[]

    for i in range(2000,3201):

    if i%7==0 and i%5!=0:

    l.append(str(i))

    print(",".join(l))

    '''

    编写一个程序,接收一系列单个空格分隔的单词作为输入,在删除所有重复的单词并按字母升序排序后打印这些单词。

    假设向程序提供以下输入:

    hello world and practice makes perfect and hello world again

    则输出为:

    again and hello makes perfect practice world

    '''

    x=input("x=")

    l=x.split()

    s=set(l)

    l2=list(s)

    l2.sort()

    for i in l2:

    print(i,end=" ")

    '''

    编写一个接收句子并计算字母和数字的程序。假设为程序提供了以下输入:

    Hello world! 123

    然后,输出应该是:

    字母10

    数字3

    '''

    d={'字母':0,'数字':0}

    x=input("x=")

    for i in x:

    if i.isdigit():

    d['数字']=d['数字']+1

    elif i.isalpha():

    d['字母']=d['字母']+1

    for k,v in d.items():

    print("{} {}".format(k,v))

    '''

    使用列表生成式来求列表中的每个奇数。 该列表由一系列逗号分隔的数字输入。

    假设为程序提供了以下输入:

    [1,2,3,4,5,6,7,8,9]

    然后,输出应该是:

    [1,3,5,7,9]

    '''

    l=eval(input("l="))

    l2=[ i for i in l if i%2==1]

    print(l2)

    展开全文
  • 要在计算机上执行用高级语言(或汇编语言)编写的程序,必须通过特定的途径来进行,也就是要通过翻译程序把用高级语言(或汇编语言)编写的程序翻译成为机器语言构成的程序,计算机才能执行。 在计算机上执行一个...


    要在计算机上执行用 高级语言(或汇编语言)编写的程序,必须通过特定的途径来进行,也就是要通过 翻译程序把用高级语言(或汇编语言)编写的程序翻译成为机器语言构成的程序,计算机才能执行。
    在计算机上执行一个高级语言程序一般要分为两步:
    第一步,用一个编译程序把高级语言翻译成机器语言程序;
    第二步,运行所得的机器语言程序求得计算结果。

    1.几种基本的翻译程序

    1.1翻译程序

    通常所说的翻译程序是指这样的一个程序,它能够把某一种语言程序(称为源语言程序或源程序)转换成另一种语言程序(称为目标语言程序或目标程序)
    在这里插入图片描述

    1.2汇编程序(Assembler)

    如果源语言是某种汇编语言,而目标语言是某种计算机的机器语言,这样的一个翻译程序就称为汇编程序。
    在这里插入图片描述

    1.3编译程序(Compiler)

    如果源语言是某种高级语言,而目标语言是某种低级语言(汇编语言或机器语言),这样的一个翻译程序就称为编译程序。在这里插入图片描述

    1.4解释程序(Interpreter)

    这是另外一种类型的翻译程序,在翻译过程它按照高级语言源程序在计算机上执行的动态顺序对源程序的语句逐条翻译(解释),边解释边执行直至结束,它不产生目标程序,它的工作结果就是源程序的执行结果,这样的一个翻译程序就称为解释程序。在这里插入图片描述

    1.5总结

    编译程序与其他几种翻译程序的区别在于源语言和目标语言的不同,编译程序的源语言是某种高级语言,功能是将其翻译成某种低级语言。
    根据不同的用途,编译程序可进一步分类:
    (1)诊断编译程序(Diagnostic Compiler): 专门用于帮助程序开发和调试的编译程序。
    (2)优化编译程序(Optimizing Compiler): 着重于提高目标代码效率的编译程序。
    (3)交叉编译程序(Cross Compiler): 如果一个编译程序产生不同于其宿主机的机器代码。
    (4)可变目标编译程序(Retargetable Compiler): 不需重写编译程序中与机器无关的部分就能改变目标机。

    2.编译程序的运行过程

    编译程序的工作过程一般可以划分为五个阶段:
    1.词法分析——2.语法分析——3.语义分析——4.中间代码产生、优化——5.目标代码生成。
    在这里插入图片描述

    2.1词法分析(Lexical analysis)

    此阶段的任务是: 输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个的单词。在词法分析阶段的工作中所依循的是语言的词法规则(或称构词规则)。描述词法规则的有效工具是正规式,识别词法规则的有效工具是有限自动机。在这里插入图片描述

    2.2语法分析(Syntax Analysis)

    此阶段的任务是:在词法分析的基础上,根据语言的语法规则,把单词符号串分解成各类语法单位(语法范畴),如“短语”、“子句”、“句子”(“语句”)、“程序段”和“程序”等。通过语法分析,确定整个输入串是否构成语法上正确的“程序”。
    语法分析所依循的是语言的语法规则。语法规则通常用上下文无关文法描述。词法分析是一种线性分析,而语法分析是一种层次结构分析。
    例如,在很多语言中,符号串 z:=X十0.618*Y 代表一个“赋值语句”,而其中的 X+0.618*Y代表一个“算术表达式”。因而,语法分析的任务就是识别 X+0.618*Y为算术表达式,同时,识别上述整个符号串属于赋值语句这个范畴。

    2.3语义分析与中间代码产生(Semantic Analysis and Intermediate Generator)

    此阶段的任务是:对语法分析所识别出的各类语法范畴,分析其含义,并进行初步翻译(产生中间代码)。
    语义处理:
    ①变量的存储分配 ②表达式的求值 ③语句的翻译(中间代码的生成)
    中间代码
    中间代码是一种独立于具体硬件的记号系统。
    常用的中间代码:三地址码(四元式、三元式、间接三元式),逆波兰式,树形表示等。所谓“中间代码”是一种含义明确、便于处理的记号系统,它通常独立于具体的硬件。这种记号系统或者与现代计算机的指令形式有某种程度的接近,或者能够比较容易地把它变换成现代计算机的机器指令。

    2.4优化(Optimization)

    优化的任务:对产生的中间代码进行加工变换,以期在最后阶段能产生出更为高效(省时间和空间)的目标代码。
    优化的主要方面有:公共子表达式提取、循环优化、删除无用代码等等。有时,为了便于“并行运算”,还可以对代码进行并行化处理。优化所依循的原则:程序的等价变换规则。

    2.5目标代码生成(Code Generation)

    这一阶段的任务是:把中间代码(或经优化处理之后)变换成特定机器上的低级语言代码。
    目标代码的三种形式:
    1.汇编语言代码 2.能够立即执行的机器语言代码 3.待装配的机器代码模块

    3.表格管理 (symbol-table manager)

    编译程序在工作过程中需要保存一系列的表格,以登记源程序的各类信息和编译各阶段的进展状况。合理地设计和使用表格是编译程序构造的一个重要问题。在编译程序使用的表格中,最重要的是符号表。它用来登记源程序中出现的每个名字以及名字的各种属性。

    4.出错处理(error handler)

    一个编译程序不仅应能对书写正确的程序进行翻译,而且应能对出现在源程序中的错误进行处理。
    源程序中的错误通常分为语法错误和语义错误两大类。
    语法错误是指源程序中不符合语法(或词法)规则的错误,它们可在词法分析或语法分析时检测出来。例如,词法分析阶段能够检测出“非法字符”之类的错误;语法分析阶段能够检测出诸如“括号不匹配”、“缺少;”之类的错误。
    语义错误是指源程序中不符合语义规则的错误,这些错误一般在语义分析时检测出来,有的语义错误要在运行时才能检测出来。语义错误通常包括:说明错误、作用域错误、类型不一致等等。

    5.编译前端与后端

    编译过程划分为前端和后端的目的:在多种源语言和多种目标语言的开发过程中,可以灵活搭配前端和后端,消除重复开发的工作量,提高编译系统的开发效率。
    前端主要由与源语言有关但与目标机无关的那些部分组成。这些部分通常包括词法分析、语法分析、语义分析与中间代码产生,有的代码优化工作也可包括在前端。
    后端包括编译程序中与目标机有关的那些部分,如与目标机有关的代码优化和目标代码生成等。通常,后端不依赖于源语言而仅仅依赖于中间语言。

    展开全文
  • java面试题32:Java网络程序设计,下列正确的描述是() A:Java网络编程API建立在Socket基础之上 B:Java网络接口只支持tcP以及其上层协议 C:Java网络接口只支持UDP以及其上层协议 D:Java网络接口支持IP...

    java面试题32:Java网络程序设计中,下列正确的描述是()

    A:Java网络编程API建立在Socket基础之上
    B:Java网络接口只支持tcP以及其上层协议
    C:Java网络接口只支持UDP以及其上层协议
    D:Java网络接口支持IP以上的所有高层协议

    蒙蔽树上蒙蔽果,蒙蔽树下你和我。不多说了,先看看网络编程。

    一、网络编程基础概念

    首先理清一个概念:网络编程不等于网站编程,网络编程即使用套接字来达到进程间通信,现在一般称为TCP/IP编程。

    计算机网络:

    把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大,功能强的网络系统,从而使众多的计算机可以方便的互相传递信息,共享硬件,软件,数据信息等资源。

    计算机网络的主要功能:

        资源共享
        信息传输与集中处理
        均衡负荷与分布处理
        综合信息服务(www / 综合业务数字网络 ISDN)

    计算机网络三高问题: 高并发,高性能,高可用。

    计算机网络分类:

        局域网
        城域网
        广域网
        互联网
        等等…

    (Local Area Network;LAN) 通常我们常见的“LAN”就是指局域网,这是我们最常见、应用最广的一种网络
    二、网络通信协议及接口

    网络通信协议:

    计算机网络中实现通信必须有一些约定,即通信协议;包括对速率,传输代码,代码结构,传输控制步骤,出错控制等制定的标准。

    网络通信接口:

    为了使两个节点之间能进行对话,必须在他们之间建立通信工具(即接口),使彼此之间,能进行信息交换。接口包括两部分:

        硬件装置:实现结点之间的信息传送
        软件装置:规定双方进行通信的约定协议

    三、通信协议分层思想

    为什么要分层:

    由于结点之间联系很复杂,在制定协议时,把复杂成份分解成一些简单的成份,再将它们复合起来。最常用的复合方式就是层次方式,及同层间可以通信,上一层可以调用下一层,而与再下一层不发生关系。各层互不影响,利于系统的开发和扩展。

    通信协议的分层规定:

    把用户应用程序作为最高层,把物理通信线路作为最底层,将其间的协议处理分为若干层,规定每层处理的任务,也规定每层的接口标准。
    四、参考模型


    五、IP协议

        每个人的电脑都有一个独一无二的IP地址,这样互相通信时就不会传错信息了。

        IP地址是用一个点来分成四段的,在计算机内部IP地址是用四个字节来表示的,一个字节代表一段,每一个字节代表的数最大只能到达255。

    InetAddress类

    说到IP地址,就要引入一个类:InetAddress
    此类表示互联网协议 (IP) 地址。

    InetAddress类无构造方法

    常用方法摘要

    byte[] getAddress()
    返回此 InetAddress 对象的原始 IP 地址。
    static InetAddress getByName(String host)
    在给定主机名的情况下确定主机的 IP 地址。
    String getHostAddress()
    返回 IP 地址字符串(以文本表现形式)。
    String getHostName()
    获取此 IP 地址的主机名。
    static InetAddress getLocalHost()
    返回本地主机。
    127.0.0.1:本机地址,主要用于测试。别名:Localhost

    案例

    import java.net.InetAddress;
    import java.net.UnknownHostException;
    
    public class TestIP {
        public static void main(String[] args) throws UnknownHostException {
            //InetAdress类表示IP地址
    
            //获取本机IP
            InetAddress ip = InetAddress.getLocalHost();
            System.out.println(ip);
            //获得主机名
            System.out.println(ip.getHostName());
            //获得IP地址
            System.out.println(ip.getHostAddress());
        }
    }

    案例二

    import java.net.InetAddress;
    import java.net.UnknownHostException;
    
    public class TestIP2 {
        public static void main(String[] args) throws UnknownHostException {
            InetAddress inetAddress = InetAddress.getByName("www.baidu.com");
            // 获取此 IP 地址的主机名。
            System.out.println(inetAddress.getHostName());
            //返回 IP 地址字符串(以文本表现形式)。
            System.out.println(inetAddress.getHostAddress());
        }
    }
    
    

    运行


    在这里插入图片描述
    六、端口

        IP地址用来标识一台计算机,但是一台计算机上可能提供多种网络应用程序,如何来区分这些不同的程序呢?这就要用到端口。
        端口是虚拟的概念,并不是说在主机上真的有若干个端口。
        通过端口,可以在一个主机上运行多个网络应用程序。端口的表示是一个16位的二进制整数,2个字节,对应十进制的0~65535。

    MySQL(3306),Oracle(1521),Tomcat(8080)等等程序都有自己的端口

    查看端口

        用命令提示符cmd查看所有端口:netstat -ano
        查看具体程序:使用任务管理器查看PID

    InetSocketAddress类

    说到端口,则要引入一个类:InetSocketAddress

    此类实现 IP 套接字地址(IP 地址 + 端口号)。

    构造方法摘要
    InetSocketAddress(InetAddress addr, int port)
    根据 IP 地址和端口号创建套接字地址。
    InetSocketAddress(int port)
    创建套接字地址,其中 IP 地址为通配符地址,端口号为指定值。
    InetSocketAddress(String hostname, int port)
    根据主机名和端口号创建套接字地址。
    常用方法摘要
    InetAddress getAddress()
    获取 InetAddress。
    String getHostName()
    获取 hostname。
    int getPort()
    获取端口号。

    案例

    import java.net.InetAddress;
    import java.net.InetSocketAddress;
    
    public class TestPort {
        public static void main(String[] args) {
            InetSocketAddress inetSocketAddress = new InetSocketAddress("127.0.0.1",8082);
            System.out.println(inetSocketAddress.getHostName());
            //获得InetSocketAddress的端口
            System.out.println(inetSocketAddress.getPort());
            System.out.println(inetSocketAddress.getHostString());
            //返回一个InetAddress对象(IP对象)
            InetAddress address = inetSocketAddress.getAddress();
        }
    }
    
    

    七、URL

    URI=URL+URN

    URI:Uniform Resource Identifier ,统一资源标志符。
    URL:Uniform Resource Locator,统一资源定位符。
    URN:Uniform Resource Name,统一资源命名。

    网络三大基石:HTML,HTTP,URL
    URL

        在www上,每一信息资源都有统一且唯一的地址,即统一资源定位符。Uniform Resource Locator。
        如:https://localhost:8080/index.html ,有4部分组成。(协议,主机域名或IP,端口号,资源文件名)

    URL类

    构造方法摘要
    URL(String spec)
    根据 String 表示形式创建 URL 对象。
    URL(String protocol, String host, int port, String file)
    根据指定 protocol、host、port 号和 file 创建 URL 对象。
    URL(String protocol, String host, String file)
    根据指定的 protocol 名称、host 名称和 file 名称创建 URL。

    常用方法摘要
    String getAuthority()
    获取此 URL 的授权部分。
    int getDefaultPort()
    获取与此 URL 关联协议的默认端口号。
    String getFile()
    获取此 URL 的文件名。
    String getHost()
    获取此 URL 的主机名(如果适用)。
    String getPath()
    获取此 URL 的路径部分。
    int getPort()
    获取此 URL 的端口号。
    String getUserInfo()
    获取此 URL 的 userInfo 部分。

    案例

    import java.net.MalformedURLException;
    import java.net.URL;
    
    public class TestURL {
        public static void main(String[] args) throws MalformedURLException {
    
            URL url2 = new URL("https://www.bilibili.com/");
            
            //获取此的授权部分 URL 。
            System.out.println(url2.getAuthority());
    
            //获取此 URL的文件名。
            System.out.println(url2.getFile());
    
            //获取端口
            System.out.println(url2.getPort());
    
            //获取主机
            System.out.println(url2.getHost());
    
            //获得默认端口
            System.out.println(url2.getDefaultPort());
    
            //获得路径
            System.out.println(url2.getPath());
    
            //获取该 URL的userInfo部分。
            System.out.println(url2.getUserInfo());
        }
    }
    
     

    小结:


    八、TCP协议和UDP协议

        TCP和UDP位于同一层,都是建立在IP层的基础之上。由于两台电脑之间有不同的IP地址,因此两台电脑就可以区分开来,也就可以互相通话了。
        通话一般有两种通话方式:第一种是TCP,第二种是UDP。
        TCP是可靠的连接,TCP就像打电话,需要先打通对方电话,等待对方有回应后才会跟对方继续说话,也就是一定要确认可以发信息以后才会把信息发出去。TCP上传任何东西都是可靠的,只要两台机器上建立起了连接,在本机上发送的数据就一定能传到对方的机器上。
        UDP就好比发电报,发出去就完事了,对方有没有接收到它都不管,所以UDP是不可靠的。
        TCP传送数据虽然可靠,但传送得比较慢;UDP传送数据不可靠,但是传送得快。

    UDP编程:

    需求:完成在线咨询功能,学生和老师在线一对一交流
    分析:

        使用基于UDP协议的Socket网络编程实现
        不需要利用IO流实现数据的传输
        每个数据发送单元被统一封装成数据包的方式,发送方将数据包发送到网络中,数据包在网络中去寻找他的目的地,一切以包为中心。

    UDP基本概念:

        DatagramSocket:用于发送或接收数据包的套接字
        DatagramPacket:数据包

    实现

    接收方

    import java.io.IOException;
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    
    public class PeopleOne {
        public static void main(String[] args) throws IOException {
            //1.开放一个端口
            DatagramSocket socket = new DatagramSocket(5051);
            //2.准备容器接收
            byte[] receiveBuf = new byte[100];
            //3.等待包裹容器封包
            DatagramPacket packet = new DatagramPacket(receiveBuf,receiveBuf.length);
            System.out.println("等你包裹来。。。。");
            while (true){
                //4.接收包裹
                socket.receive(packet);
                //5.解析包裹
                String receStr = new String(packet.getData(),0,packet.getLength());
                System.out.println("我收到了:"+receStr);
                if (receStr.equals("exit")){
                    break;
                }
            }
            //6.释放资源
            socket.close();
        }
    }

     

    发送方

    import java.io.IOException;
    import java.net.*;
    import java.util.Scanner;
    
    public class PeopleTwo {
        public static void main(String[] args) throws IOException {
            //1.指定一个端口进行发送
            DatagramSocket socket = new DatagramSocket();
            //2.指定一个IP
            InetAddress addr = InetAddress.getByName("127.0.0.1");
            int port = 5051;
            //3.准备一个小容器
            byte[] sendBuf;
            while (true){
                Scanner scanner = new Scanner(System.in);
                System.out.println("你要发什么东西:");
                String s = scanner.nextLine();
                //4.加入要放的数据
                sendBuf = s.getBytes();
                //5.数据打包
                DatagramPacket packet = new DatagramPacket(sendBuf,sendBuf.length,addr,port);
                //6.发送包
                socket.send(packet);
                if (s.equals("exit")){
                    break;
                }
            }
            //7.释放资源
            socket.close();
        }
    }

    运行
    在这里插入图片描述
    在这里插入图片描述
    TCP编程:

    需求:完成网络登录功能

        用户输入用户名密码,服务器给出登录成功或失败的提示

    分析:

        使用基于TCP协议的Socket网络编程实现
        TCP协议基于请求响应模式
        在网络通讯中,第一次主动发起通讯的程序被作为客户端程序
        第一次通讯中等待连接的程序被称作服务器程序
        利用IO流实现数据的传输

    实现

    服务器

    import java.io.DataInputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.net.ServerSocket;
    import java.net.Socket;
    
    public class TestServer {
    
        public static void main(String[] args) throws IOException {
            //服务器开启了一个监听端口
            ServerSocket serverSocket = new ServerSocket(6666);
            System.out.println("开启了服务器");
            while (true){
                //等待客户端连接
                Socket accept = serverSocket.accept();
                System.out.println("有一个人连接过来了");
                //获得客户端输入的东西
                InputStream inputStream = accept.getInputStream();
                //包装成DataInputStream流
                DataInputStream dataInputStream = new DataInputStream(inputStream);
                //通过流流读取消息
                String s = dataInputStream.readUTF();
                System.out.println(s);
            }
        }
    }

    客户端

    import java.io.DataOutputStream;
    import java.io.IOException;
    import java.net.Socket;
    
    public class TestClient {
        public static void main(String[] args) throws IOException {
            //创建同一连接
            Socket s = new Socket("127.0.0.1",6666);
            DataOutputStream dos = new DataOutputStream(s.getOutputStream());
            dos.writeUTF("hello,world!");
        }
    }

    运行
    在这里插入图片描述
    九、Socket编程

    一般的网络编程都称为Socket编程,Socket的英文意思是“插座”。

    在这里插入图片描述

        两台电脑都安装上一个插座,然后使用一根线的两端插到两台电脑的插座上,这样两台电脑就建立好了连接。这个插座就是Socket。

        因为互相之间都能互相通信,我说你是我的Server只是从逻辑意义上来讲,我应该把东西先发到你那里去,然后由你来处理,转发。所以你叫Server。但从技术意义上来讲,只有TCP才会分Server和Client。对于UDP来说,从严格意义上来讲,并没有所谓的Server和Client。TCP的Server的插座就叫ServerSocket,Client的插座就叫Socket。

        两台计算机互相连接,那么首先必须得知道它们的IP地址,但是只提供IP地址是不够的,还必须要有连接的端口号,也就是要连接到哪个应用程序上。

        端口号是用来区分一台机器上不同的应用程序的。端口号在计算机内部是占2个字节。一台机器上最多有65536个端口号。一个应用程序可以占用多个端口号。端口号如果被一个应用程序占用了,那么其他的应用程序就无法再使用这个端口号了。记住一点,我们编写的程序要占用端口号的话占用1024以上的端口号,1024以下的端口号不要去占用,因为系统有可能会随时征用。端口号本身又分为TCP端口和UDP端口,TCP的8888端口和UDP的8888端口是完全不同的两个端口。TCP端口和UDP端口都有65536个。
    好像没啥评论,答案A,D,留给思考的你们。

    我是歌谣,今天刷题结束。不断积累,不断学习,共同交流,不多说了,代码走起来。

    阅读目录(置顶)(长期更新计算机领域知识)

    阅读目录(置顶)(长期更新计算机领域知识)

    阅读目录(置顶)(长期科技领域知识)

    歌谣带你看java面试题

    展开全文
  • 说明: 在编译向该请求提供服务所需资源的过程出现错误。请检查下列特定错误详细信息并适当地修改源代码 变异器错误消息:编译器失败,错误代码为-2146232576 解决:注释掉下面的代码
    说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码
    

    变异器错误消息:编译器失败,错误代码为-2146232576

    解决:注释掉下面的代码


    展开全文
  • 作者:周思博(Joel Spolsky) 译:Paul May梅普华 ...这种让错误程序看起来的作法有个前提,就是要让对的东西在屏幕上紧靠在一起.当我看到某个字串时并要决定代码正确与否,我必须知道字串出现的...
  • 第1章 Python程序设计概述单元测验11、下列选项,不属于Python语言特点的是A、面向对象B、运行效率高C、可读性好D、开源2、以下叙述正确的是A、Python3.x和Python2.x兼容B、Python语言只能以程序方式执行C、Python...
  • “/”应用程序中的服务器错误。 编译错误 说明: 在编译向该请求提供服务所需资源的过程出现错误。请检查下列特定错误详细信息并适当地修改源代码。 编译器错误信息: CS0016: 未能写入输出文件“d:\WINDOWS\...
  • 下列程序运行时会崩溃,请找出错误并改正,并且说明原因。 #include stdio.h>  #include malloc.h>  typedef struct {   TNode* left;   TNode* right;   int
  • 例题:下列给定程序中,函数fun的功能是:求出两个非零正整数的最大公约数,并作为函数值返回。 例如,若给n和m分别输入27和81,则输出的最大公约数为27。 注意:不要改动main函数,不能增行或删行,也不能更改程序的...
  • 例题:下列给定程序中,函数fun的功能是:利用插入排序法对字符串的字符按从小到大的顺序进行排序。插入法的基本算法是:先对字符串的头两个元素进行排序;然后把第三字符插入到前两个字符,插入后前三个字符...
  • 从 C/C++ 程序调用 Java 代码

    千次阅读 2015-09-02 17:54:03
    JNI允许您从本机代码内调用 Java 类方法。 要做到这一点,通常必须使用 Invocation API 在本机代码内创建和初始化一个 JVM。 下列是您可能决定从 C/C++ ...需要在本机应用程序中访问用 Java 语言编写的代码代码库。
  • 在c++下列描述错误的是( )

    千次阅读 2020-09-12 20:42:12
    因为 一个类,一个static变量只会有一个内存空间,虽然有多个类实例,但这些类实例的这个static变量会共享同一个内存空间。静态方法在优先于对象存在,所以静态方法不可以出现this,super关键字。
  • JavaSE程序代码

    千次阅读 2020-07-20 19:26:56
    JavaSE程序代码题 1.阅读下面的代码,然后写出程序运行结果。 public class Test2{ static boolean foo(char c){ System.out.print ©; return true; } public static void main(String[] argv) { int i=0; for (foo...
  • “/XXXX”应用程序中的服务器错误。说明: 在分析向此请求提供服务所需资源时出错。请检查下列特定分析错误详细信息并适当地修改源文件。 行 1:   解决方案一:  如果是刚添加的页面,请重新编译项目,...
  • 系统发布后,在本地机子上一切正常,但是上传到服务器出现如下错误: “/”应用程序中的服务器错误。 ---------------------------------------------------...请检查下列特定错误详细信息并适当地修改源代码。 ...
  • 系统发布后,在本地机子上一切正常,但是上传到服务器出现如下错误: “/”应用程序中的服务器错误。-------------------------------------------------------------------------------- 编译错误 说明: 在编译向...
  • 下列哪种异常是检查型异常,需要在编写程序时声明? ANullPointerException BClassCastException CFileNotFoundException DIndexOutOfBoundsException 正确答案:C 1. 粉红色的是受检查的异常(checked ...
  • 例题:下列给定程序中,函数fun的功能是:求n!(n<20),所求阶乘的值作为函数值返回。例如,若n=5,则应输出120。 请修改程序中错误,得出正确的结果。 注意:不要改动main函数,不能增行或删行,也不能更改程序...
  • FindBugs是一款静态分析工具,检查程序潜在bug,在bug报告快速定位到问题的代码上。 FindBugs 运行需要 1.7 或更高版本的 JRE(或 JDK),但是它可以分析从任何版本的 Java 编译的程序,从1.0 到 1.8 IDEA安装...
  • D"捕获到的异常只能在当前方法处理,不能在其他方法处理"这句话是的,在实际应用,当一个异常出现时,单靠某个方法无法完全处理该异常,必须由几个方法协作才可以处理,这个时候同时使用catch和throw语句,...
  • “/”应用程序中的服务器错误

    万次阅读 2018-11-17 11:44:04
    请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.BadImageFormatException: 未能加载文件或程序集“XXXXXX”或它的某一个依赖项。试图加载格式不...
  • 【单选题】下列关于Python的说法,错误的是()。【多选题】使用积分表求不定积分常见的类型有哪些?【简答题】请举例说明分数的意义。【简答题】代码的人工审查要审查哪些主要内容?为什么需要对代码进行人工审查?(10分)...
  • 概述 JNI 允许您从本机代码内调用 Java 类方法。要做到这一点,通常必须使用 Invocation API 在本机代码内创建和初始化一个 JVM。...需要在本机应用程序中访问用 Java 语言编写的代码代码库。 希望从本机代
  • 基于 Microsoft® .NET Framework 的应用程序中大量使用了非托管内存,这些非托管内存既可以被公共语言运行库 (CLR) 使用,也可以在与非托管代码进行互操作时被程序员显式使用。在某些情况下,垃圾管理器似
  • Windows设备管理器错误代码

    千次阅读 2021-04-14 09:05:26
    适用于:Windows 10 Pro released in July 2015,Windows 10 Enterprise ...在本文,我们将帮助你找到你的错误代码,并提供你尝试纠正错误可能需要的建议。 首先尝试以下步骤: 首先,尝试以下任何常见解决方...
  • 用vs2017编写opencv程序,出现下列错误OpenCV Error: Assertion failed (size.width>0 && size.height>0) in cv::imshow file C:\build\master_winpack-build-win64-vc14\opencv\modules\highgui\src\...
  • 如何阅读他人的程序代码(上)——技巧学习篇

    万次阅读 多人点赞 2018-06-27 17:10:04
    一、读懂程序代码,使心法皆为我所用 程序代码是别人写的,只有原作者才真的了解程序代码的用途及涵义。许多程序人心里都有一种不自觉的恐惧感,深怕被迫去碰触其他人所写的程序代码。但是,与其抗拒接收别人的程序...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 171,618
精华内容 68,647
关键字:

下列程序中哪些代码是错误的