学历改变命运
24小时客服:4008135555/010-82335555
当前位置:首页 > 笔记串讲 > 自考“高级语言程序设计”习题答案详解(36

自考“高级语言程序设计”习题答案详解(36)

2007年09月04日    来源:   字体:   打印

  7.函数my_cmp()的功能是比较字符串s和t的大小,当S等于t时返回0,否则返回s和t的第一个不同字符的ASCII码差值,即s>t时返回正值,当s<T时返回负值。请填空。

  my_cmp( char *s, char * t)

  {while(*s==* t)

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

  ++s;++t;

  }

  return____________;

  }

  「解」两字符串大小比较必须从它们的首字符开始,在对应字将相等情况下循环,直至不相等结束。相等时,老字符率已到了字符串的结束标记符,则两字符率相同,函数退回0值;如还有后继字符,则准备比较下一对字符。对应字符不相同,循环结束。循环结束时,就以两个当前字符的差返回。所以在空框处应填入*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.函数首先用循环求数组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,循环前变量 k置 1,循环中,表达式num是取num的个位,将num的个位值累乘于k中,然后num除以10.循环直至num为0结束,这是逐一求出num十进制表示的各位数字,并累乘于变量k的循环。函数更后返回k.函数fun6的功能是求整数的各位十进数字积。所以程序输出12.