主观

阅读以下说明和C语言程序,将应填入(n)处的字句写在对应栏内。

  【说明】

 计算n的合数。一个整数n可以有多种划分,使其划分的一列整数之和为n。例如,整数5的划分为:

 5

 4 1

 3 2

 3 1 1

 2 2 1

 2 1 1 1

 1 1 1 1 1

 共有7种划分。这种划分的程序如下所示。

 【程序】

 #include <stdio.h>

 int n[1000],m,k;

 void output sum()

 {

   int j;

   for(j=0;n[j]!=0;j++)

     printf("%d\t",n[j]);

    printf("\n");

}

void sum(int i)

    if(m-n[i]<n[i])

    { m=m-n[i];

       (1) 

       i++;

        n[i+1]=0;

    }

    else

    {

        (2) 

       m-=n[i];

       i++;

    }

    if(m!=n[i])

       sum(i);

    else

       output_sum();

    if(n[i]>1)

    {

       n[i]--;

       (3) 

    }

    else

    {

      while((n[i]==1)&&(i>O))

     {

         i--;

          (4) 

     }

      if(i!=0)

     {

          (5) 

         sum(i);

     }

   }

 }        

 void main()

 {

   int i;

  scanf("%d",&n[0]);

      m=k=n[0];

  for(i=1;i<=k;i++)

      n[i]=0;

  while(n[0]!=1)

  {

      n[0]--;

      i=0;

      sum(0);

      m=k;

  }

}

参考答案
您可能感兴趣的试题

阅读以下说明和Java代码,将应填入(n)处的语句写在对应栏内。

 【说明】

 进行两个整数之间的比较,由考生通过输入窗口分别输入两个整数,程序比较出结果。例如:先后输入的两个数分别为25和36。

 比较结果显示:

 25!=36

 25<36

 25<=36

 【Java代码】

   import javax.swing.JOptionPane;

 public class Java3

 {

   public static void main(String args[])

   {

     String (1)       // 用户输入第1个字符串

       secondNumber,    // 用户输入第2个字符串

       result;      // 包含输出

     int number1,     // 比较的第1个数

       number2;     // 比较的第2个数

     // 用户输入的第1个字符串

     firstNumber =

       JOptionPane. (2) ("Enter first integer:");

     //读用户输入的第2个字符串

     secondNumber =

       JOptionPane.showlnputDialog("Enter second integer:");

     将字符串类型转换成整数类型

     number1= Integer. (3) (firstNumber);

     number2= Integer.parselnt(secondNumber);

     result= "":

     if ((4))

       result=number1+"=="+number2;

     if (number1 != number2)

       result=number1+"!="+number2;

     if (number1<number2)

       result=result+"\n"+number1+"<"+ number2;

     if (number1>number2)

       result=result+"\n"+number1+">"+number2;

     if (number1<=number2)

       result=result+"\n"+number1+"<="+number2;

     if (numbed>=number2)

       result=result+"\n"+number1+">="+number2;

     //显示结果

     JOptionPane.(5).(

         null, result, "Comparison Results",

         JOptionPane. INFORMATION_MESSAGE);

     //程序正常退出

     System.exit(0);

   }

 }

阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。

  【说明】

 字符串在程序设计中扮演着重要角色。现需要设计字符串基类string,包含设置字 符串、返回字符串长度及内容等功能。另有一个具有编辑功能的串类edlt_string,派生于string,在其中设置一个光标,使其能支持在光标处的插入、删除操作。

 【程序】

 #include <iostream.h>

 #include <stdio.h>

 #include <string.h>

 class string

 {

   int length;

   char *data;

 public:

   int get_length() {return length;}

   char *get_data() {return data;}

   ~string() {delete data;}

   int set data(int in_length, char *in_data);

   int set_data(char *data);

   void print() {cout<<data<<endl;}

 };

 class edit_string: public string

 {

   int cursor;

 public:

   int get_cursor() {return cursor;}

   void move_cursor(int dis) {cursor=dis;}

   int add_data(string *new_data);

   void delete_data(int num);

 };

 int string::set_data(int in_length,char *in_data)

 {

   length=in_length;

   if(!data)

     delete data;

    (1) 

   strcpy(data,in_data);

   return length;

 }

 int string::set data(char *in_data)

 {

    (2) 

   if(!data)

      delete data;

    (1) 

   strcpy(data,in_data);

   return length;

 }

 int edit_string::add_data(string *new_data)

 {

   int n,k,m;

   char *cp,*pt;

   n=new_data->get_length();

   pt=new_data->get_data();

   cp=this->get_data();

   m=this->get_length();

   char *news=new char[n+m+1];

   for(int i=0; i<cursor; i++)

      news[i]=cp[i];

   k=i;

   for(int j=0; j<n; i++,j++)

      news[i]=pt[j];

   cursor=i;

   for(j=k; j<m; j++,i++)

      (3) 

   news[i]='\0';

    (4) 

   delete news;

   return cursor;

 }

 void edit string::delete_data( int num)

 {

   int m;

   char *cp;

   cp=this->get_data();

   m=this->get_length();

   for(int i=cursor; i<m; i++)

      (5)

  cp[i]='\0';

 }

阅读以下说明和C语言程序,将应填入(n)处的字句写在对应栏内。

  【说明】

 设有3n+2个球互连,将自然数1~3n+2分别为这些球编号,使相连的两球编号之差的绝对值正好是数列1,2,…,3n+1中的各数,如下图所示:

 

 其中填自然数的思想如下;

 (1)先自左向右,第1列中间1个填数,然后第2列上、下2个填数,每次2列;但若n为偶数,最后1次只排第1列中间一个数。

 (2)自右向左,先右第1列中间填数;若n是奇数,再右第2列中间填数。然后依次右第1列上、下2个填数,再右第2列中间1个填数,直到左第2列为止。

 【程序】

 #include <stdio.h>

 #define size 10

 int a[3][size];

 void main()

 {

   int i,k,m,n;

   printf("imput the n:");

   scanf("%d",&n);

   k=1;

   for(i=0; i<=n/2; i++)

   {

     a[1][2*i]=k; k++;

     if((i==n/2)&& (1) ||(i<n/2))

     {

         a[0][2*i+1]=k;

         k++;

          (2) 

         k++;

     }

   }

   if(n%2==1)

   {

      (3) 

      k++;

      m=n;

   }

   else

      (4) 

   for(i=0; i<n/2; i++)

   {

     a[1][m-2*i]=k; k++;

      (5) 

     k++;

     a[2][m-2*i-1]=k; k++;

   }

   a[1][1]=k;

   printf("\n");

     printf(" ");

   for(i=1; i<=n; i++)

      printf("%6d",a[0][i]);

   printf("\n\n");

      for(i=0; i<=n+1; i++)

        printf("%6d",a[1][i]);

   printf("\n\n");

   printf("  ");

   for(i=1; i<=n; i++)

      printf("%6d",a[2][i]);

   printf("\n");

 }

¥

订单号:

遇到问题请联系在线客服

订单号:

遇到问题请联系在线客服