00:00
同学们,我们来看第13套操作题的。程序设计体。同样我们先对程序设计题呢进行一个阅读,然后呢我们分析,最后我们写代码。同样道理,我们把这个拿过来。新建一个文件。文件名咱们取一个叫exam。然后呢,是幺三杠零三。把后缀进行一个修改。好的,同学们,我们写到这里。然后呢,我们对该题进行一个阅读和分析。阅读和分析。我们先来看他这这道题是说件什么事情哈。他说请编写一个函数,放。请编写一个函数放,然后呢,它的行参大家有看到了,它是一个查新,也就是说它接收,它是一个以指针的形式来接收的,函数的功能呢,是把字符串中所有。
01:06
字母改成该字母的下一个字母。这大家读懂了吗?就是他把这个字字字符串中的所有字母,这是所有大家是不是应该知道这块会有一个for循环,或者是一个while循环都有可能。他将所有的字母呢改成该字母的下一个字母,最后一个字母Z改成字母A,为什么他说这句话呢?因为大家知道Z下面就没有了。这下面是不是没有了,那那如果别人不给你这个题目,题上不给你说这应该怎么处理,你是不是就蒙圈了呀,因为这是我们字母表里面最后一个,他不告诉你,呃,应该怎么处理,你这往下就没有了,所以他专门说了一句话,最后一个字母这呢就改成字母A,也就是说相当于是这又回到了最前面这个说说明它是一个以循环的方式来进行这样一个转换的。
02:06
大写字母呢人为大写字母,小写字母仍然为小写字母,那这句话就说明我们大小写是要分开处理的。这个能读懂吗?就大小写,其实你是要进行一个处理。紧接着我们来看。其他字符不变,例如说呃,那这个题题其实我们已经分析出来有这么几个功能了。第一个。对不对,这是他第一件事情,第二个专门说了一下,最后这个字母怎么处理,然后第三一个呢。第三一个他说了大小写字母呢,不需要变化。就是大写的还是大写的,小写的呢,仍然是小写的,最后其他字符不用变,最后呢,他在给了一个案例,比如说大家一定要把这个案例看清楚,因为你后面写完代码以后,要用他给出的这个测试案例来证明你的代码是否正确的,他说假如我给了一个字符算式MN,点123 XYZ。
03:11
那么通过这个函数调用以后呢?串中的内容就改成了这样一个值,为什么是这样的呢?大家看M。M大写的M的下一个字母是什么呀?大写的N。说改过来了,N呢,N的下一个字母是O。而且大小写没有变化,点123看点123是原封不动的写到这了,点123,为什么它不是字母吗?然后XYZX。X小写的X对应的下一个是YZ,呃,X对应的是YY对应的是Z。最后一个比较特别是大写的Z,大写的Z呢,它经过这个转换过后,变成了一个大写的A,注意他说了,大小写不要变化,如果你这是小写的Z,就应该变成小写的A,这是大写的Z呢,就应该变写大,变成大写的A,代码就写完了。
04:12
那下面呢,呃,题明白了,过后同学们,我们现在就来开始写代码了。我这里呢。做一个简单的分析。好,首先第一个,因为他是,嗯。它这里呢,是要对所有字母进行修改,所以说肯定会用到for循环,这个大家能分析出来吗?这点很重要,因为。因为是对所有的字母处理。处理。因此需要对传入的传入的字符串进行便利,所以说这第一个你要分析出来,第二个,第二个同学们要单独的处理这一个。
05:00
最后这一个字母要单独处理一下,因为这个Z,因为其他的你,你比如说从A,从这个A到这个Z之前。比如ZZ啊,这这这之前我们处理起来其实就是加一个一就完事了,但是Z比较特别,因此但不管是大写的Z还是小写的Z呢,要单独处理。哦,就说处理的规则,处理的规则是什么呢?在原先的字母上。字母上加一就可以了,但是但是但是这一个小写的Z和大写的Z要单独处理一下。需要单独处理。这个你要分析出来了,好,那这样写完了过后呢,我们就明大致明白是这样一个规则了,使用什么呢?使用一个for循环加一个Switch就可以处理。
06:00
好代码我就分析完了,那现在呢,老师开始走代码了,第一步,首先我先定义几个变量啊,我定义循环循环变量循环变量I,这个是不是要定义下来,还要计算。计算什么呢?OK,要计算字符串的长度。长,因为只有字符串的长度有了,我们才能够怎么样才能编译好下面代码,就int I没问题吧,认识。好,现在呢,我们首先把认识算出来。呃,这个应该是TH单词写错了,等于什么呢?使string,使string令而而且它事先呢,已经把string.h头文件引进来了,所以说string内,然后把这个S放进去,是不是把长度就拿到了,长度拿到以后我们是不是可以负循环I循环变量输出化为零,I小于什么呢?认识。
07:04
这个能看懂吗?爱家家。循环大家看到,嗯,因为这说了,他说其他字符不变,所以说我们先来做一个处理。这是什么呢?如果我们先判断一下同学们,如果这个SI。SI,它大于。它大于这个A。对不对,它大于A,并且看清楚了,并且这个SI这个要要小心一点,SI小于等于A小于等于Z。在这个范围以内,是不是我们是要去处理的呀。是不是在这个在这个范围里面,我们是要去处理的,因为它是A到Z吗?或者或者什么呢?它是在大写的A到大写这之间,大家看懂看懂哈,如果它在大写的A到大写的这之间,是不是我们是需要去处理的,这个能能懂吗?就在这个之间。
08:07
在这个条件满足的时候,我们要去是需要处理的,那么反过来如果不在这之间呢?因为不在这之间的情况更多一些,所以说如果不在这里面,我们取个反。也就是说,在这种情况下呢,我们不做任何处理,就直接怎样continue,还记得这个continue是干什么事的吗?这句话啊。就是老师写的这句话,就是我先判断它在这个范围内,或者在这个范围内再对它取反,就说明它是不在小写的A到小写Z之间,也不在大写的A到大写Z之间,那么在这种情况下不做处理,直接continue。能看懂。否则下面的。下面就是要处理的字符了,那需要处理字符呢?那我们只用Switch。
09:01
所以呢,SI看懂了。这些Switch语句for循环语句前面讲讲的很清楚了,Case如果是Z,是不是要单独处理一下?如果是小写的Z。如果是小写的Z,我们怎么处理呢?就SI就直接给它来一个大小写的A就完事了。是不是这样,我们换一行吧。然后在break,不要忘了,你如果没有这个break会穿透,一定要把这个break带上,如果,如果它是大写的。那么我就返回大写的A,因为这两个情况呢,它是比较特别的,要单独处理,老师是不在前面已经说过了,其他情况是不是很简单,直接加一,这个加一呢,不管你是大写的字母还是小写字母都可以加一。他这个小J比较特别,单独处理一下其他的,其他的我们写个deat。
10:03
这个能理解不?D fau depot depot,就是其他情况了吗?就是既不是小写的Z,也不是大写的Z,在这种情况下,我们只需要做一个简单处理,怎么处理呢,来?改它的一个值加一个一就完事了。好的。这个能否理解,同学们这个能否理解应该是很好理解的,最后保险那个break代码写完了。那也就是说大家可以看到它这里面其实一个for循环里边套了一个if语句,再用一个Switch来处理,就是说它有两个逻辑。第一个逻辑就是在循环过程中,先,如果不是我们要处理的字符呢,直接判断完了就continue,回到这边继续处理,如果是的话呢,用一个Switch来处理,Switch里面呢,又分两个情况,是Z,是小写Z还是大写Z。否则又怎么样,代码就写完了,朋友们,那关于这个写完写完过后呢,我们有需不需要返回呢?不需要返回,因为它是指针代码就OK了,来我们试一下,为了测试呢,我们这来一个get char没有问题吧,来两个get。
11:16
朋友们,运行之。同学们运行值,那运行的时候呢,我们就简单一点了。就简单一点,我们直接就用他给的这一个案例来进行测试。我输入。我输入。MN123XYZ回车,那同学们可以看到它处理完了过后变成NUMBER123YZ,大写的X,大写的A完全正确。答案,OK。这道题程序设计题就给大家讲解到这里,大家看听懂了没有?就说这里面最关键就是同学们要对我们的第一个你要理解题意,第二个呢,你你要对编程有一定的认识。
12:04
对,你要当然我这个题呢,不是说只有这一种解法,你也可以反过来写,说老师我先处理这个,在这个先if里面再把Switch放进去,也可以有些东西说老师我不我这不加这个if语句。我不加IF1句,我直接,呃不是不不取反哈,我我判断是不在这个范围内,在这个范围内,我直接把这个Switch扔到if里面去,可不可以也可以也可以,好就看你们自己的一个编程习惯了,各位把代码梳理到试卷之中。好,这是分析和解答。好,那为了将来同学们好看呢,我把这套题也给大家放到我们的。笔记里面去好吧。第13道题。第13道题呢,是上机题。是上级题,我把图片先拿过来,然后呢,在这里我们写上C语言第三套试卷整理。
13:06
对不对。C语言第13道试卷。试卷,诶,试卷。好的,给它来一个小的箭头。然后呢,插入一个表格,便于我们今后的复习。放这好好,那试卷呢,我就从这边复制一份。代码并不难,对不对?只要你认真把前面我们讲的内容都明白了,做这些题其实都是小儿科,真不难,但是你要不明白的话,那没法了。好的同学们,那关于我们这一套第13套题的一个上级题的讲解呢,就给大家说到这里,大家消化一下。
我来说两句