运维高级-day01

shell回顾

1、快速生成版权控制信息,具体的内容自己替换

[root@ scripts]# cat ~/.vimrc
autocmd BufNewFile *.py,*.cc,*.sh,*.java exec ":call SetTitle()"
func SetTitle()
if expand("%:e") == 'sh'
call setline(1,"#!/bin/bash")
call setline(2,
"##############################################################")
call setline(3, "# File Name: ".expand("%"))
call setline(4, "# Version: V1.0")
call setline(5, "# Author: kongd")
call setline(6, "# Email: kongd@163.com")
call setline(7, "# Organization: http://www.cnblogs.com/kongd/")
call setline(8, "# Created Time : ".strftime("%F %T"))
call setline(9, "# Description:")
call setline(10,
"##############################################################")
call setline(11, "")
endif
endfunc

2、题型复习

案例一:输入网卡的名字,来输出网卡的IP

  1. 问题:参数后判断要加“”名字为空时显示ip

  2. 分析:把本机的所有网卡名列出来,来引导用户输入。使用命令列出所有网卡信息:ifconfig/ip a

    设计一个函数,把网卡名作为参数,函数返回网卡的IP

    在获取某个网卡IP时,考虑网卡有多个IP地址(或为空IP的网卡)

  3. 流程图:

  1. 实现:

  1. 实现解析:

    1. ) grep awk,反复运行和推敲命令,来分析执行结果

    2. ) 死循环。当输入错误或者为空,继续输入–>输入正确。

    3. ) while循环continue、break(逻辑性) 逻辑判断参数

    4. ) get_ip函数调用

  2. 结果验证

案例二:提示用户输入年份后判断该年是否为闰年

  1. 问题:判断闰年

  2. 分析

    1. 提示用户输入年份

    2. 判断用户输入年份

    3. 考虑用户输入年份是否为空(或是否为数字)

    4. 输入为数字时,进行计算

    5. 被四整除 但不能被 一百整除的是闰年,或者能被四百整除的是闰年

  3. 流程图:

  1. 实现:

  1. 实现解析:

    1. 用户输入为非数字时,提示输入不准确,退出

    2. 用户输入是数字时,判断是否是闰年

  2. 结果验证

案例三:求水仙花数

"水仙花数"是指一个三位数, 其各位数字立方和等于该数 本身。例如:153是一个"水仙花数", 因为153=1的三次方+5的三次方+3的三次方。

案例四:鸡兔同笼

一只笼子里有好多鸡和兔子,看头数有35只头,看腿有94只腿,问各有鸡和兔多少只?

案例五:一元钱

把一元钱换成一分,二分,五分硬币(每种至少用一枚),问有多少种换法?并且把每种换法输出

分析:

1、一分钱范围:x: 最小1,最大为100-2-5=93

2、二分钱范围:y: 最小1,最大(100-1-5)/2=47

3、五分钱范围z: 最新1,最大(100-1-2)/5=19

三层循环解决问题:

案例六:素数判断

判断 101-200 之间有多少个素数,并输出在此范围内的所有素数。

分析:素数(质数):只能被1和其本身整除的整数

判断素数的方法:用一个数分别去除以 2 到这个数的平方根(sqrt)。如果能被整除,则表明此数不是素数,反之是素数。

思路:本题目有两个所求的目标,一为 101-200 之内的素数个数,二为输出所有素数。

案例七:大小排序

题目输入三个整数 x、y、z,请把这三个数由小到大输出。

程序分析从三个数中分别比较某两个数,将大的数换到后面。

c语言函数交换数据

案例八:猴子吃桃

题目猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少个桃子?

程序分析采取逆向思维的方法,从后往前推断,列出通项公式。

思路通过题干我们可以得到基本信息是若有 n 个桃子,第一天则吃了 n/2 + 1 个桃子,即剩下 n/2 - 1 个桃子。若假设某一天剩下的桃子数为 x,前一天剩下的桃子数为 y,根据上面的关系我们可以得到:( x + 1 ) ∗ 2 = y

简单计算一下,我们已知最后一天剩 1 个,根据推算的公式可以得到倒数第二天剩下 4 个,同理根据递归算法即可求出第一天剩下多少个。在这里需要注意的是,猴子是到第十天想吃(还没吃)的时候发现只剩一个了,所以循环的次数要注意是 9 次。循环递归计算之后输出结果即可。若想查看每天的结果也可输出查看

c语言递归实现

案例九:打印菱形

题目打印出如下图案(菱形)

程序分析先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重 for循环,第一层控制行,第二层控制列。我们要决定每一层循环的次数:外层不必多说是 4 次(i = 4)内层空格部分,空格数是随着行数的增加而减少的,规律为行数 + 1,空格数 - 1,所以循环次数是从 0到 (4 - i)次。内层星号部分,星号数是随着行数的增加而增加的,规律为行数 + 1,星号数 + 2,所以循环次数是从 0到 (i * 2)次。下三行同理,注意循环的次数和初始值即可。


案例十:冒泡排序

题目任意输入 10 个数,并对这 10 个数进行从小到大的排序。

程序分析对于这种数字排序问题,我们一般用冒泡排序的方法来进行排序。

