阅读下列程序说明和C代码,将应填入(n)处的字句写在对应栏内。 [函数2.1说明] 函数void find(int *a, int n, int * max, int * min)的功能是在长度为n的整型数组a中,查找最大元素和最小元素的下标。mai

admin2009-02-15  33

问题 阅读下列程序说明和C代码,将应填入(n)处的字句写在对应栏内。
[函数2.1说明]
   函数void find(int *a, int n, int * max, int * min)的功能是在长度为n的整型数组a中,查找最大元素和最小元素的下标。main()中给出了调用find函数的一个实例。
[函数2.1]
#include<stdio.h>
void find(int *a, int n,int *max,int * min)
{  int i;
   *max =* min=0;
   for(i=1;i<n;i+ +)
   if(a>a[* max])  (1);
   else if(a<a[*min])  (2);
   return;
main()
{  int a[]={4,6,8,9,0,6},max,min;
  find(a,6,(3));
  printf("%5d%5d\n", max,min);
}
[函数2.2说明]
   以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串前端的公共部分。例如:输入的两个字符串分别是abcdefg和abceef,则输出为abc。
[函数2.2]
#include <stdio.h>
main()
{   char str1[100],str2[100],str[100],c;
   int i=0,s;
   printf("\nInput string 1:");gets(str1);
   printf("\nInput string 2:");gets(str2);
   while(((4))&&(str1!=’\0’)&&(str2!=’\0’)){
         (5);
        i++;
   }
   printf("%s\n",str);
}

选项

答案(1) * max=i (2) * min=i (3) &max,&min (4) str1[i]= =sir2[i] (5) str[i]=str1[i]或str[i]=str2[i]

解析 (1)若下标i的数大于当前的最大值,则更新最大元的下标;
(2)若下标i的数小于当前的最小值,则更新最小元的下标;
(3)根据find函数对形参的要求,此处应传递max和 min的地址;
(4)此循环用于获取str1和str2从前端起的公共部分,一旦两字符串在某位置上不等即刻退出循环;
(5)所求的公共子串应保存于str,因此在循环过程中应不断取出公共部分的每一个字符。
转载请注明原文地址:https://kaotiyun.com/show/PojZ777K
0

最新回复(0)