一起答
主观

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

[说明]

 下面的流程图描述了计算自然数1到N(N≥1)之和的过程。

[流程图]

    

[问题1] 将流程图中的(1)~(3)处补充完整。

[问题2] 为使流程图能计算并输出1*3+2*4+…+N*(N+2)的值,A框内应填写(4);为使流程图能计算并输出不大于N的全体奇数之和,B框内应填写(5)。

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

    [说明]

     以下程序的功能是统计学生成绩,包括输入学生的姓名和成绩,按成绩从高到低排列打印输出,对前百分之七十的学生定为合格(PASS),而后百分之三十的学生定为不合格(FAIL)。例如,当输入4名学生的姓名和成绩“Alice 67 Mary 90 Tom 56 John 88”后,程序的执行结果如下:

     姓名  成绩  合格否

     Mary  90   PASS

     John  88   PASS

     Alice 67   FAIL

     Tom  56   FAIL

    [C++程序]

    #include <stdio.h>

    #include <string.h>

    #define N 10

    class student

    { protected:

     char name[10];

     int deg;

     public:

        void setname(charna[]) {strcpy(name,na);}

        char * getname() {return name;}

        void setdeg(int d) {deg= d;}

        int getdeg(){return deg;}

    };

    class compute

    { int ns;

     student na[N];

     public:

        void getdata();

        void sort();

        void disp();

    };

    void compute::getdata()

    { int i,tdeg;

     char tname[10];

     printf("输入学生人数:");

     scanf("%d",&ns);

     printf("输入学生姓名和成绩:\n");

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

        scanf("%s%d",tname,&tdeg);

        (1);

        na[i].setdeg(tdeg);

     }

    }

    void compute::sort()

    { int i,j,pick;

      (2);

     for(i=0;i<ns-1;i+ +){

        pick=i;

        for(j=i+1;j<ns;j+ +)

          if(na[j].getdeg()>na[pick].getdeg()) (3);

        temp=na[i];

        na[i]=na[pick];

        na[pick]=temp;

     }

    }

    void compute::disp()

    { int cutoff,i;

      printf("RESULT\n");

      printf("姓名 成绩 合格否\n");

      cutoff=ns*7/10-1;

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

        printf("%-6s%3d",(4));

        if((5)) printf("\tPASS\n");

        else printf("\tFAIL\n");

    void main()

    { compute obj;

      obj.getdata();

      obj.sort();

      obj.disp();

    }

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

    [说明]

     有若干教师,每个教师只有姓名,一个教师可以指导多名研究生;每名研究生有姓名和研究方向,程序最后输出每个教师指导的所有研究生的姓名和研究方向。

    [Java程序]

    public class Teacher {

      String name;

      int top=0;

      Student[] student=new Student[20];

      public Teacher() {}

      public Teacher(String name) { this.name=name;}

      boolean add(Student stu){

       int len=this.student.length;

       if (top<len-1) {

         this.student[top]=siu;

         (1);

      return true;

       }

       else

        return (2);

      }

    void disp(){

     System.out.println(“指导老师"”+this.name);

     System.out.println(“研究生:”);

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

     System.out.println(“姓名:”+this.student[i].name+“\t研究方向:”+this.student[i]. search);

     }

    }

    public static void main(String[] args){

     Teacher t[]={new Teacher(“李明”),new Teacher(“王华”)};

     Student s1 = new Student(“孙强”,“数据库”);

     Student s2 = new Student(“陈文”,“软件工程”);

     Student s3 = new Student(“章锐”,“计算机网络”);

     if(! t[0].add(s1)) {System.out.println(“每个老师最多只能指导20个学生!”);}

     if(! t[0].add(a2)) {System.out.println(“每个老师最多只能指导20个学生!”);}

     if(! t[1].add(s3)) {System.out.println(“每个老师最多只能指导20个学生!”);}

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

        (4);

    }

    }

    class (5) {

     String name;

     String search;

     public Student(){}

     public Student(String name,String search){

      this.name=name;

      this.search=search;

     }

     String getName(){return this.name;}

     String getSearch(){return this.search;}

    }

  3. 请说明以下语句所完成的功能。

     MsgBox"请检查修改输入数据!",vbOKOnly+vbCritcal+vbDefaultBUttonl,"数据错"

  4. 为图1-19对话框中的【退出】按钮新增如下的功能:运行图1-19窗体时,该按钮上显示有“退出(C)”的字样信息,按【Alt+C】组合键或按【ESC】键,都相当于单击该按钮。

     要完成以上新增功能需要将[退出]按钮(cmdExit)的Cancel属性和Caption属性分别设置什么样的值?

  5. 在Visual Basic中,公用标准模块文件的扩展名是(10)。  A.frm  B.cis  

    C.vbp  D.bas

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

    [说明]

     下面程序的功能是将多个文件的内容同时输出在屏幕上,文件名都作为参数传入,命令执行为:cat file1 file2 file3,即同时输出file1、file2、file3的内容。

    [程序]

    #include <stdio.h>

    #include <stdlib.h>

    void fileeopy(FILE * ifp, FILE *ofp)

    { int c;

     while((c=getc((1)))!=EOF) pute(c,(2)); }

    int main(int arge, char *argv[])

    { FILE *fp;

     while((3)>0)

        if((fp=fopen((4),"r"))= =NULL){

          printf("Can't open file\n");

          return 1;

        }

        else {

          filecopy(fp, stdout);

          fclose((5));

        }

     return 0;

    }

  7. 阅读以下应用说明及Visual Basic程序代码,根据要求回答问题1至问题4。

     【说明】

     某学期成绩管理系统的“增、删、改数据表中的记录”对话框如图1-19所示。

    图1-19对话框中共定义了6个标签、6个文本框、4个命令按钮和1个Data数据控件。其中Data数据控件是Visual Basic的标准控件。利用它能方便地创建应用程序与数据库之间的连接,并实现对数据资源的访问。【添加】(cmdAdd)按钮用于向学生成绩数据表添加一条空记录:【修改】(cmdEdit)按钮用于修改当前所显示的一条数据记录:命令按钮【删除】(cmdDelete)用于删除当前显示的一条数据记录;单击【退出】(cmdExit)按钮,系统将退出图1-19所示的对话框。

     表1-13是学生成绩表结构的示例;表1-14是学生成绩表的示例。

     图1-19将表1-14数据库中的记录信息显示到相应的文本框中。要在各文本框(txtStu(i),i=0,1,2,3,4,5)中显示Data数据控件所连接的数据表中的数据,必须将文本框与Data数据控件进行绑定。

    【Visual Basic程序】

    Private Sub Form_Load()

    For i = 0 To 5

     txtStu(i).Locked = True

    Next i

    End Sub

    Private Sub cmdAdd Click()

     cmdEdit.Enabled = Not cmdEdit.Enabled

      (1) 

    For i = 0 To 5

     txtStu(i) .Locked = Not txtStu(i).Locked

    Next i

    If cmdAdd. Caption = "添加" Then

       (2) 

      Datal.Caption = "新记录"

      cmdAdd.Caption = "保存"

      cmdExit.Caption = "取消"

      txtStu(0).SetFocus

    Else

      Datal.Recordset.Update

       (3) 

      cmdAdd.Caption = "添加"

    End If

    End Sub

    Private Sub cmdEdit_Click()

    cmdAdd. Enabled = Not cmdAdd. Enabled

    cmdDelete. Enabled = Not cmdDelete. Enabled

    For i = 0 To 5

     txtStu(i).Locked = Not txtStu(i).Locked

    Next i

    If cmdEdit.Caption = "修改" Then

     Datal.Recordset.Edit

     cmdEdit.Caption = "保存"

     cmdExit.Caption = "取消"

    Else

      (4) 

     cmdEdit.Caption = "修改"

    End If

    End Sub

    Private Sub cmdDelete_Click()

    answer = MsgBox("确实删除该记录吗?", vbYesNo + vbQuestion, "警告")

    If answer = vbYes Then

     Datal.Recordset.Delete

      (5) 

     If Datal.Recordset.EOF Then

      (6) 

     End If

    End If

    End Sub

    Private Sub cmdExit_Click()

     If cmdExit.Caption = "退出" Then

      End

     Else

       (7) 

      cmdAdd. Enabled= True

      cmdEdit.Enabled = True

      cmdDelete. Enabled= True

      For i = 0 To 5

       txtStu(i).Locked = Not txtStu(i).Locked

      Next i

      cmdExit.Caption = "退出"

      cmdAdd.Caption = "添加"

      cmdEdit.Caption = "修改"

       (8) 

    End If

    End Sub

    Private Sub Datal_Reposition()

    Datal.Caption = "第" &(9).AbsolutePosition + 1& "条记录"

    End Sub

    请根据【说明】和图1-19的显示结果,从以下备选答案中为(1)~(9)空缺处选择正确的答案。(以下部分选项可重复选择)  【备选答案】A.Datal.Refresh

    B.Datal.Recordset.Update

    C.Datal.Recordset

    D.Datal.Recordset.CancelUpdate

    E.Datal.Recordset.AddNewF.Datal.Recordset.MoveNextG.Datal.Recordset.MoveLastH.cmdDelete.Enabled=NotcmdDelete.Enabled

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

    [说明]

     循环队列的类型定义如下(其中队列元素的数据类型为datatype):

    typedef struct{

      datatype data[MAXSIZE]; /*数据的存储区*/

      int front,rear;   /*队首、队尾指针*/

      int num;      /*队列中元素的个数*/

    }c _ SeQueue;       /*循环队*/

     下面函数及其功能说明如下:

     (1) c_SeQueue* Init_SeQueue():新建队列;

     (2) int ln_SeQueue( c_SeQueue *q, datatype x):将元素x插入队列q,若成功返回1否则返回0;

     (3) int Out_SeQueue (c_SeQueue *q, datatype *x):取出队列q队首位置的元素,若成功返回1否则返回0。

    [函数]

    c_SeQueue* Init_SeQueue()

    { q=malloc(sizeof(c_SeQueue));

     q->front=q->rear=MAXSIZE-1;

      (1);

     return q;

    }

    int In_SeQueue( c_SeQueue *q, datatype x)

    { if(q->num= =MAXSIZE) return 0;  /*队满不能入队*/

     else {

        q->rear=(2);

        q->data[q->rear]=x;

        (3);

        return 1;  /*入队完成*/

     }

    }

    int Out_SeQueue( c_SeQueue *q, datatype *x)

    { if (q->num= =0) return 0;  /*队空不能出队*/

      else{

        *x=(4);  /*读出队首元素*/

       q->front=(5);

       q->num- -;

       return 1;  /*出队完成*/

     }

    }

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

    [函数2.1说明]

     函数strcpy的功能是将字符串str2的内容复制到字符申str1。

    [函数2.1]

    (1) strcpy (char *slr1, const char *str2)

    { char * temp;

       while( * str2!='\0') *cp++ =(2);

     (3)='\0';

     return str1;

    }

    [函数2.2说明]

     函数int strcmp(const char *str1, const char *str2)的功能是按字典序比较两个字符串str1和str2的大小。当str1<str2时返回-1,当str1>str2时返回1,否则返回0。

    [函数2.2]

    int strcmp(const char *str1, const char *str2)

    { while( *str1= =* str2) {

        if(* s1= =(4)) return 0;

        s1++;

        (5);

     }

     if( *str1<*str2) return -1;

     return 1;

    }

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

    [说明]

     下面的流程图描述了计算自然数1到N(N≥1)之和的过程。

    [流程图]

        

    [问题1] 将流程图中的(1)~(3)处补充完整。

    [问题2] 为使流程图能计算并输出1*3+2*4+…+N*(N+2)的值,A框内应填写(4);为使流程图能计算并输出不大于N的全体奇数之和,B框内应填写(5)。