有以下程序:#includevoid f(char p[][10],int n){char t[10];int i,j;for(i=0;i<n-1;i
有以下程序: #include<string.h> void f(char p[][10],int n) {char t[10];int i,j; for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(strcmp(p[i],p[j])>0) {strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p[j],t);} } main() {char p[5][10]={"abc","aabdfg","abbd","dedbe","cd"}; f(p,5); printf("%d\n",strlen(p[0]));} 程序運行后的輸出結果是( )。
A.2
B.4
C.6
D.3
正確答案:C解析:本題考核的是二維字符數(shù)組按行存放字符串、二維數(shù)組名作為函數(shù)的參數(shù)以及字符串的排序。主函數(shù)中定義了一個二維字符串數(shù)組p并按行賦值,調用f()函數(shù),將字符串從小到大排序,strcmp()函數(shù)的功能是對兩個字符串作向右逐個字符比較,直到出現(xiàn)不同的字符或遇到“\0”為止。如果全部字符都相同,則認為相等;若出現(xiàn)不同的字符.則以第一個不相同的字符的比較結果為準。由此可知最小的字符串是“aabdfg”,排序后存放在p[0]中,最后在主函數(shù)中輸出p[0]的長度。
詞條內容僅供參考,如果您需要解決具體問題
(尤其在法律、醫(yī)學等領域),建議您咨詢相關領域專業(yè)人士。