蓝桥杯——2015 西工大计算机研究生机试真题(节选,2017.2.7)
来源:互联网 发布:郑州网站排名优化 编辑:程序博客网 时间:2024/05/21 07:03
1.
源代码:
#include <stdio.h>void FindtheMinimum(int a,int b,int c){int t;if(a>b)t=a,a=b,b=t;if(b>c)t=b,b=c,c=t;if(a>b)t=a,a=b,b=t;printf("%d\n",a);}int main(){int a,b,c;while(scanf("%d %d %d",&a,&b,&c)!=EOF)FindtheMinimum(a,b,c);return 0;}程序截图:
2.
源代码:
#include <stdio.h>#define maxn 25int main(){int i,j,a[maxn][maxn];int m,n,N;char direction;while(scanf("%d",&N)!=EOF){for(i=0;i<N;i++)for(j=0;j<N;j++)a[i][j]=0;scanf("%d %d",&m,&n);scanf("%c",&direction);if(direction=='w'){if(m-1>=0 && m-1<N)printf("Y\n");elseprintf("N\n");}else if(direction=='s'){if(m+1>=0 && m+1<N)printf("Y\n");elseprintf("N\n");}else if(direction=='a'){if(n-1>=0 && n-1<N)printf("Y\n");elseprintf("N\n");}else if(direction=='d'){if(n+1>=0 && n+1<N)printf("Y\n");elseprintf("N\n");}}return 0;}程序截图:
3.
源代码:
#include <stdio.h>#define maxn 105int main(){int i,j,a[maxn][maxn];int m,n,N,direction;int nextloc;while(scanf("%d",&N)!=EOF){for(i=0;i<N;i++)for(j=0;j<N;j++)scanf("%d",&a[i][j]);scanf("%d %d",&m,&n);scanf("%d",&direction);if(direction==0){nextloc=a[m][n-1];if(n-1>=0 && n-1<N && nextloc==0)printf("Y\n");elseprintf("N\n");}else if(direction==1){nextloc=a[m+1][n];if(m+1>=0 && m+1<N && nextloc==0)printf("Y\n");elseprintf("N\n");}else if(direction==2){nextloc=a[m][n+1];if(n+1>=0 && n+1>N && nextloc==0)printf("Y\n");elseprintf("N\n");}else if(direction==3){nextloc=a[m-1][n];if(m-1>=0 && m-1<N && nextloc==0)printf("Y\n");elseprintf("N\n");}}return 0;}程序截图:
4.
源代码:
#include <stdio.h>#include <string.h>#define maxlen 256void GetNextval(char b[],int nextval[]){int j=0,k=-1;int lenb=strlen(b);nextval[0]=-1;while(j<lenb){if(k==-1 || b[j]==b[k]){j++,k++;if(b[j]!=b[k])nextval[j]=k;elsenextval[j]=nextval[k];}elsek=nextval[k];}}void Replace(char a[],char b[],char c[]){int nextval[maxlen],i=0,j=0;int lena=strlen(a),lenb=strlen(b),lenc=strlen(c);int t; //t记录匹配点 GetNextval(b,nextval);while(i<lena && j<lenb){if(j==-1 || a[i]==b[j]){i++;j++;}elsej=nextval[j];}if(j>=lenb)t=i-lenb;for(i=0;i<t;i++)printf("%c",a[i]);printf("%s",c);for(i=t+lenb;i<lena;i++)printf("%c",a[i]);printf("\n");}int main(){char a[maxlen],b[maxlen],c[maxlen];while(scanf("%s",a)!=EOF){scanf("%s",b);scanf("%s",c);Replace(a,b,c);}return 0;}程序截图:
===================================我是分割线===================================
回顾与拓展:串的模式匹配(KMP算法)
5. 输入主串source与模式串obj(长度<=1000),在主串中寻找模式串,找到返回第一个匹配主串的首字符下标,否则返回-1
源代码:
#include <stdio.h>#include <string.h>#define maxlen 1010void GetNextval(char obj[],int nextval[]) //使用修正后的求nextval数组算法 {int j=0,k=-1;int len=strlen(obj);nextval[0]=-1;while(j<len){if(k==-1 || obj[j]==obj[k]){j++,k++;if(obj[j]!=obj[k])nextval[j]=k;elsenextval[j]=nextval[k];}elsek=nextval[k];}}void KMP(char source[],char obj[]){int nextval[maxlen];int i=0,j=0;int len1=strlen(source),len2=strlen(obj);GetNextval(obj,nextval);while(i<len1 && j<len2){if(j==-1 || source[i]==obj[j])i++,j++;elsej=nextval[j];}if(j>=len2)printf("%d\n",i-len2);elseprintf("-1\n");}int main(){char source[maxlen],obj[maxlen];while(gets(source)!=NULL){gets(obj);KMP(source,obj);}return 0;}程序截图:
6. 采用顺序结构存储串,编写一个算法计算指定子串在一个字符串中出现的次数,如果该子串不出现则为0
源代码:
#include <stdio.h>#include <string.h>#define maxlen 1010void Objcount(char source[],char obj[]){int i=0,j=0,count=0; //count-子串出现次数 int len1=strlen(source),len2=strlen(obj);while(i<len1 && j<len2){if(source[i]==obj[j]) //主串与子串字符相同,继续匹配下一个字符{i++;j++;}else //否则主串、子串指针回溯,重新开始下一次匹配{i=i-j+1;j=0;}if(j>=len2) //如果j已经达到了子串的长度,产生了一个匹配{count++; //匹配次数+1 i=i-j+1; //主串从下一个位置开始继续匹配j=0; //子串从头开始匹配 }}printf("%d\n",count);}int main(){char source[maxlen],obj[maxlen];while(gets(source)!=NULL){gets(obj);Objcount(source,obj);}return 0;}程序截图:
1 0
- 蓝桥杯——2015 西工大计算机研究生机试真题(节选,2017.2.7)
- 蓝桥杯——2011 吉大计算机研究生机试真题(节选,2017.2.6)
- 蓝桥杯——计算机研究生机试真题(2017.2.14)
- 蓝桥杯——计算机研究生机试真题(2017.2.15)
- 蓝桥杯——计算机研究生机试真题(2017.2.16)
- 蓝桥杯——计算机研究生机试真题(2017.2.17)
- 蓝桥杯——计算机研究生机试真题(2017.2.18)
- 蓝桥杯——计算机研究生机试真题(2017.2.19)
- 蓝桥杯——计算机研究生机试真题(2017.2.20)
- 蓝桥杯——计算机研究生机试真题(2017.2.21)
- 蓝桥杯——计算机研究生机试真题(2017.2.22)
- 蓝桥杯——计算机研究生机试真题(2017.2.28)
- 蓝桥杯——计算机研究生机试真题(2017.3.1)
- 蓝桥杯——2010 HIT计算机研究生机试真题(2017.2.1)
- 蓝桥杯——2014 HIT计算机研究生机试真题(2017.2.2)
- 蓝桥杯——2009 北航计算机研究生机试真题(2017.2.4)
- 蓝桥杯——2010 吉大计算机研究生机试真题(2017.2.5)
- 蓝桥杯——2008 北航计算机研究生机试真题(2017.2.8)
- SSH工作原理
- 【腾讯TMQ】管中窥豹:结合NewApi实践来了解Lint代码扫描
- poj2550
- react、angularjs、vue原理应用场景总结
- 0002-游戏人生、生存模式、人生哲学、阶层与模式
- 蓝桥杯——2015 西工大计算机研究生机试真题(节选,2017.2.7)
- C 链表 - linux 如何实现
- 编译audiopolicy.h 和 wmcodecdsp.h文件问题
- JSonKit支持 ARC
- 微信小程序开发学习笔记001--认识微信小程序,第一个微信小程序
- ffprobe使用详解
- 解决UnicodeEncodeError: 'ascii' codec can't encode characters in position问题
- DLL 里面的 socket 编程
- SHFileOperation 删除和拷贝文件