●試題四
閱讀下列函數說明和C代碼,將應填入(n)處的字句寫在答題紙的對應欄內。
【說明】
函數QuickSort是在一維數組A[n]上進行快速排序的遞歸算法。
【函數】
void QuickSort(int A[],int s,int t)
{int i=s,j=t+1,temp;
int x=A[s];
do{
do i++;while (1) ;
do j--;while(A[j]>x);
if(i }while(i A[a]=A[j];A[j]=x; if(s if(j+1 } ●試題五 閱讀以下程序說明和C程序,將應填入(n)處的子句,寫在答卷紙的對應欄內。 【程序說明】 函數int commstr(char *str1,char *str2,int *sublen)從兩已知字符串str1和str2中,找出它們的所有最長的公共子串。如果最長公共子串不止1個,函數將把它們全部找出并輸出。約定空串不作為公共子串。 函數將最長公共子串的長度送入由參數sublen所指的變量中,并返回字符串str1和str2的最長公共子串的個數。如果字符串str1和str2沒有公共子串,約定最長公共子串的個數和最長公共子串的長度均為0。 【程序】 int strlen(char *s) {char *t=s; while(*++); return t-s-1; } intcommstr(char)*str1,char *str2,int *sublen {char*s1,*s2; int count=0,len1,len2,k,j,i,p; len1=strlen(str1); len2=strlen(str2); if(len1>len2) {s1=str1;s2=str2;} else{len2=len1;s1=str2;s2=str1;} for(j=len2;j>0;j--)/*從可能最長子串開始尋找* {for(k=0; (1) <=len2;k++)/*k為子串s2的開始位置*/ {for(i=0;s1[ (2) ]!='\0';i++;)/* i為子串s1的開始位置*/ {/* s1的子串與s2的子串比較*/ for(p=0;p if ( (4) )/*如果兩子串相同*/ {for(p=0);p printf("%c",s2[k+p]); printf("\n"); count++;/* 計數增1*/ } } } if (count>0)break; *sublen=(count>0)? (5) :0; return count; } 希望與其他軟考考生進行交流?點擊進入軟考論壇>>> 更多信息請訪問:考試吧軟件水平考試欄目
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |