09年浙大研究生复试机试题解

A题:xxx定律(hdoj3782)(九度1031)

水题,直接上代码:

Problem A
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
int main()
{
    int n,cnt;
    while(scanf("%d",&n)&&n!=0){
        if(n==1){printf("0\n");continue;}
        cnt=0;
        while(n!=1){
            if(n%2)n=(3*n+1)>>1;
            else n=n>>1;
            cnt++;
        }
        printf("%d\n",cnt);
    }
    return 0;
}

08年浙大研究生复试机试题解

A题:又一版A+B(hdoj1877)(九度1026)

水题,直接上代码:

Problem A
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
char out[34];
unsigned int m,a,b,c;
int main()
{
    int i;
    while(scanf("%d",&m)&&m!=0){
        scanf("%d %d",&a,&b);
        c=a+b;
        if(c==0){printf("0\n");continue;}
        i=0;
        while(c){
            out[i++]=c%m;
            c/=m;
        }
        while(i)
            printf("%d",out[--i]);
        printf("\n");
    }
    return 0;
}

07年浙大研究生复试机试题解

A题:最小长方形(hdoj1859)(九度1020)

水题,不解释,代码如下:

Problem A
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
int main()
{
    int lx,ly,rx,ry,tx,ty;
    while(1){
        scanf("%d %d",&tx,&ty);
        if(tx==0&&ty==0)break;
        lx=rx=tx;
        ly=ry=ty;
        while(1){
            scanf("%d %d",&tx,&ty);
            if(tx==0&&ty==0)break;
            if(tx<lx)lx=tx;
            if(ty<ly)ly=ty;
            if(tx>rx)rx=tx;
            if(ty>ry)ry=ty;
        }
        printf("%d %d %d %d\n",lx,ly,rx,ry);
    }
    return 0;
}

06年浙大研究生复试机试题解

A题:还是A+B(hdoj1229)(九度1015)

水题,简直水得不能再水

Problem A
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <string.h>
int main()
{
    int a,b,k,t;
    while(1){
        scanf("%d %d %d",&a,&b,&k);
        if(a==0&&b==0) return 0;
        t=1;
        while(k--)t*=10;
        if(a%t==b%t)printf("%d\n",-1);
        else printf("%d\n",a+b);
    }
}

以下是05年浙大研究生复试机试题解,感觉题目与ACM题相比,难度还相差很远, 基本上直接贴上代码了(后续年度的题解同上), 而且将整年的5道题的代码在一篇文章中贴出来。

A题:A+B (hdoj1228)( 九度1010)

水题,不解释,直接上代码:

Problem A
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <stdio.h> 
#include <string.h> 
char map[][8] = {"zero","one","two","three","four","five","six","seven","eight","nine"};
int cmp( char s[] ) 
{
  for( int i = 0 ; i <= 9 ; i++ )
      if( strcmp( s , map[i] ) == 0 )
          return i;
}
int main() 
{
  char s[8];
  int a,b;
  while(1) 
  {
      a = 0;
      while(scanf("%s",s)&&strcmp(s,"+")!=0)
          a = 10*a + cmp(s);
      b = 0;
      while(scanf("%s",s)&&strcmp(s,"=")!=0)
          b = 10*b + cmp(s);
      if( a == 0 && b == 0 ) break;
      printf( "%d\n" , a+b );
  }
  return 1;
}

励志

1、既然我们向往光明,那就要同时学会拥抱黑夜。
2、鱼说:“我时时睁着眼睛是为了守护你,不忍离开。”水说:“我终日流淌是为了环绕你,不忍放弃,不离不弃!”
3、应该做的事跟想做的事是两码事。
4、没有方向的船,什么风也不是顺风。
5、机会永远是留给有准备的人。
6、你说这种人出了学校大门,她也能算大学生?
7、我相信友谊的真挚,爱情的美好,人心的善良,未来的光明。一分耕耘,一分收获。
8、我们终归会长大成人,接过父辈的旗帜,成为这个社会的中流砥柱,我们该用什么样的人生态度去经营这个世界呢?
9、这钱呢对我们每个人来说都很重要,但是如果它能使一个人重新找回自己的理想,那它会变得更有价值。
10、请你记住:当所有的大门都向你关闭的时候,还有一扇窗将向你打开。
11、人生能有几回搏,所谓沧海横流,方显出英雄本色,否则凭什么人跟人之间要拉开距离。
12、我喜欢这样的竞争,用自己的耕耘检验自己的收获,用自己的实力索要自己的未来。干干净净的公平,胜出的会充满喜悦,失败的也会心服口服。
13、大学可是个人跟人缩小距离的地方,也是人跟人拉开距离的地方。
14、大学生就业难,那得看对谁。
15、贫困并不可怕,可怕的是在贫困中渐渐失去了自尊。
16、谁说我们这代人自私自利了,你们看看,在竞争这么激烈的时代,当你有困难的时候,不是一样有这么多人向你伸出援助之手!

