C语言实验报告.docx
- 文档编号:27471950
- 上传时间:2023-07-01
- 格式:DOCX
- 页数:8
- 大小:17.43KB
C语言实验报告.docx
《C语言实验报告.docx》由会员分享,可在线阅读,更多相关《C语言实验报告.docx(8页珍藏版)》请在冰豆网上搜索。
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.指导教师评语及成绩: 指导教师依据学生的实际报告内容,用简练语言给出本次实验报告的评价和价值。 注意: ∙实验报告将记入实验成绩; ∙每次实验开始时,交上一次的实验报告,否则将扣除此次实验成绩。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 实验 报告