阅读以下函数说明和C语言函数,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 函数int funl (int m,int n)的功能是:计算并返回正整数m和n的最大公约数。 【函数2.1】 int funl (iht m,int n){

admin2008-01-03  31

问题 阅读以下函数说明和C语言函数,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
   函数int funl (int m,int n)的功能是:计算并返回正整数m和n的最大公约数。
【函数2.1】
   int funl (iht m,int n){   
           while((1))  {
  if(m>n)  m=m-n;
   else  n=n-m;
   }
     (2);
   }
【函数2.2说明】
   函数long fun2(char*str)的功能是:自左至右顺序取出非空字符串str中的数字字符形成一个十进制整数(最多8位)。
   例如,若字符串str的值为“f3g8d5.ji2e3p12fkp",则函数返回值为3852312。
【函数2.2】
   long fun2 (char*str)
   {    int i=0;
        long k=0;
        char*P=str;
        while  (*p!=’\0’&& (3))  {
           if (*p>=’0’&&*p<=’9’)  {
              k=(4)+*p-’0’;
              ++i;
        }
         (5);
        }
        return k;
   }

选项

答案(1)m!=n,及其等价形式 (2)return m,或return n (3)i<8,或i<=7,及其等价形式 (4) k*10 (5)p++,或++p,或p+=1,或p=p+1

解析 由函数2.1的说明可知,该函数的功能是计算并返回正整数m和n的最大公约数。由于函数体中只有变量m和n,因此空(1)所在的循环条件只

能是关于m和n关系的表达式,且最大公约数保存在m或n中。同时从while的循环体可知,反复从较大者中减去较小者后,最后m和n的值会相等,

因此循环条件为m!=n或其等价形式。
   函数long fun2(char*str)的功能是:自左至右顺序取出非空字符串str仕中最多8位数字字符形成一个十进制整数。从函数的功能描述和函

数体语句可知,变量i是用于计算得到的数字字符个数的,由于i的初始值为0,因此空(1)处应填“i<8”或其等价形式。8位长度的十进制整数

a1a2a3a4a5a6a7a8表示为:
a1a2a3a4a5a6a7a8=a1*107+a2*106+a3*105+a4*104+a5*103+a6*102+a7*101+a8
   =(((((((0*10+a1)*10+a2)*10+a3)*10+a4)*10+a5)*10+a6)*10+a7)*10+a8
   因此有:k0=0,ki=ki-1*10+ai  (1≤i≤8),k8就是计算结果。
转载请注明原文地址:https://kaotiyun.com/show/KzjZ777K
0

最新回复(0)