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!

  • 相关阅读:
    汇编-MOV指令
    mfc 线程的优先级
    golang图片裁剪和缩略图生成
    libnsq编译、使用记录
    c日志宏
    golang 六宫格、九宫格头像生成
    使用httputil中ReverseProxy反向代理遇到的坑
    Nginx反向代理与Backend直接配置长连接
    openssl:AES CBC PKCS5 加解密 (C/GOLANG)
    纯C:AES256
  • 原文地址:https://www.cnblogs.com/ht-beyond/p/5095159.html
Copyright © 2011-2022 走看看