Linux课程大作业(共21页).doc
《Linux课程大作业(共21页).doc》由会员分享,可在线阅读,更多相关《Linux课程大作业(共21页).doc(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上Linux课程设计报告 题 目 Linux课程大作业院 系 班 级 姓 名 指导教师 一、基础篇(给出源程序和编译运行的结果)1、 编写一个简单的c语言程序:根据输入的两个整数求平均值并且在终端输出,通过gcc编译器得到它的汇编程序文件。源代码(c):#includedouble average( int m,int n)return (m+n)/2.0;int main(void)int m,n=0; printf(请输入两个数,回车分割n); scanf(%d,&m); scanf(%d,&n); printf(%d与%d的平均值是:%lfn,m,n,averag
2、e(m,n);源代码(汇编):.filesum.c.text.globlaverage.typeaverage, functionaverage:.LFB0:.cfi_startprocpushl%ebp.cfi_def_cfa_offset 8.cfi_offset 5, -8movl%esp, %ebp.cfi_def_cfa_register 5subl$8, %espmovl12(%ebp), %eaxmovl8(%ebp), %edxaddl%edx, %eaxmovl%eax, -4(%ebp)fildl-4(%ebp)fldl.LC0fdivrp%st, %st(1)leave.
3、cfi_restore 5.cfi_def_cfa 4, 4ret.cfi_endproc.LFE0:.sizeaverage, .-average.section.rodata.align 4.LC2:.string350257267350276223345205245344270244344270252346225260357274214345233236350275246345210206345211262.LC3:.string%d.LC4:.string%d344270216%d34723220434527126334523520734520027434623025735727423
4、2%lfn.text.globlmain.typemain, functionmain:.LFB1:.cfi_startprocpushl%ebp.cfi_def_cfa_offset 8.cfi_offset 5, -8movl%esp, %ebp.cfi_def_cfa_register 5andl$-16, %espsubl$48, %espmovl$0, 44(%esp)movl$.LC2, (%esp)callputsmovl$.LC3, %eaxleal40(%esp), %edxmovl%edx, 4(%esp)movl%eax, (%esp)call_isoc99_scanfm
5、ovl$.LC3, %eaxleal44(%esp), %edxmovl%edx, 4(%esp)movl%eax, (%esp)call_isoc99_scanfmovl44(%esp), %edxmovl40(%esp), %eaxmovl%edx, 4(%esp)movl%eax, (%esp)callaveragemovl44(%esp), %ecxmovl40(%esp), %edxmovl$.LC4, %eaxfstpl12(%esp)movl%ecx, 8(%esp)movl%edx, 4(%esp)movl%eax, (%esp)callprintfleave.cfi_rest
6、ore 5.cfi_def_cfa 4, 4ret.cfi_endproc.LFE1:.sizemain, .-main.section.rodata.align 8.LC0:.long0.long.identGCC: (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3.section.note.GNU-stack,progbits执行结果:2、 编写一个c语言程序:打印输出所有“水仙花数”,用gdb调试程序(给出步骤,至少十步以上)。所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如,153是一水仙花数,因为153=1+5+3。源代码:#includei
7、nt isnumber(int number) int ge=(number%100)%10; int shi=(number/10)%10; int bai=(number/100); printf(%dn,ge); printf(%dn,shi); printf(%dn,bai); int temp=ge*ge*ge+shi*shi*shi+bai*bai*bai; if(temp=number) return 1; elsereturn 0;int main()int number=0;printf(input number!n);scanf(%d,&number);if(number1
8、000&number0)printf(number limits outbounds!n);if(isnumber(number)printf(number is format!n);elseprintf(number is not format!n);return 0;执行结果:3、 设计一个程序,要求输出n个整数(n也由键盘输入)中的最大值,并为它编写makefile文件,用make编译后修成返回最小值,再编译,观察有多少文件不需要重新编译。源代码:max.cdouble max(double m,double n)if(mn) return n; elsereturn m; main.c
9、#include#includedefine.hint main(void)double m,n=0; printf(请输入两个实数、n); scanf(%lf,&m); scanf(%lf,&n); printf(%lf与%lf最大值是:%lfn,m,n,max(m,n);define.hdouble max(double m,double n);makefile文件:test:max.o main.ogcc max.o main.o -o testmain.o:main.c define.hgcc main.c -cmax.o:max.cgcc max.c -c结果图: 改变程序后,只有m
10、ax.c,main.c文件程序需要重新编译;4、 编写一个程序,求2-n间的素数,n由键盘输入,循环变量分别从2到n、2到(int)sqrt(n),分别测出两个循环的所用时间。源代码:#include stdio.h#include math.hint main()int t1=0,t2=0;int n;int j,k,j2,k2;int i,i2;printf(输入的值:);scanf(%d,&n);for(i=2;i=n;i+)t1+;k=sqrt(i);for(j=2;j=k+1)printf(%d是素数n,i);printf(nn循环时间%d,t1);for(i2=2;i2=(int)
11、sqrt(n);i2+)t2+;k2=sqrt(i2);for(j2=2;j2=k+1)printf(%d是素数n,i2);printf(nsqrt(n)循环时间%dn,t2);return 0;编译运行效果:5、设计一个程序,要求将10分别以十进制、八进制和十六进制输出。程序设计:#includeint main()int number=10;printf(十进制值:%dn,number);printf(八进制值:%on,number);printf(十六进制值:%xn,number); 运行结果:一、 提高篇(三选二,划出程序流程图,给出程序源代码和编译运行的结果)1、 设计两个程序,要求
12、用命名管道FIFO,实现简单的文本文件或图片文件的传输功能。流程图: 源代码:send.c#include #include #include #include #include #include #include #include int main()char s128;int fd;FILE *fp;fp = fopen(./a.txt, r);mkfifo(/tmp/fifo.tst, 0644);fd = open(/tmp/fifo.tst, O_WRONLY);while(fgets(s, 127, fp) != NULL) write(fd, s, strlen(s);print
13、f(%s,s);close(fd);fclose(fp);unlink(/tmp/fifo.tst);return 0;get.c/*get.c*/#include #include #include #include #include #include #include #include int main()char s128;int fd = open(/tmp/fifo.tst, O_RDONLY);int fd2 = open(./b.txt, O_CREAT|O_WRONLY);memset(s, 0, 128); while(read(fd, s, 128) 0) printf(%
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linux 课程 作业 21
限制150内