1. 输入一个符号和一个层数数字,输出对应层数的 金字塔图案。
#!/bin/bash
read -p "Input a symbol and the number of rows : " char num
for((i=1;i<=$num;i++));do
for((j=0;j<$num-i;j++));do
echo -n " "
done
for((j=0;j<2*i-1;j++));do
echo -n $char
done
echo
done
2. 编写一个函数,判断一个数是奇数还是偶数,程序先提示输入一串数字,调用函数判断奇偶,将偶数显示。
#!/bin/bash
read -p "Input a number: " num
if [ `expr $num % 2` -eq 0 ];then
echo $num
else
echo not an even number
fi
4.18 设计一个程序cuts,它由标准输入读取数据,获取由第一个参数n和第二个参数m所限定范围的数据,n和m都是整数,即从输入的字符串中抽取第n个字符至第m个字符之间的所有字符(包括这两个字符)。例如:
$ cuts 11 14
this is a test of cuts program (输入)
test (显示结果)
#!/bin/bash
read -p "Input a string: " str
echo $str | cut -c $1-$2
6.1 gcc编译过程一般分为哪几个阶段?各阶段的主要工作是什么?
答:gcc编译过程可以分为4个阶段,包括预处理(Preprocessing)、编译(Compiling)、汇编(Assembling)和连接(Linking)。
-
预处理程序:读取C语言源文件,对其中以“#”开头的指令(伪指令)和特殊符号进行处理。
-
编译程序:对预处理之后的输出文件进行词法分析和语法分析,试图找出所有不符合语法规则的部分,并根据问题的大小做出不同处理。在确定各成分都符合语法规则后,将其“翻译”为功能等价的中间代码表示或者汇编代码。
-
汇编程序:把汇编语言代码翻译成目标机器代码。
-
连接程序:要解决外部符号访问地址问题,也就是将一个文件中引用的符号(如变量或函数调用)与该符号在另外一个文件中的定义连接起来,从而使有关的目标文件连成一个整体,最终成为可被操作系统执行的可执行文件。