计算机专业面试题目
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机专业面试题集
计算机随笔2008-05-05 19:28:18 阅读2083 评论0 字号:大中小订阅
一些面试准备题(包括高质量c++题)
const char*, char const*, char*const的区别问题几乎是C++面试中每次都会有的题目。
事实上这个概念谁都有只是三种声明方式非常相似很容易记混。
Bjarne在他的The C++ Programming Language里面给出过一个助记的方法:
把一个声明从右向左读。
char * const cp; ( * 读成pointer to )
const cp指向字符串;即指向字符串的常指针;
const char * p;
p指向字符串常量,即指向字符串常量的指针;
char const * p;
这个和上面的事一样的,表达的意思也是指向字符串常量的指针
同上因为C++里面没有const*的运算符,所以const只能属于前面的类型。
---------------------------------
下面这个程序执行后会有什么错误或者效果:
#define MAX 255
int main()
{
unsigned char A[MAX],i;
for (i=0;i<=MAX;i++)
A[i]=i;
}
解答:
MAX=255
数组A的下标范围为:0..MAX-1,这是其一..
其二.当i循环到255时,循环内执行:
A[255]=255;
这句本身没有问题..但是返回for (i=0;i<=MAX;i++)语句时,
由于unsigned char的取值范围在(0..255),i++以后i又为0了..无限循环下去. 注:char类型为一个字节,取值范围是[-128,127],unsigned char [0 ,255]
---------------------------------
编写用C语言实现的求n阶阶乘问题的递归算法:*******仅仅只要是一个算法就ok,不用管那么多,能用就行。
long int fact(int n)
{
int x;
long int y;
if(n<0)
{
printf("error!");
}
if(n==0)
return 1;
x=n-1;
y=fact(x); //这是一个递归调用过程,
return (n*y);
}
Long int fact(int n)
{
If(n<0)
{
Printf(“error”);
}
If(n==0)
Return 1;
Else
Return n*fact(n-1);
}
--------------------------------二分查找算法://已经在排好序的情况下进行查找
1、递归方法实现:
int BSearch(elemtype a[],elemtype x,int low,int high)
/*在下届为low,上界为high的数组a中折半查找数据元素x*/
{
int mid;
if(low>high) return -1;//error
mid=(low+high)/2;
if(x==a[mid]) return mid;