阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。 【程序2.1说明】 求所有满足如下条件的三位数:它除以11得的商等于它各位数字的平方和。例如 550,除以11商为50,50=52+52+02。 【程序2.1】

admin2012-12-10  46

问题 阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。
   【程序2.1说明】
   求所有满足如下条件的三位数:它除以11得的商等于它各位数字的平方和。例如 550,除以11商为50,50=52+52+02。
   【程序2.1】
    void main()
   {
       int i, j,n,s;
       for(i=100;i<=999;i++)
       {
              n=i;
              j=n/11;
              s=0;
              while((1))
              {
                     (2)  
                      n/=10;
              }
              if((3))
                      printf("%d\t",i);
       }
   }
   【程序2.2说明】
   本程序输入一字符串,将其中的大写字母改变成小写字母。
   【程序2.2】
   void main()
   {
       int i=0;
       char s[120];
       scanf("%s",s);
       while((4))
       {
           if((5))
                s=s- ’A’+’a’;
           i++;
       }
       printf("%s\n",s);
   }

选项

答案(1)n (2)s=s+(n%10)*(n%10); (3)j==s (4)s[i] (5)s[i]>=’A’&&s[i]<=’Z’

解析 本题考查C语言中一些运算的实现。
   在程序2.1中要求求出满足如下条件的所有三位数:它除以11得的商等于它各位数字的平方和。要想求出所有结果,我们应该对每个三位数进行计算来判断它是否符合题目中的要求,只有在除以11的商等于各位数字的平方和时,才是我们要求的数。
   有了上述分析后,我们再来看程序2.1的代码,代码中首先声明了几个临时变量 i,j,n,s。接下来是一个循环,其目的是对从100到999的所有三位数来进行运算。再接下来的代码是将当前的这个三位数存放在变量n中,将除以11得到的商存放在i中。
   第(1)空所在的位置是循环的判断条件,根据我们上面的分析和整个程序代码来看,这个循环应该是用来计算三位数中各位数字的平方和用的,再看循环中语句n/=10,其作用是将n的值除以10,因为n是整型变量,保存数据时是直接去除小数点后面的数而只保留前面的整数部分,这个操作其本质是对数字降位,去除最低位(个位)。在对其进行此操作前应该对数字中的最低位进行求平方计算,这也应该是第(2)空的任务,要求个位数的方法是n%10,因此,第(2)空答案应该是“s=s+(n%10)*(n%10)”。第(1)空用来判断数n在变化后是否还有值,答案为n。
   第(3)空所在的位置是条件选择语句的条件,如果此条件成立,就输出变量i的值, i中存放的是当前参与计算的三位数,只有满足除以11得的商等于它各位数字的平方和的三位数才能被输出,那么条件选择语句中的条件应该是判断除以11得的商是否等于它各位数字的平方和。因此,第(3)空的答案为i==s。
   在程序2.2中要求将输入的一字符串中的大写字母改变成小写字母,那么我们首先要了解C语言中大小写字母的转换规则。在C语言中字母的运算其实是字母对应的 ASCII码码值的运算,其中小写字母a对应的ASCII码值为97,a后面的小写字母的ASCII码值依次增加1,而大写字母A的ASCII码值为65,A后面的大写ASCII码值也依次增加。这样,我们就知道了小写字母比对应的大写字母的ASCII码值大32,在将小写字母转化为大写字母时,我们只要相应地将小写字母的ASCII码值减去32或加上32的相反数即可。
   下面,我们来看程序2.2的代码,在代码中,声明了一个长度为120的字符型数组 S存放输入的字符串,下面有一个循环语句,第(4)空是循环语句的循环条件,结合整个程序,我们可以知道,循环语句要实现字符串中大写字母改变成小写字母的功能,所以循环的条件应该是判断在操作时是否取到了字符,而字符是存放在数组中的,因此,此空答案应该是“s”。第(5)空是一个条件选择语句的条件,如果条件成立就执行将大写字母改变成小写字母操作,因此,是判断取到的字符是否为大写字母,所以此空答案为s>=’A’&&s<=’Z’。
转载请注明原文地址:https://jikaoti.com/ti/05W7FFFM
0

最新回复(0)