• 2015恒生电子校招笔试详解


    详细解答:

    一、选择题

    1、BD  C语言要经过编译成二进制代码,再经过连接形成.exe可执行文件。

    2、D  3种遍历方式的互推。

    3、D    私有成员只能本类访问

    4、CD  索引不是越多越好,尤其是组合索引。

    5、B    主要看SQL语句where后是否为ture。

    6、B  abcd直接过得A;依次全入栈再出栈得C;a入栈,bcd直接过,a出栈得D。

    7、DA  值调用表示方法接收的是调用者提供的值,不改变实参;引用调用表示方法接收的是调用者提供的变量的地址,改变实参。

    8、D  因为D最抽象,C是错的,还有链式、树等。

    9、C    1000|0001=1001>>1=0100=4。

    10、CD  d表示目录,w是写,r是读,x是执行,没3个一组,分别是所有着、用户组或其他用户,即用户组为r-x,拥有读和执行权限。 

    二、Java语言部分

    1、B

    2、C

    3、AB A申明了字符串,B字符多了,CD正常,可以用中文和Unicode编码申明。

    4、AC   (-5)%2=-1,B错;D超过int范围。

    5、C     常考题,http://www.cnblogs.com/dingshilei/p/4107583.html的23题解析。

    三、数据库

    1、select distinct S.Sname from S,C,SC where SC.Sno=S.Sno and SC.Cno=C.Cno and C.Cname="数据库" order by S.Sname DESC; 

    2、select distinct SC.Sno,C.Ccredit from SC,C where C.Ccredit >80 and SC.Grade>60;

    3、alter table SC add Teacher varchar(20) not null;

    4、create view SCSum as select Sno,sum(Grade) from SC group by Sno ;

    5、delect from SC where Sno not in(select Sno from S);

    四、编程题

    注意要判断是否为闰年,闰年的2月份要多加一天。

    #include <stdio.h>
    
    
    
    struct date 
    
    {
    
        int year; 
    
        int month; 
    
        int day; 
    
    }; 
    
    
    
    int leap_year(int a);
    
    int cal_day(struct date a);
    
    
    
    /*判断闰年*/ 
    
    int leap_year(int a)
    
    {
    
        if(a%400==0||(a%4==0&&a%100!=0)) 
    
            return 1;
    
        else 
    
            return 0;
    
    }
    
    
    
    /*计算一年中的第几天*/ 
    
    int cal_day(struct date a) 
    
    {
    
        int sum=0,b[]={31,28,31,30,31,30,31,31,30,31,30,31} ;
    
        for(int i=0;i<a.month-1;i++) 
    
            sum+=b[i]; 
    
        if(a.month>2)
    
            sum=sum+a.day+leap_year(a.year); 
    
        else
    
            sum=sum+a.day;
    
        return sum; 
    
    } 
    
    
    
    void main()
    
    {
    
        struct date a;
    
        int n;
    
        printf("
    请输入日期(年 月 日)
    "); 
    
        scanf("%d%d%d",&a.year,&a.month,&a.day); 
    
        n=cal_day(a);
    
        printf("该日在本年中是第%d天
    ",n);
    
    }

    五、算法题

    1、基本思路就是判断合数的因子是否为素数,然后for循环迭代完成。

    import java.util.Scanner;
    
    public class Try
    {
      static boolean is_odd(int n) //判断是否为素数
      {
       if(n==2||n==3) return true;
       if(n%2==0) return false;
       int i;
       for(i=3;i<=n/2;i+=2)
        if(n%i==0) return false;
       return true;
      }
     
      public static void main(String[] args)
      {
       Scanner in=new Scanner(System.in);
       System.out.println("输入数值");
       int n=in.nextInt();
       int i;
       System.out.print(n+"=");
       for(i=2;i<=n;i++)
       {
        if(!is_odd(i)) continue;
        if(n%i==0)
        {
         while(true)
         {
          System.out.print(i);
          n/=i;
          if(n!=1) System.out.print("*");
          if(n%i!=0) break; 
         }
        }
       }
       System.out.println();
      }
    }

    还可以用递归的方法来实现http://blog.csdn.net/YidingHe/article/details/3952651

        import java.util.List;  
        import java.util.ArrayList;  
           
        /** 
         * 分解质因数 
         */  
        public class GetFactor {  
           
            public static void main(String[] args) {  
                List<Long> factors = getFactors(5555566666L, 2);  
                System.out.println(factors);  
            }  
           
            /** 
             * 通过递归实现分解质因数 
             * 
             * @param n      要分解的数字 
             * @param factor 起始因子 
             * 
             * @return 分解结果 
             */  
            private static List<Long> getFactors(long n, long factor) {  
                // 不断增大 factor 直到能整除 n  
                while (n % factor != 0 && factor < n) {  
                    // 得到 2,3,5,7,9,11,13,...  
                    factor = factor < 2 ? 2 : factor == 2 ? 3 : factor + 2;  
                }  
           
                List<Long> result;  
                if (factor >= n) {  // 因子已经涨到和 n 一样大,说明 n 本身就是因子。这时递归完成。  
                    result = new ArrayList<Long>();  
                } else {            // 因子能够整除 n,于是继续分解除以因子后的结果  
                    result = getFactors(n / factor, factor);    // 向下递归  
                }  
                  
                result.add(factor);  
                return result;  
            }  
        }  
  • 相关阅读:
    monogobd 查询语句
    node express 使用中间件multer实现文件上传
    express+monogodb+前台react JSX模板引擎相关配置(非webapck)服务端渲染
    uniapp项目实战 新闻类app
    react+express项目创建JSX模板方式
    express+monogodb实现增删改查
    uniapp 云函数批量导出功能实现及api方法封装
    uniapp自定义顶部搜索框兼容微信小程序
    MySQL-OnlineDDL在线DDL
    子查询优化
  • 原文地址:https://www.cnblogs.com/dingshilei/p/4164866.html
Copyright © 2020-2023  润新知