自考“高級語言程序設計”習題答案詳解(36)

  • 發(fā)布時間:2024-09-15 16:21:23
  • 來源:本站整理
  • 閱讀:
導讀:
  7.函數my_cmp()的功能是比較字符串s和t的大小,當S等于t時返回0,否則返回s和t的第一個不同字符的ASCII碼差值,即s>t時返回正值,當s<T時返回負值。請?zhí)羁铡?br />   my_cmp( char *s, char * t)
  {while(*s==* t)
  { if(*s==‘\0’) return 0 ;
  ++s;++t;
  }
  return____________;
  }

7.函數my_cmp()的功能是比較字符串s和t的大小,當S等于t時返回0,否則返回s和t的第一個不同字符的ASCII碼差值,即s t時返回正值,當s T時返回負值。請?zhí)羁铡?/p>

my_cmp( char *s, char * t)

{while(*s==* t)

{ if(*s==‘\0’) return 0 ;

++s;++t;

}

return____________;

}

「解」兩字符串大小比較必須從它們的首字符開始,在對應字將相等情況下循環(huán),直至不相等結束。相等時,老字符率已到了字符串的結束標記符,則兩字符率相同,函數退回0值;如還有后繼字符,則準備比較下一對字符。對應字符不相同,循環(huán)結束。循環(huán)結束時,就以兩個當前字符的差返回。所以在空框處應填入*s-*t,保證在s t時返回正值,當s T時返回負值。

6.3 程序分析題

1.閱讀函數,寫出函數的主要功能:

ch(int *p1,int *p2)

{ int p;

if(*pl *p2) { p=* pl;*pl=*p2;* p2=p; }

}

「解」函數辦有兩個指針形參p1和p2,函數體通過*pl和*p2間接引用它們所指變量。當pl所指變量的位大于p2所指變量的值時,交換兩形參所指變量的值。所以函數的功能當形參1所指變量比形參2所指變量的值大時,交換這兩個變量的值。調用該函數能保證形參1所指變量的值不大于形參2所指變量的值。

2.閱讀函數,寫出函數的主要功能:

float av(a,n)

float a[];

int n;

{ int i; float s;

for(i=0,s= 0;i N;I++) S=S+A[I];

return s/n;

}

「解」函數有一個數組形參a和一個整型形參n.函數首先用循環(huán)求數組a的前n個元素和,然后將和除以n.即求數組元素的平均值。

3.閱讀下面程序,寫出運算結果。

unsigned fun6( unsigned num)

{ unsigned k=l;

do { k*= num;num/=10;}

while(n) ;

return k;

}

main()

{ unsigned n=26;

printf(“%d\n”, fun6(n));

}

「解」函數有一個形參num,循環(huán)前變量 k置 1,循環(huán)中,表達式num是取num的個位,將num的個位值累乘于k中,然后num除以10.循環(huán)直至num為0結束,這是逐一求出num十進制表示的各位數字,并累乘于變量k的循環(huán)。函數最后返回k.函數fun6的功能是求整數的各位十進數字積。所以程序輸出12.

相關閱讀