C语言上机作业10答案.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言上机作业10答案

C语言程序设计上机作业10 答案 指针上机作业01 答案 1. 答案:【1】p 【2】 *p 2. 答案:【1】char *p, c; 【2】scanf(%c, c);或者c=getchar();【3】p=c; 3. 答案:(2) 2 6 6 (1) 1 6 6 解析:第一步.调用fun函数之前,进行了如下图7-1所示的操作:全局变量p指向main函数中的局部变量y。 第二步:当发生函数调用时,实参向形参传递。这时,新开辟了整型变量x和指向main中的变量y的指针y,显然,它和全局变量p一样指向了同一个单元。fun函数中的x、y和main中的x、y是两个不同的变量,为了清晰的表示调用过程,图7-2用x、y代替fun中的x、y。 第三步:执行fun函数。按顺序先进行两个赋值运算:“(1) *p=*y+z; (2) x=*p-z;”,这时候,没有改变p的指向,而是改变了p所指向变量y (main中的变量y)的数值,即“*p=*y+z;”等价与“y=y+z;”,故main中的变量y等于6;同时,因为*p的值改变,fun函数的形参x的值因执行“x=*p-z;”语句而变为2。该过程如图7-3所示。然后接着执行一个打印输出语句“printf((2) %d %d %d\n, x, *y, *p);”,所以,该步的输出结果应为:(2)2 6 6 第四步:函数调用结束,返回主调函数。被调用函数中的形参都消失,当然各种指向也消失。如图7-4所示,输出结果应该为:(1)1 6 6 4. 答案:【1】\0 【2】s 5. 答案:eXAMPLE 6. 答案:【1】*t 【2】 *s-*t 7. 答案:3 5 解析:在main函数中,先将p指向x, q指向y, 可以用如下图7-5表示: 图7-5 当发生函数调用时,p的值传递给a, 使a=x; q的值传递给b, 使b=y。此时,可以用如下图7-6表示: 图7-6 在被调用函数中,通过变量t, 使a、b的值发生交换:令a=y, b=x; 改变了指向。可以用如下图7-7表示: 图7-7 调用结束后,返回到main函数时,a, b消失(形参随着调用的结束而失去作用)。可以如下图7-8表示: 图7-8 结果,在main函数中,p和q的指向并未改变,仍然如下图7-9所示: 图7-9 故输出结果为:3 5 C语言程序设计上机作业10 指针上机作业01 要求:把下列各题填空。直接把答案填写在相应的位置,然后保存此word文件,上传。 1. 设有定义:int a, *p=a; 以下语句将利用指针变量p读写变量a中的内容,请将语句补充完整。 scanf(%d, 【1】 ); printf(%d\n, 【2】 ); 2. 请填空: 建立如图所示存储结构所需的说明语句是【1】。 建立如图所示给c输入数据的输入语句是【2】。 建立如图所示存储结构所需的赋值语句是【3】。 3. 以下程序的运行结果是________。 #include stdio.h #include string.h int *p; main() { int x=1, y=2, z=3; p=y; fun(x+z, y); printf((1) %d %d %d\n, x, y, *p); } fun( int x, int *y) { int z=4; *p=*y+z; x=*p-z; printf((2) %d %d %d\n, x, *y, *p); } 4. 下面程序段是把从终端读入的一行字符作为字符串放在字符数组中,然后输出。请填空。 #include stdio.h #include string.h main() { int m; char s[80], *t; for (m=0; m79; m++) { s[m]=getchar(); if (s[m]==\n) break; } s[m]= 【1】; t=【2】;

文档评论(0)

liudao + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档