一起答
主观

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

[函数2.1说明]

 求任意两个正整数的最大公约数的欧几里德算法。用辗转相除法求正整数m和n的最大公约数,并返回该公约数。

[函数2.1]

 void func1(int m, int n) {

r=m% n;

while(r<>0) {

  (1);

 n=r;

  (2);

  }

return n;

 }

[函数2.2说明]

 判断101~200之间有多少个素数,并输出所有素数。用一个数分别去除2到sqrt (这个数),如果能被整除,则表明此数不是素数,反之是素数。

[函数2.2]

void func2 ( ) {

 int m, i, k, h=0,leap=1;

 printf ( "\n" );

 for ( m=101;m<=200;m++ )

   { (3);

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

       if((4))

         {leap=0;break;}

   if ( leap )

   {printf ( "%-4d",m );

       (5);

         if ( h%10==0 )

         printf ( "\n" );

        }

   leap=1;

 }

printf ( "\n The total is %d", h );

}

参考答案
查看试卷详情
相关试题
  1. 阅读以下说明C++代码,将应填入(n)处的字句写在对应栏内。

    [说明]

     以下程序的功能是实现堆栈的一些基本操作。堆栈类stack共有三个成员函数:empty判断堆栈是否为空;push进行人栈操作;pop进行出栈操作。

    [C++程序]

    #include "stdafx. h"

    #include <iostream, h>

    eonst int maxsize = 6;

    class stack {

      float data[ maxsize];

      int top;

    public:

      stuck(void);

      ~ stack(void);

      bool empty(void);

      void push(float a);

      float pop(void);

    };

    stack: :stack(void)

    { top =0;

      cout < < "stack initialized." < < endl;

    }

    stack:: ~stack(void) {

      cout < <" stack destoryed." < < endl;

    bool stack:: empty (void) {

      return (1);

    void stack: :push(float a)

      if(top= =maxsize) {

        cout < < "Stack is full!" < < endl;

        return;

     data[top] =a;

     (2);

    }

    float stack:: pop (void)

    { if((3)){

        cout< < "Stack is undcrflow !" < < endl;

        return 0;

      (4);

     return (5);

    }

    void main( )

    { stack s;

    coat < < "now push the data:";

    for(inti=l;i< =maxsize;i+ +) {

      cout< <i< <" ";

      s. push(i);

    }

    coat < < endl;

    cout< < "now pop the data:";

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

      cout< <s. pop()< <" ";

    }

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

    [说明]

     本程序的功能是给公司的员工Tom,Jack,Green增加薪水。三人的职位分别是programmer, Manager,CEO。

     程序由6个类组成:WorkerTest是主类,programmer,Manager,CEO三个类,薪水增加的规则是 programmer的涨幅是5%;Manager的是10%;CEO也是Manager,但是它除了有Manager的涨幅,还有1000元的bonus。接口SalaryRaise提供了一个增加薪水的方法raise()。

    [java程序]

    public class WorkerTest {

    public WorkerTest( ) {}

    public static void main( String[] args) {

      Programmer programmer = new Programmer( "Tom" ,3000);

      Manager manager = new Manager( "Jack" ,4000);

      CEO ceo = new CEO( "Green" ,4000);

      Worker [] worker = new Worker[3];

      programmer, raise( );

      manager, raise( );

      ceo. raise( );

      worker[0] = programmer;

      worker [1] = manager;

      worker[2] = ceo;

      for ( int i = 0 ;i < worker, length; i + + ) {

       System. out. prinfln (" Name:" + worker [i]. getName ( ) +" \ tSalary:" + worker [i]. getSalary ());

    public interface SalaryRaise { void raise( ); }

    public class Worker {

    public String name;

    public double (1);

    public Worker( ) {}

    public String getName( ) {return name;}

    public void setName( String name) {this. name = name;}

    public double getSalary( ) {return salary;}

     public void setSalary(double salary) { this. salary = salary; }

    }

    public class Programmer extends Worker implements (2) {

     public Programmer( ) {}

     public void raise( ) {

      double pets=0.05;

      double sala = this. getSalary( ) * (1 + pers);

      this. setSalary (sala);

    public Programmer( Siring name, double salary) t

      this. name = name;

      this. salary = salary;

    public class Manager extends (3) implements SalaryRaise {

    public Manager( ) { }

    public Manager(String name, double salary) {

      this. name = name;

      this. salary = salary;

    }

    public void raise( ) {

      double pets = 0.1;

      double sala = this. getSalary() * (1 + pers);

      this. setSalary(sala);

    }

    }

    public class CEO extends Manager implements SalaryRaise {

    public CEO() {}

    public CEO( String name,double salary) {

      this. name = name;

      this. salary = salary;

     }

    public void raise( ) {

      double bonus = 1000;

      (4);

      double sala = this. getSalary( );

      (5);

      this. setSalary(sala);

    }

    }

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

    [说明]

     下图是一个简易文本编辑器程序的运行界面:

    用户打开磁盘上的某个文件后,可以直接对文本进行编辑,也可以利用界面提供的按钮完成相应操作。主要操作介绍如下:

     (1)打开文件:打开文件对话框,其中仅显示“*.txt”类型的文件。用户选中某一文件后,其内容将呈现于界面文本框内;

     (2)查找:提示用户输入要查找的内容,将首次出现的查找内容以蓝色高亮标记;

     (3)替换:若文本框中已选中某段文本,则提示用户输入要替换的内容,在文本框中完成替换。

     在开发过程中,文本框名为Text1,“打开文件”、“保存文件”、“查找”、“替换”、“退出”按钮分别命名为Command1至Command5。

    [Visual Basic代码]

    Dim fileName As String

    Dim fso As New (1), ts As Object

    ’打开文本文件

    Private Sub Command1_Click()

     CommonDialog1.Filter = "*.txt"

     CommonDialog1.ShowOpen

     fileName =(2)    ’保存所打开的文件名

     Set fso=CreateObjeet("Scripting.FileSystemObject")

     Set ts=fso.OpenTextFile(fileName, ForReading)

     If Not ts.AtEndOfStream Then

     Text1.Text =(3) 

     End If

     ts. Close

    End Sub

    ’保存文本文件

    Private Sub Command2_Click()

      Set ts = fso.OpenTextFile(fileName, ForWriting)

      (4) 

      ts.Close

    End Sub

    ’查找字符串

    Private Sub Command3_Cliek()

     Dim search As String, position As Integer

     search = InputBox("输入要查找的字符串:")

     position = InStr(Text1.Text, search)  ’在文本中查找字符串

     If position >0 Then          ’若找到指定的字符串

        Text1.SelStart = position - 1  ’设置选定文本的起始位置

        Text1.SelLength = Len(search)  ’设置选定文本的长度

     Else

        MsgBox "没有发现要查找的字符串"

     End If

    End Sub

    ’替换选中的字符串

    Private Sub Command4_Click()

      Dim object As String

      If (5) >0 Then           ’若已经选中了要替换的文本

      object = InputBox("输入要替换的字符串:")

      Text1.SelText = object        ’替换文本

      Else

      MsgBox "请先选中要替换的文本!"

      End If

    End Sub

    ’退出程序

    Private Sub Command5_Click()

     End

    End Sub

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

    [说明]

     某银行新近开通外汇定期存款业务。为方便用户查询不同存款方式下的日利率、计算本利,特开发了日利率查询及本利计算程序,其运行窗口如下图所示。用户只要在界面上选择相应的存款方式(包括外汇币种、存期等),便可单击按钮一查询存款日利率。若输入一定数量的本金。程序还会根据所选择的存期计算并输出本利和。

        

     在开发过程中,选择币种和存期的组合框(ComboBox)名分别为Combo1和Combo2,单旋钮 (CommandButton)“个人单位”和“金融机构”分别名为Option1和Option2,用于输入本金的文本框 (TextBox)名为Price,“输出日利率”和“计算本利和”按钮(CommandButton)分别名为Command1和 Command2。且已知,第i类币种、第j类存期之下,个人单位与金融机构的存款日利率分别存放于数组元素interestRate(i,j,0)和interestRate(i,j,1)中,其中i,j从0开始计数。

    [Visual Basic代码]

    Dim interestBate(50,10,2) As Single ’通用声明

    Private Sub Form_Load()

      ……       ’为数组interestRate赋初值

    End Sub

    ’根据所选择的币种、存期等信息确定日利率

    Function getInterestRate()

      Dim strCurrency, strTime As String, i, j, k, intDays As Integer

      strCurrency = Combo1.Text

      strTime = Combo2.Text

      For i = 0 To Combol. ListCount - 1

        If Combol.List(i) = strCurrency Then (1) 

      Next

      For j = 0 To Combo2.ListCount - 1

        IfCombo2.List(j) = strTime Then (1) 

      Next

      If (2)=True Then

        k=0

      Else: k=1

      End If

      (3)= interestRate(i, j, k)

    End Function

    ’输出日利率

    Private Sub Commund1_Click()

     MsgBox "日利率为" & getInterestRate()

    End Sub

    ’输出本利和

    Private Sub Command2_Click()

      Dim strTime As String, intDays As Integer, sngCorpus, sngResult As Single

      strTime = Combo2. Text

      sngCorpus = CSng(Text1.Text)

      (4) ’计算存款天数(以每月30天计)

      Case "一个月" :intDays = 30

      Case "三个月" :intDays = 90

      Case "六个月" :intDays = 120

      End Select

      ’计算并输出本利和

      sngResult = sngCorpus +(5) 

      MsgBox "本利之和为:" & sngResult

    End Sub

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

    [说明]

     编写一个函数,输入为偶数时,调用函数求1/2+?/+…+1/n,当输入n为奇数时,调用函数1/1+1/3+…+1/n (利用指针函数)。

    [函数]

     #include "stdio. h",

     main()

     {

     float peven (),podd (),dcall ();

     float sum;

     int n;

     while (1) 

     {

       scanf("%d",&n);

       if (n>1)

         break;

     }

     if(n%2==0)

     {

       printf("Even="):

       (1);

     }

     else

     {

       pfinff("Odd=");

      (2);

     }

     printf("%f",sum);

     }

     float peven (int n)

     {

     float s;

     int i

     s=1;

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

      (3);

     return (s);

     }

     float podd (n)

     int n;

     {

     float s;

     int i;

     s=0;

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

      (4);

     return (s);

     }

    float dcall(fp,n)

    float (*fp) ();

    int n;

    {

    float s;

    (5);

    returu (s);

    }

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

    [说明]

     若S和T是用结点大小为1的单链表存储的两个串,试设计一个算法找出S中第一个不在T中出现的字符。查找过程是这样的,取S中的一个字符(结点),然后和T中所有的字符一一比较,直到比完仍没有相同的字符时,查找过程结束,否则再取S中下一个字符,重新进行上述过程。

    [函数]

      typedef struct node {

        char data;

     struct node *next;

     }LinkStrNode; //结点类型

    typedef LinkStrNode *LinkString; //LinkString 为链串类型

     LifikString S; //S 是链串的头指针

     char SearchNoin ( LinkString S, LinkString T )

       {//查找不在T中出现的字符

         LinkStrNode *p, *q;

          (1);

         q=T;

     while ((2))

         {//取S中结点字符

           while((3))//进行字符比较

         q=q->next;

           if(q==NULL) return (4);//找到并返回字符值

       q=T;//指针恢复串T的开始结点

       ((5));

       }

     printf("there's no such character.");

     return NULL:

    }

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

    [函数2.1说明]

     求任意两个正整数的最大公约数的欧几里德算法。用辗转相除法求正整数m和n的最大公约数,并返回该公约数。

    [函数2.1]

     void func1(int m, int n) {

    r=m% n;

    while(r<>0) {

      (1);

     n=r;

      (2);

      }

    return n;

     }

    [函数2.2说明]

     判断101~200之间有多少个素数,并输出所有素数。用一个数分别去除2到sqrt (这个数),如果能被整除,则表明此数不是素数,反之是素数。

    [函数2.2]

    void func2 ( ) {

     int m, i, k, h=0,leap=1;

     printf ( "\n" );

     for ( m=101;m<=200;m++ )

       { (3);

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

           if((4))

             {leap=0;break;}

       if ( leap )

       {printf ( "%-4d",m );

           (5);

             if ( h%10==0 )

             printf ( "\n" );

            }

       leap=1;

     }

    printf ( "\n The total is %d", h );

    }

  8. 阅读以下说明和流程图,将应填入(n)处的字句写在对应栏内。

    【说明】

     在一个矩阵中,如果其零元素的个数大大多于其非零元素的个数时,称这样的矩阵为稀疏矩阵。若直接用一个两维数组表示稀疏矩阵,会因存储太多的零元素而浪费大量的内存空间。通常采用三元组数组表示稀疏矩阵。

     稀疏矩阵的每个非零元素用一个二元组来表示:即非零元素的行号、列号和它的值。然后按某种顺序将全部非零元素的三元组存于一个数组中。例如对于以下两维数组。

     int x[5][4]={{1,0,0,0},

     {0,5,0,0},

     {0,0,7,2},

     {6,0,0,0},

     {0,3,0,8}};

     可用以下数组a来表示:

     int a[][3]={{5,4,7},

     {0,0,1},

     {1,1,5},

     {2,2,7},

     {2,3,2},

     {3,0,6},

     {4,1,3},

     {4,3,8}};

     其中三元数组a的第1行元素的值分别存储稀疏矩阵x的行数、列数和非零元素个数。

     下面的流程图描述了稀疏矩阵转换的过程。

     【流程图】

    注:流程图,循环开始的说明按照“循环变量名:循环初值,循环终值,增量”格式描述。