阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。 [说明1] 本程序输入一字符串,并将其中的大写字母变成小写字母。 [C函数1] #include<stdio.h> void main()

admin2010-12-16  19

问题 阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。
   [说明1]
   本程序输入一字符串,并将其中的大写字母变成小写字母。
   [C函数1]
   #include<stdio.h>
   void main()
   {  int i=0;
   char s[120];
   printf("Enter a string.\n");
   scanf("%s",s);
   while( (1) ){
   if( (2) )
   s=s-’A’+’a’;
   i++;
   }
   printf("%s\n",S);
   }
   [说明2]
   本程序用二分法,在已按字母次序从小到大排序的字符数组list[len]中,查找字符c,若c在数组中,函数返回字符c在数组中的下标,否则返回-1。
   [C函数2]
   int search(char list[],char c,int len)
     ( intlow=0,high=len-1,k;
   while( (3) );
   k=(10w+high)/2;
   if( (4) )    return k;
   else if( (5) )high=k-1;
   else low=k+1;
   return  -1;
   }

选项

答案(1)  s[i] (2) ’A’<=s[i]&&s[i]<= ’Z’ (3) low<=high (4) list[k]==c (5) list[k]>c或c<list[k]

解析 函数1的功能是将读入的字符串中大写字母变成小写字母,因此对读入的每个字符首先判断该字符是否为’\0’,所以(1)填“s”;然后判断该字符是否为大写字母,(2)填“’A’<=s&&s<=’Z’”。
   函数2根据二分查找的特点,函数search中while循环的过程是将(low+high)/2对应的元素与给定的字符C比较,找到则返回,因此(4)填“list[k]==c”;否则继续。当list[k]>c时,high=k-1;当list[k]<c时,low=k+1。所以(5)填“list[k]>c”或“c<list[k]”。直到low>high时循环终止,所以(3)应填“low<=high”。
转载请注明原文地址:https://kaotiyun.com/show/eBjZ777K
0

最新回复(0)