C语言实验报告.docx

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

C语言实验报告.docx

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

C语言实验报告.docx

C语言实验报告

 

中央财经大学

实验报告

 

实验项目名称C语言程序设计

所属课程名称指针

实验类型设计型实验

实验日期2012-12-19

 

班级信息12

学号2012312255

姓名吴桐

成绩

 

实验室:

6号楼302

实验概述:

利用指针完成相应程序设计

【实验目的及要求】

1.理解指针的基本个概念,掌握各种指针变量的定义方法及指针变量的基本运算规则。

2.掌握运用指针进行数组操作的方法。

3.掌握指针类型数据作函数参数时的数据传递方法。

【实验环境】(使用的软件)TurboC

实验内容:

【实验方案设计】(题目及程序清单)

(1)定义一个函数voidsort(inta[],intn),用选择法对数组a中的元素排序,并定义main函数调用sort函数。

#include

#defineN10

voidsort(inta[],intn)

{

inti,j,min,m,t;

for(i=1;i

{min=*(a+i-1);

for(j=i;j

if(*(a+j)

{min=*(a+j);

t=j;}

m=*(a+i-1);

*(a+i-1)=*(a+t);

*(a+t)=m;}

}

voidmain()

{

inta[N],t;

for(t=0;t

scanf("%d",&a[t]);

printf("\n");

sort(a,N);

for(t=0;t

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

printf("\n");

}

(2)写一个函数,求方阵的行、列、斜对角线之和。

#include

#defineN5

voidadding(int(*p)[N])

{introw[N]={0},col[N]={0},cross[2]={0},i,j;

for(i=0;i

{for(j=0;j

{row[i]+=*(*(p+i)+j);

col[j]+=*(*(p+i)+j);}

cross[0]+=*(*(p+i)+i);

cross[1]+=*(*(p+i)+N-1-i);}

for(i=0;i

printf("row[%d]=%d\ncol[%d]=%d\n",i,row[i],i,col[i]);

printf("cross[0]=%d\ncross[1]=%d\n",cross[0],cross[1]);

}

voidmain()

{inta[N][N],i,j;

for(i=0;i

for(j=0;j

scanf("%d",&a[i][j]);

adding(a);

}

(3)写一个函数,使给定的一个二维整型数组(3X3)转置,即行列互换。

#include

#defineN3

voidallswap(int(*p)[3])

{intt,i,j;

for(i=0;i

for(j=i+1;j

{t=*(*(p+i)+j);

*(*(p+i)+j)=*(*(p+j)+i);

*(*(p+j)+i)=t;}

}

voidmain()

{

inta[N][N],i,j;

for(i=0;i

for(j=0;j

scanf("%d",&a[i][j]);

printf("\n");

allswap(a);

for(i=0;i

{for(j=0;j

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

printf("\n");}

}

(4)编写函数,对传送过来的3个数选出最大值和最小值,并通过形参传回调用函数。

#include

voidswap(float*pa,float*pb)

{

floatt;

t=*pa;

*pa=*pb;

*pb=t;

}

voidchoose(float*p1,float*p2,float*p3)

{

if(*p1>*p2)swap(p1,p2);

if(*p1>*p3)swap(p1,p3);

if(*p2>*p3)swap(p2,p3);

}

voidmain()

{

floata,b,c;

scanf("%f%f%f",&a,&b,&c);

choose(&a,&b,&c);

printf("minimum:

%f\nmaximum:

%f",a,c);

}

【实验过程】(实验步骤、记录、数据、分析)

1.运行TurboC

2.新建源程序

3.编写程序

4.编译程序,发现错误并改正

5.使用连接程序进行程序的连接

6.运行程序

7.将运行结果与正确结果对照,进一步完善程序

二.将运行的程序复制到U盘里,并记录实验结果

三.完成实验报告

【结论】(结果)

(1)5231687904

0123456789

(2)12345

67890

32572

87964

34285

Row[0]=15

Col[0]=21

Row[1]=30

Col[1]=22

Row[2]=19

Col[2]=27

Row[3]=34

Col[3]=34

Row[4]=22

Col[4]=16

Cross[0]=24

Cross[1]=27

(3)123

456

789

147

258

369

(4)462

Minimum:

2.000000

Maximum:

6.000000

【小结】

1、永远记住指针变量指向哪里、指向变量的内容、不要使用未赋值的指针变量。

2、*和&可以说是互为逆运算的运算符,因此,*&a和&*a都等于a。

3、不能直接给指针变量赋一个整数,例如:

p1=0xffff;此赋值语句是错误的。

4、不可以用*去引用已赋0值的指针变量。

例如:

p1=0;*p1=10;此时就是错误的!

5、注意花括号的应用!

在本次实验中,在compile的过程中我出现了几次结果与预期不符的情况,多是由于在使用for循环时将花括号编写在了不正确的位置,导致循环次数或循环对象错误。

这是深刻教训,今后在编程时,一定要注意“桌前检查”,带入数据将循环走一次,才能有效减少错误量,更加节省时间。

6、当定义指向由m个元素组成的一维数组的指针变量时(数据类型(*指针变量名)[常量表达式]),要注意常量表达式的值。

由于此时定义的指针是行指针,常量表达式的值决定了一行元素的个数,如果与题给条件不符的话,很可能出现warning的情况。

指导教师评语及成绩:

评语:

成绩:

指导教师签名:

批阅日期:

实验报告说明

1.实验项目名称:

要用最简练的语言反映实验的内容。

要求与实验指导书中相一致。

2.实验类型:

一般需说明是验证型实验还是设计型实验,是创新型实验还是综合型实验。

3.实验目的与要求:

目的要明确,要抓住重点,符合实验指导书中的要求。

4.实验原理:

简要说明本实验项目所涉及的理论知识。

5.实验环境:

实验用的软硬件环境(配置)。

6.实验方案设计(思路、步骤和方法等):

这是实验报告极其重要的内容。

概括整个实验过程。

对于操作型实验,要写明依据何种原理、操作方法进行实验,要写明需要经过哪几个步骤来实现其操作。

对于设计型和综合型实验,在上述内容基础上还应该画出流程图、设计思路和设计方法,再配以相应的文字说明。

对于创新型实验,还应注明其创新点、特色。

7.实验过程(实验中涉及的记录、数据、分析):

写明具体上述实验方案的具体实施,包括实验过程中的记录、数据和相应的分析。

8.结论(结果):

即根据实验过程中所见到的现象和测得的数据,做出结论。

9.小结:

对本次实验的心得体会、思考和建议。

10.指导教师评语及成绩:

指导教师依据学生的实际报告内容,用简练语言给出本次实验报告的评价和价值。

注意:

∙实验报告将记入实验成绩;

∙每次实验开始时,交上一次的实验报告,否则将扣除此次实验成绩。

 

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

当前位置:首页 > 高等教育 > 艺术

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

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