def testi(n): print('test1:', n) if n == 0: print('over') else: testi(n-1) print('test1:', n)testi(5)
时间: 2024-05-23 07:12:00 浏览: 10
这段代码是一个递归函数,可以输出以下结果:
test1: 5
test1: 4
test1: 3
test1: 2
test1: 1
test1: 0
over
首先,函数被调用时传入参数 n=5,第一次执行输出 "test1: 5",然后进入递归调用 testi(n-1),即 testi(4)。接着,testi(4) 又调用 testi(3),以此类推,直到 testi(0) 被调用时输出 "over" 并结束递归。在递归调用的过程中,每次返回到上一层函数时都会执行一次 "test1: n" 的输出语句,因此会依次输出 "test1: 4"、"test1: 3"、"test1: 2"、"test1: 1" 和 "test1: 0"。
相关问题
在linux中改写例 6.1,使用下列选项对它进行编译:-I,-D,-E,-c,-o,-l。例6.1#include "testI.h" #define fatal "please call Larence for help" main( ) { /*testing CPP options */ printf("display -D variable %s\n",DOPTION);printf("display overwrite fatal=%s\n" ,fata1);printf( "Hello, everybody!!\n");}
好的,我明白了。以下是在Linux中改写例6.1并使用指定选项进行编译的代码:
1. 创建testI.h文件,文件内容为:
```
#define DOPTION "Test option"
```
2. 创建test.c文件,文件内容为:
```
#include <stdio.h>
#include "testI.h"
#define fatal "please call Larence for help"
int main() {
/* testing CPP options */
printf("display -D variable %s\n", DOPTION);
printf("display overwrite fatal=%s\n", fatal);
printf("Hello, everybody!!\n");
return 0;
}
```
3. 使用以下命令进行编译:
```
gcc -I. -Dfata1=\"help me!\" -E test.c -o test.i
gcc -c test.i -o test.o
gcc test.o -o test -lstdc++
```
以上命令的含义如下:
- `-I.`:指定头文件搜索路径,`.`表示当前目录
- `-Dfata1=\"help me!\"`:定义预处理宏,将fata1定义为字符串"help me!"
- `-E`:只进行预处理,不进行编译
- `-o test.i`:将预处理结果输出到test.i文件
- `-c`:只进行编译,不进行链接
- `-o test.o`:将编译结果输出到test.o文件
- `-lstdc++`:链接C++标准库,因为预处理后的代码中包含了printf函数,而printf函数在C++标准库中定义
最后,执行`./test`即可运行程序,输出结果如下:
```
display -D variable Test option
display overwrite fatal=help me!
Hello, everybody!!
```
1在/home 目录下创建一个新的空文件file1;复制系统文件/etc/profile 到/home 目录下。 2在root 下创建目录名称为 testi 的目录。 13 使用、im 同时新建并编得两个文件 fle1,fle2:在两个文件中分别输入 tnux test!字样: 两个文件同时在一屏昆示。 4 建立组群,使用命令〈gropadd groupl ):刪除用户,使用命令 (userder useramc1)。 5.显示系统核心路由表;查看系统开启的 TCP 端口。 6将家目录下的所有文件〈不包括目录,压缩成文件test1 zip: 将test1-zip 解压至/tmp T. 7()输入命令(1),屏幕动态显示 CPU 利用率,内存利用率和进程状态等相关信息, 2〉所有进程按照内存使用率排列! 3〉所有进程按照执行时间排列, 《4)恢复按照 CPU 使用率排列所有进程。 (5)结東该命令。 8.设置一个调度,要求在2021年10月1日0时,向所有用户发送国庆快乐的问候。 9.显示系统的路由设買;给系统添加缺省网关 192.168.3.1。 10.打开/cte下的某个文件,显示打开文件的行号 11. vin 编辑器中,复制当前行使用命会<双:撤销前一生操作使用命令。 D 112.c 语言编程,实现在屏幕上打印输出“hello world!” 13. 在/home 目录创建一个新的空文件 test:利用cp 命令复制系统文件/ete/profle 到/home 目录下;查看/home 目录下文件的权限。<只写结果,不截图> 1.
1. 在/home目录下创建一个新的空文件file1:可以使用touch命令创建空文件,如下所示:
```bash
touch /home/file1
```
复制系统文件/etc/profile到/home目录下:可以使用cp命令,如下所示:
```bash
cp /etc/profile /home/
```
2. 在root下创建目录名称为test1的目录:可以使用mkdir命令,如下所示:
```bash
mkdir /root/test1
```
3. 使用vim同时新建并编辑两个文件fle1和fle2:可以使用vim命令,如下所示:
```bash
vim /home/fle1 /home/fle2
```
在两个文件中分别输入"Linux test!"字样:在vim命令模式下,先按下i键切换到编辑模式,然后输入需要编辑的内容,最后按下Esc键回到命令模式,保存并退出可以按下:wq键。
4. 建立组群,使用命令groupadd group1:可以使用groupadd命令,如下所示:
```bash
groupadd group1
```
删除用户,使用命令userdel username:可以使用userdel命令,如下所示:
```bash
userdel username
```
5. 显示系统核心路由表;查看系统开启的TCP端口:可以使用route命令和netstat命令,如下所示:
```bash
route -n # 显示系统核心路由表
netstat -tnlp # 查看系统开启的TCP端口
```
6. 将家目录下的所有文件<不包括目录,压缩成文件test1.zip,将test1.zip解压至/(tmp):可以使用zip和unzip命令,如下所示:
```bash
cd ~ # 进入家目录
zip -r test1.zip * -x "*/" # 将家目录下所有文件压缩成test1.zip,不包括目录
mv test1.zip /tmp # 将test1.zip移动到/tmp目录下
cd /tmp # 进入/tmp目录
unzip test1.zip # 解压test1.zip
```
7. 输入命令(top),屏幕动态显示CPU利用率,内存利用率和进程状态等相关信息:可以使用top命令,如下所示:
```bash
top
```
按下大写的P键可以按照CPU使用率排列所有进程,按下大写的M键可以按照内存使用率排列所有进程,按下大写的T键可以按照执行时间排列所有进程。
8. 设置一个调度,要求在2021年10月1日0时,向所有用户发送国庆快乐的问候:可以使用crontab命令,如下所示:
```bash
crontab -e
```
在编辑器中添加以下内容:
```bash
0 0 1 10 * echo "Happy National Day!" | wall
```
这表示在每年的10月1日0时向所有用户发送"Happy National Day!"的问候。
9. 显示系统的路由设备;给系统添加缺省网关192.168.3.1:可以使用route命令,如下所示:
```bash
route # 显示系统的路由设备
route add default gw 192.168.3.1 # 添加缺省网关192.168.3.1
```
10. 打开/cte下的某个文件,显示打开文件的行号:可以使用cat命令或者less命令,如下所示:
```bash
cat -n /cte/文件名 # 显示文件的行号
less /cte/文件名 # 打开文件并且可以翻页查看
```
11. vim编辑器中,复制当前行使用命令(yy);撤销前一步操作使用命令(双自):可以使用vim命令,如下所示:
```bash
yy # 复制当前行
u # 撤销前一步操作
```
12. C语言编程,实现在屏幕上打印输出"hello world!":
```c
#include <stdio.h>
int main()
{
printf("hello world!\n");
return 0;
}
```
13. 在/home目录创建一个新的空文件test:利用cp命令复制系统文件/etc/profile到/home目录下;查看/home目录下文件的权限:
```bash
touch /home/test # 在/home目录下创建一个新的空文件test
cp /etc/profile /home/ # 复制系统文件/etc/profile到/home目录下
ls -l /home # 查看/home目录下文件的权限
```