C++程序员实习测试题

匿名网友 匿名网友 发布于: 2015-08-30 00:00:00
阅读 197 收藏 0 点赞 0 评论 0

姓名:________ 学历________ 学校______________________ 专业______________

 

英语水平________ 联系电话________________ 考试成绩________ (限时:180分钟)

 

一、 填空题(共15分) 
   1、 在计算机内部通常都是以二进制   码形式表示整数的。
   2、 C++进程的内存布局分为四个空间区域:     。 
   3、 若有运算符>、*=、sizeof、%,则它们按优先级由高至低的排列次序为  
   4、 描述命题”A小于B或小于C”的表达式为        。 
   5、 对嵌套if语句的规定是:               。 
   6、 在C++中有二种参数传递方式:            。 
   7、 定义重载函数时,应在    有所不同。 
   8、 类是用户定义的类型,具有类类型的变量称作       。 
   9、 当建立一个新对象时,程序自动调用        。 
   10、当一个成员函数被调用时,该成员函数的     指向调用它的对象。 
   11、拷贝初始化构造函数使用      来初始化创建中的对象。 
   12、派生类可以定义其        中不具备的数据和操作。 
   13、
网络协议HTTP、FTP和POP3使用的端口分别是       。

14、一元操作符++,作为友元函数重载时只能声明
形参;作为类成员函数重载时        形参。 

   15、定义int **a[3][4] , 则变量a占有的内存空间为:      

 

二、 单项选择题(10分) 
   1、连接器所生成的文件的扩展名为(  ) 
   A、.cpp     B、.obj     C、.lib        D、.exe 
  2、设int a=3,b=4,c=5;表达式(a+b)>c&&b==c的值是(  )。 
   A、2        B、-1     C、0     D、1 
  3、下列标识符中,不合法的用户标识符为(  ) 
   A、a#b     B、_int     C、a_10     D、PAd 
4、while(!x)中的(!x)与下面条件(  )等价。 
   A、x==1     B、x!=1     C、x!=0     D、x==0 
  5、定义析构函数时,应该注意(   ) 
A、其名与类名完全相同     B、返回类型是void类型 
   C、无形参,也不可重载    D、函数体中必须有delete语句 
  6、每个类(   )构造函数。 
   A、只能有一个     B、只可有公有的 
   C、可以有多个     D、只可有缺省的 
  7、在一个类中可以对一个操作符进行(  )重载。 
   A、1种     B、2种以下     C、3种以下     D、多种 
  8、重载赋值操作符时,应声明为(  )函数。 
   A、 友元     B、 虚     C、 成员     D、 多态 
  9、在公有继承的情况下,基类成员在派生类中的访问权限(   ) 
A、 受限制     B、 保持不变     C、 受保护     D、 不受保护 
  10、通过(  )调用虚函数时,采用动态绑定。 
   A、 对象指针     B、 对象名     C、 成员名限定        D、 派生类名 
  

三、 双项选择题(在每小题的五个备选答案中,选出二个正确的答案,并将其序号填在题中的括号内,15分) 
1、在(  )(  )情况下适宜采用inline定义内联函数。 
   A、 函数体含有循环语句 
   B、 函数体含有递归语句 
   C、 函数代码少、频繁调用 
   D、 函数代码多、不常调用 
   E、 需要加快程序执行速度 
  2、在类中说明的成员可以使用关键字(   )(   )进行修饰。 
   A、 private     B、 extern     C、 auto     D、 public     E、 register 
  3、如果类A被说明成类B的友元,则(   )(   )。 
   A、 类A的成员即类B的成员 
   B、 类B的成员即类A的成员 
   C、 类A的成员函数不得访问类B的成员 
   D、 类A的成员函数可以访问类B的成员 
   E、 类B不一定是类A的友元 
  4、创建或删除堆对象,需要使用操作符(  )(   ) 
   A、->        B、new     C、delete     D、.     E、* 
  5、在类中声明转换函数时不能指定(   )(   ) 
   A、 参数     B、 访问权限     C、 返回类型     D、 操作        E、 标识符 
  6、在派生类中重新定义虚函数时必须在(  )(   )方面与基类保持一致。 
      A、 参数个数   B、 参数类型   C、 参数名字  D、 操作内容     E、 赋值 
  7、字符串之间的比较按(   )(   )进行。 
   A、 字符串的长度     B、 字符的大小写种类 
   C、 字符串的内部代码     D、 字符串的含意    E、 从头至尾的顺序 
  8、C++类体系中,不能被派生类继承的有(   )(   )。 
   A、 转换函数     B、 构造函数     C、 虚函数 
   D、 静态成员函数     E、 赋值操作函数 
  9、下列虚基类的声明中正确的是(   )(   ) 
   A、 class virtual B: public A 
   B、 class B: virtual public A 
   C、 class B: public A virtual 
   D、 class B: public virtual A 
   E、 virtual class B: public A    
  

四、 简答题(共40分) 

1. 给出下面程序的运行结果。 
  # include “iostream.h” 
   int main( ) 
       { int i=1; 
    while (i<=15) 
    if (++i%3!=2) continue; 
        else cout <<“i=”<<i<<endl; 
  } 


2. 给出下面程序的运行结果。 
#include “iostream.h” 
class test{ 
    private:int num 
    float fl; 
    public:test( ); 
       int getint( ){return num;} 
    float getfloat( ){return fl;} 
    ~test( ); 
    }; 
    test  test( ) 
    { cout << “Initalizing default” << endl; 
    num=0;fl=0.0; 
    } 
    test  ~test( ) 
{ cout << “Desdtructor is active” << endl;} 
    int main( ) 
    {test array[2]; 
    cout << array[1].get int( )<< ” ” << array[1].getfloat( ) <<endl; } 


3.给出下面程序的运行结果。 
#include “iostream.h” 
int main( ) 
 {   int num=50; 
    int *& ref=&num; 
            *ref+=10; 
    cout << “num=” << num << endl; 
    num+=40; 
    cout << “*ref=” <<* ref << endl; 
    return 0; 
    } 
   

4. C++中为什么用模板类? 

 


5.
程序什么时候应该使用线程,什么时候单线程效率高?

  
 

 

 

 

 

6.什么是网络套接字(Socket)?流套接字(SOCK_STREAM)基于什么协议?简述Winsock的编程流程.

 

 

 

 

 

 

7. 解释ODBC、SQL 、STL、MFC 、TCP/IP。

 

 

 

 


.什么是回调函数?如何定义和实现一个类的成员函数为回调函数?

 

 

 

 

 

 

五、 编程题(共20分) 
1、 下面函数chnum将一个整数字符串转换为一个整数。请在[1]、[2]、[3]、[4]处填入正确 内容。 
   int chnum (char *str) 
   { int i, j, k, h, len, num=0; 
   len=strlen(str); 
   for(i=0;  [1] ; i++)   
   { k=1; 
   j= len-1; 
   while ([2])
   { 
      k=k*10; 
    j–; 
   } 
   h=[3]-‘0’; 
   num=num+h*[4]
   } 
   return num; 
     } 
     

2.
已知strcpy函数的原型是:

char * strcpy(char * strDest,const char * strSrc);

1.不调用库函数,实现strcpy函数。

2.解释为什么要返回char *。

 

 

评论列表
文章目录