现在的公司招聘,都要笔试面试.如果你不是那种编程功底非常深厚的人,又不好好准备一番,在笔试面试中往往会处于被动局面.虽然有些笔试题是故意为难我们,有点钻牛角尖.但是很多笔试题面试题确实能够很好地看出我们的基础. 在这里,我就略去那些钻牛角尖的题.从csdn论坛我近半年的收集中选出10道有代表性的题目,难度基本上是逐渐加大.对数组,指针,数据结构,算法,字符串,文件操作等问题都有覆盖.主要以c语言的实现为主,也有c++的题.大家可以先做做这10道题,测试一下自己的水平. 1. 下面这段代码的输出是多少(在32位机上). char *p; char *q[20]; char *m[20][20]; int (*n)[10]; struct MyStruct { char dda; double dda1; int type ; };
MyStruct k; printf("%d %d %d %d",sizeof(p),sizeof(q),sizeof(m),sizeof(n),sizeof(k)); 2. (1) char a[2][2][3]={{{1,6,3},{5,4,15}},{{3,5,33},{23,12,7}} };
for(int i=0;i<12;i++)
printf("%d ",_______);
在空格处填上合适的语句,顺序打印出a中的数字 (2) char **p, a[16][8]; 问:p=a是否会导致程序在以后出现问题?为什么? 3.用递归方式,非递归方式写函数将一个字符串反转. 函数原型如下:char *reverse(char *str); 4.strcpy函数和memcpy函数有什么区别?它们各自使用时应该注意什么问题? 5.写一个函数将一个链表逆序. 一个单链表,不知道长度,写一个函数快速找到中间节点的位置. 写一个函数找出一个单向链表的倒数第n个节点的指针.(把能想到的最好算法写出). 6.用递归算法判断数组a[N]是否为一个递增数组。 7. 有一个文件(名为a.txt)如下,每行有4项,第一项是他们的名次,写一个c程序,将五个人的名字打印出来.并按名次排序后将5行数据仍然保存到a.txt中.使文件按名次排列每行. 2,07010188,0711,李镇豪,
1,07010154,0421,陈亦良,
3,07010194,0312,凌瑞松,
4,07010209,0351,罗安祥,
5,07010237,0961,黄世传, 8.写一个函数,判断一个unsigned char 字符有几位是1. 写一个函数判断计算机的字节存储顺序是升序(little-endian)还是降序(big-endian). 9.微软的笔试题. Implement a string class in C++ with basic functionality like comparison, concatenat
合并排序(MERGE SORT)是又一类不同的排序方法,合并的含义就是将两个或两个以上的有序数据序列合并成一个新的有序数据序列,因此它又叫归并算法。它的基本思想就是假设数组A有N个元素,那么可以看成数组A是又N个有序的子序列组成,每个子序列的长度为1,然后再两两合并,得到了一个 N/2 个长度为2或1的有序子序列,再两两 ......