武汉轻工大学选修linux作业和答案.docx
- 文档编号:29018211
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:20
- 大小:405.53KB
武汉轻工大学选修linux作业和答案.docx
《武汉轻工大学选修linux作业和答案.docx》由会员分享,可在线阅读,更多相关《武汉轻工大学选修linux作业和答案.docx(20页珍藏版)》请在冰豆网上搜索。
武汉轻工大学选修linux作业和答案
编写Shell程序,完成下面题目。
1.编写程序,该程序先读入一个正整数N,然后计算并显示前N个奇数的和。
例如,如果N为4,该程序应显示16,即1+3+5+7的值。
#!
/bin/sh
echo"编写程序,该程序先读入一个正整数N,然后计算并显示前N个奇数的和。
例如,如果
N为4,该程序应显示16,即1+3+5+7的值。
"
echo-n"pleaseneternumber"
readn
a=1
sum=0
b=$[2*($n-1)+1|bc]
sum=$[($a+$b)*$n/2]
echo"$sum"
~
2.编写程序显示1~100之间所有能被6或7整除的整数。
#!
/bin/sh
echo"显示1-100之间所有能被6或7整除的整数"
num=""
n=1
while[$n-lt101]
do
if[$(($n%6))-eq0]||[$(($n%7))-eq0]
then
num="$num$n"
fi
n=$(($n+1))
done
echo"$num"
3.编写程序显示1~100之间所有能被6或7整除,但不能同时被两者整除的整数。
#!
/bin/sh
echo"显示1-100之间所有能被6或7整除的整数,但不能同时被两者整除的整数"
num=""
n=1
while[$n-lt101]
do
if[$(($n%6))-eq0]||[$(($n%7))-eq0]
then
if[$(($n%6))-eq0]&&[$(($n%7))-eq0]
then
num=$num
else
num="$num$n"
fi
fi
n=$(($n+1))
done
echo"$num"
4.编写程序计算一个数中各位数字的和。
例如,输入1729,则显示1+7+2+9的结果,即19。
#!
/bin/sh
echo"编写程序计算一个数中各位数字的和。
例如,输入1729,则显示1+7+2+9的结果,即19"
readn
sum=0
while[$n-ne0]
do
a=$(($n%10))
sum=$(($sum+$a))
n=$(($n/10))
done
echo"$sum"
5.编写程序显示一个数的各位数字倒序排列的数。
例如,输入1729,则显示9271。
echo"编写程序计算一个数中各位数字的和。
例如,输入1729,则显示1+7+2+9的结果,即19"
readn
#!
/bin/sh
echo"编写程序显示一个数的各位数字倒序排列的数。
例如,输入1729,则显示9271。
"
readn
sum=""
while[$n-ne0]
do
a=$(($n%10))
sum="$sum$a"
n=$(($n/10))
done
echo"$sum"
~
6.编写程序显示下图图案。
由输入决定输出多少行,下面是当行数为8时的情况。
*
**
***
****
*****
******
*******
********
#!
/bin/sh
echo"编写程序显示下图图案。
由输入决定输出多少行,下面是当行数为8时的情况。
"
readn
han=1
while[$n-ne0]
do
m=$han
sum=""
while[$m-ne0]
do
sum="$sum*"
m=$(($m-1))
done
echo"$sum"
han=$(($han+1))
n=$(($n-1))
done
~
7.编写程序显示下图图案。
由输入决定输出多少行,下面是当行数为8时的情况。
*
**
***
****
*****
******
*******
********
#!
/bin/sh
echo"编写程序显示下图图案。
由输入决定输出多少行,下面是当行数为8时的情况。
"
readn
j=$n
han=1
while[$n-ne0]
do
m=$han
sum=""
while[$m-ne0]
do
sum="$sum*"
m=$(($m-1))
done
k=$(($j-$han))
while[$k-ne0]
do
sum="$sum"
k=$(($k-1))
done
echo"$sum"
han=$(($han+1))
n=$(($n-1))
done
8.编写程序找出用户输入的一串正数中最大的数。
#!
/bin/sh
echo"编写程序找出用户输入的一串正数中最大的数"
sum=0
forvarin$*
do
if[$var-gt$sum]
then
sum=$var
fi
done
echo"$sum"
9.编写程序,要求提示用户输入一个数n,然后显示出1~n间的所有偶平方数。
例如,如果用户输入100,那么程序应该显示如下内容:
4
16
36
64
100
#!
/bin/sh
echo"要求提示用户输入一个数n,然后显示出1~n间的所有偶平方数。
例如,如果用户输入100,那么程序应该显示如下内容"
readk
n=1
sum=""
while[$[$n*$n]-lt$k]||[$[$n*$n]-eq$k]
do
if[$[$n%2]-eq0]
then
m=$[$n*$n]
sum="$sum$m"
fi
n=`expr$n+1`
done
echo"$sum"
~
10.编写程序,从键盘输入的n个整数,把其中的偶数加起来求和,并将该和输出。
#!
/bin/sh
echo"编写程序,从键盘输入的n个整数,把其中的偶数加起来求和,并将该和输出。
"
sum=0
forvarin$*
do
if[$[$var%2]-eq0]
then
sum=$[$sum+$var]
fi
done
echo"$sum"
~
11.编写程序求等差数列前n项和,要求用户输入该数列的首项,公差,和项数。
#!
/bin/sh
echo"编写程序求等差数列前n项和,要求用户输入该数列的首项,公差,和项数。
"
n=$1
m=$[$1+$2*$[$3-1]]
sum=$[$[$n+$m]*$3/2]
echo"$sum"
~
12.编写程序求n的阶乘,要求用户从键盘输入n。
#!
/bin/sh
echo"编写程序求n的阶乘,要求用户从键盘输入n"
readn
functionfun()
{
localtmp
localtmp1
tmp=$1
if[$tmp-eq1]
then
sum=1
else
tmp1=$tmp
tmp=$(($tmp-1))
fun$tmp
sum=$[$tmp1*$sum]
fi
}
fun$n
echo"$sum"
13.编写程序,从键盘输入一个字符,然后以这个字符为元素组成10行10列方阵。
例如输入a,则显示
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
#!
/bin/sh
echo"编写程序,从键盘输入一个字符,然后以这个字符为元素组成10行10列方阵。
例如输
入a,则显示"
n=0
readc
while[$n-lt10]
do
echo"$c$c$c$c$c$c$c$c$c$c"
n=$[$n+1]
done
14.编写程序,将一个16进制数转换为等价的10进制整数值。
#!
/bin/bash
echo"编写程序,将一个16进制数(其中10为a类型,小写)转换为等价的10进制整数值"
readnum
len=`exprlength$num`
sum=0
functionfun()
{
case$1in
a)re=10;;
b)re=11;;
c)re=12;;
d)re=13;;
e)re=14;;
f)re=15;;
[0-9])re=$1;;
esac
}
n=0
while[$n-lt$len]
do
ch=${num:
$n:
1}
fun$ch
m=`expr$len-$n`
m=`expr$m-1`
m=$[16**$m]
re=$[$re*$m]
sum=$[$sum+$re]
n=$[$n+1]
done
echo"$sum"
15.编写程序,将一个无符号整数n转换为2进制表示。
#!
/bin/sh
echo"编写程序,将一个无符号整数n转换为2进制表示"
readm
var=""
while[$m-ne0]
do
a=$[$m%2]
m=$[$m/2]
var="$a$var"
done
echo"$var"
~
16.编写程序,把一个整数值读入n中,如果n不是负数,那么从n到2*n做累加;如果n是负数,那么从2*n到n做累加。
#!
/bin/sh
echo"编写程序,把一个整数值读入n中,如果n不是负数,那么从n到2*n做累加;如果n是>负数,那么从2*n到n做累加。
"
readn
sum=0
if[$n-lt0]
then
m=$[$n*2]
while[$m-lt$n]
do
sum=$[$sum+$m]
m=$[$m+1]
done
else
m=$[$n*2]
while[$m-gt$n]
do
sum=$[$sum+$m]
m=$[$m-1]
done
fi
sum=$[$sum+$n]
echo"$sum"
17.编写程序,要求用户输入3个整数k、m和n,k要大于1。
程序要计算在m和n之间的所有能被k整除的整数之和。
#!
/bin/sh
echo"编写程序,要求用户输入3个整数k、m和n,k要大于1。
程序要计算在m和n之间的所有
能被k整除的整数之和。
"
readkmn
sum=0
n=$[$n+1]
j=$m
while[$j-lt$n]
do
s=$[$j%k]
if[$s-eq0]
then
sum=$[$sum+$j]
fi
j=$[$j+1]
done
echo"$sum"
~
18.编写程序,判断从键盘输入的整数是否是素数。
#!
/bin/sh
echo"编写程序,判断从键盘输入的整数是否是素数。
"
readn
b=`expr"sqrt($n)"|bc`
b=$[$b+1]
m=2
while[$m-lt$b]
do
if[$[$n%$m]-eq0]
then
echo"$n不是一个素数"
break
fi
m=$[$m+1]
done
if[$m-eq$b]
then
echo"$n是一个素数"
fi
19.编写程序显示下图图案。
由输入决定输出多少行,下面是当行数为5时的情况。
*
***
*****
*******
*********
#!
/bin/sh
echo"编写程序显示下图图案。
由输入决定输出多少行,下面是当行数为5时的情况。
*
***
*****
*******
*********"
readn
m1=0
while[$m1-lt$n]
do
m2=$[$[$n-$m1]-1]
m3=$[2*${m1}+1]
k=0
var=""
j=0
while[$k-lt$m2]
do
k=$[$k+1]
var="$var"
done
while[$j-lt$m3]
do
j=$[$j+1]
var="$var*"
done
m1=$[$m1+1]
echo"$var"
done
20.编写程序显示下图图案。
由输入决定输出行列数目,下面是当行列数目为8时的情况。
********
**
**
**
**
**
**
********
#!
/bin/sh
echo"编写程序显示下图图案。
由输入决定输出行列数目,下面是当行列数目为8时的情况>。
********
**
**
**
**
**
**
********"
readn
m1=0
n1=$[$n-1]
while[$m1-lt$n]
do
m2=0
var=""
while[$m2-lt$n]
do
if[$m1-eq0-o$m2-eq0-o$m1-eq$n1-o$m2-eq$n1]
then
var="$var*"
else
var="$var"
fi
m2=$[$m2+1]
done
echo"$var"
m1=$[$m1+1]
done
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 武汉 轻工 大学 选修 linux 作业 答案