2013年海康威视校园招聘笔试题

更新时间:2023-05-19 15:33:39 阅读: 评论:0

2013年海康威视校园招聘笔试题
1、10、10、4、4四个数,怎么算出24点?点?
(10*10-4)/4=24
2、下列表达式在32位机器编译环境下的值()位机器编译环境下的值()
[cpp]view plaincopy
1 class    A
2 {
3 };
4
5 class    B
6 {
7 public :
8    B();
9    virtual  ~B();  10 };
11    12 class    C  13 {  14 private :
15 #pragma pack(4)    16    int  i;  17    short  j;  18    float  k;  19    char  l[64];  20    long  m;  21    char  *p;  22 #pragma pack()    23 };  24  25  26
27 class    D  28 {  29 private :
30 #pragma pack(1)    31    int  i;  32    short  j;  33    float  k;  34    char  l[64];  35    long  m;  36    char  *p;  37 #pragma pack()    38 };
39
40 int  main(void )  41 {
迷惘什么意思
42    printf("%d\n",sizeof (A));  43    printf("%d\n",sizeof (B));  44    printf("%d\n",sizeof (C));  45    print
f("%d\n",sizeof (D));  46    return  0;  47 }
A、1、4、84、82
B、4、4、82、84
C、4、4、84、82
D、1、4、82、82
3、以下程序在32位机器下运行的结果是()
48 #pragma pack(4)
49 struct info_t
50 {
51    unsigned char version;
52    unsigned char padding;
53    unsigned char extension;
54    unsigned char count;
55    unsigned char marker;
56    unsigned char payload;
57    unsigned short quence;
58    unsigned int timestamp;
59    unsigned int ssrc;
switzerland是什么意思60 };
61 62 union info_u
63 {
64    unsigned char version;
新概念美音版
65    unsigned char padding;
66    unsigned char extension;
67    unsigned char count;
68    unsigned char marker;
69    unsigned char payload;
70    unsigned short quence;
71    unsigned int timestamp;
72    unsigned int ssrc;
73 };
74 #pragma pack()
75 int main(void)
乔治 索罗斯
76 {
77    printf("%d\n",sizeof(info_t));
78    printf("%d\n",sizeof(info_u));
79 return 0;
80 }
A、12  12
B、12  4
C、16  4
D、16  12
E、16  1
4、以下表达式result的值是()
larson
81 #define VAL1(a,b) a*b
82 #define VAL2(a,b) a/b--
83 #define VAL3(a,b) ++a%b
84
85 int a = 1;
86 int b = 2;
87 int c = 3;
88 int d = 3;
89 int e = 5;
90
91 int result = VAL2(a,b)/VAL1(e,b)+VAL3(c,d);
A、-2
B、1
C、0
D、2
B 、
5、请写出以下程序的输出(5分)
92 void  swap_1(int  a , int  b)  93 {
94    int  c;  95        c = a;  96        a = b;  97        b = c;  98    return  ;  99 }  100 void  swap_2(int  &a , int  &b)  101 {
102    int  c;  103        c = a;  104        a = b;  105        b = c;  106    return  ;  107
}
108 void  swap_3(int  *a , int  *b)
109 {东莞读音
110    int  c;  111        c = *a;  112    *a = *b;  113    *b = c;  114    return  ;  115
}
116
117 int  main(void )  118 {
119    int  a = 100;  120    int  b = 200;  121    swap_1(a , b);
122    printf("a = %d , b = %d\n",a , b);  123    swap_2(a , b);
124    printf("a = %d , b = %d\n",a , b);  125    swap_3(&a , &b);
nfls
126    printf("a = %d , b = %d\n",a , b);  127    return  0;  128
}
输出结果:输出结果:
a = 100 ,
b = 200      \n    a = 200 , b = 100  \n  a = 100 , b = 200 6、下面的程序是否有问题,如有问题,请重构代码(5分)
129
void  test_type(bool  b , const  char  *p *p , , float  f)  130
{  131    if (!b)  132
{  133        return  ;  134
}  135    el  if (!p)  136
{  137        return  ;  138
}  139
el  if (!f)  140
{  141        return  ;  142    }  143
}  修改如下: 144
void  test_type(bool  b , const  char  *p , float  f)  145
{  146    if (!b)  147
{  148        return  ;  149
}  150    el  if (!p)  151
{  152
return  ;  153
}  154    el  if (f > -1e-10 && f < 1e-10)
155
{  156
return  ;
157    }  158
}  7、请指出以下程序有什么问题(5分)
159 void  test_mem()  160 {
161    char  *p = new  char [64];  162    delete  p;  163    p = NULL;  164    return  ;  165
}
应该修改为应该修改为
delete[]p;  p 指向的是一个字符型的数组空间,原来的代码只是简单的释放了指向申请空间的指针,并没有释放申请的空间,容易造成内存崩溃。指向申请空间的指针,并没有释放申请的空间,容易造成内存崩溃。
回收用回收用  new 分配的单个对象的内存空间的时候用分配的单个对象的内存空间的时候用  delete ,回收用,回收用
new[] 分配的一组对象的内存空间的时候用的内存空间的时候用
delete[]。 8、以下程序有什么问题,请指出。
166 char * GetMem()  167
{  168
char  p[] = "hello";  169    return  p;  170 }  171
172 void  test_get_mem()  173
{  174
char  *p = GetMem();  175
printf(p);  176    return  ;  177
}  GetMem 函数中的p 是一个在栈上的局部变量,当函数运行结束的时候,栈上的内容会自
动释放的,此处返回的值有可能会成为一个野指针,会出现一个意想不到的结果。
9、请写出strcpy 和 memcpy 的区别(5分)分)  答:strcpy 和memcpy 都是标准C 库函数,它们有下面的特点。库函数,它们有下面的特点。
strcpy 提供了字符串的复制。即strcpy 只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。外,还会复制字符串的结束符。
strcpy 函数的原型是:char* strcpy(char* dest, const char* src);
公共英语三级报名
memcpy 提供了一般内存的复制。即memcpy 对于需要复制的内容没有限制,因此用途更广。更广。
memcpy 函数的原型是:void *memcpy( void *dest, const void *src, size_t count );
strcpy 和memcpy 主要有以下3方面的区别。方面的区别。
1、复制的内容不同。strcpy 只能复制字符串,而memcpy 可以复制任意内容,例如字符数组、整型、结构体、类等。数组、整型、结构体、类等。
2、复制的方法不同。strcpy 不需要指定长度,它遇到被复制字符的串结束符"\0"才结束,所以容易溢出。memcpy 则是根据其第3个参数决定复制的长度。个参数决定复制的长度。
3、用途不同。通常在复制字符串时用strcpy ,而需要复制其他类型数据时则一般用memcpy 。
10、请写出以下程序的输出结果
sowhat
、请写出以下程序的输出结果
178 class Ba
179 {
180 public:
181    Ba()
182    {
183        printf("I am Ba()\n");bychance
184    }
185 virtual ~Ba()
186    {
187        printf("I am ~Ba()\n");
188    }
189 public:
190 virtual void SayHello()
191    {
192        printf("Hello Ba\n");
193    }
194 void SayWorld()
195    {
196        printf("World Ba\n");
197    }
198 };
199 class Derived : public Ba
200 {
201 public:
202    Derived()
203    {
204        printf("I am Derived()\n");
205    }
206 virtual ~Derived()
207    {
208        printf("I am
~Derived()\n");
209    }
210 public:
211 void SayHello();
212 void SayWorld();
213 };
214
215 void Derived::SayHello()
216 {
217    printf("Hello Derived\n");  218 }
219 void Derived::SayWorld()
220 {
221    printf("World Derived\n");  222 }
223

本文发布于:2023-05-19 15:33:39,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/114717.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:复制   空间   程序   字符串   时候   输出   结果
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图