1998年度中程下午試卷及答案.doc
約28頁DOC格式手機打開展開
1998年度中程下午試卷及答案,頁數(shù):28字數(shù):6228試題1 閱讀以下程序說明和 c程序,將應(yīng)填人棗(n)棗處的字句,寫在答卷的對應(yīng)欄內(nèi)。 [程序說明] 函數(shù) int commstr(char*strl, char*str2, int*sublen)從兩已知字符串 strl和 str2中,...
內(nèi)容介紹
此文檔由會員 cnlula 發(fā)布
1998年度中程下午試卷及答案
頁數(shù):28 字數(shù):6228
1998年度中程下午試卷及答案
試題1 閱讀以下程序說明和 C程序,將應(yīng)填人棗(n)棗處的字句,寫在答卷的對應(yīng)欄內(nèi)。 [程序說明] 函數(shù) int commstr(char*strl, char*str2, int*sublen)從兩已知字符串 Strl和 Str2中,找出它們的所有最長的公共子串。如果最長公共子串不止 1個,函數(shù)將把它們?nèi)空页?,并輸出。約定空串不作為公共子串。 函數(shù)將最長公共子串的長度送人由參數(shù)sublen所指的變量中,并返回字符串str1和 和stf2的最長公共子串的個數(shù)。如果字符串 strl和 str2沒有公共子串,約定最長公共子串 的個數(shù)和最長公共子串的長度均為0。 [程序] int strlen(char * s) { char * t= s; while(*t++); return t/FONT>S一1; } int commstr(char *strl,char *str2, int *sublen) { char*sl,*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的子串與 的子串比較 */ for (p=0; pif ( __(4)__ ) /* 如果兩子串相同 */ { for(p=0; pprintf(“%c”, s2[k+p]); printf(“n”); count++; /* 計數(shù)增1 */ } } } if (count >0 ) break; } *sublen = (count>0) __(5)__ ; 0 ; return count; } 試題三 閱讀以下程序說明和 C程序,將應(yīng)填人棗(n)棗處的字句,寫在答卷的對應(yīng)欄內(nèi)。 [程序說明] 打保齡球是用一個滾球去打出十個站立的柱,將柱擊倒。一局分十輪,每輪可滾球一次或多次,以擊倒的柱數(shù)為依據(jù)計分。一局得分為十輪得分之和,而每輪的得分不僅與本輪滾球情況有關(guān),還可能與后續(xù)一兩輪的;滾球情況有關(guān)。即,某輪某次滾球擊倒的柱數(shù)不僅要計入本輪得分,還可能會計入前一兩輪得分。具體的滾球擊柱規(guī)則和計分方法如下: 若某一輪的第一次滾球就擊倒全部十個柱,則本輪不再滾球。(若是第十輪則還需另加兩次滾球)。 該輪得分為本次倒柱數(shù)10與以后兩次滾球所擊倒柱數(shù)之和。 若某一輪的第一次滾球未擊倒十個柱,則可對剩下未倒的柱再滾球一次。如果這兩次滾球擊倒全部十個柱,則本輪不
頁數(shù):28 字數(shù):6228
1998年度中程下午試卷及答案
試題1 閱讀以下程序說明和 C程序,將應(yīng)填人棗(n)棗處的字句,寫在答卷的對應(yīng)欄內(nèi)。 [程序說明] 函數(shù) int commstr(char*strl, char*str2, int*sublen)從兩已知字符串 Strl和 Str2中,找出它們的所有最長的公共子串。如果最長公共子串不止 1個,函數(shù)將把它們?nèi)空页?,并輸出。約定空串不作為公共子串。 函數(shù)將最長公共子串的長度送人由參數(shù)sublen所指的變量中,并返回字符串str1和 和stf2的最長公共子串的個數(shù)。如果字符串 strl和 str2沒有公共子串,約定最長公共子串 的個數(shù)和最長公共子串的長度均為0。 [程序] int strlen(char * s) { char * t= s; while(*t++); return t/FONT>S一1; } int commstr(char *strl,char *str2, int *sublen) { char*sl,*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的子串與 的子串比較 */ for (p=0; pif ( __(4)__ ) /* 如果兩子串相同 */ { for(p=0; pprintf(“%c”, s2[k+p]); printf(“n”); count++; /* 計數(shù)增1 */ } } } if (count >0 ) break; } *sublen = (count>0) __(5)__ ; 0 ; return count; } 試題三 閱讀以下程序說明和 C程序,將應(yīng)填人棗(n)棗處的字句,寫在答卷的對應(yīng)欄內(nèi)。 [程序說明] 打保齡球是用一個滾球去打出十個站立的柱,將柱擊倒。一局分十輪,每輪可滾球一次或多次,以擊倒的柱數(shù)為依據(jù)計分。一局得分為十輪得分之和,而每輪的得分不僅與本輪滾球情況有關(guān),還可能與后續(xù)一兩輪的;滾球情況有關(guān)。即,某輪某次滾球擊倒的柱數(shù)不僅要計入本輪得分,還可能會計入前一兩輪得分。具體的滾球擊柱規(guī)則和計分方法如下: 若某一輪的第一次滾球就擊倒全部十個柱,則本輪不再滾球。(若是第十輪則還需另加兩次滾球)。 該輪得分為本次倒柱數(shù)10與以后兩次滾球所擊倒柱數(shù)之和。 若某一輪的第一次滾球未擊倒十個柱,則可對剩下未倒的柱再滾球一次。如果這兩次滾球擊倒全部十個柱,則本輪不