00:00
我们看36题,36题呢,它是这样要求的,他说下面结构体的定义语句中哪一个是错的。我们来看,我们来看哪一个是错啊,其实这个还是比较简单的了,看第一个题,第一个题有错吗?第一个题没问题,它是先定义了一个结构体,然后再去定义结构体变量没有问题,所以说第一个A正确。正确是干什么呢?它是先定义结构体类型,再定义,再定义结构体变量正确。A是正确的,BB呢,大家看这里面有个最大的问题,它少了一个分号,看到没有,B它其实少了一个分号,你看这写完了过后呢,它没有分号,就直接往往下面走了,这是不对的,B是错的。B、错误,错误的原因。错误原原错,原因是原因是缺少。缺少分号。能理解哪里缺少分号呢?就是这个后边这这忘了一个分号写错了,我们再来看CC是可以的,C呢,它是在定义一个结构体类型的时候,就同时定义了一个变量A。
01:15
这个也是可以的,我们在讲结构体的时候,是不是讲过这种方式的,使用这个方式啊,这是可以的,OK,正确正确。啊,它用的是什么呢?是在定义定义结构体类型时,类型时同时定义一个结构体变量什么呢?A,这个A是个结构体变量。D,呃,D呢,也是正确的,D大家有没有发现他用的是匿名的方式,这个也是正确的,它是干什么呢?使用的是匿名结构体啊,定义方式,定义方式一样的,它也是先定义了一个结构体,没有给名字,呃,相当于说他相当于说他的意思就是说我只需要有一个A这样的结构体变量就行了,那以后呢,就不能再用这个结构体了。
02:08
来,再去定义新的结构体变量,好,但是它只能用一次,他用的是结匿名结构体,定义方式也是正确的,是对的。对的好,那这个答案就出来了,答案应该是选哪个呢?同学们,答案就应该是选我们的B。那答案就是选BB是错的。来看第37题,第37题呢,它说设设有一个定义叫叉新C以下选项中,以下选项中能够使用字符型。啊,字符型指针C指正确指向一个字符串的是哪一个,我们先看第一个啊第一个你看这是一个string,它是1STRING是一个,它就是一个字符数组了,相当于是不是相当于是一个字符数组,那么指向这么一个串,然后呢,让str付给C,那这个就是对的呀。
03:02
A就是正确的,A就正确的分析,1A就是正确的。A正确。A是正,A是正确的,A正确。正确的原因呢,就是因为我们的这个CC这个指针,它指向了什么呢?指向了石俊。啊,使俊这个空间啊或或者指是指向使俊这个字符算。这个啊,这个字符字符数组好,字符串也可以。后面呢,我们再来看第二个为什么错了啊,第二个不是错的问题啊,他这他这个是输出,它是输出语句,跟你说这所说的正确指向一个字串没有关系啊,这地方是这个是干什么呀。这这个地方它是想来输出一个什么东西是吧,它是用来输出的,所以说跟他没有关系,再来看这个地方,这个是得到一个char,得到一个券呢,其实按理说这方这样写都是不对的,因为你这帮得到一个券,应该这边是个C才可以,对不对,这是得到一个,这个也不对了,这个是新使骏,这个是根本就不知道是在写什么了,后面都是错的。
04:12
后面都是错误的,因此答案呢,应该是选A。其实这个很好很好,选第38题来看一下。第38题其实很容易出错的,同学们一定要注意,这里面它分它它是在考察一个什么呢?考察他在考察结构体的传递方式。传递方式是什么?还还同学们还记不记得结构体的传递方式是什么方式?还记得吗?默认是值传递,还记得不好,我们来看一下,嗯,这段代码呢,看起来很很长,其实本身并不难,我们来分析一下它的语句,首先呢,他在上面先定义了,这就个啊,它定义了一个结构体。这段代码是定义一个A结构体,好,这是定义一个结构体,看到没有。
05:03
好,我分析这边是定义了一个结构体。这是定义结构体。定义了一个结构体叫A,但实际上它这地方写的是错的,这个地方S应该是小写哈,但是显然考察点不是在这里,你不要去纠结它。这个地方肯定是他出题的时候,呃,不小心把这个小写的S写成大写S,但是这个地方肯定不是考察点,不是考察点。然后呢,我们再看下一个第三一个这个这个地方是干什么呢?所以你们看这个能看懂在干什么吗。这个要阅读清楚哈,这是一个函数。同学们看,这是一个函数。啊,这个地方我们应该少了一个FH,为什么粘贴到这来呢。粘贴错了。好像这。看这句话。能看懂这是什么吗?这是一个函数。他接收的看清了,他接收的是一个RUA变量。
06:06
变量看懂了,变量返回的是什么呢?返回的也是structure a这样一个这样一个值。所以它其实函数看懂了,要函数名是F。那么这个明白了过后,下面这个函数,这个函数在干做件什么事情呢?大家看没有,这个函数它是接收到一个变量T,然后把它的把它里面的成员进行一个赋值,这看懂了没有,好,它的功能是,嗯,我就写到这啊,因为我讲课你们在答题的时候就不要写这些注释了,这个地方是,就是F这个函数的功能是,F函数的功能是。接收,接收一个T,接收一个T变量。变量。变量,然后呢,然后修改,然后修改,呃,然后给他的给什么呢?给他的应该是说给他的成员赋值,赋值赋什么值呢?A就是这个整整形呢,给的是一个101102,而这个B呢,它用的是拷贝的方法,拷贝一个这样的一个字符串,然后呢,CW呢给的是这么一个值,最后返回这个T。
07:23
看到没有好的,那现在明白这个道理过后,我们看这里,它首先在这个主函数里面呢,它有一个变量,就是这里主函数呢,有一个A,注意看啊,主函数有个A,这个A里面的AA,这个结构体变量,结构体变量的成,它里面的成员的值呢,分别是110,幺张大,还有1098.0,好没问题,然后这面大家看这里这个地方是很关键的,这这段是他调用了,调用了F函数。好,大家明白,考结构体传递方式是直传递,我问大家,我问大家既然你是直传递,是不是相当于在这个在调这个函数的时候,它拷贝了一贝,拷贝了一份这个A变量给到这个T,因此你在这里面去做修改,不会影响到这个A,明白了吗?
08:21
就是说这个函数里面的修改就是F函数,对对,这个T的FF这个函数不是在这里面写了一堆东西吗?它在这里面,呃,这个行参啊对。这个。对这个结构体对结构体变量的修改。的修改不会影响到main main函数的幂函数的这个A结构体。看到没有,但是这地方有一个特别有意思的现象,这个地方它麻烦在什么地方呢?它麻烦的地方是它把这个返回值又付给了这个A啊,这个就很恐怖了,也就是说他把他在这个F函数里面把这些修改完了过后呢,又把这个结构体重新返回给这个A,那这样就会影响到了,也就是说如果没有这句话。
09:19
没有这个A等于,那么我可以告诉大家,你这个地方输出A的时候呢,它就是输出令原先的。A的成员变量,但是可期的地方是它等于,那就相当于他把这个返回值又重新赋给了这个A,好,那这样就会有影响了,注意注意它返回的方式,返回时将。将什么呢?将这个处理后的处理后的结构体变量重新重新付给了,付给了主函数的主,主函数的这个A,好,那这样就会受影响了,那这个时候我们可以负责的告诉大家,此时的这边输出的内容呢,就应该是这个F函数里面的内容了。
10:11
这边输出的输出的就是哪个呢?F函数中赋值的赋值的信息,那换言之就应该是哪一个呢?就是1102这个字符串,还有一个1201202这个值,所以说它应该输出什么呢?答案就应该是这个。肯定是这个哈。就是这个东西了。C,那答案显然就是答案是哪一个呢?答案就出来了,答案就是我们的D答案,答案是D答案,但是我再强调一下,这里边儿最可怕的地方就是说如果面试官他是这样出题的。他问你这样输出什么,如果是没有A等于,那么这个时候输出的其实就是1101张大,还有1098,这点大家看清楚没有,我这儿特别强调一下啊。
11:10
我这儿特别强调特别。特别说明,如果,如果命中。命中,它是这样调的,就是ffa。好,那么这时输出的就应该是哪一个呢?输出的又是原先这个字。是这个值。那有些同学说老师是这样子的吗?我们试一下吧,刚好这有段时间我们来试一下哈,给大家试一下,我在这边呢,写一段代码来给大家简单一个测试哈。好,这边structure我说了,他这个肯定是写错了啊,并不是故意,这地方不是错误,好,写完了我们来试一下。那为了好看呢,这个幂函数这边我们get一下。来运行。此时此刻我们这样调用。因为它会把这个返回的是覆盖命里面的A这一个结构体变量,所以它应该输出的是1102这个字符串,还有一个1202,我们运行。
12:10
看一下是不是跟老师分析的一样。好,我们运行起来。那运行起来功能,我们可以看到结果真的是这样子的,但是呢,我也我也说过了,假如我们这边没有接收,这个时候输出的就是原先这个值,因为你在这里面改变的东西,其实本质不会影响到这个A明白吧,好,我们再来看一下。一定要明白啊,同学们,不然的话,别人稍微改一下你就不懂了。你看现在是1101张大1098.0,没有问题吧,同学们好,这边我再把这个说清楚了,明白了吗?尤其是把这个地方要理解,就是理解这理解这个结果的原因,理解这个结果的核心点,就是要明白结构体传递的方式是这传递的,明白了吗?好,这样就可以了。这样就可以了,好了,那其他我就不再多多讲了哈,第38题就讲到这儿,第39题。
13:06
那么第三十九九题呢,这个题比较简单,它是R这个,这句话大家理解这是干什么吗?分析,这是位移运算。这句话是一个为为右移。为右矣。大家还记不记得,又右移,每每又每右移,右移一次,相当于。相当于除以二,还记得吧,那你看这个R等于八,R等于八的话呢,除以个二,那相当于说八除以二,那那显然等于四,答案应该是C。好,那就相当于什么呢?就是R除以一个二除以二,那其实就是八除以二等等于四,好答案。答案就是我们的C。第39题就评价完毕,评价完毕好,这边答案选D没问题,第40题,第40题呢,说下列关于C语言文件叙述正确的是哪一个,我们来看一下。
14:07
他说文件是有一系列数据依次排列的,只能构成二进制,这错的,他前面这句话是正确的。第一句话是正确的,后面不对,因为我们文件有二进制文件,还有文本文件吗?什么叫二进制文件,是不是老师讲过的呀,二进制文件像图片是呃,音频视频都是二进制文件,像我们的文本文件写,像我们像这种文件就是就是文本文件什么呢?你看这个。比如说像在这里你打开的。这个就是一个文本文件。啊,这个就是一个文本文件,明白了吗?好,所以说它这句话呢,前半句是对的,后半句错了,看第二个文件由结构序列组成,这个就不对了。呃,可以构成二进制文件或文本文件,这个呢,他第一句话是错的,第二句话是正确的,所以说AB都是错的。再看第三题,C文件是由序数据序列构组成的,对的,可以构成二进制或者是文本文件,答案选C。
15:09
答案选C,下面这个就不说了,下面这个也是错的啊,这个呢,就是大家明白文本文件和二进制文件,其实它是由序列组成的,可以是呃文本,也可以是二进制,好答案就是选C,同学们那关于这个真题的呃,操作题第九套我们呃,选择题第九套我们就讲到,讲解到这里,大家消化一下,待会呢,我们再讲填空题。
我来说两句