免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3503 | 回复: 17
打印 上一主题 下一主题

面试题目,望高手赐教,新手也可以思考一下.谢谢 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-02-22 19:18 |只看该作者 |倒序浏览
1:不使用C函数库,编写strcpy函数,函数原型是char *strcpy(char *s,char *t)
这个简单,可是还加了一问:已经把字符串拷贝到*s了,为什么还要返回char *指针?这个问题倒是没有想过,平常写的代码好像是不返回.
void strcpy(char *s,char *t)
{
    while(*s++ = *t++)
           ;
}

2:如何编写if条件语句判断boolean b,float x,void *p与"零"的关系.这里的"零"可以是0,false,空指针,比如int i,if(i == 0)和if(i != 0).这个问题可能问得有些弱智,但还是希望好心人帮忙,因为明天还有面试,可能会有同样的问题.
3:分析下面两段代码的优缺点
1:for(i = 0;i < N; i++)
{
    if(condition)
         dosomething();
    else
         dootherthing();
}

2:if(condition)
    for(i = 0;i < N;i++)
           dosomething();
  else
      for(i = 0;i < N;i++)
            dootherthing();
谢谢!!!!

论坛徽章:
0
2 [报告]
发表于 2006-02-22 19:21 |只看该作者
林锐那本<<高质量c/c++编程>>书上的.你可以去下了看看.

论坛徽章:
0
3 [报告]
发表于 2006-02-22 19:32 |只看该作者
我正在找这本书,希望能够现在指点一下.因为我明天还要面试,说不定会有类似的题目.谢谢!

论坛徽章:
0
4 [报告]
发表于 2006-02-22 19:39 |只看该作者
谢谢,刚刚下载了这本书,已经找到答案了,非常好,如果有类似这样的经典的书籍,可以介绍一下给我,不胜感谢.

论坛徽章:
0
5 [报告]
发表于 2006-02-22 19:49 |只看该作者
这种题目现在到处都是

论坛徽章:
0
6 [报告]
发表于 2006-02-22 21:40 |只看该作者
 呵呵,LZ没有面试状态.....
扬子江 该用户已被删除
7 [报告]
发表于 2006-02-23 09:12 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
8 [报告]
发表于 2006-02-23 09:56 |只看该作者
为什么总面世这些,真的意义很大吗

论坛徽章:
0
9 [报告]
发表于 2006-02-23 22:39 |只看该作者
原帖由 lsjbuaa 于 2006-2-22 19:21 发表
林锐那本<<高质量c/c++编程>>书上的.你可以去下了看看.


一本已经被很多人证明是垃圾的书

论坛徽章:
0
10 [报告]
发表于 2006-02-24 02:49 |只看该作者
楼主是不是在广州呀?好像面试题和我们公司的题目完全一样呀?

(1)不调用C++/C的字符串库函数,请编写函数 strcpy
char *strcpy(char *strDest, const char *strSrc);
{
    assert((strDest!=NULL) && (strSrc !=NULL));        // 2分
    char *address = strDest;                                                // 2分
    while( (*strDest++ = * strSrc++) != ‘\0’ )                // 2分
       NULL ;
    return address ;                                                                // 2分
}

(2)strcpy能把strSrc的内容复制到strDest,为什么还要char * 类型的返回值?
答:为了实现链式表达式。                                                        // 2分
例如        int length = strlen( strcpy( strDest, “hello world”) );


一、请填写BOOL , float, 指针变量 与“零值”比较的 if 语句。(10分)

请写出 BOOL  flag 与“零值”比较的 if 语句。(3分)
标准答案:
    if ( flag )
      if ( !flag )       
如下写法均属不良风格,不得分。
    if (flag == TRUE)       
      if (flag == 1 )               
      if (flag == FALSE)  
      if (flag == 0)               
请写出 float  x 与“零值”比较的 if 语句。(4分)
标准答案示例:
const float EPSINON = 0.00001;
if ((x >= - EPSINON) && (x <= EPSINON)
不可将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”此类形式。
          
如下是错误的写法,不得分。
        if (x == 0.0)       
        if (x != 0.0)               
       
请写出 char  *p 与“零值”比较的 if 语句。(3分)
标准答案:
    if (p == NULL)
    if (p != NULL)       
如下写法均属不良风格,不得分。
   if (p == 0)       
    if (p != 0)               
    if (p)  
    if (!)               

请简述以下两个for循环的优缺点(5分)
for (i=0; i<N; i++)
{
if (condition)
    DoSomething();
else
    DoOtherthing();
}
优点:程序简洁

缺点:多执行了N-1次逻辑判断,并且打断了循环“流水线”作业,使得编译器不能对循环进行优化处理,降低了效率。

if (condition)
{
for (i=0; i<N; i++)
    DoSomething();
}
else
{
    for (i=0; i<N; i++)
    DoOtherthing();
}
优点:循环的效率高

缺点:程序不简洁
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP