00:00
36题。36题呢,也是需要我们对程序进行一个阅读,从这里分析呢,它应该是一个宏替换的题,我们来看一下。它的这个盘PT等于3.5。然后呢,D DeFine sx PT乘以X,再乘以X,然后呢,这边A等于一,B等于二分F。然后这边呢,有sa括括起来A加B,大家可能会认为这样写哈,大家看,因为他在这做这句话嘛。所以说一般的人都会这样去分析,他说红替换对他就应该推出什么呢?就应该是这样推的,有些同学可能会这样写。啊说这个等于它,然后X呢,因为它是字符串简单一方,所以说A加B这边也等于A加B,然后有同学就就会这样去写了,PT等于3.5乘以一个AA是多少呢一。
01:03
再乘再加上一个BB是多少呢?Okb是二。然后再乘以A,再加上一个B,对吧?很多同学会这样写,那就等于多少呢?7.5。对,但是这样其实是不对的,大家有没有发现这里的PT3.5你要后面带了一个分号。这个地方也有个分号。也就是说他这样红替换呢,其实把分号也会替换上去。那这样子的话呢,整个语法就错了,也就是说上面这个推是错的,它实际上是这样子的,如果真的要红替换,它会替换成这个样子的东西,我跟大家讲他会这样替换。首先呢,把这个一个整体拿过来。然后后面相当于多了一个分号。看到没有,然后这边PT等于多少呢?它直接用3.5分号来替换。
02:01
那这个不用说了,肯定语法都是错的。语法是错误的,因此上面这个替换是我们想当然的,或者说就是出题的人希望我们这样去考虑。实际上呢,它是这样替换的语法都是错的,因此这个题应该是选D程序有错无输出结果。所以说,答案。答案选择D。第36题选D答案。我们来看37题,37题呢,同学们看37题啊,它是一个关于结构体的。一道题我们来分析,这边考察是什么呢?考察结构题。这是考察结构体,我们就来看一下它是怎么做的。首先这有一个。啊,DT2,那这个是个结构体数组,看到没有结构体数组,然后呢,它把这个DT给到了P,也就是说。
03:02
也就是说现在呢,在我们内存里面,你可以这样考虑。就说有一个有有有个结构体哈,我们认为是有两个结构体吧。啊,有两个结构体,一个是X等于一,一个等于二,然后还有一个结构体呢,一个是三,一个是四,现在呢,P指向了第一个结构体的第一个元素。也就是P呢指向它。然后大家看这里加加P。一个这个箭头点X,现在的问题是哪一个先运算。哪一个后运算谁的优先级高呢?告诉大家,以前我们在讲运算符优先级的时候,我们曾经提过这个的优先级。就是访问我们成员,成员变量的优先级要比加加高,所以说这句话其实是等价于这种感觉哈,这句话其实它等价这种写法。
04:02
怎么写法呢?就好像把它括起来一样,是等价的。那既然是等价的,那么就应该知道先把P。X取出,而P刚才已经分析指向第一个元素,因此它其实就是对这个一进行加加。既然对一进行加加,那显然这边就应该返回一个二。明白了。那我问大家这个P有变化吗?P,它其实还是指向第一个元素的,于是下面这句话。下面这句话,其实它等价于这样一个写法,就是P走Y。但是一定要分析出来,现在这个PP仍然仍然指向指向第一个结构体变量。这个大家是一定要分析出来的。因此在这里呢,他先把这个Y拿到,把这个YY是第一个元素的,因为它没有指向第二个结底数是二,二呢再加加,因此它是三,因为是前加加嘛。
05:07
说说这个结果,应该输出的是二和三。答。答案选择哪一个呢?显然是选择B答案。同学们,我们可以来验一下,因为这些结构体这块呢,我们讲的不多,我们可以验证一下哈。来给大家验证一下。同学们,来走一个吧,Include std IO。我把VO的面函数写上。然后在这里呢,我们把代码往这一放,诶多余的东西来了。去掉好也,嗯,这样子干脆重新考一下就行。这边呢,我们来一个get char。朋友们,我们来编译一下。重新生成解决方案,我们看此时此刻它输出的是不是一个二,一个三运行。
06:01
我们可以看到,输出的就是一个二,一个三,答案完全正确,也就是说,此时此刻我们分析出来的二和三是正确的,答案选B。第38题设红定义为这个。啊,这一堆,然后呢,切变量M已经正确定义了,并附了初值,则宏调用is DV m5,并且以DVM7为真实,所要表达的含义是什么?大家主要是要阅读这句话。这句话到底是在说什么事情呢?你要把这个分析出来,答案自然就出出来了,你要把这个分析出来,这个是不是大家看K模N等于一,是不是在求K除以N过后,它的余数等于一啊。能理解吗?也就是说这一个东西。等于一,就是,是什么呢?是K除以N后,除以N后余数为一。
07:04
是不是,那么如果余数为一,它就返回一个一,余数不为一呢,就返回一个甲,所以说它整个这个感觉就应该是什么呢?就是判断K,如果你整个这个就定下来了,这个咱们就知道什么意思了,这句话就是呃,如果,如果K。K除以N后,余数为一就返回。返回一,否则否则返回零,明白了吧,那我们看哪个说的是对的呢?他说判断M是否能被五或者被七整除,因为但这这肯定都不对嘛。而且它已经肯定不是整除对不对,这个不选,判断M是否能够被五和七整除也不对。判断M被五或者被七整除后这二判断M被五或者或者被或者七整除后是否有意?答案C是对的,再看D为什么错了,判断五被M被五和七整除。
08:13
证出是否都于一。这个不对,应该是或的关系,不是和的关系。是货吧,诶,呃,我们看看是哪个地方啊哦,这个地方是这个是与的关系啊,那我刚才说错了,不是或的关系了,因为这我们是明明确已经标出来了,不是我刚才看错了,这个应该是与,那就应该选38题,应该选什么呢?38题应该选D。和不是祸,因为这一班是两个爱的福。对不对?好,这个答案就可以了。但。答案选择嘛呢?选择D答案和的关系,或者是且且的关系,对吧,那答案就选D,我们放到这。
09:00
38题选择D。第39题,我们来继续阅读一下。39题这个题呢,其实它考察的是未运算。分析一下。说考察的是位,位运算能看懂吗?未运算,那如果是位运算的话,我问大家这个A向右移,向左移动两位过后,这个变成多少了,首先你要把这个看出来啊。这个呢,就会得到一个20,这个其实相当于说是呃,我们的五成了一个。他现在是。五项这边移动两位,那就是说乘以一个二,再乘以个二呗,那就等于20。能看懂吗?那我问大家20的,20对应的二进制是多少?因为后面他这个是未未货,所以说我要求出它的二进制,待会呢我才能进行未获的操作,请问20的二进制是多少,是不是以前我们在讲高校大学生。
10:09
C语言课程里面讲过,是不是这样来做就可以了,20除以一个20商十余零,再除以一个二商五余零,再除以一个二商二余一,再除一个二商一余零,然后呢,反过来看它的余数,所以说它应该是10100。好的,这个是10100,再加上呢,它是一个正数,所以说我们可以这样看,它对应的二进制是10100,前面呢,我们来三个零。啊,用用这个表示高位哈。一如果要写的全一点,那一个程是四个字节的话呢,那前面应该不这么多了,123345678 12345678 12345678,也就是说呃,对于一个20来讲,它对应的二进制,当然这个我们我们前提它是一个int啊,如果是个int的话呢,它有四个字节,它的二进制就应该对应这个。
11:09
对吧,然后呢,现在是A模,呃,一按位货币,按位货币的话,其实就是相当于让这一个数跟一进行一个未获,未获的话呢,简单我快速写一下。12345678。123456好,这个。那同学们想整个这个结果应该是多少呢?诶这个整个这边按位获了以后是多少,是不是12345678 12345678 12345678,喂货啊1231。零一。零一,那这个不用说吧,应该就等于21了。因为他。这边呢,它的高位是整数,而我们知道整数负数不,呃,这个对于。
12:05
证,嗯,证书而言,它的源码,反码,补码都是一个意思,因此呢,这直接就是21,答案21。对,第是一个号是。第四呢,我们就应该是答案为21正确。那就应该选哪一个呢?显然第39题应该选A答案。没问题了,同学们,第40题又是一道程序阅阅读题,我们来看一下。这里面考察的是文件的操作,它打开文件是以读的方式打开啊,是以写的方式打开,看清楚了,大家知道,一旦以写的方式打开的话呢,文件的指针会指向该文件的最前面,还记得吧?而且呢,它会覆盖写,所以说当他执行这句话的时候呢,他会把ABC写入到这个文件中。写入到这个文件中,而把以前的内容干什么删掉了,所以说这个东西就很好理解了,那我们分析一下。
13:02
主要是把这句话搞懂就可以了。关键是这句话。把这句话搞懂,就是是以什么呢?是以止血的方式,是以W的方式打开。哎,方式打开,那如果以这个方式打开呢,它的特点是特点是什么样子呢?是将原来的将注意听将原文件,原文件截取为。为零,就是相当于把原先的文件截取掉。截取。啊清清除吧,截取为零吧,就截取为零,即删除了,即原来内容没有了,即原来的内容内容没有了。然后啊,然后再。在文件的头头开始,头开始写入,对写入内容。
14:02
能理解我的意思吧,那这样子就很好理解了,你原先的哈,还有吗?没有了,他写的时候这句话要理解哈,就是f print f f f呢是把这个ABC的内容写入到F这个指针所指向的文件中,这句话大家一定要非常清晰。这句话是将。什么呢?将ABC内容写入。写入到F指向的文件文件中,那说白了就是把ABC写到这个文件里面,并且把原先的内容清除掉了。那我们应该选哪个呢?他说文件file a点贴的内容是什么?显然只有ABC了。因此答案选择C。答案。为C答案。朋友们,答案为C答案。没有任何问题吧,同学们,没有任何问题,没有任何问题就是选C即可。
15:00
好,同学们,那我们前面的这一道选择题,我们就讲完了,那一会呢,我们再给他讲填空题。
我来说两句