阅读以下函数说明和C语言函数,将应填入(n)处的语句写在对应栏内。 【函数2.1说明】 有1、2、3、4四个数字,输出由这些数字组成的互不相同且无重、复数字的三位数。 【函数2.1】 main() { int i,j,k;

admin2010-01-15  42

问题 阅读以下函数说明和C语言函数,将应填入(n)处的语句写在对应栏内。
【函数2.1说明】
   有1、2、3、4四个数字,输出由这些数字组成的互不相同且无重、复数字的三位数。
   【函数2.1】
   main()
   {
   int i,j,k;
   printf("\n");
   for((1))       /*以下为三重循环*/
       for(j=1; j<5;j++)
           for (k=1;k<5;k++)
               {
                if ((2))     /*确保i, j, k 三位互不相同*/
                printf("%d,%d,%d\n",i,j,k);
               }
   }
   【函数2.2说明】
   计算并输出100之内的素数,每行输出10个,超过10个则换行。
   【函数2.2】
   #include <stdio.h>
   #include "math.h"
   #define N 101
   main()
   {
   int i,j,line,a[N];
   for(i=2;i<N;i++)(3);
   for(i=2;i<sqrt(N);i++)
       for(j=i+1;j<N;j++)
       {
           if(a!=0&&a[j]!=0)
           if(a[j]%a==0)
             (4);
       }
       printfC\n");
       for(i=2,line=0;i<N;i++)
       {
           if(a!=0)
           {
           prinff("%5d",a);
             (5);
           }
           if(line==10)
           {
               prinff("\n");
               line=0;
           }
       }
   }

选项

答案(1)i=1;i<5;i++ (2)i!=k&&i!=j&&j!=k (3)a[i]=I (4)a[j]=0 (5)line++

解析 本题考查用C语言程序对组合数和素数的求解。
   在函数2.1中,要求输出由1、2、3、4这些数字组成的互不相同且无重复数字的三位数。程序中是用三重循环来实现的。
   第(1)空是三重循环中第一重循环的循环条件,三位数的最高位可以取题目给出的任意一个数,那么应该和其他循环的条件一样,结合程序中变量的应用情况,不难知道这重循环是用变量i,因此,此空答案为i=1;i<5;i++。
   第(2)空是条件判断语句的条件,此条件判断语句的作用注释中已经给出,是用来确保i,j,k三位互不相同的,即所组成的三位数中无重复数字。因此,此空答案为i!=k&&i!=j&&j!=k。
   在函数2.2中,题目要求计算并输出100之内的素数,且每行只能输出10个数,从试题一中我们应该很清楚素数的定义了,最小的素数是2。下面我们来分析程序。
   第(3)空是第一个循环下面的执行语句,此循环是从2开始一直到100,结合程序不难发现程序中用了一个数组来存放要参加运算的100个数,但是并没有对数组进行赋初值操作,那么此空的作用应该就是对数组进行赋初值,因此,此空答案为a=i。
   第(4)空是在循环中的两个条件判断语句下面,从条件判断语句if(a[j]%a==0)不难推断出此循环是用来求当前最小素数的倍数的,此空是对当前最小素数倍数的处理,结合后面的程序可以知道,如果是素数的倍数,那么在数组中的值要被变为0,因此,此空答案为a[j]=0。
   第(5)空是在循环输出语句下面,从条件判断语句if(line==10)及下面的操作可以推断出变量line是用来记录一行中输出素数的个数的,在此空的上面一行程序是输出一个素数,那么接下来应该是将变量line加1,因此,此空答案为line++。
转载请注明原文地址:https://jikaoti.com/ti/6XW7FFFM
0

相关试题推荐
最新回复(0)