迅雷2008实习生笔试题C++卷题解

具体题目从我上传的资源上下。


http://download.csdn.net/source/682564


1.C 

2.D  

3.题目有误 

4.B 

5.D  

6.题目有误  

7.A  

8.B  

9.B  

10.B 

11.D(题目有误,少打了%d) 

12.A 

13.题目有误!s1指向的空间是常量区,不可修改! 

    正确的程序应该是 

char s1[] = "12345", s2[] = "1234"; 

printf("%d/n", strlen(strcpy(s1, s2))); 

    则答案可选A 

14.B 

15.题目有误!将a[0]传递给指针! 

16.有误,和13题一样! 

    正确的程序应该 

char p1[6] = "abcd", *p2, str[50] = "xyz"; 

p2 = "ABCD"; 

strcpy(str + 2, strcat(p1 + 2, p2 + 1)); 

printf("%s/n", str); 

    则答案可选D

17.D 

    其实f(a++);中的a++纯粹是迷惑人的,它对输出结果没有任何影响, 

    因为在f函数体内已经直接对a赋值了。

    值得注意的是a = c++, b++; 这里是先执行a = c++,然后执行b++,和a = (c++, b++)不同。

    逗号优先级是所有运算符中最低的。

18.题目有误,对a的正确声明是 

    int a[] = {2, 4, 6, 8, 20}; 

    则答案可选C

19.题目有误! 

20.描述有误!应该问的是终端结点(即叶子节点)的数目。 

    则答案是A

21.D 

22.C 

23.C 

24.题目描述较含糊,应该说明p是X的public数据成员。 

    则答案是D 

25.A 

26.C 

    影响编译速度,但不会影响运行速度。

27.A 

28.D 

29.C 

30.B 

31.B 

32.非要选的话 ,只能选D,但事实上,D并非不合法,编译器只可能给出警告! 

33.A 

34.B 

35.C 

36.A 

    作为选择题这题可以通过技巧判断。

    首先八进制057的二进制是01011111,注意到十进制的123与其或运算后值只会增大不会减少, 

    所以答案只会是127,另外,由于127=128-1=2^7-1,所以127的二进制是1111111,转八进制

    177

37.C

38.C 

39.C 注意调宏F时就只有前一个语句在for循环内,对待F的习题最好将它们完全拷贝到原语句中

40.C 这题出的不好,因为就语言而言没有唯一答案

41.C

42.C 

43.C
    这题其实不准确。首先,该指针可以指向字符,也可以指向字符串,其次,它不是常量指针,同时,它
    指向的内存区域未必是常量区,只是对它而言当作常量区域来引用而已。
    如下:
    char str[100];
    const char* p = str;
    str不是常量字符串,但p可以指向str,和char*的区别在于p不可修改str中的值。

44.C 

45.D 

46.C 

47.A 

48.C 

49.A 

50.D    考察补码知识 

51.A 

52.A 

53.D 

54.B 

55.C 

56.D 

57.D 

58.A 

59.A p是个指针,32位机下值有4字节

60.A(算二进制含1个数)
    可以这么理解,对于一个数a而言,其二进制表示是XXXXXX...其中X表示0或者1,对于a-1,
    如果没有溢出,则二进制值有且仅有一个1会变成0。
    如二进制的10减去1后变成01,二进制的01减去1后变成00。前者高位的1变成0,后者低位的1
    变成0。在这种情况下,和原来的值做与运算a&(a-1),由于有一个1变成了0,则与运算后a的二进制
    1的个数会少一个。
    也就是说,该程序是在计算值的二进制中含1的个数。

61.该题有误。应该将int改成short。
    x[0]放十六位数i的低位,x[1]放其高位,所以答案是B

62.C

63.C 

64.B 

65.B 

66.C 

67.D 

68.D 

69.D 

70.B 

71.题目有误 

72.题目有误 

73.C 这题不错 

74.B 

75.C 

76.B 

77.B 

78.B 

79.A 

80.D 

81.AC 

82.AD 

83.AC 

84.ABE 

85.AB 多重继承导致的二义性调用 

86.AD

87.BCE 

88.B 

89.CD 不错的题,很实际 

90.C 

91.B 

92.A

93.C 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值