小祁的笔记

编程题:

  1. 输入一个正整数,能够识别输出是几位数。
package cn.qhk;

import java.util.Scanner;
public class Code_1_1 {
    //1. 输入一个正整数,能够识别输出是几位数。
    public static void main(String[]args){
        Scanner sc=new Scanner(System.in);
        System.out.print("请输入一个整数:");
        long  num=sc.nextLong();
        int count=1;
        while(num>=10){
            count++;//如果满足条件就加1
            num/=10;
        }
        System.out.println("输入的数有" + count + "位");
    }
}
运行结果:
请输入一个整数:63546546546
输入的数有11位
进程已结束,退出代码0
  1. 输入n个学生成绩,求出最大值、最小值及平均分。
package cn.qhk;

import java.util.Arrays;
import java.util.Scanner;
public class Code2 {
    //求最大值
    public static double max(double[] y){
        double max=y[0];
        for(int i=1;i<y.length;i++){
            if (max<y[i]){
                max=y[i];
            }
        }
        return max;
    }
    //求最小值
    public static double min(double[] x){
        double min=x[0];
        for(int i=1;i<x.length;i++){
            if (min>x[i]){
                min=x[i];
            }
        }
        return min;
    }
    //求平均值
    public static double pj(double[] x){
        double pj;
        double sum=0;
        for(int i=0;i<x.length;i++){
              sum+=x[i];
        }
        return pj=sum/x.length;
    }
    //2. 输入n个学生成绩,求出最大值、最小值及平均分。
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.print("请输入成绩(用空格隔开):");
        String[] str=sc.nextLine().split(" ");//输入成绩⭐⭐⭐⭐⭐
        double[] d=new double[str.length];
        for (int i=0;i<d.length;i++){
            d[i]=Double.parseDouble(str[i]);
        }
        System.out.println(Arrays.toString(d));
        System.out.println("最大值"+max(d));
        System.out.println("最小值"+min(d));
        System.out.printf("平均值%.02f",pj(d));
    }
}
运行结果:
请输入成绩(用空格隔开):68 89 88 87 64 59
[68.0, 89.0, 88.0, 87.0, 64.0, 59.0]
最大值89.0
最小值59.0
平均值75.83
进程已结束,退出代码0
  1. 输入三个数,依次从小到大输出。
package cn.qhk;

import java.util.Scanner;

public class Code3 {
    //3. 输入三个数,依次从小到大输出。
    public static void ord(int a,int b,int  c){
        if (a>b&&b>c){
            System.out.println("排序后:"+c+" "+b+" "+a);
        }else if (a>b&&b<c&&a<c){
            System.out.println("排序后:"+b+" "+a+" "+c);
        }else if (a>b&&b<c&&a>c){
            System.out.println("排序后:"+b+" "+c+" "+a);
        }else if (b>a&&a>c){
            System.out.println("排序后:"+c+" "+a+" "+b);
        }else if (b>a&&a<c&&b>c){
            System.out.println("排序后:"+a+" "+c+" "+b);
        }else if (b>a&&a<c&&b<c){
            System.out.println("排序后:"+a+" "+b+" "+c);
        }else if (c>a&&a>b){
            System.out.println("排序后:"+b+" "+a+" "+c);
        }else if (c>a&&a<b&&c>b){
            System.out.println("排序后:"+a+" "+b+" "+c);
        }else if (c>a&&a<b&&c<b){
            System.out.println("排序后:"+a+" "+c+" "+b);
        }
    }
    public static void ord1(int a,int b,int  c){
        int d;
        if (a>b){
            d=b;
            b=a;
            a=d;//a=1 b=3 c=2
        }
        if(a>c){
            d=c;
            c=a;
            a=d;
        }
        if(b>c){
            d=c;
            c=b;
            b=d;
        }
        System.out.println("排序后:"+a+" "+b+" "+c);
    }
    public static void main(String[] args) {
        int x,y,z;
        Scanner sc =new Scanner(System.in);
        System.out.print("请输第一个数字:");
        x=sc.nextInt();
        System.out.print("请输第二个数字:");
        y=sc.nextInt();
        System.out.print("请输第三个数字:");
        z=sc.nextInt();
        ord(x,y,z);
        ord1(x,y,z);
    }
}
运行结果:
请输第一个数字:6
请输第二个数字:8
请输第三个数字:4
排序后:4 6 8
排序后:4 6 8

