毛泽西 | 今天遇到的面试题目

来源:百度文库 编辑:神马文学网 时间:2024/07/05 14:40:46
1.有以下表达式:
int a=248; b=4;int const c=21;const int *d=&a;
int *const e=&b;int const *f const =&a;
请问下列表达式哪些会被编译器禁止?为什么?
*c=32;d=&b;*d=43;e=34;e=&a;f=0x321f;
2.交换两个变量的值,不使用第三个变量。即a=3,b=5,交换之后a=5,b=3;
3.c和c++中的struct有什么不同?
4.#include
#include
void getmemory(char *p)
{
p=(char *) malloc(100);
strcpy(p,"hello world")
}
int main( )
{
char *str=NULL;
getmemory(str);
print("%s/n",str);
free(str);
return 0;
}
程序运行的结果是什么?为什么?
5.char szstr[10];
strcpy(szstr,"0123456789");
产生什么结果?为什么?
6.列举几种进程的同步机制,并比较其优缺点。
7.进程之间数据交换的途径
8.类的静态成员和非静态成员有何区别?
9.纯虚函数如何定义?使用时应注意什么?
10.数组和链表的区别
11.写一个函数比较两个字符串str1和str2的大小,若相等返回0,若str1大于
str2返回1,若str1小于str2返回-1
12.ISO的七层模型是什么?tcp/udp是属于哪一层?tcp/udp有何优缺点?
2, 3, 4都是老题
2题 有两种解法, 一种用算术算法, 一种用^(异或)
3题 主要区别是默认的存取权限不同
4题 由于函数参数是传值的, 所以返回主函数后str还是NULL
5题 由于定义的字符串长度小于拷贝的字符串长度, 会造成非法操作
11题主要是字典序比较
12题只要学过网络的都应该会做
第2题:
a = a + b;
b = a - b;
a = a - b;
or
a = a^b;// 只能对int,char..
b = a^b;
a = a^b;
1.有以下表达式:
int a=248; b=4;int const c=21;const int *d=&a;
int *const e=&b;int
请问下列表达式哪些会被编译器禁止?为什么?
*c=32;d=&b;*d=43;e=34;e=&a;f=0x321f;
----------
*c 这是个什么东东,禁止
*d 说了是const, 禁止
e = &a 说了是const 禁止
const *f const =&a; //禁止
2.交换两个变量的值,不使用第三个变量。即a=3,b=5,交换之后a=5,b=3;
a =a^b;
b =b^a;
a=a^b;
3
3.c和c++中的struct有什么不同?
不想再说了,
5.char szstr[10];
strcpy(szstr,"0123456789");
长度不一样,会造成非法的OS
12.ISO的七层模型是什么?tcp/udp是属于哪一层?tcp/udp有何优缺点?
应用层
会话层
表示层
运输层
网络层
物理链路层
物理层
tcp /udp属于运输层
TCP 服务提供了数据流传输、可靠性、有效流控制、全双工操作和多路复用技术等。
与 TCP 不同, UDP 并不提供对 IP 协议的可靠机制、流控制以及错误恢复功能等。由于 UDP 比较简单, UDP 头包含很少的字节,比 TCP 负载消耗少。
7.进程之间数据交换的途径
共享段
内存映射文件
剪切板
socket
mailslot
管道
文件(这个不知道算不算)
c和c++中struct的主要区别是c中的struct不可以含有成员函数,而c++中的struct可以。c++中struct和class的主要区别在于默认的存取权限不同,struct默认为public,而class默认为private。
1: 禁止的有*c *d=43 e=&a;f=0x321f;
2:
a=a-b;
b=a+2b
b=a/2+b/2;
a=a+b;
3:
c中的struct不能有函授成员,c++中的可以有函数成员,和class的概念差不多。
4:
输出为空,有内存泄露
5:
szstr不是字符串。不能进行strcpy,strlen等操作
6:
同步机制
原子操作
自旋锁
信号量
优缺点不知道
7:
进程间交换数据的条件:共享内存和消息机制
8:
类的静态成员每个类只有一个,非静态成员每个对象一个
9:
virtual void f()=0;
是接口,子类必须要实现
10:
数组:数据顺序存储,固定大小
连表:数据可以随机存储,大小可动态改变
11:
大小?难道是长度?
strlen(str1)==strlen(str2)?0:(strlen(str1)>strlen(str2)?1:-1)
12:
应用层,表示层,会话层 ,传输层,网络层,数据连楼层,物理层
tcp/udp 传输层
tcp: 提供稳定的传输服务,有流量控制,缺点是包头大,冗余性不好
udp: 不提供稳定的服务,包头小,开销小