您的位置:首页 > 编程语言 > C语言/C++

C/C++面试基础题

2011-04-29 15:39 309 查看
一 简答题
1.static有什么用途?(请至少说明两种)

2.引用与指针有什么区别?

3.描述实时系统的基本特性

4.全局变量和局部变量在内存中是否有区别?如果有,是什么区别?

5.什么是平衡二叉树?

6.堆栈溢出一般是由什么原因导致的?

7.什么函数不能声明为虚函数?

8.冒泡排序算法的时间复杂度是什么?

9.写出float x 与“零值”比较的if语句。

10.Internet采用哪种网络协议?该协议的主要层次结构?

11.Internet物理地址和IP地址转换采用什么协议?

12.IP地址的编码分为哪俩部分?

13.用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。写出C程序。
循环链表,用取余操作做

14.写出判断ABCD四个表达式的是否正确, 若正确, 写出经过表达式中 a的值(3分)
int a = 4;
(A)a += (a++); (B) a += (++a) ;(C) (a++) += a;(D) (++a) += (a++);
a = ?

15.某32位系统下, C++程序,请计算sizeof 的值(5分).
char str[] = “http://www.ibegroup.com/”
char *p = str ;
int n = 10;
请计算
sizeof (str ) = ?(1)
sizeof ( p ) = ?(2)
sizeof ( n ) = ?(3)

void Foo ( char str[100])
{
请计算
sizeof( str ) = ?(4)
}

void *p = malloc( 100 );
请计算
sizeof ( p ) = ?(5)

16.头文件中的 ifndef/define/endif 干什么用?

17. #include< filename> 和 #include “filename.h” 有什么区别?

18.在C++ 程序中调用被 C 编译器编译后的函数,为什么要加 extern “C”声明?

19. switch()中不允许的数据类型是?

20.Void GetMemory(char **p, int num){
*p = (char *)malloc(num);
}
void Test(void){
char *str = NULL;
GetMemory(&str, 100);
strcpy(str, "hello");
printf(str);
}
请问运行Test 函数会有什么样的结果?

21. void Test(void){
char *str = (char *) malloc(100);
strcpy(str, “hello”);
free(str);
if(str != NULL){
strcpy(str, “world”);
printf(str);
}
}
请问运行Test 函数会有什么样的结果?

22. char *GetMemory(void){
char p[] = "hello world";
return p;
}
void Test(void){
char *str = NULL;
str = GetMemory();
printf(str);
}

23. 编写strcat函数
已知strcat函数的原型是char *strcat (char *strDest, const char *strSrc);
其中strDest 是目的字符串,strSrc 是源字符串。

(1)不调用C++/C 的字符串库函数,请编写函数 strcat

(2)strcat能把strSrc 的内容连接到strDest,为什么还要char * 类型的返回值?

24.MFC中CString是类型安全类么?

25.C++中为什么用模板类。

26.CSingleLock是干什么的。

27.NEWTEXTMETRIC 是什么。

28.程序什么时候应该使用线程,什么时候单线程效率高。

29.Windows是内核级线程么。

30.Linux有内核级线程么。

31.C++中什么数据分配在栈或堆中,New分配数据是在近堆还是远堆中?

32.使用线程是如何防止出现大的波峰。

33.函数模板与类模板有什么区别?

34.一般数据库若出现日志满了,会出现什么情况,是否还能使用?

35.如果数据库满了会出现什么情况,是否还能使用?

36.SQL Server是否支持行级锁,有什么好处?

37.关于内存对齐的问题以及sizof()的输出

38.int i=20, j=10, k=2; k*=i+j; k最后的值是?

39.对数据库的一张表进行操作,同时要对另一张表进行操作,如何实现?

40.TCP/IP 建立连接的过程?(3-way shake)

41.ICMP是什么协议,处于哪一层?

42.触发器怎么工作的?

43.winsock建立连接的主要实现步骤?

44.动态连接库的两种方式?

45.IP组播有那些好处?

46.软件的开发流程?

47.char str[] = “hello”,sizeof (str ) = ________ strlen ( str ) = __________

48.类和结构的区别?

49.简述下虚拟函数的含义?

50.类中访问权限private,protested,prublic,可以被何种访问?

51.解释下面的含义:
int *pTemp = new int ( 5 );
int *pTemp = new int[5];

二 编程题
题目:有n 个人,他们围成一个圈,从第一个人开始数数(第一个人默认为1号,一直到n 号),数1,2,3,当数到3的人则退出这个圈,后面的继续数,一直进行,问到最后是否只剩一个人,如果是,这个人的编号是多少?

题目:写一个memcpy函数。

题目:写一个双向链表的插入函数。
原型如下:
struct node
{
node *head;
node *end;
int value;
}

void createnode(node **head, node **end, int val);

int main()
{
node *head = NULL;
node *end = NULL;
createnode(head, end, 1);
createnode(head, end, 1);
createnode(head, end, 1);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: