面試 企業shell編程基礎問題解決實踐(親測)

問題是選的老男孩老師博客裏面的問題,舉一反三其中也自己也延伸了兩題。

老男孩老師博客的地址http://oldboy.blog.51cto.com/2561410/1718607


言歸正傳,


1.請用shell或Python編寫一個正方形,接收用戶輸入的數字。

wKioL1eMbpiCbzCIAAAftdE6HW8430.jpg-wh_50

方法:vim zhong1.sh
 

#!/bin/bash
read -p "Please Enter a number:" n 
for ((x=1;x<=$n;x++));do
    for ((y=1;y<=$n*2;y++))do
        echo -n "+"
    done
    echo ""
done


 例如2:用■號實現  (zhong2.sh)

wKiom1eMbpiDbFsqAAAQvnpxzcI105.jpg-wh_50

方法:vim zhong2.sh

#!/bin/bash
read -p "Please Enter a number:" n 
for ((x=1;x<=$n;x++));do
    for ((y=1;y<=$n;y++))do
        echo -n "■ "
    done
    echo ""
done


 
2.請用shell或Python編寫一個等腰三角形,接收用戶輸入的數字。

例如:用*號實現 (zhong3.sh)

wKioL1eMbpiTDyWEAAAmZ28D6Uo780.jpg-wh_50

方法:vim zhong3.sh

#!/bin/bash
read -p "Please Enter a number:" n 
for ((x=1;x<=$n;x++));do 
    for ((z=1;z<=$n-x;z++));do
    echo -n " "
    done
    for ((y=1;y<=a+1;y++));do
    echo -n "*"
    done
    echo 
    a=$((a+2))
done

 

 3.請用shell或Python編寫一個倒等腰三角形,接收用戶輸入的數字。(題二的延生)

例如:用*號實現 (zhong33.sh)

wKiom1eMbpmALiJfAAAfJ3xdErw315.jpg-wh_50

方法:vim zhong33.sh  (可以在zhong3.sh的基礎上行改變一下就可以的出來)

#!/bin/bash
read -p "Please Enter a number:" n 
for ((x=1;x<=$n;x++));do 
    for ((z=0;z<x-1;z++));do
    echo -n " "
    done
    for ((y=1;y<=$n-(a+1-$n);y++));do
    echo -n "*"
    done
    echo 
    a=$((a+2))
done


4.請用shell或Python編寫一個菱形,接收用戶輸入的數字。(題二的延生)

例如:用*號實現 (zhong333.sh)

wKioL1eMbpmAz3j8AAA2tkJ28Po115.jpg-wh_50

方法:vim zhong333.sh

 #!/bin/bash
read -p "Please Enter a number:" n 
for ((x=1;x<=$n;x++));do 
    for ((z=1;z<=$n-x;z++));do
    echo -n " "
    done
    for ((y=1;y<=a+1;y++));do
    echo -n "*"
    done
    echo 
    a=$((a+2))
done
b=2
for ((x=1;x<=$n;x++));do
    for ((z=0;z<=x-1;z++));do
      echo -n " "
    done
    for ((y=1;y<=$n-(b+1-$n);y++));do
      echo -n "*"
    done
    echo
    b=$((b+2))
done


5.請用shell或Python編寫一個畫直角梯形程序,接收用戶輸入的參數n,m
 

例如:用*號實現  (zhong4.sh)

wKiom1eMbpnhI7MjAABUVcuEo4E559.jpg-wh_50

方法:vim zhong4.sh

 #!/bin/bash
for ((x=1;x<=$2;x++));do
    for ((y=1;y<=$1+a;y++))do
        echo -n "+ "
    done
    a=$((a+1))
    echo ""
done


以上結果親測過,能完全實現題目的要求

linux環境:Linux 51master 2.6.32-504.el6.x86_64 #1 SMP Wed Oct 15 04:27:16 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章