实验报告-实验2-指针(1540707103-周家尧).doc

实验报告-实验2-指针(1540707103-周家尧).doc

ID:57417734

大小:53.50 KB

页数:4页

时间:2020-08-16

实验报告-实验2-指针(1540707103-周家尧).doc_第1页
实验报告-实验2-指针(1540707103-周家尧).doc_第2页
实验报告-实验2-指针(1540707103-周家尧).doc_第3页
实验报告-实验2-指针(1540707103-周家尧).doc_第4页
资源描述:

《实验报告-实验2-指针(1540707103-周家尧).doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验报告_实验2指针(2)(_周家尧)一、实验目的:1、掌握指针变量p的算术运算:p±n(n为整数)、p++(p--)、++p(--p),理解移动一个数据单位的真实含义;2、能够用数组名或指针变量作函数形参,在函数中实现对数据的批量处理。3、熟悉二维数组“行指针”、“列指针”的类型,加减1所移动的字节数,以及如何利用它们来存取数组元素。二、实验内容2、(基础题)使用指针编程实现:输入3个正整数,按由小到大顺序输出。程序运行结果如下所示:(提示:可以调用swap(int*x,int*y)来实现)程序代码:#includeintmain(void){inta,b

2、,c;printf("请输入三个整数");scanf("%d%d%d",&a,&b,&c);swap(&a,&b);swap(&a,&c);swap(&b,&c);printf("由小到大的顺序输出为:");printf("%d,%d,%d",a,b,c);return0;}swap(int*x,int*y){intt;if(*x>*y){t=*x;*x=*y;*y=t;}}3、(基础题)分析、运行下列程序,理解二维数组“行指针”、“列指针”的类型,加减1所移动的字节数,熟悉二维数组元素的间接访问方法,并回答相关问题:问题:(1)二维数组a的“行指针”的类型是什么?加

3、减1所移动的字节数是多少?列举2个该类型指针的例子;1、int(*)[5];2、20;3、inta[4][5],intb[3][4][5];此时,a、b[0]为该类型指针;(2)二维数组a的“列指针”的类型是什么?加减1所移动的字节数是多少?列举2个该类型指针的例子;1、int*;2、4;3、inta[4][5];此时,a[0]、a[1]为该类型指针(3)二维数组a的“列指针”与“行指针”有什么联系?a+i与a[i]、*(a+i)、&a[i]有什么关系?1、二维数组a的“列指针”在数值上与“行指针”的首地址相同,但代表的意义不同,“行指针”在进行加减运算时,每加一跳到下一行,

4、而“列指针”在进行加减运算时,每加一跳到下一列。2、a+i代表二维数组a的i行的首地址,与&a[i]相同;a[i]代表代表二维数组ai行0列的元素地址,就是*(a+i);(4)列出a[i][j]地址的4种写法。&a[i][j]a[i]+j*(a+i)+j4、&(*(a+i))[j]4、(提高题)编程实现:在主函数中定义一个有10个元素的float数组,并赋值。该程序还包含两个函数:(1)voidchange(float*x,intk)的功能是让该数组中的前k个元素值为0;(2)voidprint(float*x,intn)的功能是输出该数组中的所有元素;请在主函数中分别调用这

5、两个函数,验证是否实现所要求功能。程序代码:#includevoidchange(float*x,intk){inti;for(i=0;i

6、d",&n);print(f,n);return0;}

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。