一起答
主观

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

 【说明】

 函数move(int*a,int n)用于整理数组a[]的前n个元素,使其中小于0的元素移到数组的前端,大于0的元素移到数组的后端,等于0的元素留在数表中间。

 令a[0]~a[low-1)小于0(初始为空);a[low]-a[i-1]等于0(初始为空);a[i]~a[high]还未考察,当前考察元素为a[i]。a[high+1]~a[n-1]大于0(初始为空)。

 【函数】

 move(int*a ,int n)

 {

   int i,low,high,t;

   low=i=0;high=n-1;

   while((1))

    if(a[i]<0)

   {

     t=a[i];a[i]=a[low];a[low]=t;

      (2);i++;

   }

   else if((3))

   {  t=a[i];a[i]=a[high];a[high]=t;

      (4);

   }

   else (5);

 }

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

     【说明】

     下面程序的功能是显示已定义的一个3行3列的二维数组每行的元素,并求所有元素的和并输出。请在程序的每条横线处填写一个适当的语句,使程序的功能完整。

      public class Arrayt

        (1) static (2) main(String args[])

       {  

        int sum=0;

        int [][] = t {11,12,13}, {21,22,23},{31,32,33}};

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

        { 

          System. out. print("b["+i+"]:");

          for(int j=0;(4) j++)

            System. out. print(b[i] [j] +" ");

            (5) 

        }

        System. out. println ();

       }

       System. out. println("sum="+sum);

      }

     }

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

     【说明】

     设计一个评选优秀教师和学生的程序,其类结构如图6所示。当输入一系列教师或学生的记录后,将优秀学生及教师的姓名列出来。

    【程序】

     #include<iostream.h>

     #include<stdio.h>

     enum boolean {False,True}

     class base

     {

       protected:

       char name[8];

       public:

          void getname() {cout<<"姓名:" ;cin>>name; }

         void printname() {cout<<"姓名:"<<name<<endU3

         virtual boolean isgood() =0;

     }

     class student:(1) 

     {

       int num;

       public:

         void getnum()

           cout<<"考试成绩:" cin>>num;

         boolean isgood() {return (2);{

     };

     class teacher:(3) public base

       int num;

       public:

         void getnum()

           cout<<"每年发表论文数:" ;cin>>num;

         boolean isgood() {return (4);}

     };

     void main()

       base* p[50];

       student * pstud;

       teacher * ptech;

       char ch;

       int count =0;

       do

         cout<<"输入教师(t)或学生(s):"

         cin>>ch;

         if(ch =='s')

       {

           pstud = new student;

           pstud ->getname();

           pstud ->getnum();

           p[count ++ ] = pstud;

       }

       else if(ch == 't')

       {

           ptech = newteacher;

           ptech - >getname( )

          ptech ->getnum();

         p[count++]=ptech;

       }

       else

         cout<<"输入错误<<endl;

         cout<<"继续输入码(Y/n)";

         cin>>ch;

       } while(ch == 'y')

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

       {

         if((5))  //若为优秀,则输出

         p[i]->printname();

       }

     }

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

    【说明】

     该应用程序是用来修改文本框中的字体属性,其运行窗口如图4所示。

    窗口由1个标签(Labell)、1个文本框(txtPassage)和4个选择框(chkFont,chkltalic,chkSize,chkColor)组成。程序运行后,用户在文本框内输入一段文字,然后按需要单击各选择框,用以改变文本的字体、字型、颜色及大小。

     文本框的Mulitine属性已经设为True。当不选择“黑体”时,文字应是“宋体”。当不选择“大小16”时,字号为9。当不选择“紫色”时,字色为黑色。当不选择“斜体”时,文字采用正常字型。

     【程序代码】

     Private Sub chkFont Click( )

       If (1) Then

         txtPassage. FontName ="黑体"

       Else

         txtPassage. FontName ="宋体"

       End If

     End Sub

     Private Sub (2) ()

       If chkColor. Value = 1 Then

         txtPassage. ForeColor = QBColor(13)

       Else

         txtPassage. ForeColor = QBColor (0)

       End If

     End Sub

     Private Sub chkltalic_Click()

       If chkltalic. Value = 1 Then

         txtPassage. Fontl talic =(3) 

       Else

         txtPassage. Fontltalic=(4) 

       End If

     End Sub

     Private Sub chkSize Click( )

       If (5) Then

         txtPassage. Font. Size = 16

       Else

         txtPassage. Font. Size = 9

       End If

     End Sub

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

      【说明】

     从文件IN.DAT中读取一篇英文文章存入到字符串数组XX中;请编写程序,其功能是:以行为单位把字符串中所有小写字母。左边的字符串内容移到该串的右边存放,然后把小写字母。删除,余下的字符串内容移到已处理字符串的左边存放。最后把已处理的字符串仍按行重新存入字符串数组XX中,最后调用函数WRITEDAT(),把结果XX输出到文件 OUT5.DAT中。

     例如:原文:You can create an index on any field.

           you have the correct record.

     结果:n any field.Yu can create an index

        rd. yu have the crreet res

     原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。

     【函数】

    #include "stdio.h"

     #include "string.h"

     #include "conio.h"

     #include "ctype.h"

     #include "mem.h"

     unsigned char xx[50] [80]

     int maxline=0;

     int readdat(void);

     void writedat(void)

       /*将题目要求的字符串中所有小写字母o左边的字符串内容移到谊串的右边存放,即将串中“最后”一个字母o左右两侧的内容互换*/

      void StrOR(void)

     {

       inti;

       char*p1,* p2,t[80];

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

       {  t[0]='/0';

          p2=xx[i];

          while(*p2)  /*找到最后一个别'o'*/

         {  if((1))p1=p2;

            p2++;

          }

          strcat(t,p1+1);

          *p1='\0';

          strcat(t,xx[i]);

          p1=xx[i];

          p2=t;

          while(*p2)   /*删去字符'o'*/

          {  if((2)) (3)=*p2;

            p2++;

          }

          (4);

       }

     }

     void main()

     {

       clrscr();

       if(readdat())

       {  printf("Can't open the file IN. DAT!\n");

          return;

       }

       StrOR();

       writedat();

     }

     int readdat(void)

     {

       FILE * fp;

       int i=0;

       char * p;

       if((fp=fopen("in.dat","r" ))==NULL)

       return 1;

       while(fgets(xx[i],80, fp)!=NULL)

       {  p=strchr(xx[i],'\n');

          if(p)

          *p=0;

         i++;

         }

         maxline:(5);

         fclose(fp);

         return 0;

       }

       void writedat (void)

       {  FILE * fp;

          int i;

          fp=fopen("in.dat',"w");

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

          {  printf("%s\n",xx[i]);

            fprintf(fp," %s\n",xx[i]);

          }

          fclose(fp);

       }

       }

     }

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

    【说明】

     本应用程序的运行窗口如图2所示。

    只要用户单击“闪烁”按钮,文字“欢迎光临”就会以0.3秒消失、0.3秒显示反复进行闪烁;单击“停止”按钮时,闪烁停止,恢复图示的初态。

     在开发过程中,需要设置的属性如表1所示。

    在开发过程中,需要编写的程序代码如下:

     【程序】

     Private Sub CmdF_Click( )

       Timerl.(3)=True

       Label. Visible = False

     End Sub

     Private Sub Timerl_Timer( )

        (4)= not Label. Visible

     End Sub

     Private Sub CmdT_Click( )

       Timer]. Enabled =(5) 

       Label Visible = true

     End Sub

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

     【说明】

     函数move(int*a,int n)用于整理数组a[]的前n个元素,使其中小于0的元素移到数组的前端,大于0的元素移到数组的后端,等于0的元素留在数表中间。

     令a[0]~a[low-1)小于0(初始为空);a[low]-a[i-1]等于0(初始为空);a[i]~a[high]还未考察,当前考察元素为a[i]。a[high+1]~a[n-1]大于0(初始为空)。

     【函数】

     move(int*a ,int n)

     {

       int i,low,high,t;

       low=i=0;high=n-1;

       while((1))

        if(a[i]<0)

       {

         t=a[i];a[i]=a[low];a[low]=t;

          (2);i++;

       }

       else if((3))

       {  t=a[i];a[i]=a[high];a[high]=t;

          (4);

       }

       else (5);

     }

  7. 阅读下列程序或函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。

    【函数2.1说明】

     函数stremp()是比较两个字符串s和t的大小。若s<t函数返回负数;若s=t函数返回0;若s>t,函数返回正数。

     【函数2.1】

     int strcmp(char * s,char * t)

     { while(* s&& *t &&(1)){

      s++;t++;

      }

     return (2);

     }

     【程序2.2说明】

     在n行n列的矩阵中,每行都有最大的数,本程序求这n个最大数中的最小一个。

     【程序2.2】

     #include<stdio.h>

     #define N 100

     int a[N] [N];

     void main()

     { int row ,col,max,min,n;

      /* 输入合法n(n<100),和输入n×n个整数到数组a的代码略*/

        for (row =0;row<n;row++) {

          for(max=a[row] [0],col=1;col<n;col++)

          if((3))max=a[row][col];

          if((4))min=max;

        else if((5))min=max;

        }

        printf("The min of max numbers is %d\n",min);

     }

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

     【流程图说明】

     下面的流程(如图1所示)用N-S盒图形式描述了在一棵二叉树排序中查找元素的过程,节点有3个成员:data, left和right。其查找的方法是:首先与树的根节点的元素值进行比较:若相等则找到,返回此结点的地址;若要查找的元素小于根节点的元素值,则指针指向此结点的左子树,继续查找;若要查找的元素大于根节点的元素值,则指针指向此结点的右子树,继续查找。直到指针为空,表示此树中不存在所要查找的元素。

     【算法说明】

     【流程图】

     将上题的排序二叉树中查找元素的过程用递归的方法实现。其中NODE是自定义类型:

    typedef struct node {

       int data;

       struct node * left;

       struct node * right;

     }NODE;

     【算法】

     NODE * SearchSortTree(NODE * tree, int e)

     {

       if(tree!=NULL)

       {

         if(tree->data<e)

            (4);  //小于查找左子树

         else if(tree->data<e)

            (5);  //大于查找左子树

         else return tree;

       }

       return tree;

     }