2008年第一次笔试-周立功单片机发展有限公司,在国内单片机应用它做的应该是比较好的,但是产品单一,公司一般,前景暗淡。我做了一套C/C++的笔试题,5道编程,看着挺简单,但是写起来还真有些头疼,尤其是手写,总感觉怪怪的。
1.编写一个小括号的匹配检测函数,输入为一个字符串,若括号匹配,输出“括号匹配正确”;否则输出“括号匹配错误”;
2.字符匹配问题。编写一个函数删去某个字母字符或控制字符,可以如下调用:
strcpy(pBuf,"Hello world");
printf(erase_c(pBuf,'d'));
3. (1)二叉树定义如下:
struct { int data; bintree* left; bintree* right; }*bintree;
|
编写函数计算二叉树的节点数;
(2)编写函数实现单链表翻转;
4.指出如下程序的错误并改正之(仅凭我的记忆写的,大概是这样,估计又产生了不少错误o(∩_∩)o...)。
class mstring { public:
mstring &operator = (mstring &s )
{
m_buf = new char(strlen(s.m_buf));
strcpy(m_buf,s.m_buf);
}
void clear(){delete m_buf;}
private:
char * m_buf;
};
void Qstr(mstring &s)
{
s.clear();
}
int main()
{
const mstring a="Hello world";
mstring b,c;
mstring b=c=a;
Qstr(b);
return 0;
}
|
5.
古代数学乘法计算9*33的算法描述如下:
1×33=33 = 33 提取1
2×33=66 = 33+33
4×33=132= 66+66
8×33=264= 132+132 提取8
9×33=297=33+264
(1)请推理出除法的计算方法,并有条理地描述算法;
(2)请用移位操作和加法实现乘法函数int Multi(int a, intb);
(3)请用移位操作和减法实现除法(a/b)函数int Div(int a, intb);
阅读(452) | 评论(0) | 转发(0) |