请写出下面程序的输出结果:(答案在下面)

1、

int count = 3;
int main(void)
{int i, sum, count = 2;for(i=0,sum=0; i<count; i+=2,count++){static int count = 4;count++;if(i%2 == 0){extern int count;count++;sum += count;}sum += count;}printf("%d %d\n",count, sum);return 0;
}

2、

void func(char str[50])
{printf("A %d B %d ",sizeof(str), strlen(str));
}
int main(void)
{char stra[] = "HelloWorld";char *strb = stra;printf("C %d D %d ",sizeof(stra), sizeof(strb++));func(++strb);printf("E %d F %d\n",strlen(stra), strlen(strb++));return 0;
}

printf("C %d D %d ",sizeof(stra),sizeof(strb++)); 中的sizeof(strb++)并不对sizeof函数中strb进行自增运算,只是简单的求这个指针的大小,此时的strb指针还是指向stra。

3、

#include <vector>
int func(std::vector<int>vec)
{static int k = 2;std::vector<int>::reverse_iterator it;for(it = vec.rbegin(); it!=vec.rend(); ++it){k += *it%2==0? ++*it: (*it)++;}return k;
}
int main(void)
{std::vector<int>vec;for(int i = 0; i<4; i++){vec.push_back(i);printf("%d ",func(vec));}return 0;
}

4、

class Base
{
public:int m_a;Base(int a=2):m_a(a){printf("A %d ",m_a);}virtual ~Base(){printf("B %d ",m_a);}
};
class Derived:public Base
{
public:Derived(int a=4):Base(a){printf("C %d ",m_a);}~Derived(){printf("D %d ",m_a);}
};
int main(void)
{Base *aa,bb;aa = new Derived;delete aa;return 0;
}

5、

class Base
{
public:int m_a,m_b;Base(int a = 2,int b = 5):m_a(a),m_b(b)  {  }int func_a(){return m_a - m_b;}virtual int func_b(){return m_a + m_b;}
};
class Derived:public Base
{
public:Derived(int a = 4, int b = 7):Base(a, b)  {  }virtual int func_a(){return m_b + m_a;}int func_b(){return m_b - m_a;}
};
int main(void)
{Base *aa, *bb;aa = new Base(4, 7);bb = new Derived(3, 5);printf("%d %d %d %d\n",aa->func_a(), aa->func_b(), bb->func_a(), bb->func_b());delete aa;delete bb;return 0;
}

6、

struct SC
{int a;int b;int c;
};
struct SD
{int a;int b;int c;int d;
};
int main(void)
{struct SC c1[] = {{3},{4},{5},{6}};struct SD *c2 = (struct SD*)c1 + 1;printf("%d %d %d %d\n",c2->a,c2->b,c2->c,c2->d);return 0;
}

7、

int func(int n)
{int k = 1;if(n > 0){k += func(--n);printf("%d ", n);k += func(--n);}return k;
}int main(void)
{int a = 3;printf("%d\n",func(a));return 0;
}

答案:

1、  4   20

2、 C 11 D 4 A 4 B 9 E 10 F 9

3、 3  5  10  18

4、 A 2 A 4 C 4 D 4 B 4  B 2

5、 -3 11 -2 2

6、 0  0  5  0

7、  0  1  2  0  9

编程题:
1、函数checkstr判断一字符串是不是对称的。其中msg为输入的字符串,对称返回0,不对称返回-1,实现该函数。
int checkstr(const char *msg);

int checkstr(const char *msg)
{int len = strlen(msg);int i, j;for(i = 0,j = len-1; i <= j; i++,j--){if(msg[i] != msg[j])break;}if(i>j)return 0;elsereturn -1;
}

2、给出一个单向链表的头指针,输出该链表中倒数第K个节点的指针,链表的倒数第0个节点为链表的尾节点(尾节点的next成员为NULL)
typedef struct Node
{
         struct Node *next;
}NODE;

NODE* findnode(NODE *head,unsigned int k);

思路:在遍历时维持两个指针,第一个指针从链表的头指针开始遍历,在第k-1步之前,第二个指针p保持不动;
在第k-1步开始,第二个指针p也开始从链表的头指针开始遍历。由于两个指针的距离保持在k-1,当第一个(走在前面的)指针pcur到达链表的尾结点时,第二个指针指针p正好是倒数第k个结点。
这种思路只需要遍历链表一次。对于很长的链表,只需要把每个结点从硬盘导入到内存一次。因此这一方法的时间效率比较高。

