(完整版)杭电计算机历年复试真题2006-2014

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2006---2009年杭电计算机历年研究生复试---笔试编程

分类:C/C++数据结构2011-08-07 15:52 5483人阅读评论(0) 收藏举报杭电计算机复试

1、输入一个十进制的数,把它转成八进制。类似的把十进制转成16

进制,把十六进制转变为十进制等。

[cpp]view plaincopy

1.转载请标明出处,原文地址:

/hackbuteer1/article/details/6667026

2.#include

3.

4.int main(void)

5.{

6.int num, a[100], i, j;

7. i = 0;

8. scanf("%d" , &num);

9.while(num != 0)

10. {

11. a[i++] = num % 8;

12. num /= 8;

13. }

14.if(i == 0)

15. printf("0\n");

16.else

17. {

18.for(j = i - 1; j >= 0; --j)

19. printf("%d", a[j]);

20. printf("\n");

21. }

22.return 0;

23.}

2、输入两个非常大的整数(完全超出了int、long的表示范围),这

个整数的长度可能超过100位,计算并输出这两个数相加的结果。

(HDU acm 1002 用string处理比较好)

[cpp]view plaincopy

1.转载请标明出处,原文地址:

/hackbuteer1/article/details/6667026

2.#include

3.#include

4.

5.int main(void)

6.{

7.int temp, i, j, k, len1, len2, m, sum[1010];

8.char a[1010], b[1010], c[1010];

9.

10. scanf("%s %s", a, b);

11. len1 = strlen(a);

12. len2 = strlen(b);

13.if(len1 < len2) //交换两个字符串,确保第一个字符串的长度不小于第二个字符串

14. {

15. strcpy(c, b);

16. strcpy(b, a);

17. strcpy(a, c);

18. m = len2, len2 = len1, len1 = m;

19. }

20. k = m = 0;

21.//从两个数的低位开始,手工模拟加法,逐位相加

22.for(i = len1 - 1, j = len2 - 1; i >= 0; --i, --j)

23. {

24.if(j >= 0)

25. temp = a[i] - '0' + b[j] - '0' + m;

26.else

27. temp = a[i] - '0' + m;

28. sum[k++] = temp % 10;

29. m = temp / 10; //进位

30. }

31.if(m > 0)

32. printf("%d", m);

33.for(i = k - 1; i >= 0; --i)

34. printf("%d", sum[i]);

35. printf("\n");

36.return 0;

37.}

3、“回文串”是一个正读和反读都一样的字符串,比如“level”或者

“noon”等等就是回文串。请写一个程序判断读入的字符串是否是“回文”。

[cpp]view plaincopy

1.转载请标明出处,原文地址:

/hackbuteer1/article/details/6667026

2.#include

3.#include

4.

5.int main(void)

6.{

7.char str[100];

8.int len, i, j;

9.

10. scanf("%s", &str);

11. len = strlen(str);

12.for(i = 0, j = len - 1; i < len && j >= i; ++i, --j)

13. {

14.if(str[i] != str[j])

15.break;

16. }

17.if(j < i)

18. printf("这个字符串是回文串!\n");

19.else

20. printf("这个字符串不是回文串!\n");

21.return 0;

22.}

4、输入n个数,按从小到大进行排序并输出。

[cpp]view plaincopy

1.转载请标明出处,原文地址:

/hackbuteer1/article/details/6667026

2.#include

3.#include

ing namespace std;

5.

6.int main(void)

7.{

8.int n, i;

9.

10. scanf("%d", &n);

11.int *p = new int[n];

12.for(i = 0; i < n; ++i)

13. scanf("%d", &p[i]);

14. sort(p, p + n);

15.for(i = 0; i < n; ++i)

16. printf("%d ", p[i]);

17. printf("\n");

18.return 0;

19.}

5、输入一个长整型的数,从低位起取出奇数位组成一个新的数输出。

[cpp]view plaincopy

1.转载请标明出处,原文地址:

/hackbuteer1/article/details/6667026

2.#include

3.

4.int main(void)

5.{

6.long n, k, i, j, newnum;

7. i = j = newnum = 0;

8.

9. scanf("%ld", &n);

10.while(n)

11. {

12. k = n % 10;

13.for(j = 0; j < i; ++j)

14. k *= 10;

15. newnum += k;

16. n /= 100;

相关文档
最新文档