C++技能测试试卷二及答案

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

姓名______ 联系电话________________ Email________________

 

学校______________ 专业_______________ 学历______ 英语水平_____ 

 

类别:□国家统招 □成教 □自考 □网络教育 其它___________

 

第一部分:基础部分

 

考试时间:120分钟 考试成绩___________

 

一 计算机基础知识 共30分。

1、从供选择的答案中,选出应填入下面叙述中__?__内的最确切的解答,把相应编号写在答卷的对应栏内。

  某些操作系统,将一条命令的执行结果输出给下一条命令,作为其输入并加以处理,这是系统的__A__机制。使命令所需要的信息不从键盘接收,而取自另一个文件,这是系统的__B__机制。使命令的执行结果直接引向另一个文件,而不在屏幕上显示,这是系统的__C__机制。操作系统不从键盘逐条接收命令并执行,而调用一个正文文件,执行其中的一系列命令,这种方式称为__D__方式,编写这样的文件应符合__E__语言的语法规则。

供选择的答案

  A:(1)链接   (2)输入重定向(3)管道  (4)输出重定向

  B:(1)输入重定向(2)管道   (3)读保护 (4)批处理

  C:(1)管道   (2)输出重定向(3)清屏  (4)显示屏蔽

  D:(1)初始装入 (2)批处理  (3)管道  (4)系统生成

  E:(1)命令定向 (2)机器指令 (3)人机会话(4)作业控制

 

2、从供选择的答案中,选出应填入下面叙述中__?__内的最确切的解答,把相应编号写在答卷的对应栏内。

  编制一个好的程序首先要确保它的正确性和可靠性,除此以外,通常更注重源程序的__A__。此外,还应强调良好的编程风格,例如,选择标识符的名字时应考虑__B__;在书写语句时应考虑__C__;在书写功能性注解时应考虑__D__。

  源程序中应包含一些内部文档,以帮助阅读和理解源程序,源程序的内部文档通常包括选择合适的标识符、注解和__E__。

供选择的答案

  A:(1)易使用性、易维护性和效率  (2)易使用性、易维护性和易移植性

    (3)易理解性、易测试性和易修改性(4)易理解性、安全性和效率

  B:(1)名字长度越短越好,以减少源程序的输入量

    (2)多个变量共用一个名字,以减少变量名的数目

    (3)选择含义明确的名字,以正确提示所代表的实体

    (4)尽量用关键字作名字,以使名字标准化

  C:(1)把多个短的语句写在同一行中,以减少源程序的行数

    (2)尽量使用标准文本以外的有特殊功效的语句,以提高程序的功效

    (3)尽量消除表达式中的括号,以简化表达式

    (4)避免使用测试条件”非”,以提高程序的可读性

  D:(1)仅为整个程序作注解 (2)仅为每个模块作注解

    (3)为程序段作注解   (4)为每个语句作注解

  E:(1)程序的视觉组织   (2)尽量不用或少用GOTO语句

    (3)检查输入数据的有效性(4)设计良好的输出报表

 

3、从供选择的答案中,选出应填入下面叙述中__?__内的最确切的解答,把相应编号写在答卷的对应栏内。

  计算机中十六位浮点数的表示格式为

     0  34      15

     ┎──┳───────┒ 

     ┃阶码┃尾数(含尾符)┃

     ┗──┻───────┛

  某机器码为1110001010000000。

  若阶码为移码且尾数为反码,则其十进制真值为__A__;

  若阶码为移码且尾数为原码,则其十进制真值为__B__;

  若阶码为补码且尾数为反码,则其十进制真值为__C__;

  若阶码为补码且尾数为原码,则其十进制真值为__D__,将其规格化后的机器码为__E__。  

供选择的答案

  A—D:(1)0.078125 (2)20 (3)1.25 (4)20.969375

  E:  (1)1110001010000000(2)11110101000000

      (3)1101010100000000(4)11110001010000

 

4、从供选择的答案中,选出应填入下面叙述中__?__内的最确切的解答,把相应编号写在答卷的对应栏内。

  计算机中指令的执行过程可以概括为以下步骤:

  (1)读取指令。把__A__中的内容经__B__送入内存的有关寄存器,读出内存中存贮的指令并将其送入__C__。

  (2)指令译码。__C__中的操作码部分送指令译码器产生相应的操作控制信号,地址码部分则__D__。

  (3)按指令操作码执行相应的操作和运算。

  (4)形成下一条要取指令的地址。若本次指令是非转移指令或无条件转移指令,则__A__中内容加本次指令字节长度值或者接置为下一指令地址值,若为条件转移指令则__E__的值将影响__A__中置什么值。

