现在的位置: 首页 > 综合 > 正文

C/C++常见笔试题目

2012年02月06日 ⁄ 综合 ⁄ 共 1089字 ⁄ 字号 评论关闭

1、引用和指针的区别

     1.1 引用不能为NULL

     1.2 引用必须要初始化

     1.3 引用初始化后,不可指向其他对象

     1.4 作为参数传递的时候,不会生产形参。返回引用的时候,不会产生临时变量。

     const 指针也有可能产生野指针。

     引用具有指针的效率,也具有方便性和直观性。

 

2、区别函数重载可以是

  参数类型(整形、实型、字符型等)
参数个数
但不能是返回类型

3、C++和C定义结构的分别是什么。
Clanguage的结构仅仅是数据的结合
Cplusplus的struct和class其实具备几乎一样的功能,只是默认的访问属性不一样而已。

4、如何判断一个变量是有符号数还是无符号数

        4.1 利用了无符号数和有符号数相减结果为无符号数的性质。

        #include<stdio.h>
        int main()
        {
        //unsigned int a = 100;  //待判断数
        int a = 100;
        int b = -1; //参照数
        if(a<0)
        {
                printf("有符号数");
        }
        else
        {
                if(b-a>0)
                        printf("无符号数");
                else
                        printf("有符号数");
        }
          return 0;
       }

   4.2. 利用函数重载

        void f(int val)
       {
           std::cout << "singned" << std::endl;
        }

       void f(unsigned int val)
       {
          std::cout << "unsigned" << std::endl;
       }

 

   4.3. 通过改变符号位判断
         把A进行一个位运算,将最高位置1,判断是否大于0
     A = A|(1 << 31);
     if(A > 0)
     printf("unsigned");
     else
     printf("signed");

 

    5、库函数调用和系统调用区别何在 

          系统调用由操作系统提供,库函数是编译器

 

     6、 检测链表中是否有环

            用两个指针,一个的步长为 1,另外一个的为 2,从表头开始一起往前走,如果相遇,表明有环路,否则就是没有了。

 


抱歉!评论已关闭.