进程已结束,退出代码0
  1. 编写1+1/3+1/5+……+1/99的程序。
package cn.qhk;

public class Code4 {
    //4. 编写1+1/3+1/5+……+1/99的程序。
    public static void main(String[] args) {
        double sum=0;
        for (int i=1;i<100;i++){
         if (i%2!=0) {
                sum += 1.0 / i;//1.0⭐⭐⭐⭐⭐
            }
        }
        System.out.println("1+1/3+1/5+……+1/99="+sum);
    }
}
运行结果:
1+1/3+1/5+……+1/99=2.937774848474907
进程已结束,退出代码0
  1. 要求输入一整数n,然后打印出(1-n)内所有平方根为整数的数。
package cn.qhk;

import java.util.Scanner;
public class Code5 {
    //5. 要求输入一整数n,然后打印出(1-n)内所有平方根为整数的数。
    public static void zshu(int n){
        System.out.printf("(1-%d)内所有平方根为整数的数:",n);
        for (int i=1;i<n;i++){
            double d=Math.sqrt(i);//Math.sqrt(i) 求平方根⭐⭐⭐⭐⭐
            int a=(int)d;//将double强转为int型,如果是小数将舍去小数部分
            if (a==d){//如果平方根为整数,则a=d
              System.out.print(i+" ");
          }
        }
    }
    public static void main(String[] args) {
        Scanner sc =new Scanner(System.in);
        System.out.print("请输入一个整数:");
        int n=sc.nextInt();
        zshu(n);
    }
}
运行结果:
请输入一个整数:100
(1-100)内所有平方根为整数的数:1 4 9 16 25 36 49 64 81 
进程已结束,退出代码0
  1. 一组字符串。 要求判断字符串中英语字符的个数、数字字符的个数,以及其他字符个数。例如:abc21b416u” ===> 数字字符输出5
package cn.qhk;
import java.util.Scanner;
public class Code6_1 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.print("请输入字符串:");
        String str=sc.nextLine();
        char[] cha=str.toCharArray();//转为数组
        int count=0;//数字个数
        int zm=0;//英文字母个数
        int qt=0;//其他字符个数
        for(int i=0;i<cha.length;i++){
            if(cha[i]>='0'&&cha[i]<='9'){
                count++;
            }else if((cha[i]>='a'&&cha[i]<='z')||(cha[i]>='A'&&cha[i]<='Z')){//表达式⭐⭐⭐⭐⭐
                zm++;
            }else {
                qt++;
            }
        }
        System.out.println("数字个数:"+count);
        System.out.println("字母个数:"+zm);
        System.out.println("其他个数:"+qt);
    }
}
运行结果:
请输入字符串:DF221adag fg
数字个数:3
字母个数:8
其他个数:1
进程已结束,退出代码0
  1. 给三个顶点,如何判断这三个顶点是否形成直角三角形。
package cn.qhk;

import java.util.Scanner;
public class Code7 {
    //7. 给三个顶点,如何判断这三个顶点是否形成直角三角形。

    //bc 返回边长的平方
    public static double bc(double x1,double y1,double x2,double y2){
          return (x1-x2)*(x1-x2)+(y1-y2)*(y1-y2) ;
    }

    //输入边长的平方 判断是否为三角形
    public static int  sjx(double a,double b,double c){
        double a1=Math.sqrt(a);
        double b1=Math.sqrt(b);
        double c1=Math.sqrt(c);
        if ((a1+b1>c1&&a1+c1>b1&&b1+c1>a1)&&(a1-b1<c1&&a1-c1<b1&&b1-c1<a1)&&(b1-a1<c1&&c1-a1<b1&&c1-b1<a1)){
            return 1;
        }else {
            return 0;
        }
    }