typedef struct Node
{struct Node *next;
}NODE;NODE* findnode(NODE *head, unsigned int k)
{if(head==NULL)return NULL;NODE *p, *pcur;pcur = head;for(unsigned int i = 0; i < k; i++){if(pcur->next != NULL)     //在第k-1步之前,第二个指针p保持不动pcur = pcur->next;elsereturn NULL;      //k比链表中节点的数目要大,找不到倒数第k个节点,直接返回空}p = head;while(pcur->next){pcur = pcur->next;p = p->next;}return p;
}

简答题:
1、简述动态链接库DLL和静态链接库lib的差别。
2、请简述MFC中的窗口收到WM_PAINT消息是如何处理的,什么情况下会产生WM_PAINT消息。
3、请简述Critical Section 、Mutex、Semaphore的功能和差别
4、简述多线程程序对比单线程程序的优点和缺点。

浙江大华2011.10.10校园招聘会笔试题相关推荐

  1. 浙江绿盟科技2011.10.14校园招聘会笔试题

    1.以下哪些协议不是应用层通信协议? A.HTTP.TELNET          B.FTP.SMTP       C.SNMP.NBNS         D.ICMP.ARP 2.Ping命令是使 ...

  2. 淘宝2011.9.21校园招聘会笔试题+答案

    2019独角兽企业重金招聘Python工程师标准>>> 一.单选题 1.我们有很多瓶无色的液体,其中有一瓶是毒药,其它都是蒸馏水,实验的小白鼠喝了以后会在5分钟后死亡,而喝到蒸馏水的 ...

  3. 淘宝2011.9.21校园招聘会笔试题

    转载请标明出处,原文地址:http://blog.csdn.net/hackbuteer1/article/details/6823329  一.单选题 1.我们有很多瓶无色的液体,其中有一瓶是毒药, ...

  4. 网易游戏2011.10.15校园招聘会笔试题

    http://blog.csdn.net/hackbuteer1/article/details/6878570 1.对于一个内存地址是32位.内存页是8KB的系统.0X0005F123这个地址的页号 ...

  5. 腾讯2011.10.15校园招聘会笔试题

    转载请标明出处,原文地址:http://blog.csdn.net/hackbuteer1/article/details/6878287 1.下面的排序算法中,初始数据集的排列顺序对算法的性能无影响 ...

  6. (转)腾讯2011.10.15校园招聘会笔试题

    1.下面的排序算法中,初始数据集的排列顺序对算法的性能无影响的是() A.插入排序                      B.堆排序                    C.冒泡排序       ...

  7. 网易游戏2011 10 15校园招聘会笔试题

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 1.对于 ...

  8. 百度2011.10.16校园招聘会笔试题

    一.算法设计 1.设rand(s,t)返回[s,t]之间的随机小数,利用该函数在一个半径为R的圆内找随机n个点,并给出时间复杂度分析. 思路:这个使用数学中的极坐标来解决,先调用[s1,t1]随机产生 ...

  9. 浙商银行2011.11.26校园招聘会笔试题

    1.下列4行代码是否有错误,若有错误请指出,若没有,请确定a的值是多少? int main(void) {int a = 3;a += (a++); //7a += (++a); //8(++a) + ...

  10. 面试题:淘宝2011.9.21校园招聘会笔试题

    http://blog.csdn.net/hackbuteer1/article/details/6823329 4.可用来检测一个web服务器是否正常工作的命令是() A.ping          ...

最新文章

  1. 浅谈Delphi过程与函数02 - 零基础入门学习Delphi21
  2. 从 2017 OpenStack Days China 看国内云计算的发展现状
  3. 命令 检查Linux服务器性能
  4. 为什么没有MMU的处理器无法安装操作系统?
  5. iOS开发之加载大量网络图片优化
  6. jquery ajax请求 清除缓存
  7. 迁移学习 nlp_NLP的发展-第3部分-使用ULMFit进行迁移学习
  8. C: City----逆向并查集
  9. python脚本编程实例_从零学python系列之数据处理编程实例(一)
  10. 深度强化学习在时序数据压缩中的应用--ICDE 2020收录论文
  11. pcb设计等长线误差_17种元器件PCB封装图鉴,美翻了(附PCB元件库)
  12. android+usb摄像头预览分辨率,UVCCamera(usb camera)适配Android9
  13. 金色装饰素材,用这个技巧创造节日的感觉,完美
  14. NetAug(网络增强)—Dropout的反面
  15. ReactNative字体大小不随系统字体大小变化而变化
  16. 6个最佳的开源Python应用服务器
  17. C++11for(auto iter : container)auto简介
  18. 微信小程序图片上传并展示
  19. 【Espruino】NO.18 使用L298N驱动直流电机
  20. java名字转化为拼音_将中文姓名转换为拼音

热门文章

  1. 阿里云中间件首席架构师李小平:云原生实践助力企业高效创新
  2. 云效走进百所高校 让上千学生真正认识代码
  3. 如何实现Java类隔离加载?
  4. 入门顶点动画纹理的实例化绘制
  5. 这家工作室花三年把塞尔达做进RogueLike里面
  6. 第十届蓝桥杯省赛JavaC组真题——详细答案对照(完整版-包含打扫机器人的视频全过程讲解与编码内容对照)
  7. 这两款无“节操”的浏览器,在315被曝光后,终于被下架了
  8. Python编程专属骚技巧10
  9. Oracle GoldenGate 之--异构平台同步(Mysql到Oracle)
  10. 关于Expdp/Impdp 并行导入导出详细测试结果和并行参数的正确理解!!