1、心外无物,闲看庭前花开花落;去留无意,漫随天外云卷云舒。
2、静以修身,俭以养德,非淡泊无以明志,非宁静无以致远。
3、古之立大事者,不惟有超世之才,亦必有坚韧不拔之志。
4、小人以己之过为人之过,每怨天而尤人;君子以人之过为己之过,每反躬而责己。
5、千里之行,始于足下。改变将来,从现在开始。改变现在,就是改变未来。
6、没有烦恼不要惹烦恼,有了则尽量解决它。
7、忏悔心、谦卑心很重要,不过对自己的爱心更重要。
8、最好的改变方式,是我们跟内在力量沟通,然后它会改变我们。
9、如果认为自己很弱小,我们就成为弱小;如果认为自己很伟大,我们就变成伟大。
10、修改自己就是修改世界,天生我材必有用,自己是整个宇宙中很重要的一个程序。要相信自己的潜力。

据国外媒体报道,有句形容创业公司的老话说,“太早也是个错误。” 这绝对是个事实,在很多伟大的科技公司成立之前,相同的创意已经存在, 但是因为时机不对,结果没有形成气候。下文将点评10大生不逢时的科技创业公司,这些公司的项目是创新的,但是因为出现得太早,市场尚未做 好准备,所以最终失败。

同类型的公司在数年后取得辉煌成绩,产生数亿美元价值,曾经创立这10大创业公司的企业家难免懊恼不已,因为这些创意和产品都是他们曾 经历的。但是,这就是人生。以下是10大生不逢时的科技创业公司:

1.SixDegrees.com

这是第一个为用户提供社交体验的网站,该网站想揭示的原理是:最多通过6个人你就能够认识世界上任何一个人。在1997年成立以后,该网站 经历了一段时间的高速增长,但是由于人们对社交网站还不适应,所以最终淡出人们视线。

1.概述

什么是异常?异常一般指的是程序运行期(Run-Time)发生的非正常情况。异常一般是不可预测的,如:内存不足、打开文件失败、 范围溢出等。UNIX 使用信号给出异常,并当发生异常时转跳到信号处理过程进行异常处理。DOS下的信号对比UNIX系统而言相对较少。

我们知道,不管是在c++还是在java中,异常都被认为是一种很优雅的处理错误的机制。而如果想在c语言中使用异常就比较麻烦, 但是我们仍然可以使用c语言中强大的setjmp和longjmp函数实现类似于c++的异常处理机制。

异常处理的核心思想是,把功能模块代码与系统中可能出现错误的处理代码分离开来,以此来达到使我们的代码组织起来更美观、 逻辑上更清晰,并且同时从根本上来提高我们软件系统长时间稳定运行的可靠性。那么,现在回过头来看,实际上在计算机系统的硬件 设计中,操作系统的总体设计中,早期的许多面向结构化程序设计语言中(例如C语言),都有异常处理的机制和方法的广泛运用。

2.基于goto语句的异常处理

goto语句,程序员朋友们对它太熟悉了,它是C语言中使用最为灵活的一条语句,由它也充分体现出了C语言的许多特点或者说是优点。 它虽然是一条高级语言中提供的语句,但是它一般却直接对应一条“无条件直接跳转的机器指令”,所以说它非常地特别,它引起过许多 争议,但是这条语句仍然一直被保留了下来,即便是今天的C++语言中,也有对它的支持(虽然不建议使用它)。

1.概述

断言是对某种假设条件进行检查(可理解为若条件成立则无动作,否则应报告),它可以快速发现并定位软件问题, 同时对系统错误进行自动报警。断言可以对在系统中隐藏很深,用其它手段极难发现的问题进行定位,从而缩短软件问题定位时间, 提高系统的可测性。实际应用时,可根据具体情况灵活地设计断言。

2.标准断言机制

原型定义:

1
2
#include <assert.h>
void assert( int expression_r_r_r );

assert的作用是现计算表达式 expression_r_r_r ,如果其值为假(即为0), 那么它先向stderr打印一条出错信息,然后通过调用 abort来终止程序运行。