●試題四
閱讀下列函數(shù)說(shuō)明和C代碼,將應(yīng)填入(n)處的字句寫在答題紙的對(duì)應(yīng)欄內(nèi)。
【說(shuō)明】
函數(shù)QuickSort是在一維數(shù)組A[n]上進(jìn)行快速排序的遞歸算法。
【函數(shù)】
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
}
●試題五
閱讀以下程序說(shuō)明和C程序,將應(yīng)填入(n)處的子句,寫在答卷紙的對(duì)應(yīng)欄內(nèi)。
【程序說(shuō)明】
函數(shù)int commstr(char *str1,char *str2,int *sublen)從兩已知字符串str1和str2中,找出它們的所有最長(zhǎng)的公共子串。如果最長(zhǎng)公共子串不止1個(gè),函數(shù)將把它們?nèi)空页霾⑤敵�。約定空串不作為公共子串。
函數(shù)將最長(zhǎng)公共子串的長(zhǎng)度送入由參數(shù)sublen所指的變量中,并返回字符串str1和str2的最長(zhǎng)公共子串的個(gè)數(shù)。如果字符串str1和str2沒(méi)有公共子串,約定最長(zhǎng)公共子串的個(gè)數(shù)和最長(zhǎng)公共子串的長(zhǎng)度均為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--)/*從可能最長(zhǎng)子串開始尋找*
{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++;/* 計(jì)數(shù)增1*/
}
}
}
if (count>0)break;
*sublen=(count>0)? (5) :0;
return count;
}
2007下半年計(jì)算機(jī)軟件水平考試模擬試題匯總
希望與其他軟考考生進(jìn)行交流?點(diǎn)擊進(jìn)入軟考論壇>>>
更多信息請(qǐng)?jiān)L問(wèn):考試吧軟件水平考試欄目
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |