国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 临澧县| 邵武市| 中江县| 抚州市| 淅川县| 乾安县| 墨竹工卡县| 双江| 元阳县| 抚顺县| 克拉玛依市| 桂林市| 宁南县| 两当县| 博白县| 吉水县| 鲁山县| 广元市| 古浪县| 湖州市| 嘉黎县| 缙云县| 南丰县| 凤阳县| 含山县| 奈曼旗| 固阳县| 运城市| 定边县| 修武县| 成安县| 新龙县| 晋宁县| 资阳市| 蒙阴县| 陇川县| 尖扎县| 宜兰县| 安顺市| 乐昌市| 安多县|