求教c语言 这是一个程序填空题,但是我都不懂他什么意思?希望能帮我分析一下运行过程 详细点最好 明

求教c语言 这是一个程序填空题,但是我都不懂他什么意思?希望能帮我分析一下运行过程 详细点最好 明天就要考试了 很急 在线等 因为不在电脑旁没办法贴代码 麻烦了!

下面是我给出的注释,有什么不懂的,可以再问。

main()

{

 char s[20], t[20];

 int i = 0, j = 0, n = 0;

 gets(s);     //输入母串

 gets(t);     //输入字串

 while (s[i]!='\0')   //判断母串是否结束

 {

  if (s[i] == t[j])  //当字串和母串相等时,j++,一直到t【j】==‘\0’,也就是字串结束时,才算字串在母串中出现一次

   j++;

  else     //如果判断中间有一个不相等,如母串为tidxtdytdz,字串为td时,判断字串和母串中第一个t相等,但是i和d不相等,这是就结束此次判断,重新开始判断

   j = 0;

  if (t[j] =='\0' )  //判断字串是否结束,如果结束,则出现次数加1

  {

   n++;    //次数加一

   j = 0;    //字串从初始位置开始

  }

  i++;     

 }

 printf("%d", n);   //输出次数

}

追问

嗯 我琢磨一下

另外

C语言结构体类型变量在程序执行期间( )。
A.所有成员一直驻留在内存中B.只有一个成员驻留在内存中
C.部分成员驻留在内存中D.没有成员驻留在内存中

请问这个确切答案选什么?我看有说a也有说b的

追答

这题选A,如果是联合体的话,就是B了

追问

太感谢了…好多知道的问题里面说选b还被采纳了…太坑了

上面的程序 比如第一次循环i=0,则s【0】不就是一个确定的字符吗 这样怎么检验子串是否出现在母串里?还是我哪儿弄错了?

追答

这个其实是这样的,i是一直往下加的,当s[i]==t[0]时,这时候就判断s[i+1]是否等于t[1],依次检查下去,当t[j]=='\0'时,也就是t字符串结束了,表明字串在母串中出现一次,但是中间只要有一个不相等,j就被初始化为0,这是又开始重新判断s[i]是否等于t[0],直至s[i]==‘\0’,也就是s字符串结束。这是整个程序也就结束了

追问

嗷 我懂了 这个嵌套循环…我刚才脑袋短路了…

不是嵌套循环 我把他循环错了…好了 我明白了 谢谢你

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-12-28
有没有测试程序运行是否正确的s和t的输入内容?
第2个回答  2014-12-28
按程序来追问

能解释下吗

追答

你发张清楚的图

追问

只有这张了

追答

看不清

追问

那算了 没事 麻烦你了

追答

不用

追问

C语言结构体类型变量在程序执行期间( )。
A.所有成员一直驻留在内存中B.只有一个成员驻留在内存中
C.部分成员驻留在内存中D.没有成员驻留在内存中

请问这个确切答案选什么?我看有说a也有说b的

第3个回答  2014-12-28
s[i]!='\0'
'\0'
0

这个c语言程序我看不懂,求教! # include<stdio.h> int main(){ \/\/...
答:这里的int跟你下面程序里边的变量无关。它是指main()这个主程序返回的变量类型,当然,大多数主程序不需要返回变量,所以这个int即是必须的(C语言规定的),同时作为初级学习者来讲也是先不用管它的。2、char a,b,c;while(~scanf("%c%c%c",&a,&b,&c)){ //为什么这里要取反 答:...

计算机二级C语言程序设计该怎么做?
答主考试的时候,最痛苦的是选择最后几道C语言相关,真的蛮复杂,最后实在不想看,直接懵选项了。如果是零基础,可以不用看书,直接上手刷题!2.程序填空题 、程序修改题:这个一共36分,极其简单。尤其是修改题,一定要拿到!很多都是if写成IF这种“骚操作”。最好的方法就是用我发的模拟考试软件看...

求教:怎么用C语言写一个程序,产生18个(0到9)随机数,并且打印出来这18个...
include<stdio.h> include<stdlib.h> include int main(){ int x, i;srand(time(0));\/\/指定随机算子 for(i=0;i<18;i++){ x=rand()%10;printf("%d ", x);} printf("\\n");}

C语言 三数求最大值,帮我看看这个答案为何出错
程序是没有错的,我想你一定是在输入的时候有问题 scanf("%d,%d,%d",&a,&b,&c); 这个是定义的输入的格式,比如想要a=1,b=2,c=3 要输入 1,2,3 就是说逗号这个也要跟scanf里面的相符 你在输入的时候,大概是 1 2 3 这样的,这样只有a被读进去了,因为后面的格式不符,bc没有...

高中化学怎么学好
一、记录不会做的题与错题首先,我们可以去找一个本子,专门记录自己不会的,以备平时重点复习和考试前强化记忆。还有一个就是错题本,我觉得任何一门学科,都应该要有自己的错题本,因为错题本真的很重要,正所谓:“考场一分钟,平时十年功!”“处处留心皆学问。”“好记性不如烂笔头。”记录本...

相似回答