00:00
同学们,我们来看全国计算机等级考试的第17套,第17套题呢是一套上机题,对,也就是这里面有我们的填空题,修改题,还有程序设计题,我们来看一下第17套题它有哪些内容?我们先把这套题呢,给大家放到桌面,便于我们的一个讲解哈,打开它,打开它之后呢,我们先看它的第一套,第一套叫程序填空题。这道题呢,我们先把题阅读一下啊,OK,同样我们先把题。拿到我们的VS2010,这样呢,一边分析一边来写代码。我们新来走一个,我们新建一个文件夹ex。M117。然后新建一个文件吧。做一个。取个名字哈,EXAM17杠零一。
01:02
然后将后缀做一个修改,没问题放这儿,然后我们看一下这道题他给出的题是怎样子的哈。他这样子一个要求,他说呢,从键盘输入若干行文件,每一行不要超过80个字符,这是他的要求。将你输入的内容写在一个叫my file4的TXT文件中,用负一作为字符串结束标志,也就是说我们输一个负一呢,就表示。整个输入结束,然后将文件的内容显示到屏幕上。对。然后呢,文件读写分别有自定义的read text和right text直线,那也就是说它的功能是相当于说这有个屏幕。我们呢,输了很多的内容,对,输了很多内容,把这个内容呢,写入到一个文件中。这个文件呢,你要名字叫MY什么什么什么,然后把文件写进去过后呢,再重新再读回来再显示,是这个意思理解了吗?就是把你在屏幕上输的内容先写入到文件,再把文件里面内容再读回到我们屏幕进行显示,这是它的一个功能,明白了哈,那明白过后呢,我们就可以开始来写这段代码了。
02:21
来,一起完成吧,在这里。我们一边分析对,一边写代码。分析。工人的要求很明确。是干什么呢?将用户输入啊,在输入到屏幕。屏幕上的内容写入文件。写入文件,写入哪个文件呢?叫MYBUS,文件名别忘了对。这是第一个,然后然后将MY4.txt的内容。
03:01
内容再读取,读取显示在屏幕。显示在屏幕,OK,好,那现在我们来看这段代码,我们一边讲一边来进行一个分析。首先我们看。呃,这大致的阅读一下吧,这是一个write text函数,是写文件的,这个是读文件的,没有吧?这是一个文件指针,能看出来吗?文件指针全局的是个全局变量,OK,然后下面呢,这有一段代码,看到没有?他打开一个文件是以W形式打开的,那我问大家,如果这个文件打开过后,呃,文件不存在,是不是会创建一个文件。这点要明白哈,如果文件不存不存在,它会创建,然后呢,这个空就说如果我们打开这个文件失败。呃,那么我们就直接退出了。这段代码你可以看的很清晰啊,这有个open file,然后退出指令啊,然后呢,他就write text,那么看这句话就是写写内容。
04:03
这句话就是将用户输入写入文件。那他怎么做的呢?我们来阅读一下这个代码,看这里第一个空啊,Right,这里面它接收一个文件,大家猜一下这是什么地方,这肯定是一个文件指针呢,你看它这里面。他这里面肯定要接收到一个文件指针,所以说其实第一个就分析出来了,空格一,空格一应该是,呃,这里呢,应该是空格,应该是接收一个文件指针的行参。就是我们这样写吧,Right。把这个粘过来好吧,把这个粘过来,这里这个行参。行参应该是一个文件指针。指针,那既然是文件指针,你就来看它下面哪个哪个运动呢,大家有没有发现这有一个FW。对,那既然是FW,它就文件指针,那我们这应该填写什么呢?非常简单了,那就填写的就是星号AFW,完事第一个填空搞定。
05:07
没问题吧?第一个就填完了,那他这里面他说enter string。让你我们输入一个字符串,然后用负一表示结束,Get,这个是不是读取一行?读取一行过后呢,他就判断你是不是负一,如果不是负一,它就干什么呢,把你把你这个,呃,读取到的内容写入到这个文件中。呃,对,然后在f puts啊f puts也也就是说他在把这个呢干什么呀,给你,呃在就是在每行结尾过后呢,换写了一个换行符,写到这个文件里面去,对这个要读懂哈,然后再继续让你读取,就是他继续再读下一行。能读懂吗?好,这是读取一行。读取一行。看懂了判断是不是判断是不是负一。
06:02
如,如果不是负一,则,则继续。则继续,那继续呢,这地方显然这句话大家能分析出来是什么呢。他显然是要把你读取到的内容写入到这个文件里面去啊,所以说空格二我们也分析出来了。没问题了,同学们二,空格二。空格二呢,它是这样一句话。大家想一想,他是干什么呀?是将对将读取到的内容写入。写入到FW指向的指向的文件中,那显然就应该填写哪一个呢?显然就该填写句,为什么?因为你刚才读取到内容就存在十句里面的,所以这里面不用犹豫,不用彷徨,直接使句。然后他把这一行写进去过后呢,他同时把这个换行符也写到你的文件里面去了,然后继续读取下一行。
07:01
直到读到一个负一。哎,直到读的一个负一,注意这个负一呢是一行哈,就是比如说你单独起一行输一个负一。两个空就填完了,我们再来看,呃,紧接着看下面回到这边来哈,他把这个写入的文件以后呢,关闭了文件,这是关闭文件。关闭文件,那关闭文件以后,大家看它又打开这个文件了。打开这个文件是以读的方式打开,这时如果文件不存在,它是要报错的。那因为你前面已经创建这个文件了嘛,所以说读应该是没问题的,然后他说如果你返回一个空,他就说打开失败,然后调用read text读取文件。读取文件,那么读取文件我们看这里面应该怎么填呢?大家看这里它也是一个文件指针。看看read file and output to string,就是读一个文件,然后呢,显示到屏幕上,然后用FS这个这句话大家能理解什么意思吗?就是从。FR读取81个最多读取啊,应该是最多读取最多。
08:07
最多啊,最多读取81个,到哪里去呢?到视讯。这个字符数组。然后读到过后呢,只要这句话明白什么意思,只要不到文件的最后。这句话是啊,只要,只要不是文件结束。没明白意思吧,只要不是文件结束,那么我就一直读,那读取一行,是不是我们要显示一行啊,也就是说这个地方就应该把你读取到内容显示到屏幕中。又分析出来了,我们空格三。空格声就是将这里啊,就是将读取到的将。听啊,注意听啊将。从文件中读取到的内容干什么呢?啊,输出到输出。那显然这一地方应该填写的是什么呢?那你看你怎么读的呀,你是不是把内容读取到卷里面的,那你就显示不就完了吗?所以填写一个俊完事。
09:10
那代码呢,我们就写完了,或者说填完了,同学们测试一下吧,注意对于这种上机体一定要测试好不好,你不测试你不知道对不对,那怎么测呢?为了好看哈,我们在这加叉。加两个才可以。好,同学们,我们来运行,我现在呢开始给大家测试一下。歇歇吧。我们写,多写几行哈,然后hello。Hello word没问题吧,然后我写个VO的主函数里面呢,换行,比如说这是一条注释啊,我们多写点,写点中文啊,这是注释。Okay。然后呢,我们写一个int a等于。啊,比如说int a,然后呢,B等于A加一好吧,然后呢,结束。
10:04
好,现在呢,我要结尾了,我现在准备不往里面输了,输一个负一结束,好同学们可以看到,那这个时候呢,这是我的输入。对,负一不算,然后呢,它显示出来是hello word,就是你刚才输进去的那种,它原封不动的给你输出了,同时这个文件有没有生成呢?我们来看一下。那同学们想,这个文件现在是放在哪里的呢?这个文件在你没有指定路径的时候,它就是放在你这个可执行程序所在的位置,那么我们找一下这个文件在哪里。这个文件是在大家看是在user administrator document,我就找一下啊,我给同学们定一下位。在哪里呢?在我们的C盘user document,然后呢,诶,Document在这里,然后是我们的2010,然后是我们的项目c exam。
11:01
高exam下面我们的程序是不是在这里啊,所以说那一个MY文件呢,应该也在这生成,果然是在这里看刚刚生成的打开。打开打开公众看内容是不是一样的,完完全的一样,对不对,Hello world I mean,这是注释完全一样,所以说这个代码呢,我们这样写是没有任何问题的,同学们,我把刚才这段分析拿到我们笔记中理解哈。给大家来一个表格,要分析和解答。A。分析和解答。放进去。那同学们看修改题。程序修改题,程序修改题呢是找错的,就是看哪个地方错了,我们进行修改就可以来,同样的规矩,我们将这一段代码呢放在VS2010,一边分析一边改错。写个。叫EXAM17杠零二没有问题,把后缀进行一个修改。
12:03
然后呢,我们拿到这里来。我们先来阅读一下这段代码,他要做一件什么事情,好不好?这段代,呃,这段代码呢?它要完成的功能是给定了一个猫DC文件函数,放的功能是将字符串TT中的小写字母改成对应的大写字母。诶,那么其他字符不变,比如说若输入AB一个逗号CD,则输出大写的ABC,那就说其实就是把小写字母转成大写字母嘛,那就太简单了,那我们我们在前面讲很多题的,讲选择题的时候,填空题的时候,有很多这样的类似的题,对不对,那么直接往下看就行了。嗯,看一下主函数这里呢,它接收一个TT,让我们输一个字串,然后盖茨读取一行,读取一行呢,调用了放TT。那这个TT呢,大家看它用指针来,呃,它返回的就是一个指针。对,这个指针其实就是一个数组啊,原数组看到没有,他把这个数组进行一个修改,他接收的呢,我们传的是一个TT,是一个数组名称,它接收的时候呢,也是以这个名称接收的,那下面看一下这里我们来阅读一下哈。
13:12
首先呢,它在这I等于零,T ti相当于这句话是在遍历。是不是在便利?变力嘛呢,面力TT这个数组没问题吧,变力T数组,那大家看他说如果A大于,就是你读取到这个字符大于等于A,小写的字符A,呃,并且小,诶这个就不对了吧,大家看这不对。你不是要对嗯,这个小写字母修改,那应该是大于等于A,小大于等于A,并且吧,应该是那男士或者呢,好错误一已经找到了。错误一,咱们已经找到了啊,来分析。分析,一。呃,第一个错误一,错误一。呃,因为这里是错的。
14:02
这地方错误的原因呢说一下,因为我们是将A到Z到Z的。的字符盖转成转成大写的。大写的因此,因此什么呢?这个是一个且并且的关系,你不能说是货呀,那就麻烦了,或呢,那大于大于A的那一堆啊,对不对,所以它的关系呢,应该改成什么呢?因此我们就应该改成这样子的。啊,聪明应该改成什么呢?修改成这样一个东西。修改成这样一个东西,把这个改成他完事。好,第一个修改就完毕,我们再来看下面这一行,然后呢,T ti加等32,这有问题,因为你是把小写啊,你是把小写转成大写。
15:02
那钱是减才对,因为我们大写的字母,它对应的阿克码要小啊,你再加32就肯定不可能不可以了,所以说第二个出不来了。错误二。啊,错误,这里有错误。嗯,这个不对,呃,因为因为我们因为大写的字母,大写的字母,大写的字母怎么样呢?大写的字母其实是阿斯克玛,阿斯克玛只是小的。阿斯克玛,我写阿。阿什克玛。是小于。对,是小于这个小写小写的。的字母啊字母,而且它们之间呢,相差多少呢?相差32,因此这个地方就应该改成什么呢?减32才对,OK,所以这个地方我们找到修改地方了。
16:00
对,所以说将这个改成。改什么呢?改成减,那么就OK了。还有什么错误呢?好像看不出来了,因为他这个放函数就这么一点东西,那么我们来试一下吧,如如果测试成功,那就说明OK了,我们来把这个get。概率差,后面你把概率差去掉就可以了,好吧。Guide唱。来,同学们,我们运行。运行的时候呢,我们就用他给的这个是,诶不好意思,这个没有关闭刚才。我们在运行测试的时候呢,就用他给的这个案例来做测试,好吧。因为你这样才能保证是不是真的正确了。我们连贴上去。连接上去回车。回头过后发现呢,完全没问题,看到没有?对,逗号没有改,对不对?逗号该怎么样就怎么样,那么小写的B和C改成大写的B和C,代码结束。代码结束,好的,那这道题我们就讲到这里,大家看其实很简单,对不对?就说当你题做的越来越多的时候,你会发现,哦,原来这些题并不难,一点都不难,对不对,一点都不难。好,我把这道题的分析和解答放在这里,分析和解答。
17:16
好,同学们,嗯,17套的填空和修改,我们就先讲到这里,大家消先消化一下。
我来说两句