00:00
同学们,我们来看C语言真题第八套,第八套呢,也是一套上机题,我们来看一下。我们先把这道题打开。然后呢,我们来一边讲一边分析。双击打开,打开过后呢,我们来看第一道,它的第一道题是程序填空题,好吧,先把这个题呢拿到我们的VS2010。同样道理,为了好讲解呢,我们新建一个文件夹。走起来,Exam。零八。好,这是我们的第一道题,填空题。写到这里哈。A08杠零一。把后缀进行一个简单的修整。放这那首先呢,我们来看一下这个题的题意是什么,然后我们再来填空。
01:00
看一下这个题吧。同学们看这道题呢,他是这样这样讲的哈,他说给定一个程序。它的功能呢,是根据这个行参,行参是MM是在是在二和九之间的一个数,当然是个整数了。在二维数组中呢,咱们存放了一张M行M列的表格,那说白了就是。一个正方形呗,这么一个句型,这个句型呢,行和列是相等相等的,然后在主函数中输出,例如它给了一个例子,同学们一定要认真看他给的这一个案例,也就是说待会你在进行调试的时候呢,如果输出的结果跟他一样,说明是正确的,反之则是错误的。看这里第一个。呃,他说如果输的是一个二呢,它返回的就是这么一个句型。对,那什么一个就是1224,如果输的是一个四呢,就返回一个四行四列的一个矩阵。四行四列的,至于它这个值为什么一二三四二四六八三六九十二,四八十二十六,你不用去管它的规律。
02:08
这个规律你不需要管,因为你是填空题,填空其实你是要根据它的业务逻辑来走的,好我们来先把这个写一下啊,这个地方应该他少写这个VO的。这,这是他的题本身给错了哈。这地方应该加一个贸易的。同学们,这个贸易的不是他们填的,这应该是咱们这个题,它本身这地方少了一个贸易的啊,加上就行了。好,我们这三个空哈,那么一边讲一边分析来看一下。分析流程。分析。第一点我们看一下,首先同学们要明确的知道,就是。对于填空题呢,我们是要根据。他给出的这个题来把逻辑补全。所以说呢,至于它为什么是二十六八三六九十二,你其实不用关心明白吧,好,我们来看第一个,首先我们看。
03:05
哪个地方哪个容易,就先写了一个,大家看第二个空格是不是好填呢?为什么第二个空格好填呢?大家想一想,第二个空格它是不是调用这个放函数啊,而这个放函数呢,它这边是给定了的,这边是一个二维数组,这边是一个int值,所以说对二空空格是最好填的,先把这个填上。空格二。空格二它应该它是去空格二是这里应该干什么呢。调用了调用放函数时,函数时。传入,传入食仓。那既然你是传入13,大家想你这是一个。二位数组对不对,这是一个M,那你这个前面二位数组不就是只是A吗。那你就填一个A进去就可以了。
04:00
是吧,那你这边N是不是这输入进去的,所以说它应该填什么呢。他就应该填写。填写这样一个内容,我们写到这里哈,第一个参数就就应该是。是什么东西呢?大家想一想,是不是就应该是A呀,这个A是不是就是我们的一个全局数组。注意听这里面啊,A是全局数组填写的是A,然后这边呢,应该填一个N就可以了。这大家看懂了没有,所以说他应该填写的是an。对。那么这里你你要明白,A是全局,全局的一个二维数组。对,N当然就是我们输入的这一个N值了,是多少就是多少,第一个就填完。好,第二个空格咱们处理完。同学们再来看,现在我们再来看这个放函数了。大家可以看到这个放函数,它在做一件什么事情呢?它是不是经经过了两个双层循环,然后这边拿到了一个值,哎,大家看到没有,放函数其实就是对我们这一个二维数组。
05:15
进副职啊。是不是这个样子的,所以说这思路又有了,大家大家可以看。空格空格一这地方好。空格一。因为大家看,因为这个放函数放函数。它的功能,它的功能就是对什么呢?对A这个数组数组进行赋值操作。是不是进行复制操作啊,你看这边不就是一个一个一个节一个K吗?而结和K呢,分别是M。你传进来是什么就是什么,也就是说它这个二维数组,它有可能没没有用完,你这个M是十,它原先数组是十行十列的。
06:04
但是呢,我们有可能在赋值的时候呢,只是负了M行和M列,这个能理解吗?好,注意。注意A数组,A数组是十乘以十这么一个矩阵,或者说这么一个二维数组,但是呢,但是。注意听,但是在负值的时候,在。副职时。负值时,是对应的M乘以M。那这个M。一定是要小于十的,你看它这个地方是M小于等于九,所以说它不会超过你最大的这个范围,是不是不会超过,因为你十行十列,那下标最大也就九嘛。因此这个是刚好吻合的,因此你既然是付出值,那这个就简单了呀,那这个应该填什么呢?那就应该填A。
07:01
JK能看懂吗?因为节是它的行,K是它的列,所以这地方填什么呢?应该填写这个,注意填写的就是AJKJ。劫是行,而K是列。K4列没没有问题吧,现在第二第一个空咱们也填了,现在我们来填空格三。空格三怎么填呢?同学们想一想,你看。空格三其实说白了就是一个负循环,它在这里干什么事情呢?它其实是把我们已经赋完值的这个A数组进行一个输出。是不是这样的道理啊,说这句话要看懂。这句话要看懂,就是这里面呢,要把这个阅读阅读到位。这个要阅读到位,就这句话,它的作用,它是干什么呢?是输出,输出A数组,或者叫A就是A数组。
08:06
A数组的M行和M列。M行和M列。是不是这样子的呀。为什么是M行MM列呢?因为你看这个N啊,这个N,因为嗯,到这就应该不能叫M了,因为你传进去局部变量是M,这个M就是等于N,所以说这应该是N行N列,注意这个N行N列呢,它不一定就是十,它是小于十的,因此既然它是输出A数组的N行N列,那这个三空格就很简单了,那应该填些什么呢?那就那就就是埃及了呀。没有问题吧,就是埃及代码就写完了。因此第三个空格咱们填的就是AI节,因为你现在在进行编辑的时候,I代表行,截代表列,那么它不能超过N。代码就写完了,代码写完过后呢,我们来进行一个简单的测试好不好,看看能否跟我们想象的一样。
09:07
各位同学,来走一个。运行。运行过后呢,我们输先输一个二。看看这个结果跟我想的一样,是的,1234,我们再输入一个四。四四吧,好像是四,返回的是1234246836。呃呃,三六九十二四八十二十六没有任何问题。没有任何问题,那这个时候呢,测试完了之后,把这个代码给它,两个get叉给它拿掉就可以了,好,这就是我们这一个填空题的什么呀,分析和他的解答,我也把它放到我们的笔记中,没问题吧。这是我们这一道的题的一个说明,好,放这。好,这是分析和解答。好,下面呢,我们继续来学习下,呃,看下一个题,下一个题呢,我们本身应该讲修改题,但这个修改题呢。
10:07
这个修改题其实有点难度。哦,这个修改题有一点难度,我跟大家讲,这个修改题你稍微不注意是做不出来的。这个题你不要小看它,有点难度,干脆这样子,我们先把设计题讲完,再讲修改题,因为设计题相对简单一点,好吧,我们先把这个简单的搞定,再去搞这个复杂的。同学们,你们在考试的时候一定要遵守一个原则,先易后难。现以后呢,本身我们时间都是有限的哈,我们一共有三道题。那你不能说我第一个填空题我填不出来,我就卡在这地方,有可能后面的修改题和设计题你能做出来,但是你填空题一直在那卡着不动,时间也没有了,你后面两道题40分你也拿不到就完蛋了,明白吧,所以说我们可以先易后难的原则来完成,在考试的时候呢,要遵守这个规则,来吧,我们写下程序设计题。
11:03
来,朋友们,我把这先关掉。然后呢,我们打开VS2010,我们先把它注销一把。然后我们写一个新的文件,新的文件取个名字exam。0808杠零三,因为这是第三一个题嘛,所以说我编号还是0803没问题。把后缀改成C。把题拿过来。把题拿过来过后呢,我们仍然是按照原先的规则对这个题进行一个阅读,我们看一下这个题它是一个怎样题型。他叫我,他说编写一个函数方,它的功能是计算正整数N的所有因子,一和N除外。问题来了,什么叫因子?一定要同。如果同学们不能理解什么叫因子,这个题呢,应该就做不出来了。
12:01
但这个因子并不是一个很难的概念吧,同学们应该很轻松的知道哈,应该很清晰的知道因子是什么概念。那么它把这个因子的和作为函数值返回,因子的和作为函数值返回,例如N等于一百二的时候呢,它的函数值就为290 239,然后他说不允许改变主函数,就不允许改变这个主函数和其他函数任何内容。那现在我们就开始写吧,这个题应该不不难。这个题应该不难,我们来看一下,首先我们分析一下。分析。什么是因子?什么是因子?因。因子,先把这个因子的概念给大家说一下,这样说哈。能能整除。N这样写能整除。
13:01
嗯。的自然数。自然数自。自然数就是说能整除N的自然数,即。称为。称,为什么呢?因子就这个意思。这个待会儿我们写代码再来理解。就是说只要。你有一个N,然后呢,我我能够把你这个N整除了,这个自然数就是因子自然数,就是咱们说的一二三四五六七八九十这样一种数字,好吧,那现在呢,就说我要求N的因子呢,就是什么呢?就是能够整除N的这些数。但是要除去一和N,要除去一和N,好,这个代码其实挺简单的,对不对,那我开始写了,那首先呢,我们来定义。肯定是用分析出来,肯定是用for循环了。这里使用for循环。Four。
14:00
循环。那么这个for循环呢?For循环。它在哪个范围呢?在二到N减一之间。就是说二到N减一这个范围内进行一个排查,为什么二到N减一呢?因为他要把一和N除外嘛。是吧,二到N减一,好这个就OK了,那现在我们来开始写,首先呢写一个I。S等于零,这个S呢,就是用来统计它的和的,当然这个S呢,S用于累积,累积所有因子的因子的和。对,那么这个I呢,是用来控制循环的次数的I。I用于用于循环变量。用于循环变量。好,那这样写完了,我们就负循环了,那I初始化为是不是二啊,因为一要排除掉嘛,那I小于等于N减一,这个能懂吗?
15:06
因为我要排掉这个N,所以说小于等于N减1I加加。那现在呢,我们就来判断。你这个I能否整除我这个N就可以了,那一句话的事,If如果N模上这样写么,N模上I等于零说明什么呢?说明你这个I就是因子。就I就是我需要的因子,I就是NN的因子。对不对,那这样子我们就把它累积到哪里去呢?S中完事了。代码就写完,最后for循环结束以后,我们这个S拿到了代码写完。代码就写完了,就这么简单,其实这个题还是很简单的,在一个for循环里面呢,然后配合了一个配合一个if语句。即可。代码完成。
16:00
同学们,我们来试用一下,看看它能不能跟我们想的一样get charge。运行。运行运行过后呢,我们看结果。这个结果是239,跟我们这边要求的239是完全一样的。答案正确,好,最后呢,我们把增加的这一部分给它去掉就可以了,同学们,那关于我们这一个程序设计题就讲解到这里,我把它板书到我们的笔记中,写一个好。同学叫分析。分析和解答。同学们关于第八套题的前两个题就跟大家讲解到这里。
我来说两句