    //输入边长的平方 判断是否为直角三角形
    public static int zj(double a,double b,double c){
        if(a+b==c||a+c==b||b+c==a){
            return 1;
        }else {
            return 0;
        }
    }

    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.print("请输入第一个顶点的x:");
        double x1=sc.nextDouble();
        System.out.print("请输入第一个顶点的y:");
        double y1=sc.nextDouble();
        System.out.print("请输入第二个顶点的x:");
        double x2=sc.nextDouble();
        System.out.print("请输入第二个顶点的y:");
        double y2=sc.nextDouble();
        System.out.print("请输入第三个顶点的x:");
        double x3=sc.nextDouble();
        System.out.print("请输入第三个顶点的y:");
        double y3=sc.nextDouble();
        //计算边长的平方
        double a=bc(x1,y1,x2,y2);
        double b=bc(x1,y1,x3,y3);
        double c=bc(x2,y2,x3,y3);
        //判断三角形
        if (sjx(a,b,c)==1){
            if(zj(a,b,c)==1){
                System.out.println("形成直角三角形");
            }else {
                System.out.println("形成非直角三角形");
            }
        }else {
            System.out.println("不形成三角形");
        }
    }
}
运行结果:
请输入第一个顶点的x:0
请输入第一个顶点的y:0
请输入第二个顶点的x:0
请输入第二个顶点的y:2
请输入第三个顶点的x:2
请输入第三个顶点的y:0
形成直角三角形
进程已结束,退出代码0
  1. 一组字符串,输出abc的个数。
package cn.qhk;

public class Code8 {
    //8. 一组字符串,输出abc的个数。
    public static void main(String[] args) {
        String s="jsjdfklahabcjjlabc";
        String m="abc";
        int num=0;
        if (s.contains(m)){
            int index=s.indexOf(m);
            while(index!=-1){
                ++num;
                index=s.indexOf(m,index+m.length());//indexOf 找不到返回-1;找到返回字符串的起始位置(第一位为0)
            }
        }
        System.out.println("abc的个数为:"+num);
    }
}
运行结果:
abc的个数为:2
进程已结束,退出代码0
  1. 求两个数的最大公约数。
package cn.qhk;

import java.util.Scanner;

public class Code9 {
    //9. 求两个数的最大公约数。辗转相除法是求两个自然数的最大公约数的一种方法,也叫欧几里德算法。
    //质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数(规定1既不是质数也不是合数)。
    //https://jingyan.baidu.com/article/11c17a2c4f1a5ab546e39dd5.html
    /**
     * 求最大公约数方法:
     * 1)质数分解法
     * 2)短除法
     * 3)辗转相除法(此处用辗转相除法)
     */
     
     //求最大公约数
    public static void zdgy(int a,int b){
        if(a>b){
            int c;
            c=a%b;
            if(c!=0){
                zdgy(b,c);
            }else {
                System.out.println("最大公约数为:"+b);
            }
        }else if(a<b){
            int c;
            c=b%a;
            if(c!=0){
                zdgy(b,c);
            }else {
                System.out.println("最大公约数为:"+a);
            }
        }
    }
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        System.out.print("请输入第一个数:");
        int a=sc.nextInt();
        System.out.print("请输入第二个数:");
        int b=sc.nextInt();
        zdgy(a,b);
    }
}
运行结果:
请输入第一个数:30
请输入第二个数:18
最大公约数为:6
进程已结束,退出代码0
  1. 求两个数组中相同的元素。
    去除数组中重复的元素
package cn.qhk;

