Linux系统应用教程习题答案 联系客服

发布时间 : 星期三 文章Linux系统应用教程习题答案更新完毕开始阅读342c00796d85ec3a87c24028915f804d2b1687c3

第8章 Linux下的C语言编程

1.

编写一个打印3000~5000之间素数的程序,在其中定义函数“int prime(int x)”,用以判断参数“x”所代表的整数是否为素数。以GCC对该程序进行编译,编译时可以加不同的参数,然后运行。 答:#include int prime(int x) { int flag=1,kk; for(kk=3;kk<=sqrt(xx);kk+=2) { if(x%kk==0) { flag=0; break; } } return flag; } int main() { int x; for(x=3001;x<5000;x+=2) { if(prime(x)) printf(”?”,x); } return 0; }

2. 利用GDB工具对上述程序进行调试,并观察程序中变量的变化过程。 答案略。

3. 将上述程序的源代码分散在两个文件中,其中一个文件包含main()函数,另一个文

件包含prime()函数。编写makefile文件实现对这两个文件的编译。修改其中一个文件后,再进行编译,观察make的输出信息。 答:makefile文件为:

# Print prime number between 3000 and 5000.

CC = gcc #设置变量CC的值为gcc,该变量代表编译器。 FLAGS += -Wall EXEC = myprime all:${EXEC}

${EXEC}:main.o prime.o #main()所在文件保存为main.c,

#prime()所在文件保存为prime.c。

${CC} ${FLAGS} –o $@ main.o prime.o main.o:main.c

${CC} ${FLAGS} –c @^ prime.o:prime.c ${CC} ${FLAGS} –c @^

clean: rm –f ${EXEC} main.o prime.o

test: ./${EXEC}