字符串主串中寻找子串//如在”acabba”中查找”abb”,若查找到子串,返回子串所在位置,若没有查找到返回0 intindex(char*str,char*T){ inti=0,j=0; intLenstr,LenT; Lenstr=strlen(str); //主串长度 Lenstr=strlen(T); //子串长度 while((i<Lenstr)&&(j<lenT)) //主串搜索完毕或子串搜索完毕时推出循环{ if(*(str+i)==*(T+j))//若当前主串的字符与子串字符相同{ i++;//主串下移一位 j++; //子串下移一位}else//若当前主串的字符与子串字符不同{ i=i-j+1;//主串回到本次比较前的下一位 j=0;//子串回到第一位}}if(j==LenT)//搜索到子串时跳出循环 returni-LenT+1;else//主串搜索完毕时跳出循环,未找到子串 return0;}约瑟夫环已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从第一个人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。#include<>#defineN100intLastPerson(intn,intm){ inti,j,count=0; inta[N]; for(i=0;i<n;i++)//对n个人进行编号 a[i]=i+1; i=j=0; while(count<n)//n个人都出列后退出出循环{ if(a[i%n]!=0)//出列后人员编号标为0,当该位没有出列时{ j++;//报数加1 if(j==m)//当报数到达m时{ j=0;//报数归0 count++;//出列人数加1 printf("第%d个出列的是:%d\n",count,a[i%n]);if(count==n)//若是第n个出列,即最后一个出列,返回最后一个出//列人的编号 returna[i%n]; a[i%n]=0;//出列人的编号标记为0 } i++;//搜寻所有队员的下一位} else//若当前位队员已出列,继续搜寻下一位,报数不变 i++; }}线性队列中创建,插入、删除一元素typedefstructnode//节点数据结构类型{int data; struct node *next;};node *create//创建链表{ node *head,*p,*s; int x; head=(node*)malloc(sizeof(node)); p=head; while(x!=’q’) { scanf("%d",&x); if(x!=0) { s=(node*)malloc(sizeof(node)); s->data=x; p->next=s; p=s; } } head=head->next; p->next=NULL; returnhead;}node *insert(node*head,intnum){ node *p0,*p1,*p2; p1=head; p0=(node*)malloc(sizeof(node)); p0->data=num; while(p0->data>p1->data&&p1->next!=NULL) { p2=p
计算机考试笔试常考知识点 来自淘豆网www.taodocs.com转载请标明出处.