import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
public class Code10 {
    //**10. 求两个数组中相同的元素**
    public static void main(String[] args) {
        Object[] cha1={'1','f','s','1','a','2'};
        Object[] cha2={'1','2','w','1','a','f'};
        System.out.println(Arrays.toString(cha1));
        System.out.println(Arrays.toString(cha2));
        //去除数组中的相同元素
        Set set=new HashSet();//设置一个集合,集中不会有重复的元素
        int count=0;
        for (int i=0;i<cha1.length;i++){
            set.add(cha1[i]);//把元素添加到集合中
        }
        Object[] arr=set.toArray();//把集合转为数组
        //寻找两数组中相同元素
        System.out.print("两数组中相同的元素:");
        for (int i=0;i<arr.length;i++){
            for (int j=0;j<cha2.length;j++){
                if (arr[i]==cha2[j]){
                    System.out.print(arr[i]+" ");
                    break;
                }
            }
        }
    }
}
运行结果:
[1, f, s, 1, a, 2]
[1, 2, w, 1, a, f]
两数组中相同的元素:1 a 2 f 
进程已结束,退出代码0
  1. 人-狗-兔-菜 如何过河 。

  2. 买啤酒问题。 啤酒2块钱一瓶,4个瓶盖换1瓶啤酒,2个空瓶换一瓶啤酒,10块钱可以喝多少瓶。

https://blog.csdn.net/weixin_31614753/article/details/114620346?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167853974016800222812554%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=167853974016800222812554&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-2-114620346-null-null.142^v73^pc_search_v2,201^v4^add_ask,239^v2^insert_chatgpt&utm_term=%E4%B9%B0%E5%95%A4%E9%85%92%E9%97%AE%E9%A2%98%E3%80%82&spm=1018.2226.3001.4187
package cn.qhk;

public class Code12 {
    //12. 买啤酒问题。 啤酒2块钱一瓶,4个瓶盖换1瓶啤酒,2个空瓶换一瓶啤酒,10块钱可以喝多少瓶。
    public static void main(String[] args) {
        int m=10;    //钱数
        int jiu=m/2; //刚开始用钱能买到的啤酒数
        int gai=jiu; //瓶盖的数量
        int ping=jiu;//瓶的数量
        int z=jiu;   //喝到啤酒的总瓶数
        while(ping>=2||gai>=4){
            if(gai>=4){    //用瓶盖换啤酒
                gai=gai-4;
                ++jiu;
                ++gai;
                ++ping;
                ++z;
            }
            if (ping>=2){  //用瓶换啤酒
                ping-=2;
                ++jiu;
                ++gai;
                ++ping;
                ++z;
            }
        }
        System.out.printf("%d元共买了%d瓶酒",m,z);
    }
}
运行结果:
10元共买了15瓶酒
进程已结束,退出代码0

简答题:

  1. 电商大数据盈利类型。

什么是电商大数据?
通俗的说:电商大数据就是大家在互联网上产生购买行为后所留下的种种痕迹,包含了众多信息,它们都保存在各自的大数据库内。
大数据需要在量化数据的基础上,加上商业逻辑,才能帮助电商企业做全局性、系统性的决策。

  1. 无人驾驶怎么实现。

《智能驾驶技术:路径规划与导航控制》
要实现无人驾驶,需要准备三件宝物,高精度地图、传感器和车辆控制系统。
高精度地图一方面对准确性要求更高,通常需要结合GPS、遥感影像等等测量仪器的结果绘制。另一方面是补充了这些行车信息,甚至对于特殊的车道还做了细致的划分,譬如路口转弯、匝道、小路,都作了分别的标识。高精度地图需要包含这么多信息,制作成本当然很高,但无人驾驶有了高精度地图,认路就容易的多了,实时计算要求也一下下降很多。

无人驾驶的第二件宝物就是传感器
为了准确捕捉各种环境信息,无人驾驶使用了多种的传感器来捕捉各类环境信息,包括高清摄像头、红外传感器、激光雷达、毫米波雷达等等,能够捕捉的光信号不仅限于可见光,而且具备360度环视视觉。应该说,在环境信息捕捉方面,无人驾驶所具备的能力已经超过了人类。

