有如下C语言程序。 int main() {int i; for(i=0;i<2;i++) { fork(); printf("HH\n"); }} 在UNIX操作系统中正确编译链接后,其正确的运行结果是( )。

admin2022-06-21  35

问题 有如下C语言程序。
int main()
{int i;
for(i=0;i<2;i++)
{
fork();
printf("HH\n");
}}
在UNIX操作系统中正确编译链接后,其正确的运行结果是(          )。

选项 A、共打印出2行HH
B、共打印出4行HH
C、共打印出5行HH
D、共打印出6行HH

答案D

解析 在UNIX类操作系统中,父进程通过调用fork()函数创建子进程,fork()函数执行的特点是:调用一次,返回两次,子进程从当前位置开始执行;程序在for循环中调用fork()函数,当i为0时,调用fork()函数创建一个子进程,此时父进程A、子进程B都接着执行printf()函数,输出两行HH;接着父子进程的变量i自增为1,接着执行for循环,父进程A接着创建自己的子进程C,子进程B也创建自己的子进程D,接着四个进程A、B、C、D都执行printf()函数,再次输出四行HH,最终程序执行for结束,所以本题程序总共输出6行HH。因此,本题答案选择D选项。
转载请注明原文地址:https://kaotiyun.com/show/7WyZ777K
0

相关试题推荐
最新回复(0)