2017年江苏电信暑期实习生笔试编程题

今天参加了江苏电信的暑期实习的笔试,笔试的题型为30道选择题,2道编程题。总体难度不大,考的都是些关于通信和计算机的基础知识。选择题考Linux系统的基本操作,一些C++和java的基本程序(难度和计算机二级差不多),通信网的知识。

对于两道编程题,难度也是不大的。。。。。。。(妈的,第二道编程题没做出来,水平还需要好好加强啊!)

下面我说下编程题:
(1)第一道编程题:
是关于斐波那契数列的,输入一个K值(整数),然后求斐波那契数列中第k个值是多少。
这题我就不写了,比较简单,只要注意k=1,2的情况。

(2)第二道编程题:
先输入一个数,int(n),n表示下面要输入的行数。然后,输入n行字符串。最后请编写程序,输入这些字符串的倒叙。
例:输入:
3
i love you
jj kk, gg
byby jj gg ii
输出:
you love i
gg kk, jj
ii gg jj byby
这题其实也不难的,可是我考试的时候没有做出来,回来我又重新写了一遍,发现当时有个字符串拼接的时候顺序反了。唉。。。。。这也反映出了我自身编程水平不足,不能适应不用编译器的情况,以后我要少用编译器,尽量用记事本之类的不带提示的来写。

下面我来说下,我做这道题的思路:
(1)根据输入的n值,完成input()部分。并将输入的字符串存入字典中。
(2)将存储的字符串用count(’ ‘)函数算出依据空格拆分的字符串的块数,将分隔好的字符串装入列表中,将这个列表再回填到字典中去。
(3)对于每一个列表进行列表内字符串的头尾调换的操作。将调换好的列表重新回填到字典中
(4)进行打印操作(考试的时候问题就出现在这一步,难过,明明懂得。)

下面贴出我写的代码:

#!/user/bin/env python
# -*- coding: utf-8 -*-
n=int(input().strip())
i=1
tem_info={}
while i<=n: #ten_info字典中存储着输入的字符串
    tem_info[i]=input()
    i+=1

# print(tem_info)
g=1
while g<=n:#将字符串中的每一个单词拆分,组装成列表
    g_list = []
    g_str=tem_info[g]
    g_count=g_str.count(' ')
    # print(g_count)
    t=0
    while t<=g_count:
        g_list.append(g_str.split()[t])
        t+=1
    tem_info[g]=g_list
    g+=1

k=1
while k<=n:#按要求变成想要的列表
    k_list=tem_info[k]

    c=0
    while c<len(k_list)//2:#对调顺序
        tem=k_list[c]
        k_list[c]=k_list[len(k_list)-1-c]
        k_list[len(k_list) - 1 - c]=tem
        c+=1

    tem_info[k]=k_list
    k+=1

# print(tem_info)
a=1
while a<=n:#按要求打印
    a_list=tem_info[a]#取出正确的列表

    b=0
    fin_str=''
    while b<len(a_list):
        b_str=a_list[b]
        #print(b_str)
        if b==len(a_list)-1:
            fin_str=fin_str+b_str
            break

        fin_str=fin_str+b_str+' ' 
'''考试的时候我写成b_str+fin_str了,字符串的‘+’操作是有顺序的'''
        b+=1
    print(fin_str)
    a+=1

你可能感兴趣的:(面试题,python)