数“x”所代表的整数是否为素数。以 GCC 对该程序进行编译,编译时可以加不同的参数,然后运行。答: #include <stdio.h> 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( ”%8d ”,x); } return 0; } 2. 利用 GDB 工具对上述程序进行调试,并观察程序中变量的变化过程。答案略。 3. 将上述程序的源代码分散在两个文件中, 其中一个文件包含 main () 函数, 另一个文件包含 prime ()函数。编写 makefile 文件实现对这两个文件的编译。修改其中一个文件后,再进行编译,观察 make 的输出信息。答: makefile 文件为: # Print prime number between 3000 and 5000. CC = gcc # 的值为 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}