00:00
我们再来看27题,我们仍然进行一个分析。同学们看这个地方呢,一定要分析出来它的每一个变量的含义是什么,否则你这个就没法搞出来,他说有一个定义语言是这样子的,而且呢,他说I小于等于零啊,大于等于零小于四,它说错误的负值是什么,那么我们一个个的分析。首先从这个地方我们看出来,AA它是一个什么呀?是一个二维数组,是一个二维数组,这个地方一定要看清楚,然后P呢,P是一个指针。它是一个指针,是一个这样类型的一个指针。类型是int。能看懂吗?所以说既然他是一个呃in的心,那就它就可以指向一个int的地址。它就指向一个int的例子,好,接着我们往下继续看。
01:00
好,往下继续看,那现在呢,嗯,我们我们看。这个QQ它是一个什么呀?这个能看出来吗?Q,它是一个。指针数组后面有一个中括号,所以Q是一个。它是一个指针,指针它是,它是指向一个数组的,它是指针数组。指针数组好,现在分析完B过后,我们看第一句话A,同学们看A呢,它是一个二维数组。它是一个二位数组,我们不能把二位数组的一个例子付给这个P。因为P。P是一个特星,它可以指向一个一位数组,但是它不可以指向一个二维数组。理不理解?好,所以说这句话其实是错的。这个其实就是错的,是错误的,为什么呢?因为因为P。P可以,可以指向。可以指向一个一维数组。
02:03
一位数组,但是不能指向二维数组。因此答案其实就已经出来了。就是。就是这个A27题就应该选A,答案说答案就已经出来了。答,A。那有些同学老师,那后面这个题我们也简单看一下,为什么错哈,为什么是对的,你看AI。那么AI呢,是因为它这个地方就代表一个一位数组了,因为它下面有一个中括号去取它的元素嘛,而Qi呢,Q它本身是一个指针数组,所以说取个I的话呢,它也是指向一个一位数组,这两个是可以的类型匹配。AI给一个P是可以的,因为AI是一个一位数组,给到一个P也是可以的,这个呢,PP4P本身它就是指向一个int的,所以说如果你把aiaaa的一个具体的一个元素地址付给P也是可以的。因此。
03:02
就是我们说的BCD都是正确的。BCD都是正确的。好,第28题我们来分析。我们已已来分析一把。同学们看。首先我们看这是个什么东西啊?这是一个什么呢?能看懂吗?它是是一个。二维二维二维数组能看懂吧?二维数组,那么它既然是个二维数组,同学们看这句话。这句话呢,其实要理解就是P它指向了哪个呢?它指向了这个二元数组里面的第二个元素,其实就指向了这个东西,能理解吧。你只要把这个理解了,后面就好办了,那下面呢,我们来看它要输出的是P所指向的这个字符串的长度,那就数嘛,也就是说这个地方它是输出一个什么呢?它是要输出P指向的字符串的长度。
04:06
长度。OK,那就很简单了,那就数一数了,那就数一数就可以了嘛,那数一下一二三四五六七八九十十,好,那这个就应该是十。下面这一句输出就没什么问题吧,这个是不是就直接把字符串输出来,那就是P,那也就说是这边这这个print f这个一句话呢,会输出。输出字就是哪一个呢?输出one dream。这个字串答案就是10ONE,哪一个是?C。答案单位C。答案。答案C,那我就写在这里了。28题答案为C,第29题来了,接着继续看第29题,又有点挠头啊,所以说他这些题啊,你要不认真看,其实是很容易出错的,我们先来看这个题呢,它是要先把它的原代码稍微的阅读一下,同学们看,这是一个一位数组,这是个I变量for循环。
05:16
零到三,因为四,嗯,I小于四的时候,就不再进去说它是零到三的一个便利,看清楚了。那Switch I模二大家看这面有个K0里面呢,有一段整体,就说这个地方啊,要把它看成一个整体哦。我把它标成另外一个颜色,帮助同学们理解。就说这是一个整体,看懂了没有,就K0是这里面K1是执行这个好,那么我们就来分析了,分析来我们首先看。它在整个过程中,其实是在不停的对我们A数组的元素进行一个调整,看到没有,所以说在这里面呢,我们可以看出来这个Switch语句。
06:01
Switch语句。所以语句是在不停的。是在干什么呢?是在对。对我们的A数组进行进行一个调,呃,赋值,赋值好看懂了,那看懂过后呢,我们就来看一下这个数组到底是在怎么样变化呗,它原始数组是这样子的吧,那么它会怎么改呢?我们一步步分析。首先看在这个过程中,I呢,其实是零到三。我们先看I等于零,I等于零的时候,零模二当然就等于零了,那就进到这里面去,进到这里面去了,过后呢,它说A。Ii现在等于零了,看清楚啊,现在我们把这个I写出来,I等于零的。I等于零的I等于零,那么A0A0是几呢?A0就是二,所以说这边就是二,相当于说二摩尔,二摩尔显然等于零了,这个0.2模二等于零吗?二模二等于零就执行AI加加break,好,它这个break完了过后,其实它跳出的是这个K0,但是后面还有个break,就会跳出这个Switch,然后再进行下次的波循环,看懂了吗?
07:18
一定要看懂,那也就是说这个时候呢,他会把我们这个二改成一个三好,这个第一个他就把这个改成三了。好,紧接着我们看,诶这个这个像这样啊。也就是说,当I这样写,当I等于零时。这个数组就会变成。这样子。这个能理解吗?没问题吧,那紧接着当I。当I等于一时,我们看看又怎么办呢?我们这个速度现在是这样子的咯。也就是说现在速度已经变成这这个样子了,那看看它又会怎么变化。把这个挪一下,因为现在I等于一,I等于一的话呢,我们来分析一下一模二,一模二显然等于一,它就进到这里面去了,于是现在这个I等于一的啊,它就会把A。
08:12
一改成零,那也就是说相当于把我们这个三改成零了,好,所以说这个处理完了过后呢,我们这边就变成了一个零。看清楚没有,好的继续来。当I等于二的时候,它其实是要对这个数组进行一个改变,因为你上面处理完了过后,数组是这个样子的嘛,对不对,那现在我们看I等于I等于二的时候。二摩尔二摩尔等于零,还又进到这里面去。进到这里面去,所以说现在就是。二摩尔,那么现在A2呢?其实是等于五的五模二,五模二显然是等于一,它会执行这句话。于是他会把。
09:00
A2这个地方呢,进行一个减减,说白了就是把五再减一下,那现在其实就已经。知道了,就是相当于这个五变成四了。好,最后再来一,再来一个,当I等于几的时候呢?当I等于三的时候,好,同学们自己去推好不好,那最后它输出来的时候呢,应该是304,后面还有一个具体是什么。好,我们推吧,干脆推已经到这了,就推一下吧。推一下,其实你可以不用再推那么细了,因为也也有可能答案现在已经可以看出来了。往这放一下,现在I等于三,I等于三的情况下呢,三模二,我们看一下摩尔显然等于一,等于一进到这,那相当于把这个制成零了,也就是说这边这个变成零。就是下面这最后这一个元素就变成零了,对,然后I等于四,整个负循环退出输出我们这个东西,那就是3040 3040是哪一个呢。
10:03
它,因此答案为C。答案C各位29题选C就可以了,没有问题吧?同学们29题选C,第30题最后一道我们来看一下。第30题这个题其实比较简单分析,首先我们看一定要搞清楚,就是这个字符串它在内存里面是怎么存放的,他在内存里面呢,是一个数组,这个我们是不是以前讲过呀,数组它第一个呢放的是A。第一个放的,我就简写好A。竖杠第二个是B,竖呃还是一个竖杠C,第三第三个C,第四个是D,后面后面全部都是斜杠零了。后面全部都是斜杠零。几个斜杠铃呢,复制一下。对,复制一下那。
11:00
呃,现在一共有十个空架,12345678,好,再来一个就完了。那同学们看一下,在它内存里面其实是这样存放的,那么string令呢,它在统计的时候,它其实只会统计到有效的字符个数,因此这个地方应该是四。Size of a,它是把这个内存总共有多大统计出来,那你数一数是不是就是十啊,所以说一个四,一个十。好,这个地方同学们要清晰的知道,这边呢,它是统计到哪里呢。统计有效字符。有效字符其实就是四,而我们的size of a呢?它统计的是什么呢?统计A占用的占用的这个字节数。那这节数显然就应该是整体了,就应该是等于十。答案。就应该是四零。因此,当B。
12:00
答案就是B,因此这段代码第30题选B,同学们那关于第21题到30题的作业的选择题评讲,我们就到这个地方,大家先消化一下。
我来说两句