供选择的答案

  A:(1)指令寄存器       (2)程序计数器

    (3)栈地址寄存器      (4)变址寄存器

  B:(1)数据总线 (2)控制总线 (3)地址总线 (4)I/O总线

  C:(1)指令寄存器       (2)程序计数器

    (3)标志寄存器       (4)cache存储器

  D:(1)作为操作数的内存地址去读出操作数

    (2)作为操作数的寄存器地址去读出操作数

    (3)作为操作数本身

    (4)要按寻址方式执行相应操作后去获得操作数

  E:(1)中断寄存器 (2)控制器  (3)标志寄存器(4)数据寄存器

 

5、从供选择的答案中,选出应填入下面叙述中__?__内的最确切的解答,把相应编号写在答卷的对应栏内。

  I/O系统主要有三种方式来与主机交换数据,它们是__A__、__B__和__C__。其中__A__主要用软件方法来实现,CPU的效率低;__B__要有硬件和软件两部分来实现,它利用专门的电路向CPU中的控制器发出I/O服务请求,控制器则__D__转入执行相应的服务程序;__C__主要由硬件来实现,此时高速外设和内存之间进行数据交换__E__。

供选择的答案

  A:(1)程序查询方式       (2)读/写文件方式

    (3)数据库方式        (4)客户/服务器方式

  B:(1)DMA方式(2)批处理方式(3)中断方式(4)数据通信方式

  C:(1)中断方式 (2)DMA方式(3)并行方式(4)流水线方式

  D:(1)立即   (2)在执行完当前一条指令后

    (3)在执行完当前的一段子程序后(4)在询问用户后

  E:(1)不通过CPU的控制,不利用系统总线

    (2)不通过CPU的控制,利用系统总线

    (3)通过CPU的控制,不利用系统总线

    (4)通过CPU的控制,利用系统总线

 

6、从供选择的答案中,选出应填入下面叙述中__?__内的最确切的解答,把相应编号写在答卷的对应栏内。

  国际电信联盟的电信标准化部ITU-T的前身是__A__,其发布的X.200建议是和__B__制定的开放系统互连七层参考模型(OSI)等价的。作为最简单的防火墙——分组过滤器在该模型的__C__层检查出入地址;网桥是在该模型__D__层进行网络间中继的互连设备;UDP则是Internet中常用的__E__层协议之一。

供选择的答案

A、B:(1)ANSI(2)ISO(3)CCITT(4)IEC

  C:(1)物理  (2)网络 (3)会话   (4)应用

  D:(1)物理  (2)运输 (3)数据链路 (4)网络

  E:(1)运输  (2)会话 (3)表示   (4)应用

 

二 C语言部分 共20分

阅读下列函数说明和C代码,将应填入其中__(n)__处的字句写在答卷的对应栏内。

【函数1.1说明】

  设链表结点的类型为

    typedef struct elem{ int val;

struct elem *next;

}intNode;

  函数merge(int *a,int *b)是将两个升序链表a和b合并成一个升序链表。

【函数1.1】

intNode *merge(intNode *a,intNode *b)

{ intNode *h=a,*p,*q;

while(b)

{ for (p=h;p&&p->val<b->val;q=p,p=p->next);

if (p==h) __(1)__;else __(2)__;

q=b;b=b->next; __(3)__;

}

return h;

}

 

【函数1.2说明】

  递归函数dec(int a[],int n)判断数组a[]的前n个元素是否是不递增的。不递增返回1,否则返回0。

【函数1.2】

int dec(int a[],int n)

{ if (n<=1) __(4)__;

if (a[0]<a[1]) return 0;

return __(5)__;

}

 

三 C++语言部分 共30分

1判断题目:(共10分)

(1)函数体内声明的静态变量,至多只会被初始化一次。
(2) 对于同一个类中的两个非静态成员函数,它们的函数的名称、参数类型、参数个数、参数顺序以及返回值的类型不能完全相同。
(3) inline函数表示编译器一定会将函数体直接插入到调用此函数的地方,这样可以加快程序的运行速度。
(4) 每个cpp文件是单独编译的,但一个程序中多个cpp文件的编译顺序是不固定的。
(5) 将类A所有构造函数的可访问性都限制为私有的,那么在main函数中不可能得到类A的实例对象。
(6) 名字空间是可以多层嵌套的;对于类A中的函数成员和数据成员,它们都属于类名A代表的一层名字空间。
(7) 若在类Base和派生类Derived中,分别声明一个同名的整型成员变量int x; ,那么通过Derived类的实例对象,不可能输出基类Base中的变量x的值。
(8) 若类A是类B的友员类,且类B是类C的友员类,那么类A也是类C的友员类。
(9) 虽然抽象类的析构函数可以是纯虚函数,但要实例化其派生类对象,仍必须提供抽象基类中析构函数的函数体。
(10) 构造函数的初始化列表中的内容,不会影响构造对象中成员数据的初始化顺序。

