作业帮 > 综合 > 作业

函数f和g的定义如下图所示.执行函数f时需要调用函数g(a),若采用值

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/09 06:27:11
函数f和g的定义如下图所示.执行函数f时需要调用函数g(a),若采用值
我快考试了,我这还不懂呢
call by value:
a = 3;
g(a);
m = 5;
m = m*x = 5*a = 15;
x = m-5 = 10;
return x+m = 25;
c = 25;
return a+c = 3+25 = 28 (D)
call by reference:
a = 3;
g(a);
m = 5;
m = m*x = 5*a = 15;
a = x = m-5 = 10;
return x+m = 25;
c = 25;
return a+c = 10+25 = 35 (A)
再问: m*x = 5*a 是什么意思啊
再答: 因为m=5 x=a (参数)
再问: 我对这里的参数我不是很懂,我们老师没讲过是什么意思,你能说吗,我再给你加10分
再答: 因为g()里面的参数叫x 我们调用的时候是g(a) 就是把g里面的x都变成a call by value的时候 你把x的值看成和a一样就可以了 但是对x的修改并不影响a call by reference的时候 x就是a, 对x修改就是对a修改
再问: 这个问题我懂了谢谢,我还有另一个,某数码相机内置128MB的存储空间,拍摄分辨率设定为1600X1200像素,颜色深度为24位,若不采用压缩存储技术,使用内部存储器最多可以拍摄多少张照片? 24Bit=3Byte 1600*1200*3=576000=5.4932M 128/5.4932=23张 但这里的1600*1200*3=576000=5.4932M 不懂,分数我不会亏你的
再答: 24Bit = 3Byte 就是说一个像素要用3个Byte来储存 1600*1200 = 1920000 个像素 所以总共需要 1600*1200*3=5760000个Bytes 其中1024Bytes = 1 KB 1024 KB = 1MB 所以5760000 Bytes = 5625 KB = 5.4931640625 MB