今天遇到的面试题目

来源:百度文库 编辑:神马文学网 时间:2024/03/29 00:24:10

主  题:  今天遇到的面试题目 
作  者:  dong_yoyo (泡马子) 
等  级:   
信 誉 值:  100 
所属社区:  C/C++ C语言 
问题点数:  20 
回复次数:  22 
发表时间:  2005-10-31 15:32:20 
  
 
  
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有何优缺点?

 
  回复人: xiaocai0001(萧筱雨) ( ) 信誉:100  2005-10-31 15:40:00  得分: 0 
 
 
   2, 3, 4都是老题
2题 有两种解法, 一种用算术算法, 一种用^(异或)
3题 主要区别是默认的存取权限不同
4题 由于函数参数是传值的, 所以返回主函数后str还是NULL
5题 由于定义的字符串长度小于拷贝的字符串长度, 会造成非法操作

11题主要是字典序比较
12题只要学过网络的都应该会做
 
 
Top 
 
 回复人: summer54(cofd) ( ) 信誉:100  2005-10-31 16:40:00  得分: 0 
 
 
   第2题:
a = a + b;
b = a - b;
a = a - b;
or
a = a^b;// 只能对int,char..
b = a^b;
a = a^b;
 
 
Top 
 
 回复人: pangdu(只想做程序) ( ) 信誉:100  2005-10-31 16:45:00  得分: 0 
 
 
   呵呵 pm科技的试题吧


 
 
Top 
 
 回复人: dong_yoyo(泡马子) ( ) 信誉:100  2005-10-31 16:55:00  得分: 0 
 
 
   呵呵 pm科技的试题吧
===============================
yes
 
 
Top 
 
 回复人: 0000000009(韩雷) ( ) 信誉:99  2005-10-31 17:20:00  得分: 0 
 
 
   int const *f const =&a;

这样定义错了吧
 
 
Top 
 
 回复人: bm1408(网络学习中ing~~~~) ( ) 信誉:86  2005-10-31 17:35:00  得分: 0 
 
 
   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;  //禁止
 
 
Top 
 
 回复人: bm1408(网络学习中ing~~~~) ( ) 信誉:86  2005-10-31 17:42:00  得分: 0 
 
 
   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


 
 
Top 
 
 回复人: bm1408(网络学习中ing~~~~) ( ) 信誉:86  2005-10-31 17:58:00  得分: 0 
 
 
   12.ISO的七层模型是什么?tcp/udp是属于哪一层?tcp/udp有何优缺点?

应用层
会话层
表示层
运输层
网络层
物理链路层
物理层
tcp /udp属于运输层
TCP 服务提供了数据流传输、可靠性、有效流控制、全双工操作和多路复用技术等。
与 TCP 不同, UDP 并不提供对 IP 协议的可靠机制、流控制以及错误恢复功能等。由于 UDP 比较简单, UDP 头包含很少的字节,比 TCP 负载消耗少。  

7.进程之间数据交换的途径
共享段
内存映射文件
剪切板
socket
mailslot
管道
文件(这个不知道算不算)


 
 
Top 
 
 回复人: 0000000009(韩雷) ( ) 信誉:99  2005-10-31 18:27:00  得分: 0 
 
 
   3题

存取权限有什么不同?

谢谢
 
 
Top 
 
 回复人: 0000000009(韩雷) ( ) 信誉:99  2005-10-31 18:31:00  得分: 0 
 
 
   struct 在C中应该没有什么访问权限吧
在C++中有什么权限呢?
 
 
Top 
 
 回复人: bluebroad(bluesky) ( ) 信誉:100  2005-10-31 19:20:00  得分: 0 
 
 
   c和c++中struct的主要区别是c中的struct不可以含有成员函数,而c++中的struct可以。c++中struct和class的主要区别在于默认的存取权限不同,struct默认为public,而class默认为private。
 
 
Top 
 
 回复人: 0000000009(韩雷) ( ) 信誉:99  2005-10-31 20:12:00  得分: 0 
 
 
   bluebroad(bluesky) thanks
 
 
Top 
 
 回复人: youngdreamer2008(羊追馍) ( ) 信誉:100  2005-10-31 20:18:00  得分: 0 
 
 
   mark
 
 
Top 
 
 回复人: nixun(贝塔) ( ) 信誉:100  2005-10-31 20:58:00  得分: 0 
 
 
   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: 不提供稳定的服务,包头小,开销小

 
 
Top 
 
 回复人: speeches() ( ) 信誉:98  2005-10-31 21:15:00  得分: 0 
 
 
   good
 
 
Top 
 
 回复人: dong_yoyo(泡马子) ( ) 信誉:100  2005-11-01 09:31:00  得分: 0 
 
 
   mark
 
 
Top 
 
 回复人: theone_jxm() ( ) 信誉:100  2005-11-01 11:43:00  得分: 0 
 
 
   5.char szstr[10];
  strcpy(szstr,"0123456789");

我这里可运行通过阿??

 

====CSDN 小助手 V2.0 2005年10月16日发布====
CSDN小助手是一款脱离浏览器也可以访问Csdn论坛的软件
界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/10/16/504620.aspx
下载:http://szlawbook.com/csdnv2/csdnv2.rar

为神六喝彩,向所有科技工作者致敬!
拒绝日货。
 
 
Top 
 
 回复人: zl0126() ( ) 信誉:100  2005-11-01 14:08:00  得分: 0 
 
 
   mark
 
 
Top 
 
 回复人: cdo(一个坏人) ( ) 信誉:100  2005-11-01 14:34:00  得分: 0 
 
 
   mark一下。
 
 
Top 
 
 回复人: mythma(力为) ( ) 信誉:100  2005-11-01 14:37:00  得分: 0 
 
 
   5.char szstr[10];
  strcpy(szstr,"0123456789");
  产生什么结果?为什么?

要产生溢出

字符串后边有一个‘\0‘

"0123456789"的长度超过了szstr的长度,故strcpy产生溢出
 
 
Top 
 
 回复人: mythma(力为) ( ) 信誉:100  2005-11-01 14:48:00  得分: 0 
 
 
   10:
   数组:数据是随机存储
   连表:数据是顺序存储
 
 
Top 
 
 回复人: mythma(力为) ( ) 信誉:100  2005-11-01 14:51:00  得分: 0 
 
 
   11.写一个函数比较两个字符串str1和str2的大小,若相等返回0,若str1大于
str2返回1,若str1小于str2返回-1

是不是还要比较排序?
 
 
Top