2、回答下列各题(共12分)

(1) 说明类中的public、 protected和 private成员函数分别在public、protected和private继承方式下在派生类中的可访问性。(2分)


(2)若类A和类B没有继承关系,对于函数void func(A&) ,请至少用两种不同方法说明如何才能传递一个非常量的B类对象给func函数。(2分)


(3)在声明类中的构造函数、析构函数、纯虚函数、静态成员函数、非静态的成员函数以及全局函数作为类的友元函数时,哪些可以是常量成员函数?(2分)


(4)举例说明重载(overload) 和重写(override)的含义。(2分)


(5)通常类A的拷贝构造函数的原型写为A(const A&);,请问为什么参数一定要使用引用形式?使用const修饰符除了可以防止修改传递给构造函数的实参外,还有什么作用?(2分)


(6)程序员规范中要求不要写出类似(++i)+(i++) 或 f(++i,i++)这样的代码,请说明原因。(2分)

 

 

 

4 程序题目8分

数组排序 写一个函数 完成一个数组的升序排列。

Sort(int a[] ,int n)

{

 

 

 

 

}

 

四 智力测试 共10分

1、你让工人为你工作7天,给工人的回报是一根金条。金条平分成相连的7段,你必须在每天结束时给他们一段金条,如果只许你两次把金条弄断,你如何给你的工人付费?

 

 

 

2、门外三个开关分别对应室内三盏灯,线路良好,在门外控制开关时候不能看到室内灯的情况,现在只允许进门一次,确定开关和灯的对应关系?

 

 

 

五 英语能力测试 共10分

从供选择的答案中,选出应填入下面叙述中__?__内的最确切的解答,把相应编号写在答卷的对应栏内。

  Software quality assurance is now an __A__ sub-discipline of software engineering. As Buckly and Oston point out, __B__ software quality assurance is likely to lead to an ultimate __C__ of software costs. However, the major hurdle in the path of software management in this area is the lack of __D__ software standards. The development of accepted and generally applicable standards should be one of the principal goals of __E__ in software engineering.

供选择的答案

  A:(1)emerging (2)emergent (3)engaging (4)evolve

  B:(1)effective (2)effortless (3)light (4)week

  C:(1)balance (2)growth (3)production (4)reduction

  D:(1)usable (2)usage (3)useless (4)useness

  E:(1)management(2)planning (3)production (4)research

第二部分:高级部分

(只考虑实习或就业的学员必须测试此部分内容)

 

考试时间:120分钟 考试成绩___________

 

