1、C语言集中上机实验报告C语言集中上机实验报告学 生: 学 号: 班 级: 专 业: 通信工程 重庆邮电大学移通学院 2012年6月目 录第一章 循 环 31.1 实验目的 31.2 实验要求 31.3 实验基本内容 31.3.1 题目一 3第二章 数 组 42.1 实验目的 42.2 实验要求 42.3 实验基本内容 4第三章 函 数 113.1 实验目的 113.2 实验要求 113.3 实验基本内容 11第四章 指 针 124.1 实验目的 124.2 实验要求 124.3 实验基本内容 12集中上机总结 15第一章 循 环1.1 实验目的 (1)掌握一维数组和二维数组的定义、赋值和输入输
2、出的方法(2)掌握字符数组和字符串函数的使用;(3)掌握与数组有关的算法。1.2 实验要求 (1) 在报告中记录建立、保存C程序实习过程。(2) 完成典型题目,分析遇到的困难和实验中的收获。1.3 实验基本内容 1.31题目一编程,猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,有多吃了一个。第二天早上将剩余的桃子吃了一半,有多吃了一个。以后每天早上都吃了前一天的一多半多一个。到第十天早上想再吃的时候,只剩一个桃子了。求第一天共多少个桃子?解答:#include void main() long int i=1,k;/i为桃子数,k为天数 long int j;for(i=1;
3、i100000;i+) j=i; if(j%2=0) for(k=1;k10;k+) j=j/2-1; if(j=1)/判断最后一天的桃子数是否为一个。 goto aa; aa:printf(%d,i); 运行结果:第二章 数 组2.1 实验目的 (1) 掌握一维数组和二维数组的定义、赋值和输入输出的方法(2) 掌握字符数组和字符串函数的使用;(3) 掌握与数组有关的算法。2.2 实验要求 (1) 在报告中记录建立、保存C程序实习过程。(2) 完成典型题目,分析遇到的困难和实验中的收获。2.3 实验基本内容2.31题目一编程:如何求n点之间最短的距离?解答#include #include #
4、include #define MVNum 100#define Maxint 32767enum booleanFALSE,TRUE;typedef char VertexType;typedef int Adjmatrix;typedef struct VertexType vexsMVNum; Adjmatrix arcsMVNumMVNum;MGraph;int D1MVNum,P1MVNum;int DMVNumMVNum,PMVNumMVNum;void CreateMGraph(MGraph * G,int n,int e) int i,j,k,w; for(i=1;ivexsi
5、=(char)i; for(i=1;i=n;i+) for(j=1;jarcsij=Maxint; printf(输入%d条边的i,j及w:n,e); for(k=1;karcsij=w; printf(有向图的存储结构建立完毕!n);void Dijkstra(MGraph *G,int v1,int n) int D2MVNum,P2MVNum; int v,i,w,min; enum boolean SMVNum; for(v=1;varcsv1v; if(D2vMaxint) P2v=v1; else P2v=0; D2v1=0;Sv1=TRUE; for(i=2;in;i+) min
6、=Maxint; for(w=1;w=n;w+) if(!Sw & D2wmin) v=w;min=D2w; Sv=TRUE; for(w=1;warcsvwarcsvw; P2w=v; printf(路径长度 路径n); for(i=1;i=n;i+) printf(%5d,D2i); printf(%5d,i); v=P2i; while(v!=0) printf(-%d,v); v=P2v; printf(n); void Floyd(MGraph *G,int n) int i,j,k; for(i=1;i=n;i+) for(j=1;jarcsij!=Maxint) Pij=j; e
7、lse Pij=0; Dij=G-arcsij; for(k=1;k=n;k+) for(i=1;i=n;i+) for(j=1;j=n;j+) if(Dik+Dkj%d,k); k=Pkw; printf(-%d,w); printf(路径长度: %dn,Dvw); else if(xz=1) printf(求单源路径,输入源点 v: ); scanf(%d,&v); Dijkstra(G,v,n); printf(结束求最短路径,再见!n);运行结果:第三章 函 数3.1 实验目的 (1) 掌握定义函数的方法;(2) 掌握函数实参与形参的对应关系以及“值传递”的方式;(3) 掌握函数的嵌套
8、调用和递归调用的方法;(4) 掌握全局变量和局部变量动态变量、静态变量的概念和使用方法。(5) 学习对多文件程序的编译和运行。3.2 实验要求 (1) 在报告中记录建立、保存C程序实习过程。(2) 完成典型题目,分析遇到的困难和实验中的收获。3.3 实验基本内容3.31题目一编程:输出Fibonacci数列1, 1, 2, 3, 5, 8, .的前20个数,每行输出5个。要求用递归函数计算Fibonacci数列。解答:#include stdio.hlong Fibo(int n)if(n=1|n=2)return 1;else return Fibo(n-1)+Fibo(n-2);/*主函数
9、*/void main()int N=20;int n;printf( 斐波那契数列前十五项打印如下:n);for(n=1;n=N;n+)printf(t%ldt,Fibo(n);/*每隔五个换一行*/if (n%5=0)printf(n);运行结果:第四章 指 针4.1 实验目的 (1) 掌握指针的概念,掌握定义和使用指针变量的方法。(2) 掌握使用数组的指针和指向数组的指针变量。(3) 掌握使用字符串的指针和指向字符串的指针变量。(4) 学习对多文件程序的编译和运行。4.2 实验要求 (1) 在报告中记录建立、保存C程序实习过程。(2) 完成典型题目,分析遇到的困难和实验中的收获。4.3
10、实验基本内容4.31题目一编程:定义一个储存10个元素的数组并赋值,将数组前5个元素按照由小到大.后5个元素由大到小的顺序一起输出。解答#include stdio.hvoid main() int a10=2,5,4,9,1,3,6,7,0,8; int i,j,k; int t; for(i=0;i5;i+) k=i; for(j=i;jaj) k=j; if(k!=i) t=ai; ai=ak; ak=t; for(i=5;i10;i+) k=i; for(j=i;j10;j+) if(akaj) k=j; if(k!=i) t=ai; ai=ak; ak=t; for(i=0;i10;
11、i+) printf(%d,ai); printf(n);运行结果集中上机总结 经过短短的一周对c语言的学习不仅学到了课本上的知识还学了以前没有学过的东西。在电子信息技术高速发展的当今社会,互联网已经成为了联系世界各国的桥桥梁和纽带,成为了人们快速获取信息、发布信息和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用。因此,网站建设的地位就显而易见了。它已经成为了政府、企事业单位信息化建设的重要组成部分,备受人们的关注。计算机将具备更多的智能成分,它将具有多种感知能力、一定思考能力与判断能力及一定的自然语言能力。除了提供自然的输入手段(如手写输入、语音输入)外,让人们能产生身临其境的感觉的各种交互设备已经出现,将虚拟的电子技术现实化,在这里得到了集中体现。今天,人们谈到计算机必然把它同网络技术联系起来,孤立的未加入网络技术的计算机已经越来越少了。人们通过网络,可以更多的共享计算机硬件资源、软件资源和信息资源。“网络就是计算机”的概念,已经被人们逐渐接受。通过本次实习,我认识到自己的计算机只是还很缺乏,有许多知识都还不是很清楚,等遇到要用的时候,还需要去翻书才能了解。相信在以后的工作和学习中,我会努力学习,克服困难,把自己的计算机技术学好,适应这个社会的发展,成为一个合格的大学生。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1