ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:126.82KB ,
资源ID:16645790      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16645790.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第9章指针实验1Word下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

第9章指针实验1Word下载.docx

1、 pi = & pj = pi;3.1画出变量i、pi和pj的形象状态图。3.2对于变量i所标识的存储单元,现在有几种使用途径?3.3分析下面语句的输出并编程验证。 *pj = i + *pi;%d,%d,%dn, i, *pi, *pj);4.分析并比较下面三个程序的输出。4.1#include void main( ) int i = 3, j = 2; int *pi, *pj, *ptemp; pj = &j;%d,%dn, i, j);, *pi, *pj); ptemp = pi; pi = pj; pj= ptemp;4.2 int i = 3, j = 2, temp; int

2、 *pi, *pj; temp = *pi; *pi = *pj; *pj= temp;4.3 temp = i; i = j; j= temp;5有int *pi;,如何评价语句pi=π?实验9-2 空指针进一步理解指针变量的作用。1.分析讨论下面程序的说法。使用指针变量有两个步骤。第一步:通过赋值(初始化)操作使指针变量指向某存储单元。(如int i, *pi=&或pi=&或pi=pj;等)第二步:通过间接引用操作符使用指针变量指向的存储单元。(如printf(%d, *pi);或*pi=5;2.指出并改正下面程序中的错误。 float f = 2.3, *pf; *pf = *pf

3、 * *pf;%f,%dn, f, *pf);3.分析下面的程序。3.1 #include NULL) printf(%d是正数!n, i); else%d是非正数!分析:1)3.1和3.2两个程序有何区别?2)如何评价程序3.3?0与NULL相同吗?通常如何使用?4.(练习9.13)已知整型指针变量pa,pb,pc分别指向整型变量a,b,c。按下面要求编程。4.1使用指针交换a,b,c的值,使变量a,b,c按升序排列。(指针指向的对象不变,即pa一直指向a。)4.2变量a,b,c的值不变,但pa,pb,pc指向的变量按升序排列(即pa指向值最小的变量。实验9-3 函数的形参为指针变量理解地址

4、传递的特点,掌握指针为形参时的用法。1.分析求两个整数和的函数。1.1程序如下:int add(int x, int y) int z; z = x + y; return z;void main() int a = 23, b = -5; int c; c = add(a, b);%d + %d = %dn, a, b, c);如图1所示,C语言中函数调用最重要的特点是 传值调用 。图1 函数的传值调用1.2程序如下:int add(int *x, int *y) z = *x + *y; c = add( &a , & b );1)把程序补充完整。使用函数调用add(a, b)可以吗?为什

5、么?2)使用函数调用add(&a, &b)可以吗?假设此时变量a和b的地址分别为0x0012ff7c和0x0012ff78,把图2补充完整。图2 函数的传值调用指针变量x的内容为变量a的地址,也就是说指针变量x指向了变量a,使用*x也可以访问变量a所标识的存储单元了。3)为什么可以在add函数中使用main函数中的变量a?答:这个问题有问题!add函数中不可以使用变量a,在add函数中只是使用了变量a所标识的存储单元!只要存储单元归程序所有就可以通过指针使用它!2.分析下面的程序。void change(float *pf) *pf = 5.23; float fa = 2.3;%fn, fa

6、); change(&fa);change函数为何可以改变main函数中局部变量fa的值?3.根据指针做参数的特点,改写add函数使其返回值为void,其首部为void add(int x, int y, int *pSum)。1)改写后的函数如何使用?2)与实验7-5中的add函数相比有何差异?3)C语言中所有的函数都可以没有返回值吗?4.scanf函数为何可以改变“实参”的值?4.1当用户输入23回车时,下面的程序有何输出? int i, *pi = &, pi);, i, *pi);4.2分析下面的程序。char buffer100 = 23n;void scanInt(int *p)

7、int value = 0; int i = 0; while(bufferi != n value = value * 10 + (bufferi - 0); +i; *p = value; scanInt(&%dn实验9-4 函数的返回值为指针变量进一步理解野指针。1.分析下面的程序(例9-9)。int *test( ) int i = 5, *pi = & return pi;void test2( ) int j = 3; int *pj; pj = test( ); test2( );, *pj);程序的输出结果为3,不是5,为什么?2.比较下面两个程序。2.1void test(i

8、nt *pi) *pi = 5; int *p; test(p);程序中其它功能n2.2 if(pi = NULL)错误!实参为空指针! return; int *p = NULL;1)两个程序中有语法错误吗?第一个程序会出现错误,非法访问!第二个*pi = 5有语法错误。2)两个程序运行结果相同吗?第一个出现非法访问第二个是:注意:在函数中检测指针参数是否为空指针会提高代码的健壮性。负责的程序员必须保证指针变量指向合法的地址。实验9-5 指针变量的运算理解指针变量运算的特点。1.分析程序指出数组元素在内存中的存放特点。1.1 int a3 = 1, 2, 3; for(i=0; i3; +i

9、)%xtai);1.2 char ch6 = China6;chi); 1.3 int b23 = 1, 2, 3, 4, 5, 6; int i, j;2; for(j=0; j +j) printf(bij);2.分析下面的程序,并根据输出结果分析指针变量运算的特点。 int i, *p; p = &a0; +i, +p)a%d:%x,%dn, i, &ai, ai);, i, p, *p);2.2参照2.1编程使用指针变量输出1.2中数组的元素。2.3参照2.1编程使用指针变量输出1.3中数组的元素。3.指针变量p的内容为0x0012ff00,求出表达式p+1的值和类型。4.分析程序。 int *pa, *p; pa = & for(p=pa; p -p), pa-&a0, *p);

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

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