一起答
主观

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

[函数2.1说明]

 将一个正整数分解质因数。例如:输入90,打印出90=2×3×3×5。

 [函数2.1]

  fun 1 ( int n )

 {

 int i;

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

   {

    while (((1))

    {

     if (n %i==0 )

     { printf ( "%d*",i );

      (2) 

     } 

     else

      break;

    }

 }

 printf ( "%d",n ) ;}

 [函数2.2说明]

 下面程序的功能是:海滩上有一堆桃子,5只猴子来分。第1只猴子把这堆桃子平均分为5份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第2只猴子把剩下的桃子又平均分成5份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第3、第4、第5只猴子都是这样做的,问海滩上原来最少有多少个桃子?

 [函数2.2]

 main ( )

 {int i, m, j, k, count;

 for ( i=4;i<10000;i+=4 )

 { count=0;

  (3);

 for ( k=0;k<5;k++ )

 {

   (4);

  i=j;

  if ( j%4==0 )

    (5);

  else

    break;

 }

  i=m;

  if ( count==4 )

  {printf ( "%d\n", count) ;

    break;}

 }

 }

试题出自试卷《软件水平考试(初级)程序员下午(应用技术)模拟试卷9》
参考答案
查看试卷详情
相关试题
  1. 阅读以下说明和JAVA2代码,将应填入(n)处的字句写在对应栏内。

    【说明】

     以下程序实现了利用鼠标任意移动该圆形的位置,仔细阅读代码和相关注释,将程序补充完整。

     【代码6】

     import java.awt.*;

     import java.awt.event.*;

     public class CIUSAMPLE extends Frame. implements MouseMotionListener, MouseListener

     {

       static CIUSAMPLE frm=new CIUSAMPLE ();

       int x=70,y=60,posX=70,posY=60,dx,dy;

       public static void main ( String args[])

       {

         frm.setTitle ("Dragging a circle");

         frm.setSize ( 200,150 );

          (1) 

          frm.addMouseMotionListener ( frm );

         frm. setVisible ( true );

       }

       public void mousePressed ( MouseEvent e )

       {

        (2) 

        dy=e.getY () -posY;

       }

       public void mouseDragged ( MouseEvent e )

       {

        (3) 

        y=e.getY () -dy;

        if ( dx>0 && dx<50 && dy>0 && dy<50 ) //如果指我落在正方形区域内

        {

          Graphics g=getGraphics ();

           (4) 

        }

       }

       public void paint ( Graphics g )

       {

         g.setColor ( Color. pink ); // 设置绘图颜色为粉红

         g.fillOval ( x,y,50,50 ); //以基准点为图形的左上角绘出圆形

          (5) 

         posY=y;

       }

       public void mouseMoved ( MouseEvent e ) { }

       public void mouseReleased ( MouseEvent e ) { }

       public void mouseEntered ( MouseEvent e ) { }

       public void mouseExited ( MouseEvent e ) { }

       public void mouseClicked ( MouseEvent e ) { }

     }

  2. 阅读以下说明及Visual Basic 程序代码,将应填入(n)处的字句写在对应栏内。

    [说明]

     本程序将利用文本框txtInput 输入的一行字符串中的所有字母加密,加密,加密结果在文本txtCode中显示。加密方法如下:将每个字母的序号移动5个位置,即“A”->“F”“a”->“f”,“B”->“G”……“Y”->“D”,“Z”->“E”。程序段如下:

     [Visual Basic 代码]

    Private Sub Form_ Click()

       Dim strInput As String*70 ; 输入字符串

       Dim Code as String*70   ;加密结果

       Dim strTemp As String*1  ;当前处理的字符

       Dim i as Integer

       Dim Length As Integer   ;字符串长度

       Dim iAsc As Integer    ;第i个字ASCII码

        (1)        ;取字符串

       i=1

       Code=“”

        (2)      ;去掉字符串右边的空格,求真正的长度

    Do While(i<=Length)

       (3)       ;取第i个字符

     If (strTemp>="A" And strTemp<="Z',) Then

       iAsc= Asc (strTemp)+5

       If iAsc>Asc(“Z”)Then iAsc=iAsc-26

       Code=Left$(Code,i-1)+Chr$ (iAsc)

     ElseIf (strTemp>="a" And strTemp<="z") Then

       iAsc=Asc(strTemp)+5

       If iAsc>Asc (“z”) TheniAsc=iAsc-26

       Code=Left$(Code,i-1)+Chr$(iAsc)

     Else

       Code=Left$(Code,i-1)+strTemp

     End If

      (4) 

     Loop

      (5);显示加密结果

    End Sub

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

    【说明】

     找一个最小的自然数,使它等于不同的两组三个自然数的三次幂之和,即找最小的x,使得:x=a*a*a+b*b*b+c*C*c+d*d*d+e*e*e+f*f*f,其中,a、b、c、d、e、f者是是自然数,a≤b≤C≤d≤e≤f; [a,b,c]!=[d,e,f)

     【C++程序】

     #include<stdio.h>

     #define N 100

     void main ()

     {

       int i,j,il,ih,i0,j0,k0,il,j 1,k1;

       int j1[N],jh[N];/*第i层平面的行的变化范围,自jl[i]至jh[i]*/

       int k[N][N];/*第i层平面中,对应行j,当前的列号值为k[i][j]*/

       int p[N], min;/*p[i]=i*i*i*/

       i1=1;j1=1;k1=1;/*首先只局限下三角棱体的顶点*/

       i1=1;ih=1;/*预置i的变化范围初值i1<=i<=ih*/

       j1[1]=1;jh[1]=1;/*对应i层平面的行的变化范围*/

       k[i1][j1[i1>=1;/*第i层平面中,对应行的列的初值*/

       p[1]=1;

       do

       {

       min=p[i1]+p[j1]+p[k1];

       i0=i1;j0=j1;k0=k1;

       if ( i1==ih ) /*当前候选者在ih平面, 则ih增1*/

       {

       ih++;

        (1);

       /*为ih平面设定j的变化范围和对应k值*/

       j1[ih]=1;jh[ih]=1;k[ih][1]=1;

       }

       if ( i1==i1&&j 1==i1&&k1==i1 )

       i1++;/*在i1平面最下角点找到候选者,i1增1*/

       else

       {

         if ( k1==1&&jh[i1]<i1 )

          {/*在第一列找到候选者, i1平面的行的上界增1*/

           (2);

          k[i1][jh[i1>=1;

     }

      if( k1==j1&&j1[i1]<i1 )

      else

      (3);/*调整i1平面当前行的列号*/

      }

       i1=i1;/*预定最上平面的最小行的当前列为下一个候选者*/

       j1=j1[i1];

       k1=k[i1][j1];

       for ( i=i1;i<=ih;i++ ) /*寻找最小值所在平面号、行号和列号*/

       {

       for ( j=j1[i];j<=jh[i];j++ )

       if ( p[i]+p[j]+p[k[i][j><(4))

       {

        i1=i;j 1=j;k1=k[i][j];

       }

       }

       }while ( p[i1]+p[j1]+p[k1]!=min&&(5));

       if ( p[i1]+p[j1]+p[k1]==min )

       printf ( "%4d=%2d^3+%d^3+%dA3=%2d^3+%d^3+%d^3\n",min,i0,j0,k0,i1,j1,k1 );

       else printf ( "The %d is too small.\n",N );

     }

  4. 阅读以下说明及Visual Basic 程序代码,将应填入(n)处的字句写在对应栏内。

    [程序5.1说明]

     下列程序运行时,当单击窗体后,从键盘输入一个字符,判断该字符是字母字符、数字字符还是其他字符,并做相应的显示。窗体上无任何控件,并禁用Ase和Chr函数,Select Case语句中禁用枚举值。

    [Visual Basic代码]

    Private Sub Form. Load ()

    Dim x As String*1

    X=(1) (“请输入单个字符”,“字符”)

    Select Case UCase ( (2) )

    Case (3)。

    Print X+“是字母字符”

    Case (4) 

    Print X+ “是数字字符”

    Case Else

    Print X+“是其他字符”

    End Select

    [程序5.2说明]

     在窗体上画一个名称为Timer1的计时器和一个名称为Labe11的标签。当运行程序后,将在标签中显示当前时间的数字时钟(包括时:分:秒)。

    [Visual Basic代码]

    Private Sub Fom_Load ()

    Timer1.Interval=1000

    EndSub

    Private Sub Timer1_ timer() (5) 

    EndSub

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

    [说明]

     如图所示的一圆圈上分布6个环,请在每个环中填一个数字,使得从任一环开始按顺时针所得的六位数与按逆时针所得的6位数都为素数。

    [函数]

     main ( )

     {

     int i, j, a, b, k;

     long m,m1,n,t,u,v;

     for ( n=100001;n<999999;n+2 )    /* n穷举所有 6位奇数*/

     {

     a=0;(1);          /* 设 m 为一个顺转6 位数*/

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

     {t=-m/1000000;(2);

     for ( v=u,m1=0,k=1;k<=5;k++ )

     {b=v%10;v=v/10;m1=m1*m1* 10+b;}

      (3);    /*m1 为相应的逆转 6 位数*/

      /* m 为顺圈数, m1 为逆圈数*/

     for ( j=2; j<=999;j++ )

     if ( m%j==0||.(4))     /* 判别 m,m1 是否为素数*/

     { a= 1; break; }

      (5);             /*原m 转一环得新顺转数m*/

     /*原 m 转一环得新顺圈数m*/

     if (a==1) break;}

     if ( a==0 )

     {prinff ("%1d\n",n ) ;break;}

     }

     }

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

    [说明]

     完成以下中序线索化二叉树的算法。

     [函数]

     Typedef int datatype;

      Typedef struct node {

     Int ltag, rtag;

      Datatype data;

      *lchild,* rchild;

      }bithptr;

     bithptr pre;

     void inthread ( p );

      {if

     {inthread ( p->lchild );

      if ( p->lchild==unll ) (1);

      if ( P->RCHILD=NULL) p->rtag=1;

     if (2) 

     {if (3) pre->rchild=p;

      if ( p->1tag==1 )(4);

      }

     INTHREAD ( P->RCHILD );

      (5);

      }

      }

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

    [函数2.1说明]

     将一个正整数分解质因数。例如:输入90,打印出90=2×3×3×5。

     [函数2.1]

      fun 1 ( int n )

     {

     int i;

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

       {

        while (((1))

        {

         if (n %i==0 )

         { printf ( "%d*",i );

          (2) 

         } 

         else

          break;

        }

     }

     printf ( "%d",n ) ;}

     [函数2.2说明]

     下面程序的功能是:海滩上有一堆桃子,5只猴子来分。第1只猴子把这堆桃子平均分为5份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第2只猴子把剩下的桃子又平均分成5份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第3、第4、第5只猴子都是这样做的,问海滩上原来最少有多少个桃子?

     [函数2.2]

     main ( )

     {int i, m, j, k, count;

     for ( i=4;i<10000;i+=4 )

     { count=0;

      (3);

     for ( k=0;k<5;k++ )

     {

       (4);

      i=j;

      if ( j%4==0 )

        (5);

      else

        break;

     }

      i=m;

      if ( count==4 )

      {printf ( "%d\n", count) ;

        break;}

     }

     }

  8. 阅读以下说明和流程图,回答问题,将解答填入对应栏内。

    [流程图]

    [说明]

     把指定区间上的所有整数分解质因数,每一整数表示为质因数按从小到大顺序排列的乘积形式。如果被分解的数本身是素数,则予以注明。例如,90=2×3× 3×5,91=素数。

     下面的流程图描述了分解质因数的过程。对每一个被分解的整数j,赋值给b(以保持判别运算过程中j不变),用K (从2开始递增1取值)试商,若不能整除,打印输出“*k”,b除以k的商赋给b(b=b/k)后继续用k试商(注意,可能有多个k因数),直至不能整除,k增1继续。

     将流程图中的(1)~(5)处补充完整。