`
dr2tr
  • 浏览: 138664 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

C笔试部分整理

阅读更多

 

const char* str5  = "abc";
const char* str6  = "abc";
cout << boolalpha << ( str5==str6 ) << endl; // 输出什么?
str5和str6并非数组而是字符指针,并不分配存储区,其后的“abc”以常量形式存于静态数据区,而它们自己仅是指向该区首地址的指针,相等。


根据语法,sizeof如用于数组,只能测出静态数组的大小,无法检测动态分配的或外部(!这个是关键)数组大小。


三元表达式“?:”问号后面的两个操作数必须为同一类型。


C数组定义要求长度必须为编译期常量。


以下反向遍历array数组的方法有什么错误?[STL易]
vector array;
array.push_back( 1 );
array.push_back( 2 );
array.push_back( 3 );
for( vector::size_type i=array.size()-1; i>=0; --i ) // 反向遍历array数组
{
    cout << array[i] << endl;
}

答:首先数组定义有误,应加上类型参数:vector<int> array。其次vector::size_type被定义为unsigned int,即无符号数(!),这样做为循环变量的i为0时再减1就会变成最大的整数,导致循环失去控制。

struct CLS
{
    int m_i;
    CLS( int i ) : m_i(i) {}//注意这个属性赋值的方式
    CLS()
    {
        CLS(0);
    }
};
CLS obj;
cout << obj.m_i << endl;

在默认构造函数内部再调用带参的构造函数属用户行为而非编译器行为,亦即仅执行函数调用,而不会执行其后的初始化表达式。只有在生成对象时,初始化表达式才会随相应的构造函数一起调用。故上述程序无输出


C++中的空类,默认产生哪些类成员函数?[C++易]
答:
class Empty
{
public:
    Empty();                          // 缺省构造函数
    Empty( const Empty& );            // 拷贝构造函数
    ~Empty();                         // 析构函数
    Empty& operator=( const Empty& ); // 赋值运算符
    Empty* operator&();               // 取址运算符
    const Empty* operator&() const;   // 取址运算符 const
};


 
以下两条输出语句分别输出什么?[C++难]
float a = 1.0f;
cout << (int)a << endl;
cout << (int&)a << endl;
cout << boolalpha << ( (int)a == (int&)a ) << endl; // 输出什么?
float b = 0.0f;
cout << (int)b << endl;
cout << (int&)b << endl;
cout << boolalpha << ( (int)b == (int&)b ) << endl; // 输出什么?

答:分别输出false和true。注意转换的应用。(int)a实际上是以浮点数a为参数构造了一个整型数,该整数的值是1,(int&)a则是告诉编译器将a当作整数看(并没有做任何实质上的转换)。因为1以整数形式存放和以浮点形式存放其内存数据是不一样的,因此两者不等。对b的两种转换意义同上,但是0的整数形式和浮点形式其内存数据是一样的,因此在这种特殊情形下,两者相等(仅仅在数值意义上)。
注意,程序的输出会显示(int&)a=1065353216,这个值是怎么来的呢?前面已经说了,1以浮点数形式存放在内存中,按ieee754规定,其内容为0x0000803F(已考虑字节反序)。这也就是a这个变量所占据的内存单元的值。当(int&)a出现时,它相当于告诉它的上下文:“把这块地址当做整数看待!不要管它原来是什么。”这样,内容0x0000803F按整数解释,其值正好就是1065353216(十进制数)。
通过查看汇编代码可以证实“(int)a相当于重新构造了一个值等于a的整型数”之说,而(int&)的作用则仅仅是表达了一个类型信息,意义在于为cout<<及==选择正确的重载版本。

 
写一个函数,完成内存之间的拷贝。[考虑问题是否全面]
答:
void* mymemcpy( void *dest, const void *src, size_t count )
{
    char* pdest = static_cast<char*>( dest );
    const char* psrc = static_cast<const char*>( src );
    if( pdest>psrc && pdest<psrc+cout ) 能考虑到这种情况就行了
    {
        for( size_t i=count-1; i!=-1; --i )
                pdest[i] = psrc[i];
    }
    else
    {
        for( size_t i=0; i<count; ++i )
            pdest[i] = psrc[i];
    }
    return dest;
}

定义了一个整型数组,请问用完后如何释放
答:
int **list = (int**)malloc(LIST_SIZE*sizeof(int*));
 for(I=0; I< LIST_SIZE; I++) free(list[I]);
 free(list);

分享到:
评论

相关推荐

    C语言笔试题程序员面试题大集合

    整理了好久的c笔试题和程序员面试题集合,看一大半就能应付大部分企业的笔试面试了。

    c/c++笔试题 java 笔试题 笔试题整理组合 物超所值

    最近因为找工作,里面包含了我最近两个月找工作收集的所有C/C++语言java方面的面试题以及部分答案。现在新工作搞定了,决定把这些资料发出来,送给有需要的朋友,免得再象我一样到处搜寻,实在辛苦。格式我已经给...

    c语言难点分析整理,C语言

    19. C语言笔试-运算符和表达式 104 20. C语言编程准则之稳定篇 107 21. C语言编程常见问题分析 108 22. C语言编程易犯毛病集合 112 23. C语言缺陷与陷阱(笔记) 119 24. C语言防止缓冲区溢出方法 126 25. C语言高效...

    C语言难点分析整理

    19. C语言笔试-运算符和表达式 104 20. C语言编程准则之稳定篇 107 21. C语言编程常见问题分析 108 22. C语言编程易犯毛病集合 112 23. C语言缺陷与陷阱(笔记) 119 24. C语言防止缓冲区溢出方法 126 25. C语言高效...

    免费下载:C语言难点分析整理.doc

    19. C语言笔试-运算符和表达式 104 20. C语言编程准则之稳定篇 107 21. C语言编程常见问题分析 108 22. C语言编程易犯毛病集合 112 23. C语言缺陷与陷阱(笔记) 119 24. C语言防止缓冲区溢出方法 126 25. C语言高效...

    ( C语言深度解剖 解开程序员面试笔试的秘密_.zip )

    C语言深度解剖(第2版):解开程序员面试笔试的秘密》由作者结合自身多年嵌入式C语言开发经验和平时讲解C语言的心得体会整理而成,其中有很多作者独特的见解或看法。由于并不是从头到尾讲解C语言的基础知识,所以...

    linux c经典面试笔试题

    自己整理的linux面试笔试题,大部分是关于c的

    IT笔试真题整理-微软百度ibm等

    46家公司笔试题 c/c++笔试题 面试题 部分外企笔试题总结

    C语言难点分析整理.doc

    19. C语言笔试-运算符和表达式 104 20. C语言编程准则之稳定篇 107 21. C语言编程常见问题分析 108 22. C语言编程易犯毛病集合 112 23. C语言缺陷与陷阱(笔记) 119 24. C语言防止缓冲区溢出方法 126 25. C语言...

    ( C语言深度解剖 解开程序员面试笔试的秘密_.rar )

    《C语言深度解剖(第2版):解开程序员面试笔试的秘密》由作者结合自身多年嵌入式C语言开发经验和平时讲解C语言的心得体会整理而成,其中有很多作者独特的见解或看法。由于并不是从头到尾讲解C语言的基础知识,所以...

    c++笔试常考题目(整理了很多企业的)

    华为的面试题,google面试,金山面试,微软亚洲技术中心的面试题,摩托罗拉部分C++面试题 ,北京中软笔试题,C/C++面试题解,有的有答案,Intel 的笔试题,群硕,很多公司的都有!有100页,弄懂的话招工作C++笔试不...

    C语言深度解剖(第2版)解开程序员面试笔试的秘密-陈正冲-第二版-高清-带书签目录 完整版.pdf

    陈正冲-第二版-高清-带书签目录 完整版.pdf《C语言深度解剖:解开程序员面试笔试的秘密(第2版)》由作者结合自身多年嵌入式C语言开发经验和平时讲解C语言的心得体会整理而成,其中有很多作者独特的见解或看法。...

    C语言深度剖析.-.解开程序员面试笔试的秘密].陈正冲.

    本书由作者结合自身多年嵌入式C语言开发经验和平时讲解C语言的心得体会整理而成,其中有很多作者独特的见解或看法。由于并不是从头到尾讲解C语言的基础知识,所以本书并不适用于C语言零基础的读者,其内容要比一般的...

    C / C++ 语言笔试题 200页 doc 文档

    C语言笔试题,200页的 word 格式,因为是笔试题,所以只是部分有答案。 少量题目,有重复,见谅,实在不好整理。

    C/C++笔试面试题

    这里整理了几分比较新的C及C++的笔试面试题目(不少企业的考题是直接来自于上面的题目),适合找软件开发、嵌入式开发方面工作的朋友,因为许多公司的面试都有笔试部分,当你吃透了这几份文档的题目,你完全可以轻松...

    计算机专业笔试题+面试技巧

    压缩文件里是我自己最近整理的关与计算机专业面试题,其中包括C/C++ 笔试题,JAVA笔试题,部分数据库和网络的笔试题!

    C/C++笔试面试宝典大全

    这里整理了几份比较新的C及C++的笔试面试题目(不少企业的考题是直接来自于上面的题目),适合找软件开发、嵌入式开发方面工作的朋友,许多公司的面试都有笔试部分,当你吃透了这几份文档的题目,你完全可以轻松过...

    笔试面试参考_第2部分_2

    平时整理的笔试面试题目第2部分,包括C、Java、数据库、数据结构和算法,非常有用...

    2014最新各大软件公司C、C++面试笔试题大汇总

    吐血整理! 2014最新各大软件公司C、C++面试笔试题大汇总,微软华为等大公司,也包括中低端的小公司。 包含三个文档,涵盖了面试笔试的绝大部分题目,2014年最新! 让面试的你万事俱备!

    笔试面试参考_第1部分

    平时整理的笔试面试题目的第1部分,包括C、Java、数据库、数据结构和算法,非常有用...

Global site tag (gtag.js) - Google Analytics