一起答
主观

阅读以下说明和流程图,回答问题1~2,将解答填入答题纸对应的解答栏内。

[说明]

 给定一个十进制整数A,将其转换为R进制数的方法是:将A的整数部分逐次除以R,直到商等于0为止,将所得的余数由低位到高位排列在一起,就得到了对应R的进制数。以A=11,R=2为例,11÷2=5…1,5÷2=2…1,2÷2=1…0,1÷2=0…1中各式的余数依次为:1,1,0,1,于是与A对应的二进制数为1011。

 下面的流程图实现了将十进制数2597转换为八进制数的功能,其中:

 (1)循环1执行除法运算并将余数依次记录在数组a中(假定数组长度足够长),如a[1], a[2],……,a[k];

  (2)循环2则用于将这些余数按逆序输出,即a[k],a[k-1],……,a[1];

 (3)图中i,j分别是循环1和循环2中的循环变量;

 (4)图中q用于记录每次除法所得的商值。

[流程图]

[问题1]

 将流程图中的(1)~(4)处补充完整,其中(1)~(3)处要求使用C语言格式书写:(1)处为逻辑表达式,(2)、(3)两处为算术表达式;(4)则须按照“循环变量名:循环初值,循环终值,增量”格式描述。

[问题2]该算法运行的结果(5)。

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

    [说明]

     本程序中预设了若干个用户名和口令。用户输入正确的用户名后,可以查找对应的口令,一旦输入结束标记“end”,程序结束。

    [Java代码]

    import java. io. *:

    public class User {

    public String user;

    public Siring pass;

    public User() { }

    public User( String u,String p) {

     user=u;

     pass=p;

    }

    public String (1) () { return this. user; }

    public String (2) () { return this. pass; }

    public static void main(String[] args) {

     User ua[]={new User("Li","123456"), new User("wang","654321"),

          new User("Song","666666")};

     while(true) {

      InputStreamReader reader = new InputStreamReader(System. in);

      BufferedReader inpul = new BnfferedReader(reader);

      System. out. print("Enter your name:");

      String name = null;

       try { name = input. readLine();}

       catch (IOException ex) {}

       if((3)) break;

       int i;

       for (i=0;i<3;i++) {

         if (name. equals(ua[i]. getUser())){

          System. out. println("密码:"+ua[i].getPass());

           (4);

         }

       }

       if ((5)) System. out. println("该用户不存在!");

      }

     }

    }

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

    [说明]

     本程序中预设了若干个用户名和口令。用户输入正确的用户名后,可以查找对应的口令,一旦输入结束标记“end”,程序结束。

    [C++程序]

    #include <iostream. h>

    #include <string. h>

    class User

    { protected:

     char user[10];

     char pass[7];

     public:

        User(char[ ],char[]);

        (1) {return user;}

        (2) {return pass;}

    };

    User::User(char u[],char p[])

    { strcpy(user,u);

     strcpy(pass,p); }

    void main()

    { User ua[]={User("Li","123456"),User("wang","654321"),User("Song","666666")

     char name[10];

     while(1)

        cout< < "输入用户名:";

        cin> >name;

        if((3)= =0) break;

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

          if(strcmp(name,ua[i].getuser()) = =0){

             cout< <"密码:" < < ua[i].getpass() < <endl;

             (4);

        if((5))cout< <"该用户不存在!" < <endl;

     }  

    }

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

    [说明]

     本程序实现的功能是查看磁盘上的图片及其基本信息。程序运行界面如下图所示,用户只要逐步选择适当的驱动器、目录和图片文件,图片内容随即显示在界面中央,文件的基本信息则呈现于右侧文本框中。用户还可以删除或复制选中的图片文件。

        

     在开发过程中,驱动器列表框名为Drivel,目录列表框名为Dir1,文件列表框名为File1,图片的显示由Image控件对象Image1来实现,文件信息文本框名为Text1,按钮“删除文件”和“复制到…”分别名为CmdDel和CmdCpy。

    [Visual Basic代码]

    Dim filename As String

    Dim fso As New (1), file As file

    Private Sub Form_Load()

      Set fso = CreateObject("Scripting.FileSystemObject")

      Drivel.Drive = "F:"

    End Sub

    Private Sub Dir1_Change()

     File1.path=Dirl.path    ’更新文件列表框的路径

    End Sub

    Private Sub Drive1_Change()

      Dir1.path =(2)      ’更新目录列表框的路径

    End Sub

    Private Sub File1_Click()’文件列表框的单击事件响应代码

     If Right(Dir1.path, 1) <>"\" Then

        filename = Dir1.path & "\" & Filel.filename

     Else

        filename = Dir1.path & Filel.filename

     End If

     Image1.Picture =(3) 

     Set file = fso.GetFile(filename)

     Text1. Text = "文件名称:" & file.Name & vbCrLf & _

            "文件大小:" & file. Size & "字节" & vbCrLf & _

           "文件类型:" & file.Type & vbCrLf & _

           "创建日期:" & file. DateCreated & vbCrLf & _

           "修改日期:" & file. DateLastModified

    End Sub

    Private Sub CmdCpy_Chck()’按钮“复制到…”的单击事件响应代码

     Dim path As String

     path = InputBox("请输入目标路径(含文件名):")

      (4) 

    End Sub

    Private Sub CmdDel_Click()’按钮“删除文件”的单击事件响应代码

      (5) 

    End Sub

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

    [说明]

     某小型家电超市开发了下面的程序,用以实现商品提货信息的汇总和输出功能。程序的运行界面如下图所示:

        

     程序界面包含两个控件数组,分别是提货商品复选框控件数组Check1以及提货数量文本框控件数组Text1(相同下标的复选框和文本框相对应),提货清单的显示由List控件实现,按钮“打印清单”和“清除”分别名为Command1和Command2。

    [Visual Basic代码]

    ’提货商品复选框的单击事件响应代码

    Private Sub Check1_Click(Index As Integer)

    If Check1 (Index). Value = 1 Then (1). SetFocus

    End Sub

    ’按钮“打印清单”的单击事件响应代码

    Private Sub Command1_Click()

      Dim i, n, price As Integer, sum As Long, title As String

      sum = 0

      For i = O To 4

           Select Case i

              Case 0:  title ="电视机":  price = 3580

              Case 1:  title ="微波炉":  price = 660

              Case 2:  title ="电冰箱":  price = 1850

              Case 3:  title ="DVD":   price = 2880

              Case 4:  title ="空调":   price = 2500

          End Select

      If (2)= 1 And Textl(i). Text < > " " Then

          (3) title & Text1(i).Text & "台"

      n = n + Val(Textl(i))

      sum =(4) 

      End If

      Next i

      If sum < > 0 Then

        (3) "共:" & n &"台," &"合计金额:"& sum &"元。"

     End If

    End Sub

    ’按钮“清除”的单击事件响应代码

    Private Sub Command2_Click()

      (5) 

    End Sub

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

    [说明]

     用链式存储结构实现的栈称为链栈。若链栈元素的数据类型为datatype,以LinkStack记链栈结构,其类型定义为:

    typedef struct node

    { datatype data;

    stmct node * next;

    } StackNode, * LinkStack;

     由于栈的主要操作都是在栈顶进行的,因此我们把链表的头部作为栈顶。设top为栈顶指针,即:LinkStack top。

     下面各函数的功能说明如下:

     (1)LinkStack Init_LinkStack():建立并返回空的链栈;

     (2)int Empty_LinkStack(LinkStack top):判断top所指链栈是否空;

     (3)LinkStack Push_LinkStack(LinkStacktop,datatypex):将数据x压人top所指链栈的栈顶,返回新栈指针;

     (4)LinkStack Pop_LinkStack (LinkStacktop, datatype*x):弹出top所指链栈的栈顶元素x,返回新栈指针。

    [函数]

    LinkStaek Init_LinkStack( )

    { returnNULL;

    int Empty_LinkStack ( LinkStaek top)

     if(top = = NULL) return 1;

     else return 0;

    LinkStaek Push_LinkStaek( LinkStaektop, datatype X)

    { StaekNode *s;

     s=malloc (sizeof(StaekNode) );

      (1)= x;

      (2)= top;

       (3);

     return top;

    }

    LinkStaek Pop_LinkStack (LinkStacktop, datatype * x)

    {  StaekNode *p;

      if(top = = NULL) return NULL;

      else{

        * x =(4);

        p = top;

         (5);

        free (p);

        return top;

      }

    }

  6. 阅读下列函数说明和C函数,回答问题1~2,将解答填入栏内。

    [说明]

     若矩阵Am×n中存在某个元素aij满足:aij…是第i行中最小值且是第j列中的最大值,则称该元素为矩阵A的一个鞍点。下面程序的功能是输出A中所有鞍点,其中参数A使用二维数组表示,m和n分别是矩阵A的行列数。

    [程序]

    void saddle (int A[ ] [ ], int m, int n)

    { int i,j,min;

     for (i=0;i <m;i + + )

     {  min: (1);

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

         if(A[i][j]<min) (2);

       for (j=0; j<n; j+ +)

         if ((3))

         {  p=0;

           while (p<m&&(4))p+ +;

           if (p > = m)printf ("%d,%d,%d\n",i,j,min);

         }

      }

    }

    [问题1] 将函数代码中的(1)~(4)处补充完整

    [问题2]在上述代码的执行过程中,若A为矩阵,则调用saddle(A,3,3)后输出是(5)。

  7. 阅读下列程序说明和c代码,将应填入(n)处的字句写在对应栏内。

    [说明]

     下面的程序利用递归算法计算x和y的最大公约数。

    [函数2.1]

    main ( )

    { int x,y,k,t;

     scanf(" % d% d" , &x, &y);

     if(x>y) { t=x;x=y; y=t;}

      (1);

     while(k! =0){

      y=x;

      (2);

      k=y%x;

     }

     prinff( "% d" ,x); }

    [函数2.2说明]

    函数fun(char *str,char *substr的功能是计算子串sugbstr在串str中出现的次数。

    [函数2.2]

    fun(ehar * str, char * substr)

    { int x,y,z;

      (3);

      for(x=0;str[ x] ! = '\O';x + + )

      for(y=x,z=0;sabstr[z] = =str[y];(4),y+ +)

      if((5)= ='\0') {

        num + +;

        break;

      }

     return(num);

    }

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

    [说明]

     给定一个十进制整数A,将其转换为R进制数的方法是:将A的整数部分逐次除以R,直到商等于0为止,将所得的余数由低位到高位排列在一起,就得到了对应R的进制数。以A=11,R=2为例,11÷2=5…1,5÷2=2…1,2÷2=1…0,1÷2=0…1中各式的余数依次为:1,1,0,1,于是与A对应的二进制数为1011。

     下面的流程图实现了将十进制数2597转换为八进制数的功能,其中:

     (1)循环1执行除法运算并将余数依次记录在数组a中(假定数组长度足够长),如a[1], a[2],……,a[k];

      (2)循环2则用于将这些余数按逆序输出,即a[k],a[k-1],……,a[1];

     (3)图中i,j分别是循环1和循环2中的循环变量;

     (4)图中q用于记录每次除法所得的商值。

    [流程图]

    [问题1]

     将流程图中的(1)~(4)处补充完整,其中(1)~(3)处要求使用C语言格式书写:(1)处为逻辑表达式,(2)、(3)两处为算术表达式;(4)则须按照“循环变量名:循环初值,循环终值,增量”格式描述。

    [问题2]该算法运行的结果(5)。