最后一项是最核心的一项,也是最难的一项,就是这个车辆驾驶系统。准确来说,车辆驾驶系统分为软件和硬件两个部分,无人驾驶的车辆首先需要对车辆进行硬件改造,这应该很好理解,你必须得让无人驾驶系统能够控制油门、刹车和方向盘,在软件层面,就是无人驾驶的“大脑”了。大脑是关键,前面的地图、耳目再厉害,也得需要有个厉害的大脑才能真正用起来。具体来说就是各种各样的算法,这一部分涉及到很多具体的专业知识,可以细读《智能驾驶技术:路径规划与导航控制》,这里只提一提其中有两个的问题我觉得十分有趣。
第一个问题就是如何训练。无人驾驶依赖人工智能技术,会从各种机器学习、深度学习、深度强化学习的模型中挑选。要使用这些模型,都有一个必经环节,那就是训练,而训练是需要试错的。用仿真环境,无人驾驶是在仿真环境中不断学习进化,等训练成了真正意义上的“老司机”才能真正开车上路。
第二个问题叫乘坐体验,譬如说刹车,遇到突发情况当然要刹车,但如果刹车太硬太急,乘客又会很容易觉得恶心。这是一对矛盾,而这对矛盾完全可以用数学公式来描述,再进而找到最优解。
https://blog.csdn.net/hzbooks/article/details/108216325
添加链接描述

  1. 说出五种编程语言

C C++ C# Python Java PHP JavaScript

  1. 热门的计算机领域
    计算机的前沿方向如下:大数据、云计算、区块链、物联网、人工智能、脑机接口、脉冲神经网络。除脑机接口外,可以用三个词来概括:数字化、智能化、自动化。
https://zhuanlan.zhihu.com/p/370512031#:~:text=%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%9A%84%E5%89%8D%E6%B2%BF%E6%96%B9%E5%90%91,%E5%A6%82%E4%B8%8B%EF%BC%9A%E5%A4%A7%E6%95%B0%E6%8D%AE%E3%80%81%E4%BA%91%E8%AE%A1%E7%AE%97%E3%80%81%E5%8C%BA%E5%9D%97%E9%93%BE%E3%80%81%E7%89%A9%E8%81%94%E7%BD%91%E3%80%81%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E3%80%81%E8%84%91%E6%9C%BA%E6%8E%A5%E5%8F%A3%E3%80%81%E8%84%89%E5%86%B2%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C%E3%80%82

添加链接描述

  1. 开放性的问答。

  2. 简述操作系统。
    操作系统(Operation System, OS) 是指控制和管理整个计算机系统的硬件和软件资源,并合理的组织和调度计算机的工作和资源的分配,以提供给用户和其它软件方便的接口和环境,它是计算机系统中最基本的系统软件。
    在这里插入图片描述
    1、作业管理是负责处理用户提交的任何要求。
    2、文件管理:又称为信息管理,文件存储空间的管理、目录管理 、文件操作管理、文件保护。
    3、存储管理:实质是对存储“空间”的管理,主要指对主存的管理:
    4、设备管理:分有以下功能:设备分配、设备传输控制 、设备独立性。
    5、进程管理:实质上是对处理机执行“时间”的管理,即如何将CPU真正合理地分配给每个任务.

操作系统位于底层硬件与用户之间,是两者沟通的桥梁。
1、进程管理,其工作主要是进程调度,在单用户单任务的情况下,处理器仅为一个用户的一个任务所独占, 进程管理的工作十分简单。
但在多道程序或多用户的情况 下,组织多个作业或任务时,就要解决处理器的调度、 分配和回收等问题 。
2、存储管理分为几种功能:存储分配、存储共享、存储保护 、存储扩张。
3、设备管理分有以下功能:设备分配、设备传输控制 、设备独立性。
4、文件管理:文件存储空间的管理、目录管理 、文件操作管理、文件保护。
5、作业管理是负责处理用户提交的任何要求。
在计算机中,操作系统是其最基本也是最为重要的基础性系统软件。

  1. 拓扑结构种类。
    所谓“拓扑”就是把实体抽象成与其大小、形状无关的“点”,而把连接实体的线路抽象成“线”,进而以图的形式来表示这些点与线之间关系的方法,其目的在于研究这些点、线之间的相连关系。表示点和线之间关系的图被称为拓扑结构图。
    PCB设计中的拓扑,指的是芯片之间的连接关系。
    PCB设计中常见的拓扑结构
    PCB(Printed Circuit Board),中文名称为印制电路板,又称印刷线路板,是重要的电子部件,是电子元器件的支撑体,是电子元器件电气相互连接的载体。由于它是采用电子印刷术制作的,故被称为“印刷”电路板。 [1]
    拓扑结构的种类有很多,其中最常见的信号总线拓扑结构有以下4种:点到点、菊花链、星型、远端簇型。
    添加链接描述
    1、点到点拓扑结构
    也即一对一的拓扑,大家说的P2P指的就是点对点
    在这里插入图片描述
    2、菊花链拓扑结构
    菊花链一词最基本的概念指的是一种由许多菊花串接在一起形成的花环,早期也叫手牵手链接方式,一个人最多只能通过两条手臂牵着另外两个人(相当于一个芯片最多只能通过两段传输线连接到另外的两个芯片上),后来衍变到电子电器工程中菊花链又代表一种配线方案,例如设备A和设备B用电缆相连,设备B再用电缆和设备C相连,设备C用电缆和设备D相连,在这种连接方法中不会形成网状的拓扑结构,只有相邻的设备之间才能直接通信,例如在上例中设备A是不能和设备C直接通信的,它们必须通过设备B来中转,这种方法同样不会形成环路。
    在这里插入图片描述
    3、星型拓扑结构
    在这里插入图片描述
    4、远端簇型拓扑结构
    远端簇形又叫远端星形,实际上是星形拓扑的一个改进,它将星形拓扑中位于源端的分支节点移动到与接收器最近的远端,既满足了各个接收器上接收信号的同步问题,又解决了阻抗匹配复杂和驱动器负载重的问题,因为远端簇形拓扑只需要在分支节点处终端匹配就可以了。远端簇形拓扑要求各个接收器到分支点的距离要尽量近,分支线长了会严重影响信号的质量,如果各个接收器芯片在空间上不能摆放在一起,那么就不能采用远端簇形拓扑。
    添加链接描述
    在这里插入图片描述
    计算机网络:计算机网络拓扑结构的五种分类方式

计算机网络拓扑分类:
计算机网络的拓扑结构指网络节点和链路之间的分布和互连形成的物理形状。

分类一:
在这里插入图片描述
星形拓扑结构:一种以中央节点为中心,把若干外围节点连接起来的辐射状互联结构。

优点:①易扩充②控制简单(中央节点实施对全网的控制)

缺点:①中央节点会成为系统的瓶颈②存在单点故障问题

适用场合:

传统场合:网络智能集中于中央节点的场合

新场合:在计算机从集中的主机系统发展到功能很强的微型机和工作站,以高速交换设备为中心的星形拓扑结构发展迅猛,应用也越来越广。

分类二:
在这里插入图片描述
环形拓扑结构:所有网络节点通过通信链路连接成一个闭合环,每个节点能够接受从一段链路传来的数据,并把该数据沿环送到另一端链路上。

链路可单向,也可双向

数据在环上的传送由分布式策略控制

优点:①通信链路长度比星形拓扑结构要短②可使用光纤③增加/删除结点容易;

缺点: ①任一结点或链路发生故障会导致全网故障,且故障检测和定位比较困难;

场合示例:IEEE802.5令牌环网记为采用拓扑的网络

分类三:
在这里插入图片描述

总线拓扑结构:采用一个共享信道作为传输介质,所有结点都通过相应的硬件接口直接连到被称为总线的传输介质上。

共享信道:任何一个站点发送的数据信号都沿着传输介质传播,并且能被其他站点接收

优点:①拓扑结构简单②无源线路、有较高的可靠性③便于扩充,便于节点的增加和删除;

