C语言上机作业10 答案

C语言上机作业10 答案

ID:40523612

大小:78.50 KB

页数:5页

时间:2019-08-04

C语言上机作业10 答案_第1页
C语言上机作业10 答案_第2页
C语言上机作业10 答案_第3页
C语言上机作业10 答案_第4页
C语言上机作业10 答案_第5页
资源描述:

《C语言上机作业10 答案》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C语言程序设计上机作业10答案指针上机作业01答案1.答案:【1】p【2】*p2.答案:【1】char*p,c;【2】scanf("%c",&c);或者c=getchar();【3】p=&c;3.答案:(2)266(1)166&y132mainxzyp图7-1解析:第一步.调用fun函数之前,进行了如下图7-1所示的操作:全局变量p指向main函数中的局部变量y。第二步:当发生函数调用时,实参向形参传递。这时,新开辟了整型变量x和指向main中的变量y的指针y,显然,它和全局变量p一样指向了同一个单元

2、。fun函数中的x、y和main中的x、y是两个不同的变量,为了清晰的表示调用过程,图7-2用x'、y'代替fun中的x、y。图7-2&y132mainxzyp调用fun(x+z,&y)44&yfunx'zy'第三步:执行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

3、函数的形参x'的值因执行“x'=*p-z';”语句而变为2。该过程如图7-3所示。然后接着执行一个打印输出语句“printf("(2)%d%d%d",x',*y',*p);”,所以,该步的输出结果应为:(2)266图7-4&y136mainxzyp调用fun(x+z,&y)执行printf(“(1)%d%d%d”,x,y,*p)图7-3&y136mainxzyp调用fun(x+z,&y)24&yfunx'zy'第四步:函数调用结束,返回主调函数。被调用函数中的形参都消失,当然各种指向也消失。如图7

4、-4所示,输出结果应该为:(1)1664.答案:【1】''【2】s5.答案:eXAMPLE6.答案:【1】*t【2】*s-*t7.答案:35解析:在main函数中,先将p指向x,q指向y,可以用如下图7-5表示:&y3&x5pqxy图7-5当发生函数调用时,p的值传递给a,使a=&x;q的值传递给b,使b=&y。此时,可以用如下图7-6表示:3&xpx&y5qy&xa&yb图7-6在被调用函数中,通过变量t,使a、b的值发生交换:令a=&y,b=&x;改变了指向。可以用如下图7-7表示:3&xpx

5、&y5qy&ya&xb图7-7调用结束后,返回到main函数时,a,b消失(形参随着调用的结束而失去作用)。可以如下图7-8表示:3&xpx&y5qy&ya&xb图7-8&y3&x5pqxy结果,在main函数中,p和q的指向并未改变,仍然如下图7-9所示:图7-9故输出结果为:35C语言程序设计上机作业10指针上机作业01要求:把下列各题填空。直接把答案填写在相应的位置,然后保存此word文件,上传。1.设有定义:inta,*p=&a;以下语句将利用指针变量p读写变量a中的内容,请将语句补充完整。s

6、canf("%d",【1】);printf("%d",【2】);Wpc2.请填空:建立如图所示存储结构所需的说明语句是【1】。建立如图所示给c输入数据的输入语句是【2】。建立如图所示存储结构所需的赋值语句是【3】。3.以下程序的运行结果是________。#include"stdio.h"#include"string.h"int*p;main(){intx=1,y=2,z=3;p=&y;fun(x+z,&y);printf("(1)%d%d%d",x,y,*p);}fun(intx,int*

7、y){intz=4;*p=*y+z;x=*p-z;printf("(2)%d%d%d",x,*y,*p);}4.下面程序段是把从终端读入的一行字符作为字符串放在字符数组中,然后输出。请填空。#include"stdio.h"#include"string.h"main(){intm;chars[80],*t;for(m=0;m<79;m++){s[m]=getchar();if(s[m]=='')break;}s[m]=【1】;t=【2】;while(*t)putchar(*t++);}5.下

8、面程序段的运行结果是________。chars[80],*t="EXAMPLE";t=strcpy(s,t);s[0]='e';puts(t);6.函数sstrcmp()的功能是对两个字符串进行比较。当s所指字符串相等时,返回值为0;当s所指字符串大于t所指字符串时,返回值大于0;当s所指字符串小于t所指字符串时,返回值小于0(功能等同于库函数strcmp())。请填空。#include"stdio.h"intsstrcmp(char*s,char*t

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

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

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