免费注册 查看新帖 |

Chinaunix

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

对找工作有用的C语言笔试题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-12-25 14:52 |只看该作者 |倒序浏览

[color="#000066"]对找工作有用的C语言笔试题
ghostzhu点评:早上看CU blog的时候在
 
http://loverdd.cublog.cn
[color="#0000ff"]
看到了这个帖子。觉得对大家找工作应该会有用,收在在我blog的就业&考研专题里以后方便翻看,就收过来了。在此谢谢loverdd!

一、请填写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
不可将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“此类形式。
   
如下是错误的写法,不得分。
    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 (!)      
二、以下为Windows NT下的32位C++程序,请计算sizeof的值(10分)
       char  str[] = “Hello” ;
       char   *p = str ;
int     n = 10;
请计算
sizeof (str ) =  6   (2分)
         
sizeof ( p ) =   4   (2分)
         
sizeof ( n ) =   4   (2分)
void Func ( char str[100])
{
请计算
sizeof( str ) =   4     (2分)
}

void *p = malloc( 100 );
请计算
sizeof ( p ) =  4      (2分)

三、简答题(25分)
1、头文件中的 ifndef/define/endif 干什么用?(5分)
答:防止该头文件被重复引用。
2、#include  filename.h>   和  #include  “filename.h” 有什么区别?(5分)
答:对于#include  filename.h> ,编译器从标准库路径开始搜索 filename.h
    对于#include  “filename.h” ,编译器从用户的工作路径开始搜索 filename.h
3、const 有什么用途?(请至少说明两种)(5分)
答:(1)可以定义 const 常量
(2)const可以修饰函数的参数、返回值,甚至函数的定义体。被const修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。
4、在C++ 程序中调用被 C编译器编译后的函数,为什么要加 extern “C”? (5分)
答:C++语言支持函数重载,C语言不支持函数重载。函数被C++编译后在库中的名字与C语言的不同。假设某个函数的原型为: void foo(int x, int y);
该函数被C编译器编译后在库中的名字为_foo而C++编译器则会产生像_foo_int_int之类的名字。
C++提供了C连接交换指定符号extern“C”来解决名字匹配问题。
5、请简述以下两个for循环的优缺点(5分)
for (i=0; ii

{
if (condition)
    DoSomething();
else
    DoOtherthing();
}
if (condition)
{
for (i=0; ii

    DoSomething();
}
else
{
// 析构函数
        String & operate =(const String &other);    // 赋值函数
      private:
        char    *m_data;                // 用于保存字符串
    };
       请编写String的上述4个函数。
标准答案:
// String的析构函数
       String::~String(void)               // 3
{
    delete [] m_data;                     
// 由于m_data是内部数据类型,也可以写成 delete m_data;
       }
       // String的普通构造函数            
       String::String(const char *str)      // 6
{
    if(str==NULL)                          
    {
       m_data = new char[1];    // 若能加 NULL 判断则更好
       *m_data = \0;                     
    }                                          
    else
    {
       int length = strlen(str);           
       m_data = new char[length+1];  // 若能加 NULL 判断则更好      
       strcpy(m_data, str);               
    }
}   
// 拷贝构造函数
    String::String(const String &other)   // 3
    {   
    int length = strlen(other.m_data);
    m_data = new char[length+1];      // 若能加 NULL 判断则更好   
    strcpy(m_data, other.m_data);         
}
// 赋值函数
    String & String::operate =(const String &other)    // 13
    {   
       // (1) 检查自赋值                     // 4分
       if(this == &other)
           return *this;
   
// (2) 释放原有的内存资源            // 3分
       delete [] m_data;
      
       // (3)分配新的内存资源,并复制内容 // 3分
    int length = strlen(other.m_data);
    m_data = new char[length+1];         // 若能加 NULL 判断则更好
       strcpy(m_data, other.m_data);
      
       // (4)返回本对象的引用            // 3分
       return *this;
}




               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/48954/showart_1741524.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP