zoukankan      html  css  js  c++  java
  • 嵌入式考试Shell编程题

    单片机与嵌入式系统考试Shell编程题库,简单地做了下。

    1、提示输入N个学生的成绩,并将百分制成绩转换为5分制成绩,最后将学号、成绩保存在score.dat中。
    转换规则[90,100]=5,[80,90]=4,[70,80]=3,[60,70]=2,[0,60]=1。
    2、从屏幕上输入N个数据,将它们排序,把排序后的结果保存在result.dat中。
    3、判断/home/tesh.sh文件是否存在,如果存在,删除该文件,如果不存在,创建该文件。
    4、从屏幕上输入N个数,寻找这N个数的最大值,最小值,并输出。
    5、计算"1+2+3+...+100"的和,并输出结果。
    6、提示输入一个字符,如果输入“Y”,输出“right!”,如果输入“N”,输出“wrong!”,如果是其它输入,输出“bad input!”,并要求重新输入。
    7、提示输入两个数,然后提示输入运算符“+或-”,根据运算符做“+、-”运算,最后输出结果。
    8、判断/home/exam目录是否存在,如果存在,删除该目录,如果不存在,创建该目录。
    9、提示输入两个数,然后提示输入运算符“+、-、x”,根据运算符做“+、-、x”运算,最后输出结果。

    #!/bin/bash
    # test1.sh
    # 2016.1.2
      
    echo "Please input N student grade:"
    read -a grade
    for ((i=0;i<${#grade[@]};i++))
    do
        if [[ ${grade[i]} -ge 90 ]]
        then
            grade[i]=5
        elif [[ ${grade[i]} -ge 80 ]]
        then
            grade[i]=4
        elif [[ ${grade[i]} -ge 70 ]]
        then
            grade[i]=3
        elif [[ ${grade[i]} -ge 60 ]]
        then
            grade[i]=2
        else
            grade[i]=1
        fi
    done
    #echo ${grade[*]}
    echo ${grade[*]} > score.dat
    #!/bin/bash
    # test2.sh
    # 2016.1.2
    
    echo "Please input N number:"
    read -a arr
    for ((i=0;i<${#arr[@]};i++))
    do
        for ((j=${#arr[@]}-1;j>i;j--))
        do
            if [[ ${arr[j]} -lt ${arr[j-1]} ]]
            then
                t=${arr[j]}
                arr[j]=${arr[j-1]}
                arr[j-1]=$t
            fi
        done
    done
    echo ${arr[*]} > result.dat
    #!/bin/bash
    # test3.sh 
    # 2016.1.2
    
    cd /home
    if test -e tesh.sh
    then
        rm tesh.sh
    else
        touch tesh.sh
    fi
    #!/bin/bash
    # test4.sh
    # 2016.1.2
    
    if [ -z "$1" ]
    then
        echo "You should input N num!"
        exit 1
    fi
    
    max=$1
    min=$1
    for num in $*
    do
        if [ $num -gt $max ]
        then
            max=$num
        fi
        if [ $num -lt $min ]
        then
            min=$num
        fi
    done
    echo "Max: $max , Min: $min"
    #!/bin/bash
    # test5.sh
    # 2016.1.2
    
    j=0;
    for ((i=1;i<=100;i++))
    do
        j=`expr $i + $j`
    done
    echo $j
    #!/bin/bash
    # test6.sh
    # 2016.1.2
    
    echo "Input 1 char:"
    read a
    if [ $a = 'Y' ]
    then
        echo "right!"
    elif [ $a = 'N' ]
    then
        echo "wrong!"
    else
        echo "bad input!"
    fi
    #!/bin/bash
    # test7.sh
    # 2016.1.2
    
    echo "Input 2 Number:"
    read a
    read b
    echo "Input + or - :"
    read op
    if [ $op = '+' ]
    then
        x=`expr $a + $b`
    elif [ $op = '-' ]
    then
        x=`expr $a - $b`
    fi
    echo $x
    #!/bin/bash
    # test8.sh 
    # 2016.1.2
    
    cd /home
    if test -d exam
    then
        rm -r exam
    else
        mkdir exam
    fi
    #!/bin/bash
    # test9.sh
    # 2016.1.2
    
    echo "Input 2 Number:"
    read a
    read b
    echo "Input + or - or x:"
    read op
    if [ $op = '+' ]
    then
        x=`expr $a + $b`
    elif [ $op = '-' ]
    then
        x=`expr $a - $b`
    elif [ $op = 'x' ]
    then
        x=`expr $a * $b`
    fi
    echo $x

    OK!

  • 相关阅读:
    Spring MVC知识梳理
    Spring知识梳理
    combination sum(I, II, III, IV)
    两个面试题
    LeetCode高频148错题记录
    Multi label 多标签分类问题(Pytorch,TensorFlow,Caffe)
    Appearance-and-Relation Networks for Video Classification论文笔记 (ARTnet)
    LeetCode-450 二叉搜索树删除一个节点
    长短时记忆网络LSTM和条件随机场crf
    最大子数组(I, II, III,IV,V)和最大子数组乘积 (动态规划)
  • 原文地址:https://www.cnblogs.com/ht-beyond/p/5095159.html
Copyright © 2011-2022 走看看