2014-CVTE网测部分软件技术测试题及答案

1、叉树的先序遍历序列和后序遍历序列正好相反,则该二叉树满足的条件是(D)

A、空或只有一个结点 B、高度等于其结点数 C、该二叉树是完全二叉树 D、所有结点无右孩子

应该是二叉树的每个结点都只有一个(左或右)子树时,先序和和后序正好相反

2、假设X是这样的自然数,X能被4整除或者X的个位数是3,那么在3000以内(小于1000),求这样的X的累加之和。(1575900)

#include "stdafx.h"



#include



#include



#include



#include "math.h"



#include



#include



 



using namespace std;



 



 



int main(int argc, _TCHAR*argv[])



{



    int i,sum=0;



 



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



    {



       if(i%4==0 || i==3)



       {



           sum = sum+i;



       }



    }



   printf("%d\n", sum);



    return 0;



}


3、某公司数据库密码规定为5位组成的字符串,存储之前,需要将其加密,加密算法为:依次将每个字符依次将每个字符的ASC码值乘以2,再加上10,若计算到的新字符的值等于128,则继续将其除以3,否则不进行除法运算。最后将该得到的新字符串中所有字符前后互换(第一位和最后一位,第二位和倒数第二位交换,依次交换),编程求字符串“efvrg”加密后的字符串。(HORGF)

#include "stdafx.h"



#include



#include



#include



#include "math.h"



#include



#include



using namespace std;



int main(int argc, _TCHAR*argv[])



{



   char pwd[]= "efvrg",temp;



   int len =strlen(pwd);



 



   for(inti=0;i



  {



      printf("%c\n",pwd[i]);



      if((pwd[i]*2+10)>=128)



      {



          pwd[i]=(pwd[i]*2+10)/3;



          printf("新字符的值等于128%c\n",pwd[i]);



      }



      else



      {



          pwd[i]=(pwd[i]*2+10);



          printf("小于128%c\n",pwd[i]);



      }



  }



 



   for(intj=0;j



  {



      temp=pwd[j];



      pwd[j]=pwd[len-j-1];



      pwd[len-j-1]=temp;



  }



 



   for(intj=0;j



  {



      printf("加密后的字符串%c\n",pwd[j]);



  }



 



   return0;



}


5、为了有效的捕获系统需求,应采用(C)

A、瀑布模型 B、V 模型 C、原型模型 D、螺旋模型

 

12、2到38642之间个位数为1的素数(只能被自己和1整除的数)的和是(18343110)

#include "stdafx.h"



#include



#include



#include



#include "math.h"



#include



#include



 



using namespace std;



 



 



int main(int argc, _TCHAR*argv[])



{



     int i=0,sum=0;



 



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



     {



            int a,b,m = i/2;



            



            a=i;



            



            while (i%m!=0  && m>1)



            {



                   m--;



            }



            



            if (a==1  && m==1)



            {



                   sum += i;



            }



     }



     printf("%d\n",sum);



 



     return 0;



}



13、有关类和对象的说法中不正确的一项是(C)



A、对象是类的一个实例 B、任何一个对象只能是属于一个具体的类 C、一个类只能有一个对象 D、类与对象的关系与数据模型和变量的关系类似



 



26、写出下列程序运行的结果(BAAAABCAAABCDAABCD)



 #include



 #include



  intmain(){



     charstr1[100]="BCD";



     char str2[100]="AAAAA";



    int i=0;



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



         memcpy(str2,str1,i);



         printf("%s",str2);



    }



    return 0;



 }


15、输出712的N次方,结果后三位为696的N的个数,0(246)

#include "stdafx.h"



#include



#include



#include



#include "math.h"



#include



#include



 



using namespace std;



 



int main(int argc, _TCHAR* argv[])



{



    intsum=712,count=0;



 



    for(inti=0;i<24669;i++)



    {



       sum=sum*71200;



       if(sum==696)



           count++;



    }



   printf("输出712的N次方,结果后三位为696的N的个数为:%d (0)",count);



   scanf("%d",&count);



 



    return0;



}


 

 

16、输出下面的第三行的结果(7)

public class Hello

{

 

     public static void main(String args[])

     {

            String overview = "This chapter contains a description ofconvertions used in this manual";

            for (int i = 0; i < overview.length();i++)

            {

                   int num = 0;

                   for (int j = 0; j < overview.length();j++)

                   {

                          if (overview.charAt(i) == overview.charAt(j))

                                 num++;

                   }

                   System.out.println(num);

            }

     }

}

17、不属于构造函数特征的是(D)

A、构造函数的函数名与类名同名 B、构造函数可以重载 C、构造函数可以设置缺省(默认)参数 D、构造函数必须指定类型说明

 

18到5635468724之间的最大素数是?1340501419

#include "stdafx.h"



#include



#include



#include



#include "math.h"



#include



#include



 



using namespace std;



 



 



int main(int argc, _TCHAR*argv[])



{



    unsigned longa=5635468724,c,i,d;



    int b=1;



    while(b)



    {



       a--;



       c=sqrt(a*1.0);



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



       {



          d = a%i;



           if(!d) break;



       }



       if(i>c)b=0;



    }



   printf("%ld",a);



    return 1;



 



    return 0;



}



你可能感兴趣的:(测试题)