一、 填空题(共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 *。

 

 

C++技能测试试卷二答案

 

第一部分:基础部分

 

一、计算机基础知识30分

3-1-2-2-4 2-3-4-3-1 2-2-1-1-3 2-3-1-4-3 1-3-2-2-2 3-2-2-3-1

二、C语言部分15分

(1) h = b

(2) q->next = b

(3) q->next = p

(4) return 1

(5) dec(a+1,n-1)

 

三、C++语言部分45分

1、判断10分

(1)对

(2)错 如可有两个成员函数,int f();和 int f() const;

(3)错 是否真正内联,由编译器决定。如函数是递归函数,那么永远不会内联。

(4)对

(5)错 可通过类的静态成员函数创建实例,如单件模式。

(6)对

(7)错 如可通过继承自基类的成员函数访问基类中的x.

(8)错 友员关系不具有传递性。

(9)对

(10)对
2、回答问题12分

(1)重点是基类中的任何Private在派生类中都是不可访问的。4 2分。

(2)可在A类中定义一个构造函数:A(const B&);
或在B类中定义一个自动转换函数: operator A( ) const;2分

(3)有纯虚函数、非静态的成员函数可以是常量成员函数。
(这题有点问题,析构函数可以是纯虚函数,但不能是常量函数)2分

(4)类A中有函数 int f(void);和int f(int);为重载(overload) (同名,参数不同)
如类A中有函数 int f(void);,A的派生类B中给int f(void)一个新的实现体,为redefine
如类A中有虚函数 virtual int f(void);,A的派生类B中给virtual int f(void)一个新的实现体,
为override. 2分

(5)A(const A& one ).当调用此拷贝构造函数时,需将参数压栈,若不使用&,就需要在
栈内创建一个one的副本,而这需要用拷贝构造函数。这样就会形成递归调用。 使用const,还允许用一个常量对象作为样本,来构造一个新的对象。 2分

(6)计算子表达式的顺序由编译器决定的,虽然参数的压栈顺序在给定的调用方式下式固定的,
但参数表达式的计算顺序也由编译器决定的。不同的编译器或不同的表达式计算的顺序可能
不一致。 2分。

3程序题目8分

Sort(int a[] ,int n)

{

    for(int i=0;i<n;i++)

    {

        for(int j=i+1;j<n;j++)

            if(a[i]>a[j])

            {

                int temp;

                temp = a[i];

                a[i] =a[j];

                a[j] =temp;

            }

    }

}

 

 

四、智力测试答案5分

1两次弄断就应分成三份,我把金条分成1/7、2/7和4/7三份。这样,第1天我就可以给他1/7;第2天我给他2/7,让他找回我1/7;第3天我就再给他1/7,加上原先的2/7就是3/7;第4天我给他那块4/7,让他找回那两块1/7和2/7的金条;第5天,再给他1/7;第6天和第2天一样;第7天给他找回的那个1/7

2、三个开关分别:关,开,开10分钟,然后进屋,暗且凉的为开关1控制的灯,亮的为开关2控制的灯,暗且热的为开关3控制的灯。

 

五、英语答案:5分

1-1-2-1-4

 

 

 

 

第二部分:高级部分

 

一、 填空题(每空1分,共15分) 
   1、 补  2、code area、data area、heap area、stack area
。   

3、 sizeof、%、*=、> 4、 A<B||A<C    。 
   5、else总是与 离它最近的if   配对。 
   6、 值传递和 地址传递      。 
   7、 应在参数个数或参数类型上  有所不同     。 
   8、对象     。 
   9、 它的构造函数    。 
   10、this指针  11、引用   12、基类 
   13、
HTTP协议用80端口,协议用21端口,POP3协议用110端口  
   14、 一个/对象 ;不需要 15、48

二、

D C A  D C  C  D  A  B  A 

三、 双项选择题
1、(C )(E )2、( A )( D )3、( D )( E )  4、( B )( C ) 5、( A )( C ) 
  6、 A )( B )7、( C )( E )8、 B )( E )9、B )( D ) 
四、 简答题(每小题5分,共30分) 
1.  i=2 
  i=5 
  i=8 
  i=11 
    i=14 
2. 
Initalizing default 
Initalizing default 
0 0 
Desdtructor is active 
Desdtructor is active 
3.给出下面程序的运行结果。 
    答:输出结果: 
    num=60  
    ref=100 
4、
C++中为什么用模板类?答:(1)可用来创建动态增长和减小的数据结构
(2)它是类型无关的,因此具有很高的可复用性。
(3)它在编译时而不是运行时检查数据类型,保证了类型安全
(4)它是平台无关的,可移植性
(5)可用于基本数据类型


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

  • 答:1.耗时的操作使用线程,提高应用程序响应
    2.并行操作时使用线程,如C/S架构的服务器端并发线程响应用户的请求。
    3.多CPU系统中,使用线程提高CPU利用率
    4.改善程序结构。一个既长又复杂的进程可以考虑分为多个线程,成为几个独立或半独立的运行部分,这样的程序会利于理解和修改。
    其他情况都使用单线程。

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

通信的双方要建立连接,这个连接的终端就是套接字.客户端和服务器端都有一个套接字,每个套接字与特定的IP地址和端口号关联.  TCP .

Winsock库的初始化,套接字的创建和关闭,绑定套接字,监听LISTEN,接受连接请求,收发数据.

8. 所谓的回调函数,就是预先在系统的对函数进行注册,让系统知道这个函数的存在,以后,当某个事件发生时,再调用这个函数对事件进行响应。
定义一个类的成员函数时在该函数前加CALLBACK即将其定义为回调函数,函数的实现和普通成员函数没有区别

 

五、 编程题(共20分) 
1、[1] i<len   [2] j>0       [3]  str[i]    [4]  k 

2.
1.strcpy的实现代码

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

{

if ((strDest==NULL)||(strSrc==NULL)) //[1]

throw “Invalid argument(s )”; //[2]

char * strDestCopy=strDest; //[3]

while ((*strDest++=*strSrc++)!=’’); //[4]

return strDestCopy;

}

2.返回strDest的原始值使函数能够支持链式表达式,增加了函数的”附加值”。同样功能的函数,如果能合理地提高的可用性,自然就更加理想。

链式表达式的形式如:

int iLength=strlen(strcpy(strA,strB ));

又如:

char * strA=strcpy(new char[10],strB );

返回strSrc的原始值是错误的。其一,源字符串肯定是已知的,返回它没有意义。其二,不能支持形如第二例的表达式。其三,为了保护源字符串,形参用const限定strSrc所指的内容,把const char *作为char *返回,类型不符,编译报错。

 

评论列表
文章目录