00:00
同学们,我们来接着往下看哈。接着往下看。下面的这个呃,也是一个,呃,一个题需要阅读一下代码题。这道题是什么呢?我们来看一下,它是这样说的,以下半函数的功能式找出具有N个元素的一位数组中的最小值,并作为函数值返回,请填空。那么现在呢,这个填空的代码就在这个for循环里边去哈,那这道题其实并不难,这道题其实就是完成一个什么呢?完成找出。找出一为一维数组中的这个最小值。从这里我们可以分析出来,大家看它是怎么返回的呢?它返回是XK,所以说在这个for循环里面,我们只需要找到最小值的下标就可以了。也就是说,在for循环中,循环中看清楚了对错,破循环中我们需要找到该最小值的下标,能理解吗?
01:11
那这样子代码就比较好写了,那我们这样子写就行哈,老师就在这写代码了好不好。非常简单,我们这样做就行了,If,如果我们这个X等于K。看到没有?如果XK它呢,它因为它是最小值嘛,对不对,如果它大于了,它大于了我们这个X这个I这个值。那说明它并不是最小值,因为它比别人大,它比别人大的话呢,我们就把这个K换一下。换成I就行了,就这一句话就行,也就是说XK这个K呢,它它大于它大于Xi,那说明人家这个Xi更小吗。对不对,那就把这个K换一下,换一下过后呢,这个I继续加加I加加完了过后再去比较你新的这个最小值是不是也大于下一个,整个遍历完毕过后,这个K呢,其实就指向了最小值的下标,最后再返回即可。
02:13
好,所以说我们填写的部分其实就是这么一句话。一个if语句就可以了,好吗?同学们,那这个题讲完,我们看11题啊,11题呢,也是一个程序阅读题,我们来看一下。他说这里有一个函数,对吧,F的函数,它有两个指针,P和Q。然后呢,它在这里有一个函数调用M等于一,N等于二,然后R呢指向这个地址,诶这个地方能不能画出一个内存图啊。可不可以这样理解,就是现在有一个M。是一能看懂吗?然后呢,有个N,它是二能看懂哈,然后呢,RR有一个R这个指针,它指向了M。
03:02
好,我就简简单化了,其实他这还有一个,还有一个空间存的地址,我就简化的好不好,然后呢,它调用这个F。把这个R传给了P,那也就是说P这个指针呢,也指向这个M了,能理解不?因为你R是指向M的,那么我又把R付给PP,现在也指向呃P也指向我们这一个呃M了,然后呢,Q大家看艾特服务。N付给了Q,那也说Q呢,指向了这个,N能看懂不?好,下面用了一句什么话呢?Return,星号P大于星号Q。也就是说,如果星号P。的值大于了星号Q所指向的值就返回,这个P是个指针,看清楚了。那也就是说,呃,谁大就返回呗,那大家想哪个更大一点呢?N更大一点,所以说这个地方会把这个Q的地址返回去,那R又得到它一,于是乎R呢,就指向哪里了呢?R就指向我们这个N。
04:14
它不再指向原先这个M了,看懂了没有,那这个时候我们在输出,大家看这里它输出信号R,显然就应该输出二。也就是说11题应该是二,好,我把这个图呢跟大家拿过来,把刚才分析流程也说的很清楚了,明白吧。好,所以说最后这条线大家一定要看懂哈,实际上是R呢指向了N。既然明白这个了,那答案就不在画下了,分析看了一个示意图,示意图在这里,根据这个图的分析呢,我们可以拿到这个结果,结果。结果就是二。那填写一个二就行了。11题12题我们来看一下,12题呢也是一段代码阅读题,先看它的题意,他说以下方函数的功能是在N行M列的一个二维数中选出最大值作为返回值返回。
05:12
那也就是说找到一个二维数组里面最大值,这个并不难哈,分析一下。嗯,我们来看一下它的含义,大家看这一个函数,它接收了是一个二维数组。对,接收。接收二。二维数组。对,二位数这边我少了一个中括号,拿到过后呢,大家可以看到它用了一个双层循环,看到没有,大家看这个双层循环在做什么事情啊,这有一个嵌套for循环。这个签到for循环,大家能读懂他在干什么吗?大家认真读一读。I到N接到M,如果AI结大于了。大于了a RA Co RA和column,然后就把这个Co和这个column进行一个置换,诶大家有没有发现其实这个线道循环就是在定位我们最大的这个元素的。
06:13
它的第一它的那个两个坐标,它的两个下标啊,是不是也就是说这个循环结束以后,注意听循环。循环结束后,结束后我们的这个肉。若和column就是,就是什么呢?就是该该二为。二维数组的最大元素的横纵坐标元素。的这个下标,那这样就很很好解决了,那最后我们要返回的显然就应该是哪一个呢A。因为它最后要返回最大值嘛,那显然就是a row和column。分析完毕。所以说我们12行要填写的内容呢,其实就是这个东西,哪个呢,就是A好,A中括号,若对,再来一个中括号克隆。
07:11
12。解答完毕13题。13题这个题呢,看起来很复杂,其实并不难哈,呃,但是你还是要认真阅读。他说程序运行后的结果是什么?我们来看一下第一层for循环。这个for循环呢,是给我们这一个一位数组赋值,也就是说这个一位数组负完了过后呢,就是这样一个数组。啊,就是呃,两个零。一个零,两个零。好的,然后呢,这个for循环循环了两次,我外层循环有两次,内层循环两次,一共四次,好看第一句话N,注意听哈,我开始分析结现在等于是零。N0等于N解解ii现在也是零好加一,同学们想这个结果应该是什么?N0现在是不是等于零呢?那就是零加一,等于几呢?等于一,好,第一个就结束了,紧接着来看下一个N结节呢?还是等于节现在变成变成一了,因为结在这个内,内存循环在这个负循环的内存循环里面的结加加,所以说这个就变成了几呢?变成了一,一呢?等于什么呢?还等于ni加一,那就是说还等于N0,因为I现在没有变化。
08:28
还等于N加一,那显然这个结果呢,还是一看清楚了,紧接着他又到坏层循环I加加了,I加加注意听啊,进来过后,呃,I结还是要先负,负成零,所以说N0等于什么呢?等于这个N看清楚了,这时同学们这个时候啊,第二次循环进来后,这个I呢,已经变成一了,能看懂吗?就N1加一等于几呢?N1现在是不是等于一啊。N1现在等于一,所以说嗯,我我刚才有个地方分析错了,同学们这有问题。
09:04
刚才这个N1,呃,在进来的时候是N0加一,而N0已经变成一了,刚才这个是有问题的,刚才老师说说了啊,是一加一,这个变成二了。因为你第一次进来这个N0已经变成一了嘛,所以说再来N0加一的话变成二,好这个地方老师刚才说错了,补一下,现在是N1加一,那就是二加一等于几呢?等于三没问题吧,好,紧接着再来看N1,这是关键,因为这是最后一次。呃,当我们这一个元素反复赋值的话呢,以最后一次为准,这个应该还等于N1,因为它进来过后呢,这个I没有变化,还是一嘛,就N1再加一个一。再加一个一,那么此时此刻啊,同学们看到呃。此时此刻。此时知道这个N等于几呢?是不是N1还是等于二啊,没有动过。是吧,因为N1嘛,你现在这个N1还是等于二的没有变,所以说是N1还是二加一。
10:09
二加一的话,是不是还等于三啊。所以答案等于三。好,那这个分析的流程我写到这里来,好吧。放这那也就是说,也就是说这个分析过后呢,这个结果是三好,最后我们这个N1 N1对N1还是等于三。晓得了。因为这个还是等于三哈,还是等于三。那最后这个结果呢,就填写一个三就OK了。那第14题,14题呢,又是一道程序阅读题,我们来看一下它是在做什么事情啊?他说以,嗯,他说以下功能借助指针变量找出数组元素中最大值所在的位置,并输出该最大值。
11:00
然后请在输出语中填写代表最大值的输出项,好,这个题呢,我们来看一下就行了,首先呢,这有个一位数组P和S,好,上来过后第一个for循环。第一个for循环呢,大家可以看到P等于P等于A,那就是相当于让这个P指向这个A数组了,假设我们这是个A数组哈。这是A数组,那么P就指向这个A数组,然后呢,只要P减去一个A小于十,就P加加。那相当于说这个P呢,就是这个P呢,在不停的扫描我们这个数组,能理解吧。也就是说这个地方,其实这句话就在输出原始的数组。好的,那紧接着呢,它又P又重新指向A的第一个数组,让S也指向这个数组了。好,现在呢,还是P小于A减A小于十的话呢,我就可以继续做,然后又是P加加,大家看这里它有有点意思了,他说如果星号P。大于星号S。也就是说,P。
12:00
P指向的这个数据大于S所指向这个数据。因为这个啊,刚才我说。大于这个S所指向的数据。那么就让这个S。就让这个S呃指向这个P,那那说白了就是,那说白了就是你你比如说你这个P在不停的找最大值,那么你只要找到最大值,我也我也让这个S指向这个最大值。说白了,你这地方最终运行完了过后,这个S就指向我们A数组的最大值,这个元素就完了,那最后当然大家知道应该返回什么了,那就是信号,信号S不就完了吗?好,这个就分析完毕了,没什么可说的。我这只说一句话啊,分析一下就就把这句话分析一下就可以了,主要是这句话大家读起来有点难度,这句话是是便利。便利。哪个数组呢?A数组A数组最终结果是,最终结果是S会指向指向该数组最大值。
13:11
啊,该数组。最大该数组的。我看看啊,该数组最大值。最大值的这个元素。啊,那当然你最后返回来用星号S返回就可以了。14题就是信号S完事了,第15题,第15题呢是一个文件考察题,它是考察文件操作的,考察对文件的操作也不难哈,我们看一下。呃,他说打开一个程序新文件,打开以下程序,打开一个新文件f.TST调用呃函数呃字符输出函数,将A数组中的字符写入。那他第一句话呢,他就让我们填个东西进去啊,填写请填空,那这个题其实挺简单的,没什么可读的,因为下面的代码呢,它其实就是在完成,呃。
14:06
将A数组的字符写入到其中,你看它这打开这个文件呢。F open f open,打开这个文件,然后呢,一个for循环,For循环呢,呃,就把这个A里面的每个数组写入到,这句话是把A数组的每个字符写入到FP所指向的文件中,最后关闭文件,那这个地方太简单了,直接加一个标识符,就是规定它的一个变量类型就可以了,所以说实物,实物这个空格呢,空格空填写。就是FP的类型就可以了,那类型是什么呢?Fire。是不是也就是说15这个地方我们要填写的是哪一个东西呢?代码就写完了,这个太简单了啊,只是大家要看一下这个是干什么,这是在将将AIAI。
15:00
的内容,其实AI就是个字符了,将AI字符写入到写入到哪里去呢?FP这个文件指针指针,注意听指针指向的指向的文件啊,最后呢,它这有个f close这个虚化是关闭文件。好,同学们,那关于第十这第15套题的评讲呢,我们就讲完了,大家要多听多看啊,这样呢,我们在嗯,考试的时候,考二级的时候就会游刃有余,甚至大家拿一个优秀都没问题,好,我把刚才讲的15套题跟大家板书一把。板书到我们的笔记中去。这是第15套题,没有问题吧,同学们。并不难。15道题,15道题这边这套题呢,是一套选择题。选择题内容还是比较多的。放在这里了,好吧,然后呢,我们把这套题的试卷跟大家整理一下。
16:00
C语言真题第15套试卷。试卷好的,诶,写错了试卷。然后我们来一个箭头哈。然后把代码把我们讲的内容呢,给它复制过来,在这边吧,好像。整体啊。来,从这开始复制。因为这里面的题比较多,所以说复制的内容呢,也相对多一点。好,这边还有一些分析的时候,有些图也给大家翻过来了。插入一个表格。放进来。好房结构呢,我们把格式也带过来,这样便于大家的复习。稍等片刻,因为他这要粘贴复制图片慢一点哈,大家看图片也过来了,好,同学们,那关于我们这套第15套的一个笔试题,也就是选择题啊,还有一些填空题呢,就给大家讲解到这里,大家好好消化一下,好,那这一讲我们就到这里。
我来说两句