精华内容
下载资源
问答
  • 简单编程题

    2017-07-27 10:56:48
    对于简单编程题的解答
  • python编程简单笔试

    2019-03-06 15:06:59
    python编程简单笔试,附答案,适合初学者学习使用。
  • 一些简单编程题

    2018-09-24 21:58:54
    此文档主要是一些基础入门的编程题,对于新手练手比较适合
  • 简单编程题 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素...
  • PLCS7-300一些简单编程题.doc
  • 梳理一些简单编程题(一)

    千次阅读 2018-08-12 20:32:09
    1. 找出元素item在给定数组arr中的位置 function indexOf(arr,item) { if(Array.prototype.indexOf){ return arr.indexOf(item) }else{ for(var i = 0 ; i&lt...

    1. 找出元素item在给定数组arr中的位置

            function indexOf(arr,item) {
                if(Array.prototype.indexOf){
                    return arr.indexOf(item)
                }else{
                    for(var i = 0 ; i< arr.length ;i++){
                        if(arr[i]==item){
                            return i
                        }
                    }
                }
                return -1;
            }

    indexOf()方法可以返回某个指定的字符串值在字符串中首次出现的位置

    2.计算给定数组arr中所有元素的和 

            function sum(arr) {
                var sum = 0;
                for(var i = 0 ; i < arr.length;i++){
                    sum += arr[i]
                }
                return sum 
            }
            function sum(arr){
                if(arr.length == []){
                    return 0;
                }else if(arr.length == 1){
                    return arr[0];
                }else{
                    return arr[0] + sum(arr.slice(1));
                }
            }
            function sum(arr){
                return eval(arr.join('+'))
            }
             //这里先将所有数组项通过字符串"+"连为一个字符串"1+2+3+4+5+6...",
              //然后返回的这个字符串传给eval()方法,eval()方法接收了这段字符串后,就直接将这段字符串中的代码放在当前作用域下执行了。

    3.移除数组arr中的所有值与item相等的元素,直接在给定的arr数组上进行操作,并将结果返回

             function qc(arr,item){
                 for(var i = 0;i<arr.length;i++){
                     if(item == arr[i] ){
                         arr.splice(i,1);
                         i--
                     }
                 }
                 return arr;
             }
             function qc(arr,item){
                 for(var i = 0;i < arr.length;i++){
                     if(arr[0]!==item){
                         arr.push(arr[0]);
                     }
                     arr.shift()
                 }
                 return arr;
             }

    push()和shift()的方法参照前面的博客:https://blog.csdn.net/weixin_41910848/article/details/81507334

    4.移除数组arr中的所有值与item相等的元素,不要直接在给定的arr数组上进行操作,并将结果返回

             function remove(arr,item){
                //  声明一个新数组保存结果
                 var result = [];
                //  循环遍历
                 for(var i = 0 ;i < arr.length ;i++){
                    //  如果arr[i]不等于item,就加入数组
                     if(arr[i] != item){
                         result.push(arr[i]);
                     }
                 }
                 return result;
             }
             function remove(arr,item) {
                 return arr.filter(function(ele){
                     return ele!=item;
                 })
             }

    5.在数组arr末尾添加元素item,不要直接修改数组arr,结果返回新的数组

            function add(arr,item) {
                var newArr = [];
                for(var i = 0 ; i < arr.length;i++){
                    newArr.push(arr[i]);
                }
                newArr.push(item);
                return newArr;
            }

     

            function add(arr,item){
                var newArr = arr.slice(0);
                newArr.push(item);
                return newArr;
            }
            function add(arr,item){
                return arr.concat(item)
            }

    6.删除数组arr最后一个元素,不要直接修改数组arr,结果返回新的数组

            function del(arr){
                var newArr = [];
                for(var i = 0 ; i < arr.length;i++){
                    newArr.push(arr[i]);
                }
                newArr.pop();
                return newArr;
            }
            function del(arr){
            return arr.slice(0,-1);
            }
            function del(arr){
                var newArr = [];
                for(var i = 0 ; i < arr.length-1;i++){
                    newArr.push(arr[i]);
                }
                return newArr;
            }
            function del(arr){
                return arr.filter(function(v,i,ar){
                    return i!==ar.length-1
                })
            }

    6.在数组arr开头添加元素item,不要直接修改数组arr,结果返回新的数组

            // concat + reverse
            function addfirst(arr,item) {
                var newArr = arr.concat(item);
                return  newArr.reverse();
            }

     

            //普通的迭代拷贝
            function addfirst(arr,item){
                var result = [];
                for(var i = 0;i< arr.length;i++){
                    result.push(arr[i])
                }
               result.unshift(item);
               return result;
            }
            //利用concat    
            function addfirst(arr,item){
                return [item].concat(arr);
            }
    
    
            console.log(addfirst([1,1,2,3,4,4],8));
    

     

    展开全文
  • 朋友们大都是感慨行业浮躁、人傻钱多,也有朋友问到,什么样的编程题能考察程序员的基本功呢?本文就奉上 10个笔者常用来考察面试者的编程题。由于我们不是大公司,也不是搞算法研究,所以一般不会特意出一些算法题...

    昨天在朋友圈感慨了一下被面试的小朋友,会拉控件,会做应用,但是基本功差,还要价高,结果引来了 60多条评论。朋友们大都是感慨行业浮躁、人傻钱多,也有朋友问到,什么样的编程题能考察程序员的基本功呢?本文就奉上 10个笔者常用来考察面试者的编程题。

    由于我们不是大公司,也不是搞算法研究,所以一般不会特意出一些算法题来为难面试者,但是由于要从事编程开发工作,基本的编程素养绝对是要的,否则这样的面试者不会有太大的成长空间,面对比较棘手的工作也解决不好。

    一、给一个数 N,判定这个数是否是素数。

    1、先让面试者说素数的定义,如果不知道可以提示素数的定义

    2、最差的面试者,会没有思路,这是很可怕的,大学第一学期学完,应该学会这个题

    3、一般的面试者,能比较费劲地写出正确的程序,但是可能存在边界、标记等问题。

    4、写出程序出来,可以进一步问,优化的空间,在哪里,所谓优化,无非就是时间和空间复杂度。

    5、只有少数的面试者,能进行几轮优化

    6、有训练的面试者可能知道一些特定的高效方法

    二、给一个数 N,把 2 到 N 之间的素数输出出来

    1、这个题比上面这个难度加大了一层

    2、可以限定,不让其使用子函数,增加逻辑上的复杂度

    3、其他的,同样一层层考优化的方法

    三、写出三角状的 9*9 乘法表

    1、这个题目面向基础比较差的面试者

    2、最差的面试者,也会说没有思路,在学校会写,现在忘记了

    3、比较一般的能写出来,更进行一步的,可以让其用几种循环来写,写倒三角

    4、如果都没有问题,循环思维逻辑值得肯定

    四、用递归编写求和或者求阶乘的函数

    1、可以先让其不用递归写一遍

    2、再让其递归实现

    3、最差的面试者同样无法下手

    4、接下来可以探讨递归的一些优劣之处,在哪些常见算法中用到了递归

    5、也可以问问1024的阶乘有多少个零这种的问题。

    五、将字符串反转,比如 “abcdefg” 转化为 “gfedcba”

    1、如果面试者使用 C 语言效果最佳

    2、可以进一步考察这种形式的反转算法, www.ucai.cn => cn.ucai.www

    六、求出 IPV4 IP地址所对应的整数,比如 192.168.199.1 对应整数

    3194598946

    1、可以先让其求字符串所对应的整数这个简单算法

    2、如果面试者使用 C 语言效果最佳

    七、使用最高效的算法,将一堆100以内的数排序,不能使用排序的库函数

    1、不允许使用现成的各种排序算法

    2、要求一遍遍历完成即实现排序

    3、也可以问:如何对n个数进行排序,要求时间复杂度O(n),空间复杂度O(1)

    八、有上千万个1000万以内的数据,请排除掉重复的数

    1、可以转化为找出重复的数

    2、要求空间最省

    3、要求一次遍历完成整个查找

    4、延伸:如果用 Shell 命令实现怎么办?

    九、如果从1000万行左右的文件中,随机地取出 10万行左右的样本数据

    1、要求一遍文件扫描完成数据获取

    2、空间最省,将结果输出在另外一个文件中

    3、可以要求写出完整程序,包括 fopen 的使用等

    十、字符串库函数的相关实现思路

    1、检测一个字符串是否包含在另一个字符串中

    2、实现 trim 函数、strlen 函数

    3、复杂一些的:求出给定字符串中最长的回文字符的长度以及把它们给输出来。

    以上 10个编程题,随便选出一个或者几个题,请面试者来现场编写程序,然后在点评程序的过程中,步步延展,可以相对准确地看出这个人的基本编程素养,建议所有的程序员面试,都应该有这个环节,否则的话,你招来的可能是一个花架子。而面试者也可以使用这些题目评估一下自己的能力,是否在面对的时候,真正做到胸有成竹。如果你无从下手,这就意味着你该通过一些手段来加强训练了。优才网一直强调的是,正像技术支撑起一个产品的高度的,你的基本功,也支撑起你职业的高度

    展开全文
  • 100+Python编程题给你练(附答案)

    万次阅读 多人点赞 2019-03-31 16:28:08
    大家如果能坚持独立思考完成以下题目,一定可以帮大家轻松 get Python 的编程技能。目前,这个项目已经获得了 3994 Stars,2952 Forks。 Github 地址:Python-programming-exercises 首先,这 100+ 练习根据难易...

     

    大家如果能坚持独立思考完成以下题目,一定可以帮大家轻松 get Python 的编程技能。目前,这个项目已经获得了 3994 Stars,2952 Forks。

    Github 地址:Python-programming-exercises

    首先,这 100+ 练习题根据难易程度分为三个等级:Level 1、2 和 3。下面对如何定义这三个 Level 进行了说明,大家可以结合自身的学习能力和实践经验进行选择。

    其次,本编程题是基于Python3,每题都有问题描述、提示和解决方案。大家一定要先独立完成,然后再看参考答案哈~

    前 25 题中,Q1~5、22~25 都是 Level 1 的难度,Q6~17 为 Level 2,Q18~22 为 Level 3。大家正好利用这五道题学习、巩固一下基础,然后就开始准备挑战自己吧!

    1.    等级描述
    Level 1:初级。是指刚刚通过Python入门课程的人。他可以用1或2个Python类或函数来解决一些问题。通常,答案可以直接在教科书中找到。
    Level 2:中级。是指刚刚学习了Python,但是已经有了较强的编程背景的人。他应该能够解决可能涉及3或3个Python类或函数的问题。答案不能直接在课本上找到。
    Level 3:高级。。他应该使用Python来解决更复杂的问题,使用更丰富的库函数、数据结构和算法。他应该使用几个Python标准包和高级技术来解决这个问题。
    2.    问题的模板
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
    问题
    提示
    解决方案
    3.问题

    前 25 题中,Q1~5、22~25 都是 Level 1 的难度,Q6~17 为 Level 2,Q18~22 为 Level 3。

    100+Python编程题

    题1
    1级
    问题:编写一个程序,它将找到所有这些数字,可被7整除,但不是5的倍数,2000年至3200年(包括在内)。得到的数字应按逗号分隔的顺序打印在一行上。
    提示:考虑使用range(#begin, #end)方法

    解决方案:

    l=[]
    for i in range(2000, 3201):
        if (i%7==0) and (i%5!=0):
            l.append(str(i))
    
    print (','.join(l))

    题2
    1级
    问题:编写一个可以计算给定数的阶乘的程序。结果应该以逗号分隔的顺序打印在一行上。假设向程序提供以下输入:8
    则输出为:40320
    提示:在为问题提供输入数据的情况下,应该假设它是控制台输入。
    解决方案:

    def fact(x):
        if x == 0:
            return 1
        return x * fact(x - 1)
    print('请输入一个数字:')
    x=int(input())
    print (fact(x))

    题3
    1级
    问题:使用给定的整数n,编写一个程序生成一个包含(i, i*i)的字典,该字典包含1到n之间的整数(两者都包含)。然后程序应该打印字典。
    假设向程序提供以下输入:8
    则输出为:
    {1:1,2:4,3:9,4:16,5:25,6:36,,7:49,8:64}
    提示:在为问题提供输入数据的情况下,应该假设它是控制台输入。考虑使用dict类型()
    解决方案:

    print('请输入一个数字:')
    n=int(input())
    d=dict()
    for i in range(1,n+1):
        d[i]=i*i
    
    print(d)

    题4
    1级
    问题:编写一个程序,该程序接受控制台以逗号分隔的数字序列,并生成包含每个数字的列表和元组。假设向程序提供以下输入:
    34岁,67年,55岁,33岁,12日,98年
    则输出为:['34', '67', '55', '33', '12', '98']
                   ('34', '67', '55', '33', '12', '98')
    提示:在为问题提供输入数据的情况下,应该假设它是控制台输入。方法可以将列表转换为元组
    解决方案:

    import re
    print('请输入一组数字:')
    values=input()
    l=values.split(",")
    k=re.findall(r'[0-9]+',values)
    t=tuple(k)
    print (k)
    print (t)

    题5
    1级
    问题:定义一个至少有两个方法的类:        getString:从控制台输入获取字符串        printString::打印大写母的字符串。
    还请包含简单的测试函数来测试类方法。
    提示:使用_init__方法构造一些参数
    解决方案:

    class InputOutString(object):
        def __init__(self):
            self.s = ""
    
        def getString(self):
            print('请输入字符串:')
            self.s = input()
    
        def printString(self):
            print (self.s.upper())
    
    strObj = InputOutString()
    strObj.getString()
    strObj.printString()

    题6
    2级
    问题:
    编写一个程序,根据给定的公式计算并打印值:Q=\sqrt{[(2*C*D)/H]}。以下是C和H的固定值:C是50。H是30。D是一个变量,它的值应该以逗号分隔的序列输入到程序中。
    例子假设程序的输入序列是逗号分隔的:100,150,180,
    程序输出为:18,22,24
    提示:如果接收到的输出是小数,则应四舍五入到其最近的值(例如,如果接收到的输出是26.0,则应打印为26)。在为问题提供输入数据的情况下,应该假设它是控制台输入。
    解决方案:

    #!/usr/bin/env python
    import math
    c=50
    h=30
    value = []
    print('请输入一组数字:')
    items=[x for x in input().split(',')]
    for d in items:
        value.append(str(int(round(math.sqrt(2*c*float(d)/h)))))
    
    print (','.join(value))

    题7
    2级
    问题:编写一个程序,以2位数字,X,Y作为输入,生成一个二维数组。数组的第i行和第j列中的元素值应该是i*j。
    注意:i= 0,1 . .,X - 1;    j = 0, 1,­Y-1。
    例子假设程序有以下输入:3、5
    则程序输出为:[[0,0,0,0,0],[0,1,2,3,4],[0,2,4,6,8]]
    提示:注意:如果要为问题提供输入数据,应该假设它是一个控制台输入,以逗号分隔。
    解决方案:

    print('请输入两个数字:')
    input_str = input()
    dimensions=[int(x) for x in input_str.split(',')]
    rowNum=dimensions[0]
    colNum=dimensions[1]
    multilist = [[0 for col in range(colNum)] for row in range(rowNum)]
    
    for row in range(rowNum):
        for col in range(colNum):
            multilist[row][col]= row*col
    
    print (multilist)

    题8
    2级
    问题:编写一个程序,接受逗号分隔的单词序列作为输入,按字母顺序排序后按逗号分隔的序列打印单词。假设向程序提供以下输入:
    without,hello,bag,world
    则输出为:
    bag,hello,without,world
    提示:在为问题提供输入数据的情况下,应该假设它是控制台输入。
    解决方案:

    items=[x for x in input().split(',')]
    items.sort()
    print (','.join(items))
    

    题9
    2级
    问题:编写一个程序,接受一行序列作为输入,并在将句子中的所有字符大写后打印行。
    假设向程序提供以下输入:
    Hello world
    Practice makes perfect
    则输出为:
    HELLO WORLD
    PRACTICE MAKES PERFECT
    提示:在为问题提供输入数据的情况下,应该假设它是控制台输入。
    解决方案:

    lines = []
    while True:
        s = input()
        if s:
            lines.append(s.upper())
        else:
            break;
    
    for sentence in lines:
        print(sentence)

    题10
    2级
    问题:编写一个程序,接受一系列空格分隔的单词作为输入,并在删除所有重复的单词并按字母数字排序后打印这些单词。
    假设向程序提供以下输入:
    hello world and practice makes perfect and hello world again
    则输出为:
    again and hello makes perfect practice world
    提示:在为问题提供输入数据的情况下,应该假设它是控制台输入。
    我们使用set容器自动删除重复的数据,然后使用sort()对数据进行排序。
    解决方案:

    print('请输入一组字符串:')
    s = input()
    words = [word for word in s.split(" ")]
    print (" ".join(sorted(list(set(words)))))

    题11
    2级

    问题:编写一个程序,接受一系列逗号分隔的4位二进制数作为输入,然后检查它们是否可被5整除。 可被5整除的数字将以逗号分隔的顺序打印。
    例:
    0100,0011,1010,1001
    那么输出应该是:
    1010
    注意:假设数据由控制台输入。

    提示:如果输入数据被提供给问题,则应该假定它是控制台输入。

    解:

    value = []
    print('请输入逗号分隔的4位二进制数:')
    items=[x for x in input().split(',')]
    for p in items:
        intp = int(p, 2)
        # print(intp)
        if not intp%5:
            value.append(p)
    
    print (','.join(value))

    题12
    2级

    题:编写一个程序,它将找到1000到3000之间的所有这些数字(均包括在内),这样数字的每个数字都是偶数。
    获得的数字应以逗号分隔的顺序打印在一行上。

    提示:如果输入数据被提供给问题,则应该假定它是控制台输入。
    解:

    values = []
    for i in range(1000, 3001):
        s = str(i)
        if (int(s[0])%2==0) and (int(s[1])%2==0) and (int(s[2])%2==0) and (int(s[3])%2==0):
            values.append(s)
    print (",".join(values))

    题13
    2级

    题:编写一个接受句子并计算字母和数字的程序。假设为程序提供了以下输入:
    Hello world! 123
    然后,输出应该是:
    字母10
    数字3

    提示:如果输入数据被提供给问题,则应该假定它是控制台输入。

    解:

    print('请输入:')
    s = input()
    d={"DIGITS":0, "LETTERS":0}
    for c in s:
        if c.isdigit():
            d["DIGITS"]+=1
        elif c.isalpha():
            d["LETTERS"]+=1
        else:
            pass
    print ("LETTERS", d["LETTERS"])
    print ("DIGITS", d["DIGITS"])

    题14
    2级

    题:编写一个接受句子的程序,并计算大写字母和小写字母的数量。
    假设为程序提供了以下输入:
    Hello world!
    然后,输出应该是:
    大写实例 1
    小写实例 9

    提示:如果输入数据被提供给问题,则应该假定它是控制台输入。

    解:

    print('请输入:')
    s = input()
    d={"UPPER CASE":0, "LOWER CASE":0}
    for c in s:
        if c.isupper():
            d["UPPER CASE"]+=1
        elif c.islower():
            d["LOWER CASE"]+=1
        else:
            pass
    print ("UPPER CASE", d["UPPER CASE"])
    print ("LOWER CASE", d["LOWER CASE"])

    题15
    2级

    题:编写一个程序,计算a + aa + aaa + aaaa的值,给定的数字作为a的值。假设为程序提供了以下输入:
    9     然后,输出应该是: 11106

    提示:如果输入数据被提供给问题,则应该假定它是控制台输入。

    解:

    print('请输入一个数字:')
    a = input()
    n1 = int( "%s" % a )
    n2 = int( "%s%s" % (a,a) )
    n3 = int( "%s%s%s" % (a,a,a) )
    n4 = int( "%s%s%s%s" % (a,a,a,a) )
    print (n1+n2+n3+n4)

    题16
    2级

    题:使用列表推导来对列表中的每个奇数。 该列表由一系列逗号分隔的数字输入。
    假设为程序提供了以下输入:
    1,2,3,4,5,6,7,8,9
    然后,输出应该是:
    1,3,5,7,9

    解:

    print("输入:")
    values = input()
    numbers = [x for x in values.split(",") if int(x)%2!=0]
    print (",".join(numbers))

    题17
    2级

    题:编写一个程序,根据控制台输入的事务日志计算银行帐户的净金额。 事务日志格式如下所示:
    D 100
    W 200

    D表示存款,而W表示提款。
    假设为程序提供了以下输入:
    D 300
    D 300
    W 200
    D 100
    然后,输出应该是:
    500

    提示:如果输入数据被提供给问题,则应该假定它是控制台输入。

    解:

    netAmount = 0
    while True:
        print("请输入:")
        s = input()
        if not s:
            break
        values = s.split(" ")
        operation = values[0]
        amount = int(values[1])
        if operation=="D":
            netAmount+=amount
        elif operation=="W":
            netAmount-=amount
        else:
            pass
    print (netAmount)

    题18
    3级

    题:网站要求用户输入用户名和密码进行注册。编写程序以检查用户输入的密码的有效性。
    以下是检查密码的标准:
    1. [a-z]之间至少有1个字母
    2. [0-9]之间至少有1个数字
    1. [A-Z]之间至少有一个字母
    3. [$#@]中至少有1个字符
    4.最短交易密码长度:6
    5.交易密码的最大长度:12
    您的程序应接受一系列逗号分隔的密码,并将根据上述标准进行检查。将打印符合条件的密码,每个密码用逗号分隔。
    例:如果以下密码作为程序的输入:

    ABd1234@1,a F1#,2w3E*,2We3345
    然后,程序的输出应该是:

    ABd1234 @ 1

    提示:如果输入数据被提供给问题,则应该假定它是控制台输入。

    解:

    import re
    value = []
    print("请输入:")
    items=[x for x in input().split(',')]
    for p in items:
        if len(p)<6 or len(p)>12:
            continue
        else:
            pass
        if not re.search("[a-z]",p):
            continue
        elif not re.search("[0-9]",p):
            continue
        elif not re.search("[A-Z]",p):
            continue
        elif not re.search("[$#@]",p):
            continue
        elif re.search("\s",p):
            continue
        else:
            pass
        value.append(p)
    print (",".join(value))

    题19
    3级

    题:您需要编写一个程序,按升序对(名称,年龄,高度)元组进行排序,其中name是字符串,age和height是数字。 元组由控制台输入。 排序标准是:
    1:根据名称排序;
    2:然后根据年龄排序;
    3:然后按分数排序。
    优先级是name> age>得分。
    如果给出以下元组作为程序的输入:
    Tom,19,80
    John,20,90
    Jony,17,91
    Jony,17,93
    Json,21,85
    然后,程序的输出应该是:
    [('John','20','90'),('Jony','17','91'),('Jony','17','93'),('Json','21 ','85'),('Tom','19','80')]

    提示:如果输入数据被提供给问题,则应该假定它是控制台输入。我们使用itemgetter来启用多个排序键。

    解:

    from operator import itemgetter, attrgetter
    
    l = []
    print("请输入:")
    while True:
    
        s = input()
        if not s:
            break
        l.append(tuple(s.split(",")))
    
    print (sorted(l, key=itemgetter(0,1,2)))

    题20
    3级

    题:使用生成器定义一个类,该生成器可以在给定范围0和n之间迭代可被7整除的数字。

    提示:考虑使用yield。

    解:

    def putNumbers(n):
        i = 0
        while i<n:
            j=i
            i=i+1
            if j%7==0:
                yield j
    
    for i in putNumbers(100):
        print (i)

    题21
    3级
    机器人从原点(0,0)开始在平面中移动。 机器人可以通过给定的步骤向上,向下,向左和向右移动。 机器人运动的痕迹如下所示:
    UP 5
    DOWN 3
    LETF 3
    RIGHT 2
    方向之后的数字是步骤。 请编写一个程序来计算一系列运动和原点之后距当前位置的距离。如果距离是浮点数,则只打印最接近的整数。
    例:如果给出以下元组作为程序的输入:
    UP 5
    DOWN 3
    LETF 3
    RIGHT 2
    然后,程序的输出应该是:2
    提示:如果输入数据被提供给问题,则应该假定它是控制台输入。

    import math
    pos = [0,0]
    print("请输入:")
    while True:
        s = input()
        if not s:
            break
        movement = s.split(" ")
        direction = movement[0]
        steps = int(movement[1])
        if direction=="UP":
            pos[0]+=steps
        elif direction=="DOWN":
            pos[0]-=steps
        elif direction=="LEFT":
            pos[1]-=steps
        elif direction=="RIGHT":
            pos[1]+=steps
        else:
            pass
    
    print (int(round(math.sqrt(pos[1]**2+pos[0]**2))))

    题22
    3级

    题:编写一个程序来计算输入中单词的频率。 按字母顺序对键进行排序后输出。
    假设为程序提供了以下输入:

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

    然后,输出应该是:

    2:2
    3.:1
    3?:1
    New:1
    Python:5
    Read:1
    and:1
    between:1
    choosing:1
    or:2
    to:1

    提示:如果输入数据被提供给问题,则应该假定它是控制台输入。

    freq = {}   # frequency of words in text
    print("请输入:")
    line = input()
    for word in line.split():
        freq[word] = freq.get(word,0)+1
    words = sorted(freq.keys())  #按key值对字典排序
    
    for w in words:
        print ("%s:%d" % (w,freq[w]))

    题23
    1级

    题:写一个可以计算数字平方值的方法

    提示: 使用**运算符

    def square(num):
        return num ** 2
    
    print (square(2))
    print (square(3))

    题24
    1级

    题:Python有许多内置函数,如果您不知道如何使用它,您可以在线阅读文档或查找一些书籍。 但是Python为每个内置函数都有一个内置的文档函数。
         请编写一个程序来打印一些Python内置函数文档,例如abs(),int(),raw_input()
         并为您自己的功能添加文档
        
    提示:内置文档方法是__doc__

    print(abs.__doc__)
    print(int.__doc__)
    print(input.__doc__)
    
    def square(num):
        '''Return the square value of the input number.
    
        The input number must be integer.
        '''
        return num ** 2
    
    print(square(2))
    print(square.__doc__)

    题25
    1级

    题:定义一个类,它具有类参数并具有相同的实例参数。

    提示:定义一个实例参数,需要在__init__方法中添加它。您可以使用构造参数初始化对象,也可以稍后设置该值

    class Person:
        # Define the class parameter "name"
        name = "Person"
    
        def __init__(self, name=None):
            # self.name is the instance parameter
            self.name = name
    
    jeffrey = Person("Jeffrey")
    print("%s name is %s" % (Person.name, jeffrey.name))
    
    nico = Person()
    nico.name = "Nico"
    print("%s name is %s" % (Person.name, nico.name))

     

    Python入门、提高学习网站链接:https://github.com/jackfrued/Python-100-Days?utm_source=wechat_session&utm_medium=social&utm_oi=931473721877651456

    刷Leetcode网站力扣https://leetcode-cn.com/problemset/all/

    Python进阶https://docs.pythontab.com/interpy/

    菜鸟教程:https://www.runoob.com/python/python-100-examples.html

    未完待续……

    展开全文
  • C语言经典编程实例100+答案
  • C语言:循环函数部分的简单编程题

    千次阅读 2019-09-28 10:34:45
    循环函数部分的简单编程题 大概是刚开始学些,所以有的同学对编程题比较发憷,其实,这些题都比较简单,所以,我会直接给出题和解题代码(其中有一部分题是来源于网上的)。如果有拓展要求的话,我会直接给出最终...

    循环函数部分的简单编程题

    大概是刚开始学,所以有的同学对编程题比较发憷,其实,这些题都比较简单,所以,我会直接给出题和解题代码(其中有一部分题是来源于网上的)。如果有拓展要求的话,我会直接给出最终代码,可以在此基础上修改,然后得到基本题的代码。

    编程1:

    求组合数C(n,m)
    即:求从给定个数的n个元素中取出m个元素的方法数。

    要求:
    (1)利用循环
    (2)n,m的值要求从键盘输入
    (3)输出格式美观合理。

    拓展要求:
    (1)用函数实现给定一组n,m的值,求出组合数。
    (2)用函数实现,给定多组n,m的值(组数由自己决定,由键盘输入),求出组合数。

    再拓展:
    用函数实现,不输入参与运算的组数,而是从键盘输入字符,进行判断,来决定停止程序。
    注意:
    组合数计算公式:C(n,m)=P(n,m)/P(m,m) =n!/m!(n-m)!

    代码如下:

    #include<stdio.h>
    int factorial(int n) { //求阶乘
    	int result=1;
    	for(int i=1; i<=n; i++) {
    		result*=i;
    	}
    	return result;
    }
    int Combination(int n,int m) { //求组合数
    	int result= factorial(n)/(factorial(m)*factorial(n-m));
    	return result;
    }
    int main() {
    	int n,m,flag;
    	//n为下标,m为上标,下面相同
    	do{
    		printf("请输入组合数的n,m:\n");
    		scanf("%d%d",&n,&m);
    		printf("所求组合数为:%d\n",Combination(n,m));
    	printf("如果需要继续计算,请输入1:\n");
    	scanf("%d",&flag); 
    	}while(flag==1); 
    
    	return 0;
    }
    

    运行结果:
    在这里插入图片描述

    编程2:

    编程:设计一个模拟计算器,从键盘输入两个数(整数),再输入算术运算符,求其计算结果。
    要求:运算符包括:+、-、*、/(运算结果为浮点数——单精度和双精度均可)、%即可。

    注意:
    注意输出格式的美观和合理性。(尤其是负数参与运算的时候)

    要求:
    (1)输出格式为:数1 运算符 数2 = 值。
    (2)从键盘输入要参与运算的组数,然后分别进行计算,再输出结果。

    拓展:
    不输入参与运算的组数,而是从键盘输入某个特定字符,来决定停止程序。

    代码如下:

    #include<stdio.h>
    void Calculation();
    int main() {
    	Calculation();
    	return 0;
    }
    void Calculation() {
    	int val1,val2;
    	char ch;
    	int flag;
    	do {
    		printf("请输入您的算式:");
    		scanf("%d%c%d",&val1,&ch,&val2);
    		switch(ch) {
    			case '+':
    				printf("%d+%d=%d\n",val1,val2,val1+val2);
    				break;
    			case '-':
    				printf("%d-%d=%d\n",val1,val2,val1-val2);
    				break;
    			case '*':
    				printf("%d*%d=%d\n",val1,val2,val1*val2);
    				break;
    			case '/':
    				//强制类型转化
    				printf("%d/%d=%f\n",val1,val2,(float)val1/val2);
    				break;
    			case '%':
    				printf("%d%%%d=%d\n",val1,val2,val1%val2);
    				break;
    			default:
    				printf("您的输出超出了我的权限,请重新输入\n");
    		}
    		printf("您是否还要继续运算,如果是,请输入1,否则,程序退出!\n");
    		scanf("%d",&flag);
    		if(flag!=1) break;
    	} while(flag==1);
    }
    

    运行结果:在这里插入图片描述

    编程3:

    利用所学知识,按照要求输出下面的图形。

    在这里插入图片描述
    要求:利用函数实现。

    拓展:实现菱形的图形输出。

    代码如下:

    #include<stdio.h>
    int main() {
    	int rows;//菱形上三角行数
    	scanf("%d",&rows);
    	//上三角形
    	for (int i=0; i<rows; i++) {
    		for (int j=0; j<rows-i-1; j++) {
    			printf(" ");
    		}
    		for (int k=0; k<2*i+1; k++) {
    			printf("*");
    		}
    		printf("\n");
    	}
    	//下三角形
    	for (int i=0; i<rows-1; i++) {
    		for (int j=0; j<i+1; j++) {
    			printf(" ");
    		}
    		for (int k=0; k<2*(rows-i-1)-1; k++) {
    			printf("*");
    		}
    		printf("\n");
    	}
    	return 0;
    }
    

    运行结果:

    在这里插入图片描述

    编程4:

    将一个数组倒序输出。

    提示:循环可以帮助你更快的完成编程。

    拓展:用函数的形式实现。

    注意:数组的传参形式。

    附加题:选出数组中的最大值和最小值,并输出。
    代码如下:

    #include<stdio.h>
    #define N 5//宏定义 
    void array(int arr[],int n);
    int main() {
    	int arr[N];
    	printf("请输入数组元素:\n");
    	for(int i=0; i<N; i++) {
    		scanf("%d",&arr[i]);
    	}
    	array(arr,N);
    	return 0;
    }
    void array(int arr[],int n) {
    	printf("该数组倒序输出的结果是:\n");
    	for(int i=n-1; i>=0; i--) {
    		printf("%d\t",arr[i]);
    	}
    	int min=arr[0],max=arr[0];
    	for(int i=1; i<n; i++) {
    		if(min>arr[i])	min=arr[i];
    		if(max<arr[i])	max=arr[i];
    	}
    	printf("\n该数组的最大最小值如下:\nmax:%d\nmin:%d",max,min);
    }
    

    运行结果:
    在这里插入图片描述

    编程5:

    统计四位整数中十位数字出现的次数。

    例如-2125中,2出现了2次,则该函数应该返回2。

    拓展:
    使用函数实现

    简单题

    附加题(口述):
    (1)分析do-while 和 while的区别。
    (2)while循环和for循环的转化。

    代码如下:

    #include<stdio.h>
    void fun(int num);
    int main() {
    	int num;
    	printf("请输入四位数字:\n");
    	scanf("%d",&num);
    	if(num<0)	num=-num;
    	while(num>9999||num<1000) {
    		printf("请重新输入!\n");
    		scanf("%d",&num);
    	}
    	fun(num);
    	return 0;
    }
    void fun(int num) {
    	int q=num/1000;
    	int b=(num%1000)/100;
    	int s=(num%100)/10;
    	int g=num%10;
    	int count;
    	int arr[4]= {q,b,s,g};
    	for(int i=0; i<4; i++) {
    		if(arr[i]==arr[2])	count++;
    	}
    	printf("十位数字%d出现的次数为:%d",s,count);
    }
    

    运行结果:
    在这里插入图片描述

    编程6:

    一个整数(2000以内),它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
    (如果一个数的平方根的平方等于该数,这说明此数是完全平方数)

    稍微升级:去掉2000以内的限制,求出所有的完全平方数。

    提示:

    完全平方数没有负数。

    如果觉得开始没有思路,先手写解出答案。

    有关完全平方数的概念可以参考:
    https://baike.so.com/doc/4857531-5074910.html

    代码如下:

    #include<stdio.h>
    //完全平方数没有负数
    //完全平方数相关概念:https://baike.so.com/doc/4857531-5074910.html 
    int main() {
    	int a,b;
    	printf("所求完全平方数为:");
    	for(a=0; a<168; a++) {
    		for(b=0; b<168; b++) {
    			if((b*b-a*a)==168) {
    				if((a*a-100)>=0){
    				printf("%d",a*a-100);
    				printf("\t");
    				} 
    			}
    		}
    	}
    	return 0;
    }
    

    运行结果如下:
    在这里插入图片描述

    总结

    这只是我这边的几道题,希望同学们可以看看,不管是自己面试时候做了的,还是没做的,都试着完成,这样相当于巩固了自己的知识。

    (其实,完全平方数的题我之前的做法有问题,没有考虑到负数情况,经过同学提醒,才发现的,失误失误)

    展开全文
  • 朋友们大都是感慨行业浮躁、人傻钱多,也有朋友问到,什么样的编程题能考察程序员的基本功呢?本文就奉上 10个笔者常用来考察面试者的编程题。由于我们不是大公司,也不是搞算法研究,所以一般不会特意出一些算法题...
  • C语言编程题,部分简单编程题类型。 经典小程序集合。
  • Cpp的简单编程题

    千次阅读 2018-11-08 10:24:42
    这一暴力破解的话,时间复杂度就是O(m*n),很明显这样不是考查者出这个题目的目的。 那么如何解决这个匹配的问题呢???——KMP字符串匹配算法,该算法的时间复杂度可以降到线性的O(m+n) 该算法的具体...
  • 力扣面试常考简单编程题------手撕
  • C语言十大简单编程复习

    千次阅读 多人点赞 2018-07-03 13:11:26
    第一:输入一行字符,分别统计出其中英文字母、空格、数字、其它字符的个数!利用while语句。 #include "stdio.h" main() {  char c;  int letters=0,space=0,digit=0,others=0;  ...
  • JAVA小白编程题练习 可能有很多刚入门的小白不知道自己如何能快速提升编程技巧与熟练度 其实大佬进阶之路只有一个~ 那就是疯狂码代码!!!实践出真知!!! 所以为了大家能够想练习的时候有素材,泡泡给大家整理了一些练习...
  • 100道Python编程题

    千次阅读 热门讨论 2018-03-18 16:21:09
    python编程题;给定一个最大值n(10>n>=0),求0-n之间的整数可以组成多少个奇数;海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只猴子把多的一个吃掉,拿走了一份,第二、三、...
  • Java简单编程题训练一

    千次阅读 2018-05-10 15:59:24
    字符串反转 import java.util.*; public class Main{ public static void main(String[] args){ Scanner in =new Scanner(System.in); while(in.hasNext()){ String line=in.n...
  • 面向对象编程题汇总

    万次阅读 多人点赞 2018-06-06 21:08:21
    在授课面向对象这一章节的时候,发现找一些比较贴近的编程题还是比较难的,从网上整理了一下,希望对需要的朋友有帮助。很多是从网上找的,如果侵犯版权请联系我! 一、类和对象 1.定义一个类Demo,其中定义一个求...
  • linux的简单shell编程习题

    千次阅读 2019-12-18 23:30:18
    linux的简单shell编程习题 1、编写脚本:输入hello输出hello,输入world,输出world 2、编写一个脚本,请问现在是上午么?如果输入:y/yes;则输出上午好;如果输入n/no,则输出下午好;否则输出,你输入有误。 ...
  • PAT-爬动的蠕虫(简单编程题

    万次阅读 2015-12-24 10:16:32
    一条蠕虫长1寸,在一口深为N寸的井的底部。已知蠕虫每1分钟可以向上爬U寸,但必须休息1分钟才能接着往上爬。在休息的过程中,蠕虫又下滑了D寸。就这样,上爬和下滑重复进行。请问,蠕虫需要多长时间才能爬出井?...
  • PAT-计算工资(简单编程题

    万次阅读 2015-12-24 10:03:09
    某公司员工的工资计算方法如下:一周内工作时间不超过40小时,按正常工作时间计酬;超出40小时的工作时间部分,按正常工作时间报酬的1.5倍计酬。员工按进公司时间分为新职工和老职工,进公司不少于5年的员工为老职工...
  • 广告关闭腾讯云双11爆品提前享,精选热门...上期题目链接:1000道python题库系列分享十二(9道编程题)上期题目答案:? 本期题目:?...热烈庆祝2018年2月董付国老师《python程序设计(第2版)》出版18个月第5次印刷...
  • python123.io简单编程题合集

    万次阅读 多人点赞 2018-12-01 20:18:18
    有些代码觉得自己写得真是很丑陋啊 第K序元素查找 lt = eval(input("")) n = eval(input("")) lt = sorted(lt,reverse = True) print(lt[n-1]) 字符串反码A def func(text): ... ...
  • C语言趣味程序百例精解 c与c++语言经典、实用、趣味程序设计编程 C++经典程序
  • 精品文档 简单的 C 语言选择与循环结构 10 个编程练习 1以下程序的输出结果是_ # include <stdio.h> void main){ int k; for (k=2;k;k++,k++) printf%d,k; } 2以下程序的输出结果是_ # include <stdio.h> void ...
  • 机器学习面试编程题汇总

    千次阅读 2017-03-01 20:39:28
    阿里2017年3月在线编程题 package yuyin.chuli;import java.math.BigDecimal; import java.util.Scanner;public class Main { /** 请完成下面这个函数,实现题目要求的功能 **/ /** 当然,你也可以不按照这个模板...
  • js常见编程题整理(持续更新中)

    千次阅读 2017-08-25 22:29:37
    编写一个函数isMerge,判断一个字符串str是否可以由其他两个字符串part1和part2“组合”而成。“组合 ”的规则如下: 1). str中的每个字母要么来自于part1,要么来自于part2; 2).... 例如: “codewars”由”cdw”...
  • 初学者必看的五十道程序算法,代码来自多本权威丛书
  • 适合初学者的C++基础程序。通过练习基础编程可以是初学者对C++的基本规则有一定深度的了解。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 232,338
精华内容 92,935
关键字:

简单编程题