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!

  • 相关阅读:
    Using Resource File on DotNet
    C++/CLI VS CSharp
    JIT VS NGen
    [Tip: disable vc intellisense]VS2008 VC Intelisense issue
    UVa 10891 Game of Sum(经典博弈区间DP)
    UVa 10723 Cyborg Genes(LCS变种)
    UVa 607 Scheduling Lectures(简单DP)
    UVa 10401 Injured Queen Problem(简单DP)
    UVa 10313 Pay the Price(类似数字分解DP)
    UVa 10635 Prince and Princess(LCS N*logN)
  • 原文地址:https://www.cnblogs.com/ht-beyond/p/5095159.html
Copyright © 2011-2022 走看看