C语言集中上机实验报告.docx

上传人:b****6 文档编号:5812891 上传时间:2023-01-01 格式:DOCX 页数:13 大小:68.94KB
下载 相关 举报
C语言集中上机实验报告.docx_第1页
第1页 / 共13页
C语言集中上机实验报告.docx_第2页
第2页 / 共13页
C语言集中上机实验报告.docx_第3页
第3页 / 共13页
C语言集中上机实验报告.docx_第4页
第4页 / 共13页
C语言集中上机实验报告.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

C语言集中上机实验报告.docx

《C语言集中上机实验报告.docx》由会员分享,可在线阅读,更多相关《C语言集中上机实验报告.docx(13页珍藏版)》请在冰豆网上搜索。

C语言集中上机实验报告.docx

C语言集中上机实验报告

 

C语言集中上机实验报告

学生:

学号:

班级:

专业:

通信工程

重庆邮电大学移通学院

2012年6月

目录

第一章循环3

1.1实验目的3

1.2实验要求3

1.3实验基本内容3

1.3.1题目一3

第二章数组4

2.1实验目的4

2.2实验要求4

2.3实验基本内容4

第三章函数11

3.1实验目的11

3.2实验要求11

3.3实验基本内容11

第四章指针12

4.1实验目的12

4.2实验要求12

4.3实验基本内容12

集中上机总结15

第一章循环

1.1实验目的

(1)掌握一维数组和二维数组的定义、赋值和输入输出的方法

(2)掌握字符数组和字符串函数的使用;

(3)掌握与数组有关的算法。

1.2实验要求

(1)在报告中记录建立、保存C程序实习过程。

(2)完成典型题目,分析遇到的困难和实验中的收获。

1.3实验基本内容

1.31题目一

编程,猴子吃桃问题:

猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,有多吃了一个。

第二天早上将剩余的桃子吃了一半,有多吃了一个。

以后每天早上都吃了前一天的一多半多一个。

到第十天早上想再吃的时候,只剩一个桃子了。

求第一天共多少个桃子?

解答:

#include

voidmain()

{

longinti=1,k;//i为桃子数,k为天数

longintj;

for(i=1;i<100000;i++)

{j=i;

if(j%2==0)

{

for(k=1;k<10;k++)

{j=j/2-1;

}

if(j==1)//判断最后一天的桃子数是否为一个。

gotoaa;

}

}

aa:

printf("%d",i);

}

运行结果:

第二章数组

2.1实验目的

(1)掌握一维数组和二维数组的定义、赋值和输入输出的方法

(2)掌握字符数组和字符串函数的使用;

(3)掌握与数组有关的算法。

2.2实验要求

(1)在报告中记录建立、保存C程序实习过程。

(2)完成典型题目,分析遇到的困难和实验中的收获。

2.3实验基本内容

2.31题目一

编程:

如何求n点之间最短的距离?

解答

#include

#include

#include

#defineMVNum100

#defineMaxint32767

enumboolean{FALSE,TRUE};

typedefcharVertexType;

typedefintAdjmatrix;

typedefstruct

{

VertexTypevexs[MVNum];

Adjmatrixarcs[MVNum][MVNum];

}MGraph;

intD1[MVNum],P1[MVNum];

intD[MVNum][MVNum],P[MVNum][MVNum];

 

voidCreateMGraph(MGraph*G,intn,inte)