缺点:①传输距离有限,通信范围受限制②故障诊断和隔离比较困难

场合示例:

早期的以太网采用总线拓扑结构的网络
现行的电缆因特网接入方案
分类四:
在这里插入图片描述
树形拓扑结构:

顶端是根结点,根节点下有分支,每个分支还可再带子分支。
根节点接收各网络结点发送的数据,然后再广播发送到全网。
优点:①扩展容易②管理简单、方便维护

缺点:①资源共享能力差②可靠性低,根节点是系统瓶颈

场合示例:军事单位、政府单位等上下界相当严格和层次分明的网络结构

分类五:
在这里插入图片描述

网形拓扑结构:各网络节点之间根据需要将通信线路互连,形成网状。

优点:①可靠性高:不受瓶颈问题和单点故障问题的影响;

缺点:①结构复杂、成本高②网络协议复杂

场合示例:

广域网中得到广泛应用

因特网

  1. 电脑病毒的原理。
    在这里插入图片描述

  2. 软件测试是什么。

软件测试是使用人工或自动的手段来运行或测定某个软件系统的过程,其目的在于检验它是否满足了用户的需求。

  1. 计算机系统的软件硬件有什么。
    计算机基础 软件系统与硬件系统
    在这里插入图片描述

  2. 软件开发几个阶段。
    软件开发过程一般有几个阶段?每个阶段的作用?
    软件开发一般分为五个阶段:
    1.问题的定义及规划 此阶段是软件开发与需求放共同讨论,主要确定软件的开发目标及其可行性。
    2.需求分析 在确定软件开发可行性的情况下,对软件需要实现的各个功能进行详细需求分析。需求分析阶段是一个很重要的阶段,这一阶段做的好,将为整个软件项目的开发打下良好的基础。“唯一不变的是变化本身”,同样软件需求也是在软件爱你开发过程中不断变化和深入的,因此,我们必须定制需求变更计划来应付这种变化,以保护整个项目的正常进行。
    3.软件设计 此阶段中偶要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计、数据库设计等。软件设计一般分为总体设计和详细设计。还的软件设计将为软件程序编写打下良好的基础。
    4.程序编码 此阶段是将软件设计的结果转化为计算机可运行的程序代码。在程序编码中必定要制定统一、符合标准的编写规范。以保证程序的可读性、易维护性。提高程序的运行效率。
    5.软件测试 在软件设计完成之后要进行严密的测试,一发现软件在整个软件设计过程中存在的问题并加以纠正。整个测试阶段分为单元测试、组装测试、系统测试三个阶段进行。测试方法主要有白盒测试和黑盒测试。
    以上就是软件开发过程的五个阶段,但是有的时候在软件爱你开发过程中并不是必须按照这个过程进行的

  3. 操作系统功能。