思路首先我们应该知道什么是冒泡排序,冒泡排序是依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。这里我们需要分别以每个数为基准和其他的数依次进行比较,所以要用双重 for 循环,外层控制被比较的数,内层循环控制轮换比较数。由于要从小到大排序,判断条件是第一层的数若大于第二层的数,则将两个数交换。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/218729.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

佳易王各行业收银管理系统软件,企业ERP管理软件,企业或个体定制开发软件以及软件教程资源下载总目录,持续更新,可关注收藏查阅

系统简介 1、佳易王软件功能实用、操作简单、软件绿色免安装,解压即可使用,软件已经内置数据库,不需再安装其他数据库文件。 2、佳易王软件,已经形成系列,上百款管理系统软件涵盖多个行业。 3、已为多个企业个体定制…

STM32-使用固件库新建工程

参考链接: 【入门篇】11-新建工程—固件库版本(初学者必须认认真真看)_哔哩哔哩_bilibili 使用的MCU是STM32F103ZET6 。 这篇参考的是野火的资料,可以在“野火大学堂”或者它的论坛上下载。(我通常是野火和正点原子的资料混着看的…

Android逆向实战 - MIUI调起三方应用系统拦截弹窗分析

近期,发现在部分Android手机调起其他应用时,会弹出一个系统弹窗拦截调起,需要用户二次确认。经过内部众测,发现绝大多数是小米手机,而且跟Android版本没有直接关系,猜测是MIUI某次升级引入的功能。这篇文章…

20231125硬盘电源线5线不能识别日立10T的硬盘的解决方法

20231125硬盘电源线5线不能识别日立10T的硬盘的解决方法 2023/11/25 23:00 缘起,在拼多多买了2片10TB的7200rpm的日立二手硬盘。 型号:日立 mar-2018 10T硬盘 接上电脑,硬盘感觉在转动了【正常上电了。】 但是X99主板,在WIN10下就…

在 Go 中使用 Protocol Buffers

各位准备好了吗!这一次,我们将深入探讨 Protocol Buffers(protobuf)及其在数据序列化中的超能力所在。 介绍 Protocol Buffers,也被称为 protobuf,是由谷歌开发的一种语言无关的二进制序列化格式。其主要…

【小沐学写作】原型设计工具汇总(Axure RP)

文章目录 1、简介2、Axure RP2.1 工具简介2.2 工具特点2.2.1 互动事件2.2.2 条件逻辑2.2.4 工作表格2.2.5 多状态容器2.2.6 数据驱动接口2.2.7 自适应视图2.2.8 流程图 2.3 工具安装2.3.1 安装2.3.2 运行 2.4 使用费用2.5 工具体验2.5.1 登陆框制作 3、其他3.1 Figma3.2 Adobe …

redis持久化:RDB和AOF

目录 RDB 持久化 1、修改配置文件:redis.conf 2、RDB模式自动触发保存快照 3、RDB模式手动触发保存快照 4、RDB的优缺点 AOF持久化 1、AOF持久化工作流程 2、修改配置文件开启AOF 3、AOF优缺点 4、AOF的重写机制原理 RDBAOF混合模式 redis持久化有两种方…

5.1每日一题(无穷级数敛散性的判断:莱布尼兹准则、p级数、绝对收敛、条件收敛、比较法/比较法的极限形式)

莱布尼兹准则&#xff1a;&#xff08;1&#xff09;单调递减&#xff1b;&#xff08;2&#xff09;极限 -> 0 绝对收敛&#xff1a;级数的绝对值收敛 条件收敛&#xff1a;级数的绝对值发散 p级数的次幂 <1 时发散 &#xff1b;>1时收敛

30系列显卡在ubuntu下不能满血运行的问题

之前发现在ubuntu下&#xff0c;我的3080只能跑115w最高&#xff0c;而这在win下是可以跑165w的。于是乎google了所有结果&#xff0c;无解… 现已经过去一年&#xff0c;显卡价格飞涨&#xff0c;无奈只能使用笔记本跑自己的代码了。结果发现nvidia推了Linux下的动态加速&…

java学习part11继承

1.类的继承 继承为了让类之间建立联系&#xff0c;同时复用代码。 子类和父类的同名函数构成重写&#xff0c;能覆盖&#xff0c;除非用super.xx()调。 同名属性不会覆盖&#xff0c;而是并存&#xff0c;用super.xx调。 2.子类初始化 子类会自动调用父类无参构造super() 3.重…

JDK源码系列:StringBuffer与StringBuilder对比

一、源码分析StringBuffer与StringBuilder的区别 1、StringBuffer是多线程安全的&#xff0c;StringBuilder是多线程不安全的 多线程安全指的是 多个线程同时对一个对象进行append 等操作&#xff0c;不会出现覆盖、丢失的情况。 看下StringBuffer是如何做到多线程安全的&#…

PyInstaller打包python程序为exe可执行文件

教程千千万&#xff0c;貌似我的window电脑就是打包不了&#xff0c;而且不同电脑的表现都不一致&#xff0c;很是奇怪。 文章目录 1 极简版1.1 生成文件spec详解1.2 是否变成一个exe主文件 2 虚拟环境打包3 其他打包需求3.1 加密打包3.2 Pyinstaller打包多个py文件为一个exe文…