{

inti,j,k,w;

for(i=1;i<=n;i++)

G->vexs[i]=(char)i;

for(i=1;i<=n;i++)

for(j=1;j<=n;j++)

G->arcs[i][j]=Maxint;

printf("输入%d条边的i,j及w:

\n",e);

for(k=1;k<=e;k++)

{

scanf("%d,%d,%d",&i,&j,&w);

G->arcs[i][j]=w;

}

printf("有向图的存储结构建立完毕!

\n");

}

 

voidDijkstra(MGraph*G,intv1,intn)

{

intD2[MVNum],P2[MVNum];

intv,i,w,min;

enumbooleanS[MVNum];

for(v=1;v<=n;v++)

{

S[v]=FALSE;

D2[v]=G->arcs[v1][v];

if(D2[v]

P2[v]=v1;

else

P2[v]=0;

}

D2[v1]=0;S[v1]=TRUE;

for(i=2;i

{

min=Maxint;

for(w=1;w<=n;w++)

if(!

S[w]&&D2[w]

{

v=w;min=D2[w];

}

S[v]=TRUE;

for(w=1;w<=n;w++)

if(!

S[w]&&(D2[v]+G->arcs[v][w]

{

D2[w]=D2[v]+G->arcs[v][w];

P2[w]=v;

}

}

printf("路径长度路径\n");

for(i=1;i<=n;i++){

printf("%5d",D2[i]);

printf("%5d",i);

v=P2[i];

while(v!

=0)

{

printf("<-%d",v);

v=P2[v];

}

printf("\n");

}

}

voidFloyd(MGraph*G,intn)

{

inti,j,k;

for(i=1;i<=n;i++)

for(j=1;j<=n;j++)

{

if(G->arcs[i][j]!

=Maxint)

P[i][j]=j;

else

P[i][j]=0;

D[i][j]=G->arcs[i][j];

}

for(k=1;k<=n;k++)

{

for(i=1;i<=n;i++)

for(j=1;j<=n;j++)

{

if(D[i][k]+D[k][j]

{

D[i][j]=D[i][k]+D[k][j];

P[i][j]=P[i][k];

}

}

}

}

voidmain()

{

MGraph*G;

intn,e,v,w,k;

intxz=1;

G=(MGraph*)malloc(sizeof(MGraph));

printf("输入图中顶点个数和边数n,e:

");

scanf("%d,%d",&n,&e);

CreateMGraph(G,n,e);

while(xz!

=0)

{

printf("******求点间的最短路径******\n");

printf("================================\n");

printf("1.求一个点所有点最短路径\n");

printf("2.求任意的两个点间的最短路径\n");

printf("================================\n");

printf("请选择:

1或2,选择0退出:

");

scanf("%d",&xz);

if(xz==2)

{

Floyd(G,n);

printf("输入源点(或称起点)和终点:

v,w:

");

scanf("%d,%d",&v,&w);

k=P[v][w];

if(k==0)

printf("顶点%d到%d无路径!

\n",v,w);

else

{

printf("从顶点%d到%d的最短路径是%d\n",v,w,v);

while(k!

=w)

{

printf("->%d",k);

k=P[k][w];

}

printf("->%d",w);

printf("路径长度:

%d\n",D[v][w]);

}

}

else

if(xz==1)

{

printf("求单源路径,输入源点v:

");

scanf("%d",&v);

Dijkstra(G,v,n);

}

}

printf("结束求最短路径,再见!

\n");

}

运行结果:

第三章函数

3.1实验目的

(1)掌握定义函数的方法;

(2)掌握函数实参与形参的对应关系以及“值传递”的方式;

(3)掌握函数的嵌套调用和递归调用的方法;

(4)掌握全局变量和局部变量动态变量、静态变量的概念和使用方法。

(5)学习对多文件程序的编译和运行。

3.2实验要求

(1)在报告中记录建立、保存C程序实习过程。

(2)完成典型题目,分析遇到的困难和实验中的收获。

3.3实验基本内容

3.31题目一

编程:

输出Fibonacci数列1,1,2,3,5,8,…...的前20个数,每行输出5个。

要求用递归函数计算Fibonacci数列。

解答:

#include"stdio.h"

longFibo(intn)

{

if(n==1||n==2)

return1;

else

returnFibo(n-1)+Fibo(n-2);

}

/*主函数*/

voidmain()

{

intN=20;

intn;

printf("斐波那契数列前十五项打印如下:

\n");

for(n=1;n<=N;n++)

{

printf("\t%ld\t",Fibo(n));

/*每隔五个换一行*/

if(n%5==0)

printf("\n");

}

}

运行结果:

第四章指针

4.1实验目的

(1)掌握指针的概念,掌握定义和使用指针变量的方法。

(2)掌握使用数组的指针和指向数组的指针变量。

(3)掌握使用字符串的指针和指向字符串的指针变量。

(4)学习对多文件程序的编译和运行。

4.2实验要求

(1)在报告中记录建立、保存C程序实习过程。

(2)完成典型题目,分析遇到的困难和实验中的收获。

4.3实验基本内容

4.31题目一

编程:

定义一个储存10个元素的数组并赋值,将数组前5个元素按照由小到大.后5个元素由大到小的顺序一起输出。

解答

#include"stdio.h"

voidmain()

{

inta[10]={2,5,4,9,1,3,6,7,0,8};

inti,j,k;

intt;

for(i=0;i<5;i++)

{

k=i;

for(j=i;j<5;j++)

if(a[k]>a[j])

k=j;

if(k!

=i)

{

t=a[i];

a[i]=a[k];

a[k]=t;

}

}

for(i=5;i<10;i++)

{

k=i;

for(j=i;j<10;j++)

if(a[k]

k=j;

if(k!

=i)

{

t=a[i];

a[i]=a[k];

a[k]=t;

}

}

for(i=0;i<10;i++)

printf("%d,",a[i]);

printf("\n");

}

运行结果

集中上机总结

经过短短的一周对c语言的学习不仅学到了课本上的知识还学了以前没有学过的东西。

在电子信息技术高速发展的当今社会,互联网已经成为了联系世界各国的桥桥梁和纽带,成为了人们快速获取信息、发布信息和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用。

因此,网站建设的地位就显而易见了。

它已经成为了政府、企事业单位信息化建设的重要组成部分,备受人们的关注。

计算机将具备更多的智能成分,它将具有多种感知能力、一定思考能力与判断能力及一定的自然语言能力。

除了提供自然的输入手段(如手写输入、语音输

入)外,让人们能产生身临其境的感觉的各种交互设备已经出现,将虚拟的电子技术现实化,在这里得到了集中体现。

今天,人们谈到计算机必然把它同网络技术联系起来,孤立的未加入网络技术的计算机已经越来越少了。

人们通过网络,可以更多的共享计算机硬件资源、软件资源和信息资源。

“网络就是计算机”的概念,已经被人们逐渐接受。

通过本次实习,我认识到自己的计算机只是还很缺乏,有许多知识都还不是很清楚,等遇到要用的时候,还需要去翻书才能了解。

相信在以后的工作和学习中,我会努力学习,克服困难,把自己的计算机技术学好,适应这个社会的发展,成为一个合格的大学生。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1