国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

藍(lán)橋杯——2015 西工大計算機(jī)研究生機(jī)試真題(節(jié)選,2017.2.7)

2019-11-10 23:47:07
字體:
供稿:網(wǎng)友

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");			else				printf("N/n");		}		else if(direction=='s')		{			if(m+1>=0 && m+1<N)				printf("Y/n");			else				printf("N/n");		}		else if(direction=='a')		{			if(n-1>=0 && n-1<N)				printf("Y/n");			else				printf("N/n");		}		else if(direction=='d')		{			if(n+1>=0 && n+1<N)				printf("Y/n");			else				printf("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");			else				printf("N/n");		}		else if(direction==1)		{			nextloc=a[m+1][n];			if(m+1>=0 && m+1<N && nextloc==0)				printf("Y/n");			else				printf("N/n");		}		else if(direction==2)		{			nextloc=a[m][n+1];			if(n+1>=0 && n+1>N && nextloc==0)				printf("Y/n");			else				printf("N/n");		}		else if(direction==3)		{			nextloc=a[m-1][n];			if(m-1>=0 && m-1<N && nextloc==0)				printf("Y/n");			else				printf("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;			else				nextval[j]=nextval[k];		}		else			k=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++;		}		else			j=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),在主串中尋找模式串,找到返回第一個匹配主串的首字符下標(biāo),否則返回-1

源代碼:

#include <stdio.h>#include <string.h>#define maxlen 1010void GetNextval(char obj[],int nextval[])        //使用修正后的求nextval數(shù)組算法 {	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;			else				nextval[j]=nextval[k];		}		else			k=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++;		else			j=nextval[j];	}	if(j>=len2)		printf("%d/n",i-len2);	else		printf("-1/n");}int main(){	char source[maxlen],obj[maxlen];	while(gets(source)!=NULL)	{		gets(obj);		KMP(source,obj);	}	return 0;}程序截圖:

6. 采用順序結(jié)構(gòu)存儲串,編寫一個算法計算指定子串在一個字符串中出現(xiàn)的次數(shù),如果該子串不出現(xiàn)則為0

源代碼:

#include <stdio.h>#include <string.h>#define maxlen 1010void Objcount(char source[],char obj[]){	int i=0,j=0,count=0;                          //count-子串出現(xiàn)次數(shù) 	int len1=strlen(source),len2=strlen(obj);	while(i<len1 && j<len2)	{		if(source[i]==obj[j])                     //主串與子串字符相同,繼續(xù)匹配下一個字符		{			i++;			j++;		}		else                                      //否則主串、子串指針回溯,重新開始下一次匹配		{			i=i-j+1;			j=0;		}		if(j>=len2)                               //如果j已經(jīng)達(dá)到了子串的長度,產(chǎn)生了一個匹配		{			count++;                              //匹配次數(shù)+1 			i=i-j+1;                              //主串從下一個位置開始繼續(xù)匹配			j=0;                                  //子串從頭開始匹配 		}	}	printf("%d/n",count);}int main(){	char source[maxlen],obj[maxlen];	while(gets(source)!=NULL)	{		gets(obj);		Objcount(source,obj);	}	return 0;}程序截圖:


上一篇:第七章 復(fù)用類

下一篇:測試下

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 沙河市| 延寿县| 恩施市| 咸阳市| 双流县| 错那县| 平利县| 文山县| 秀山| 漾濞| 平陆县| 南投县| 呼图壁县| 和田县| 陆丰市| 凤城市| 松江区| 大城县| 宕昌县| 内乡县| 景宁| 德化县| 普兰县| 无极县| 凤凰县| 凌海市| 绥中县| 马鞍山市| 奈曼旗| 舒城县| 汉川市| 广东省| 高邮市| 黄浦区| 祁连县| 双峰县| 大连市| 云阳县| 门源| 安国市| 武穴市|