一起答

软件水平考试(初级)程序员下午(应用技术)模拟试卷35

如果您发现本试卷没有包含本套题的全部小题,请尝试在页面顶部本站内搜索框搜索相关题目,一般都能找到。
  1. 阅读以下说明、Java代码,将应填入(n)处的字句写在对应栏内。

      【说明】

     本程序输出10000之内的所有完全数。完全数是指等于其所有因子和(包括1,但不包括这个数本身)的数。例如:6=1×2×3,6=1+2+3,则6是一个完全数。

     【程序】

     public class PerfectNum

     {

     Public static void main(String args[])

     {

       int count=1;

       for(int i=1; i<10000; i++)

       {

          int y=0;

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

            if((1))

              y=(2) 

          if((3))

          {

            System.out.print( (4) +String.valueOf('\t'));

            (5) 

            If(count%3==0)

              System.out.printin();

          }

       }  

     }

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

      【说明】

     设计希赛IT教育研发中心的工资管理系统,该中心主要有3类人员:经理、销售员和销售经理。要求存储这些人员的编号、姓名和月工资,计算月工资并显示全部信息。月工资计算办法是:经理拿固定月薪8000元;销售员拿固定工资1000元,然后再按当月销售额的4%提成;销售经理既拿固定月工资也领取销售提成,固定月工资为5000元,销售提成为所管辖部门当月销售总额的5‰。

     按要求设计一个基类employee,销售员类salesman,经理类manager,销售经理类 salesmanager。

     程序5-1是类employee的模块内容,程序5-2是类salesman的类模块内容,程序5-3是类manager的模块内容,程序5-4是类salesmanager的模块内容。在主测试程序中,输入张三所管部门月销售量10000后的输出结果如下:

              张三所管部门月销售量:10000

              销售经理:张三

              编号:1001

              本月工资:5050

     #include <iostream.h>

     #include <string.h>

     class employee

     {

     protected:

        int no;

        char *name;

        float salary;

     public:

        employee(int num,char *ch)

        {  no=num;

           name=ch;

           salary=0; }

        virtual void pay()=0;

        virtual void display()

        {  cout<<"编号:"<<no<<endl;

          cout<<"本月工资:"<<salary<<endl; }

     };

     【程序5-2】

     class salesman: (1) 

     {

     protected:

       float commrate, sales;

     public:

       salesman(int num,char *ch):employee(num,ch)

       {  commrate=0.04; }

       void pay()

       {  cout<<name<<"本月销售额:";

          cin>>saies;

          salary=sales*commrate+1000;  }

       void display()

       {  cout<<"销售员:"<<name<<endl;

          employee::display(); }

     };

     【程序5-3】

     class manager: (1) 

     {

     protected:

       float monthpay;

     public:

       manager(int num,char *ch):employee(num,ch)

       { monthpay=8000; }

       void pay()

       {  salary=monthpay;  }

       void display()

       {  cout<<"经理:"<<name<<endl;

          employee::display(); }

     };

     【程序5-4】

     class salesmanager: (2) 

     {

     public:

       salesmanager(int num,char *ch): (3) 

       {  monthpay=5000;

          commrate=0.005;}

       void pay()

       {  cout<<name<<"所管部门月销售量:";

           cin>>sales;

            (4) }

       void display()

       {  cout<<"销售经理:"<<name<<endl;

            (5) }

     };

     void main()      //主测试函数

     {  salesmanager p1 (1001,"张三");

        p1.pay();

        p1.display();

     }

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

      【说明】

     编写程序,对于从键盘输入的3个实数a、b、c,计算实系数一元二次方程的根并输出所求的根。

     【函数】

     #include<sldio.h>

     #include<sldlib.h>

     #include<math.h>

     Main()

     {

      float a,b,c,delta,x1,x2;

      printf("Enter a,b,c");

      scanf("%f%f%f",&a,&b,&c));

      if((1))

       if((2))

        printf("Input error!\n");

       else

        printf("The single root is%f\n",(3));

      else

       {

        delta=b*b-4*a*c;

        if((4))

         {

          x1=(-b+sqrt(delta))/(2*a);

          x2=(-b-sqrt(delta))/(2*a);

          printf("x1=%8.2f\nx2=%8.2f\n",x1,x2,);

         }

     else if(delta==0)

        printf("x1=x2=%8.2f\n",(5);

      else

       {

        Printf("z2=%8.2f+%8.2f*i\n",-b/(2*a),sqrt(-delta)/)(2*abs(a)));

        Printf("z2=%8.2f-%8.2f*i\n",-b/(2*a),sqrt(-delta)/(2*abs(a)));

        }

      }

     }

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

      【说明】

     有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数。

     【函数】

     main()

     {

      int number[20],n,m,i;

      printf("the total numbers is:");

      scanf("%d",&n);

      printf("back m:");

      scanf("%d",&m);

      for(i=0;i<=n-1;i)

        scanf("%d,",&number[i]);

         (1);

      for(i=0;i<=n-1;i)

       printf("%d,",number[i]);

     }

     move(array,n,m)

     int n,m,array[20];

     {

      int *p,array_end;

      array_end=(2);

      for(p=array[n-1];(3);p--)

       *p=(4);

      *array=array_end;

      m--;

      if(m>0) (5);

     }

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

      【说明】

     有数组A(4,4),把1到16个整数分别按顺序放入A(1,1),…,A(1,4),A(2,1),…,A(2,4),A(3,1),…,A(3,4),A(4,1),…,A(4,4)中,下面的流程图用来获取数据并求出两条对角线元素之积。

     【流程图】

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

     【说明】

     希赛教育集团公司为发展生产向社会公开招聘M个工种的工作人员,每个工种各有不同的编号(1至M)和计划招聘人数。每位应聘者需申报两个工种,并参加公司组织的考试。公司将按应聘者的成绩从高分至低分的顺序进行排队录取。公司的录取原则是:从高分到低分依次对每位应聘者先按其第一志愿录取;当不能按其第一志愿录取时,便将他的成绩扣去5分后,重新排队,并按其第二志愿考虑录取。

     程序为输出各工种实际招聘的应聘人员,每个工种都保留一个录取者的有序队列。录取处理循环直至招聘额满或已对全部应聘者都做了录取处理。

     程序中,类型STU包含有应聘者的基本信息:编号、成绩、志愿、排队成绩和录取志愿号。数组rz[]的每个元素对应一个工种,包含有计划招聘人数和已录取的人数。

     【程序】

     #include<stdio.h>

     #include<malloc.h>

     #define M 20

     #define PEMARK 5

     typedef struct stu{

       int no, total, z[2], sortm, zi;

       struct stu *next;

     }STU;

     struct rzmode{

       int Imt, count;

       STU *next;

     }rz[M];

     STU *head=NULL, *over=NULL;

     int all

     FILE *fp;

     char dataf[]="pp07.dat";

     print(STU *p){

       for(;p!=NULL;p=p->next)

       printf("%d(%d)\t",p->no,p->total);

     }

     insert(STU **p, STU *u){

       STU *v, *q;

       for(q=*p;q!=NULL;v=q,(1))

         if(q->sortm<u->sortm)break;

       if(q==*p)(2);

       else (3);

       U->next=q;

     }

     main(){

       int zn, i, no, total, z1, z2;

       STU *p, *v, *q;

       fp=fopen(dataf, "r");

       if(fp==NULL){

         printf("Can't open file %s.\n",dataf);

         exit(0);

       }

       fscanf(fp, "%d",&zn);

       for(all=0,i=1;i<=zn;i++){

         fscanf(fp,"%d",&rz[i].Imt);

         rz[i].count=0;rz[i].next=NULL;

         all+=(4);

       }

       for(;;){

         if((fscanf(fp, "%d%d%d%d",&no,&total,&z1,&z2))!=4)

           break;

         p=(STU*)malloc(sizeof(STU));

         p->no=no;

         p->total=p->sortm=total;

         p->zi=0;p->z[0]=z1;p->z[1]=z2;

          (5);

       }

       fclose(fp);

       for(;all && head !=NULL;){

         p=head; head=head->next;

         if(rz[p->z[p->zi]].count<(6)){

           rz[p->z[p->zi]].count++;

           insert(&rz[p->z[p->zi]].next,p);

           all--;

           continue;

         }

         if(p->zi>=1){

           p->next=over;over=p;

           continue;

         }

         p->sortm-=DEMARK; (7);

         insed(&head,p);

       }

       for(i=1;i<=zn;i++){

         printf("%d:\n",i);

         print(rz[i].next);

         printf("\n");

       }

       printf("over:\n");print(head);

       print(over);printf("\n");

     }