操作系统(Operation System, OS) 是指控制和管理整个计算机系统的硬件和软件资源,并合理的组织和调度计算机的工作和资源的分配,以提供给用户和其它软件方便的接口和环境,它是计算机系统中最基本的系统软件。
在这里插入图片描述

  1. 网络设备有什么。
    几个网络设备的简介
    一、网卡(Network Interface)
    \使计算连网的网络设备。
    二、中继器(RP Repeater)
    \工作在物理层上的连接设备,OSI模型的物理层设备。
    \适用于完全相同的两类网络的互连,主要功能是通过对数据信号的重新发送或者转发,来扩大网络传输的距离。
    \中继器是对信号进行再生和还原的网络设备。
    \即使数据在链路层出现错误,中继器依然转发数据。
    \不改变传输速度。
    \不能在传输速度不一致的媒介之间转发。
    \有些中继器提供多个端口服务,这种中继器被称为中继集线器或集线器。
    三、网桥(Bridge)
    \工作在OSI模型的第二层-数据链路层连接两个网络的设备。
    \根据数据帧内容转发数据给其他相邻的网络。
    \基本只用于连接相同类型的网络,有时候也连接传输速率不一致的网络。
    \网桥是一种对帧进行转发的技术,根据MAC分区块,可隔离碰撞。
    \具备“自学习”机制,网桥对站点所处网段的了解是靠“自学习”实现的,有透明网桥、转换网桥、封装网桥、源路由选择网桥。
    \以太网中常用的交换集线器也是网桥的一种。
    四、路由器(Router)
    \工作在OSI的第三层-网络层连接网络与网络的设备。
    \可以将分组报文发送到另一个目标路由器地址。
    \基本上可以连接任意两个数据链路。
    \具有分担网络负荷、网络安全功能。
    五、交换机(Switch)
    \交换机可以说同时是集线器和网桥的升级换代产品,因为交换机具有集线器一样的集中连接功能,同时它又具有网桥的数据交换功能。所以可以这样说,交换机是带有交换功能的集线器,或者说交换机是多端口的网桥。外形上,集线器与交换机产品没什么太大区别。这一类交换机工作于ISO模型的第二层-数据链路层。
    \4-7层交换机可用于带宽控制、特殊应用访问加速、防火墙等。
    六、网关(Gateway)
    \在网络层以上实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。 网关既可以用于广域网互连,也可以用于局域网互连。 网关是一种充当转换重任的计算机系统或设备。使用在不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,网关是一个翻译器。
    \负责协议转换和数据转发。
    \在同一种协议之间转发数据叫做运用网关。

  2. 私密文件如何防止被盗。
    如何隐藏私密文件 & 文件夹加密方法分享

  3. 关系数据库。
    什么是关系数据库?

  4. 子网划分:
    例题:C类IP地址,192.168.1.1划分三个子网主机数分别是25,38,100,请划分子网和子网掩码。
    C类的地址一共是254个地址,需要100个主机,就需要7位主机位。默认下C类地址是8位主机位的,子网掩码是255.255.255.0,所以你给的地址就可以写成网段:192.168.1.0/24了,现在需要7位主机位,所以子网掩码要取/25。借用了一位来划分子网,划分了两个子网:子网如下:
    子网一:192.168.1.0/25 有效地址范围:192.168.1.1-192.168.1.126
    子网二:192.168.1.128/25 有效的地址范围:192.168.1.129-192.168.1.254
    子网掩码是:255.255.255.128。拿子网一分配给100台主机的。
    接着看,需要38台主机的,就需要6位主机位,2的6次方-2>38,所以要6位。只能拿上面的子网二来划分子网,子网掩码要取26位是:255.255.255.192子网如下:
    子网三:192.168.1.128/26 有效的地址范围:192.168.1.129-192.168.1.190
    子网四:192.168.1.192/26 有效的地址范围:192.168.1.193-192.168.1.254
    拿子网三分配给38台主机的。
    接着,需要25台主机的,就需要5位主机号,2的5次方-2=30>25。只能拿上面的子网四来划分了。取5位主机位,子网掩码就是:255.255.255.224.划分的子网如下:
    子网五:192.168.1.192/27 有效的地址范围:192.168.1.193-192.168.1.222
    子网六:192.168.1.224/27 有效的地址范围:192.168.1.193-225.168.1.254
    拿子网五分配给25台主机的。还有的子网六留给以后用。
    这里的主机位取多少位,你要知道子网掩码就是代表你的IP地址中网络位是多少和主机位是多少的。就是地址后的/N,就是说明网络位是多少,比如/22就是说前22位是网络位,后10位(32-22)就是主机位。2的主机位次方-2就是能容纳多少个主机了。

17.白盒测试:白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,即清楚盒子内部的东西以及里面是如何运作的。“白盒”法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。“白盒”法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。白盒测试的测试方法有代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、路径覆盖和程序变异。
白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。其中逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和修改条件判断覆盖

选择题:

  1. 都是操作系统的基本知识。
  2. 有问哪些属于输入设备,哪些是输出设备。
  3. 软件测试方面的。

一般来说10道选择,6道简答,2道编程。

操作系统 数据库 C语言的基本知识了解一下。 然后多看看C语言的课后练习。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值