我们这地方我们看一下
,我们的答案选项是我们B选项
,在我们的形参里面
,我们可以省略我们这一个数组的下标
,我们可以把
,我们让它写成我们数组形式就不用说了
,我们形参
,变量都可以省略其实这个地方
,所以下边可以省略
,可以写成指针形式
,没问题
,我们看A选项里面
,不能对a进行移动指针如a++
,那么这个地方
,函数体中不能对a进行指针移动
,这一个移动指针
,如a++
,这个a它都不是指针
,所以这句话是错误的
,然后B选项里面刚才讲了
,C选项里边形参a对应的这个实参只能是数组名
,它说只能是数组名
,这个地方a
,只能是数组名
,咱们地方
,我们这一个第四个选项
,跟我们的第三个选项
,它是矛盾的
,它这第四个选项里面
,它说的是指针
,可以作为实参传给我们的a
,而这里的话我们
,我们这个实参来说只能是数组名
,所以它们两个是矛盾的
,有一个应该选出来是错误的
,那么这里两个答案都错了
,那么为什么两个都错了呢
,第一个问题我们这个地方它错了
,我们指针是可以的
,指针是可以的
,不仅是数组名指针也可以
,我们刚刚前面其实也实验过
,我们这个把p q作为我们这一个
,实参传到我们子函数里面
,我们用一个*号a *号b接收的对不对
,这时指针是可以作为实参的
,第二个问题
,这里它说只能是10个整数的只有
,那么这里我们不一定是10个
,我们可以少于它
,这是可以的
,我们就相当于这个上面有10个空间
,我只传5个数上去是没问题的
,那么所以这两个选项
,
第一个
,只能是它只有是它错了
,A选项里面对了
,那么a的话不是我们这一个指针
,不是我们指针
,好这是我们这个31题
,32题我们来看
,那么32题里面我们a b等于4 3
,c d等于它
,它那么a b传上去
,c d也传上去
,c d的话是双向传递
,a b是单项的
,然后把x y加起来减起来
,那么这个很容易
,7和我们这个1传回来
,答案是第四个答案
,那这里很多同学现在有这么一个错误信息了
,他有很多时候就想不通了
,像我们刚刚前面所讲的
,它前面是个什么
,*号c的时候
,到底是双向还是单向的
,那么刚才这个问题给大家强调一下
,如果你掌握不了
,那么还是我们的死规则
,就是什么
,地址就是双向的
,那么如果硬要区分的话
,你就去记一下我们前面讲那个
,*号c a等于b
,b等于a还是什么
,等于c
,把那个题目记下来
,其他的全部看成双向就可以了
,33题我们看
,33题我们这里a b
,那么两个地址传过去
,传过去好了以后
,这个地方我们是看
,这是t
,是普通变量
,那么是普通变量的话
,我们应该什么
,双向传递了
,它是普通变量进行双向传递
,那么如果是*号t
,那么就是什么
,单向传递
,传上去以后传不下来
,这里我们留意一下
,那么现在我们两个数互换一下
,那么这个p和q里面
,也是我们a b里面变成9和0
,变成9和0
,那么这一个a和b
,我们的p那么指向它
,我们的q指向它
,然后把*号p
,*号p是谁
,9存到*号q里面来
,那么*号q里面也存一个9
,那么两个都是我们9
,第二个选项
,第一个问题
,我们这地方看清楚
,它中间变量是一个普通变量
,所以是一个双向传递了
,
第二个问题
,我们这地方实际上两个数互换了一下
,互换完了以后
,我们的*号p和*号q
,分别是我们这一个9 0
,然后再把这个*号p存到这个*号q里面来
,所以是9 9
,第34题
,这个题目不是很难
,但同学不一定会做
,那么就说我们这个子函数里面
,它跟它
,大A减小a等于-32
,记好了
,然后我们这个*号c减等于它
,那么就相当于*号c等于*号c减括号减32
,那变成什么
,加32
,加32
,那么我一个小写一个大写字母
,加一个32
,变成我们小写字母
,大家写下来34题
,我们这一个大写字母
,加32
,变小写
,我们小写字母减32
,然后这个变大写
,变大写
,记好
,我们大写字母的ASCII码值要少一些
,那么这里面我们继续来看
,所以这里面我们第一步
,判断一下它是不是我们大写字母
,如果是的
,我们就变成小写的
,题目就不用看了
,那么这是大写的变成小写的A选项
,那么当前这个题目大写变小写
,我们希望大家能够把这个公式记一下
,然后我们看第35题
,35题这个题目
,那么原理基本上差不多
,大家看看是不是基本上是一样的
,这里很明显是把当前第一个数作为这个数
,完了以后这地方做什么事情呢
,是如果说现在这个数
,比前面的数要大
,去换过来
,那么所以这里应该是什么
,找大数
,这里我们b[i]是我们的b[0]
,
那么这是0
,1
,那么如果这个0 1这个数大于它
,就把这个0 1这个数存到b[0]里面去
,所以我们这里是把这一个较大的数存起来
,那么每一行较大的数存起来
,那么这里每一行最大数的话应该就是我们的3 6 9
,是我们三行嘛
,第一行里面较大的是3
,第二号里面较大的是6
,第三行里面较大的是9
,这种题目可能刚开始学的时候
,大家可能不一定会这个很好做
,但如果你现在做多了
,是不是答案一眼就能看出来了
,第36题
,我们来看一看
,36题这个题目
,那么这里我们看
,如果它等于它
,把两个数换一下返回s
,那么这里
,我们的p q咱们想一想
,我们的p q
,它的值有没有改变
,那么p和q很多同学受前面那个题目影响
,这里到底是什么
,双向单向又分不清了
,那么这里我给大家讲
,你只要考虑刚刚我们前面讲的那一个题就可以了
,其他题目你不用考虑了
,听好了
,其他题目里面你全部当成我们这一个
,双向就可以了
,那么所以这个题目里面它没有这个中间变量
,*号s *号c什么的
,所以应该是什么
,双向的
,应该是我们双向的
,那么双向的话应该导致我们这个s和t的结果
,是相同的
,对吧
,我们看一看
,那么答案选项是我们第四个选项
,我们的3 5
,3小于5
,那么s里面的话
,那么这个地方我们看一看
,我们i等于3 5
,3 5的话
,3小于5这个条件成立
,成立以我们s等于t
,那么我们的s和t的结果
,那么都应该等于我们的5
,
那么s t等于5好了以后
,那么这个题目又不对了
,那么这个地方
,这个题目其实还是跟我们前面那个题目
,这个单向传递是一样的
,那咱们还是那句话
,记一下
,在我们这个子函数里面
,它如果用的是变量进行计算的
,那么它是双向的
,凡是在我们这个里面
,它用的是地址进行计算的
,是我们单向的
,大家写一下
,36题
,我们是否还记得前面那个题目
,在我们子函数中
,这个用我们的变量进行赋值运算
,那么是双向的
,如果用的是我们这个指针地址指针名
,进行这么一个
,则是单向的
,这个我们记一下
,那么这个题目跟前面那个题目是基本上是一样的
,我们就来看这句话
,前面那个题目里面我们是不是*号c
,然后a等于b
,然后什么b等于c
,那么这个a b它也是我们指针
,也是我们指针
,那么所以这个地方
,它操作都是我们指针名
,这个同样的原理
,也是我们指针名
,所以它是单向传递
,那么这个地方赋值的时候
,它并没有把这个值赋值给我们的s
,那么这里做题方法
,给大家讲了一下
,如果在我们子函数里面
,它用的是变量进行传递
,那例如这地方改一下
,这地方改一下
,我改成*号s等于*号t
,那么这个题目是双向的
,这个题目双向的
,它这是变量了
,原来那个我们指针名是单向的
,
把握好这就可以了
,回过去看那个题目一样的可以的
,37题
,看起来好复杂
,这个题目里面
,那么它重点在哪里呢
,这个地方
,这样我们的N减1减j应该什么
,应该是我们最后一个元素
,最后一行
,最后一行了
,也就是说我们当前有n个元素
,那么这个是0 0
,那么这个是谁
,是n减1
,0
,0 N减1
,0 N减1
,要记这个地方
,那么所以这里面我们来看一下
,它做了个什么事情呢
,它相当于把我们这一个最后一个数
,