我们现在开始学习我们第23套真题
,那么这也是我们考试的原题
,那么下一步说不定你考的时候就考这个原题
,我们首先看第1个题目
,我们程序填空题
,那么这个题目要求的是在我们这个里面
,每个数字字符之后面插入一个*号
,然后这样的一个字符串
,变成了我们这样的一个字符串
,那么在这个题目 我们应该怎样来做
,我们可以根据我们第22套题目
,它上面的一个特点
,我们是不是可以通过先从我们的字符串里面
,从左到右 那么一个一个的进行查找
,那么查找的时候如果它遇到一个数字
,我们就停下来
,什么意思
,我们先不管这个程序它是怎么编的
,我们自己来编 可不可以这样来想
,如果遇到是我们这个字母
,那么直接放到我们下面的新数组里面来
,那么这是字母 放下来
,字母放下来
,那么这个时候是个数字
,那我把这个数字也放下来
,放下来的同时我在后面再加一个*号
,然后继续来放这个5
,5放完了以后放一个*号
,然后再放这个a 放dh
,那么最终我们这个里面
,它是不是就满足了我们题目所要求的
,给我们的数字后面添加一个*号
,那么我们这个题目是一个填空题
,不是编程题
,那我们看一看我们题目
,它这个思路是不是像我们所讲的
,这个思路是一样的
,我们看屏幕上面
,那么咱们现在把这个代码自己先看
,两分钟时间
,我们再往后面来讲
,我们看这个题目
,我们这个题目里面它是怎样来完成这个事情的
,那么第1步我们还是给我们的字符串
,赋值给我们数组
,然后我们把这个字符串输出来
,接下来我们调用我们fun这个函数
,
那么调用我们这个函数
,那么调用函数我们就回到上面这个地方来
,来调用它
,那么调用过程中我们用这么一个指针
,来接收我们这个数组名
,把这个s传递给我们*s
,那么也就说把这个字符串
,那么传到我们上面这个s里面来了
,那么传到s里面来了以后
,接下来我们又定义了这么三个变量
,然后我们的循环语句
,那么关于这种循环的嵌套
,以及我们题目里面出现多种循环的时候
,我前面讲过一个方法
,那么就是我们一定要记清楚
,要把它这个分开
,按我们的换行
,来使我们这个层次结构看得更清楚一些
,那么例如第1个问题
,我们这个for语句循环
,那么它管到什么地方
,这里我们要注意的是
,那么这里我们可以看一看这个if语句
,那么它包含的内容是不是从这个地方
,一直到我们这里了
,那么所以我们上面这个循环语句
,它应该是从这个地方一直管到了我们这个地方
,我们这个循环语句它管的这么宽
,它管了一个if语句
,但我们这个if语句里面包含的内容非常多
,那么明白这个以后我们再来看
,那么当前这里面又一个循环语句
,那么这里我们要明白的是
,这个循环语句它只有一句
,到我们后面这个分号就结束了
,然后下面这个循环语句
,我们是这么两行语句 管到这个地方就结束了
,考试的时候
,我们一定务必把我们这个层次结构
,这要给它分清楚了
,如果这层结构你分不清楚
,这个题目你肯定是做不对的
,一定要明白
,那么明白这个了以后
,接下来我们做的事情就是去 如何去这个把握好
,它每一个程序段它要完成的工作是什么
,那么例如我们来看这个for语循环
,那么很明显
,它这里做的事情是要从第1个字符开始
,到我们的结束标志
,
我们\0
,反斜线0 是我们结束标志
,那么就说从第1个字符开始到我们结束标志
,我们就停下来
,那么如果我们这一个
,当你这个字符它大于等于0
,那么后面是小于等于0
,大家想一想
,那么这个if语句它是不是要判断
,它是不是我们的数字
,这个数字它不是数值型的数字
,而是我们的字符型数字
,那么大家想这个中间前面是个条件
,后面是个条件
,两个条件的中间应该怎么说
,那么在我们现实生活中打比喻
,如果明天下雨
,然后我中间空下来
,这个
,小明有时间
,那么我们去爬山
,听好这句话
,如果明天不下雨
,如果明天小明有时间
,那么我们一起去爬山
,那么这两个条件的中间
,肯定是一个且或的关系
,如果明天不下雨
,或者这个且小明有时间
,如果明天不下雨或者小明有时间
,那大家想一想
,我们这表示的是0到9之间
,那么肯定是什么关系
,是个且的关系
,那么且的关系这里我们用一个
,两个&&表示我们的且
,那么这里我们就有一个做题的技巧
,下一步我们遇到两个条件
,那么中间肯定是一个关系
,可能是一个这个逻辑运算
,不是关系
,关系是我们的大于小于
,那么中间肯定是一个逻辑运算
,逻辑运算我们有三个
,第1个是非
,第2个是或 第3个是且
,那么注意 我们这个地方肯定不是非
,那么只有一个或和我们的且
,在C语言里面
,我们这个且用两个&&符号来表示它
,这个我们需要记清楚的
,那么如果这里满足这个条件
,我们就n=0
,那么n=0做什么事情
,我们也不知道
,
这是我们暂时放这个地方
,但是这里我给大家说一个小技巧就是
,在我们C语言里面
,我们这一个n一般是用来统计我们个数的
,几个几个我们用n来表示
,这个题目里面它是不是我也不知道
,那么然后我们继续往后面来看while语句
,s[i+1+n]然后不等于什么东西
,然后n++
,这里看这个地方
,当它不等于什么的时候
,我们n++
,那么这个地方要做什么事情
,我们想一想
,这个if语句
,那么它的话
,应该是包含了我们下面这个while语句
,那么当它这个满足我们这个数字以后
,我们这个s的话
,给它加上i
,加上1
,那么是什么意思
,它的后一个 我们当前假设一下
,我们的i=5的时候
,i=5
,那么5的话 它这个s[5]里面它存的是一个数字
,那么满足了我们这个条件
,那么接下来我们再给它加一个什么东西
,加个1
,加一个1
,那么是不是它的后一个
,它的后一个
,然后再加上n
,n的话我们让它等于0
,那么这里我们是不是判断它的后一个
,是不是我们结束标志
,什么意思
,我们看题目里面
,那么这里面我们这个7
,这个7它是不是后面也要加我们*号
,那么明白以后
,我们再回到这个题目里面来看一看我们这句话
,它到底应该填一个什么东西
,那么当它不等于什么的时候
,我们n++
,大家想一想
,那么这个地方我们应该是来判断一下
,它是不是我们的结束标志
,那么如果它不等于我们结束标志
,
我们就给它这个n加个1
,那么这里我们应该填一个0
,结束标志
,我们可以用\0跟上面一样的
,我们也可以用这个0表示都是正确的
,那么这个地方运行完了以后
,我们再来看
,j=i+n+1
,那么j的话是大于i j--
,那么这做什么事情
,把我们的数据往后面进行移动
,这个题目
,它所用的方法跟我们前面所讲的方法不一样
,它没有采取两个数组
,而是一个数组在那里移动
,什么意思
,我们它这样的一个情况
,那么这是一个字符串
,那么这里面有一个数字3
,那么有3了以后 根据题目的要求
,在我们这个框框里面
,现在我们存的是一个a
,但是我们题目要求的是
,要把它改为我们的这个*号
,那么改它之前
,我们是不是应该做一个事情是
,把我们的a 把这个放到这个里面来
,把这个放这个里面来
,把这个a放这个里面来
,那么然后把这个*号填进去
,那么是不是就达到了我们这个功能
,那么这个里面我们要把后一个
,放到前一个里面去
,我们应该怎么放
,那么这个语句的功能就是把后一个
,放到前一个里面去
,那大家想一想
,我们现在这个是j+1
,我们假设这个方框 它的编号是j+1
,那么请问这个方框它的编号会是多少
,那么这里就应该是我们的s
,中括号我们的这个j
,那么关于这个前一个放到后一个去
,后一个放到前一个去
,咱们这里要把握好这个方法
,那么明白这个以后
,我们接下来继续往后面来看
,那么在我们这个里面
,我们当前这个
,
当它不等于结束标志的时候
,我们n++
,那么这个它做了一个什么事情
,大家想想这个语句它做了一个什么事情
,那么它这个地方其实只做了一件事情就是
,统计当前这个
,数字字符往后有多少个字符
,那么这个字符包括我们这个数字的和字母的
,明白什么意思
,这个地方这个循环语句
,它统计一下当前这个字符往后走
,它有多少个 这个字符
,