第二章习题

原创 2018年04月17日 11:32:01

一、名词解释
        引用:引用,就是给对象起一个别名,使用该别名可以存取该对象。换句话说,是使新对象和原对象共用   一个地址。
  内联函数:内联函数是使用inline 关键字声明一个函数。
  重载函数:重载函数通常用来对具有相似行为而数据类型不同的操作提供—个通用的名称。

二、填空题
1)一般情况下,用C++语言编写的程序是由函数加上类组成的。
2)C++有两种注释符号,一种是 // ,另一种是 /*... ...*/。
3)使用C++风格的输入输出,在程序中必须包含头文件“iostream”。
4)cin是预定义的标准输入流对象,>>是输入操作符,也称提取运算符。
5)cout是预定义的标准输出流对象,<<是输出操作符,也称插入运算符。
6)指针的值是它所指向那个对象的地址值。指针的类型是它所指向对象的类型。指针的内容便是它所指向对象的值。
7) C++使用运算符 & 来定义一个引用,对引用的存取都是对它所引用的对象的存取。
8)当一个函数调用出现在函数定义之前时,必须先用函数原型对函数进行声明。
9)C++有值传递和引用传递两种参数传递机制。
10)使用关键字 inline 声明的函数称为内联函数。
11)运算符 new 用于进行动态内存分配,运算符 delete 用于释放动态分配的内存。
12)下面程序的输出结果为x=10,y=10; x=100,y=100。

#include<iostream>

   using namespace std;

   int main()

   {

    int x=10,&y=x;

    cout<<"x="<<x<<",y="<<y<<endl; 

   int *p=&y;    *p=100;    

cout<<"x="<<x<<",y="<<y<<endl;

    return 0;

   }  

三、选择题(至少选一个,可以多选)
 (1)在整型指针变量p2、p3的定义中,错误的是(  A  )。
    A. int p1,*p2,p3;               B. int*p2,p1,*p3; 
    C. int p1,*p2=&p1,*p3;         D. int*p2,p1,*p3=&p1;
 (2)若有定义“double xx=3.14,*pp=&xx;”,则*pp等价于(  C  )。
    A. &xxB. *xxC. 3.14D. xx
 (3)下面对引用的描述中( C  )是错误的。
    A. 引用是某个变量或对象的别名
    B. 建立引用时,要对它初始化
    C. 对引用初始化可以使用任意类型的变量
    D. 引用与其代表的对象具有相同的地址
 (4)函数没有返回值的时候,应该选择(  A  )的函数类型。
    A. void   B. int    C. 不确定 D. float 
 (5)在函数的定义格式中,下面各组成部分中,(  D  )是可以省略的。
    A. 函数名   B. 函数体 C. 返回值类型  D. 函数参数
 (6)对重载的函数来说,下面叙述不正确的是( D  )。
    A. 参数的类型不同       B. 参数的顺序不同
    C. 参数的个数不同       D. 参数的个数、类型、顺序都相同,但函数的返回值类型不同
 (7)下列有关设臵函数参数默认值的描述中,(  D  )是正确的。
    A. 对设臵函数参数默认值的顺序没有任何规定 
    B.  函数具有一个参数时不能设臵默认值
    C. 默认参数要设臵在函数的原型中,而不能设臵在函数的定义语句中
    D. 设臵默认参数可使用表达式,但表达式中不可用局部变量

 (8)下面说法正确的是(  BC  )

    A. 所有的函数都可以说明为内联函数

    B. 具有循环语句、switch语句的函数不能说明为内联函数
    C. 使用内联函数,可以加快程序执行的速度,但会增加程序代码的大小
    D. 使用内联函数,可以减小程序代码大小,但使程序执行的速度减慢
 (9)一个函数功能不太复杂,但要求被频繁调用,应选用(  A  )。

    A. 内联函数   B. 重载函数    C. 递归函数  D. 嵌套函数
 (10)  C++对C语言做了很多改进,下列描述中使得C语言发生了质变,即从面向过程变成面向对象的是(  D  )。
    A. 增加了一些新的运算符       B. 允许函数重载,并允许设臵默认参数
    C. 规定函数说明必须用原型      D. 引进了类和对象的概念
四、判断题
 (1)C++程序中,不得使用没有定义或说明的变量。(√)
 (2)使用const说明常量时,可以不必指出类型。(×)
 (3)引用被创建时可以用任意变量进行初始化。(×)
 (4)一个返回引用的调用函数可以作为左值。(√)
 (5)函数可以没有参数,也可以没有返回值。(√)
 (6)没有参数的两个函数是不能重载的。(√)
 (7)函数可设臵默认参数,但不允许将一个函数的所有参数都设臵为默认参数。(×)
 (8)运算符new分配的空间由运算符delete释放。(√)


五、简答题
 (1)名字空间的用途是什么?
     答:名字空间用来防止命名的冲突。
 (2)引用有何用处?
     答:除了独立引用外,在C++程序中,引用的主要用途是用作函数参数和函数的返回值。
 (3)比较值调用和引用调用的相同点与不同点。
     答:在值调用机制中,作为实参的表达式的值被复制到由对应的形参名所标识的一个对象中,作为形参的    初始值。函数体对形参的访问、修改都是在这个标识对象上操作的,与实参无关,即数据的传递是单向的。
        使用引用作函数的形参时,调用函数的实参要用变量名。实参传递给形参,相当于在被调用函数中使    用了实参的别名。于是,在被调用函数中对形参的操作实质是对实参的直接操作,即数据的传递是双向的。
 (4)内联函数有什么作用?它有哪些特点?
     答:内联函数是使用inline关键字声明的函数。在程序编译时,编译系统将程序中出现内联函数调用的地    方用函数体进行替换,进而减少了程序运行的时间。
   使用内联函数应注意以下几点:
      1、递归函数不能定义为内联函数。
      2、内联函数一般适合于不含有switch和while等复杂的结构且只有1~5条语句的小函数,否则编译系统将    该函数视为普通函数。 
      3、内联函数只能先定义后使用,否则编译系统也将该函数视为普通函数。
      4、对内联函数也不能进行异常接口声明。
 (5)函数原型中的参数名与函数定义中的参数名以及函数调用中的参数名必须一致吗?
     答:不必一致。所有的参数是根据位臵和类型而不是名字来区分的。
 (6)重载函数时通过什么来区分?
     答:编译系统将根据函数参数的类型和个数来判断使用哪一个函数。

 

六、程序分析题(写出程序的输出结果,并分析结果)

#include<iostream>   

using namespace std;

   int main()

   {

     int num=50;     int& ref=num;     ref=ref+10;     

cout<<"num="<<num<<endl;

     num=num+40;     

cout<<"ref="<<ref<<endl;

     return 0;

   }  

输出结果为:

 

 结果分析为:

    程序首先定义一个int类型的对象num,并给它赋初始值50。然后又定义了一个int类型的引用ref,并将它和num相联系。这样,无论是对num还是对ref进行操作,实际上都是对一开始放着50的物理单元的内容进行操作。

 七、程序设计题写出一个完整的C++程序,使用系统函数powxy)计算x^y的值,注意包含头文件cmath

#include<iostream>

  #include<cmath>

  using namespace std;

  int main()  

{  

float x,y;  cout<<"请输入两个函数 x,y:";

   cin>>x>>y; 

  float z=pow(x,y); 

 cout<<"pow("<<x<<""<<y<<")="<<z<<endl;

  return 0; 

 }  

 运行结果

  

李航—统计学习方法第二章课后答案

2.3 题目:证明一下定理:样本集线性可分的充分必要条件是正实例点集和负实例点集所构成的凸壳互不相交。 这里给出比较精确的数学证明,主要参考凸优化相关理论...
  • xiaoxiao_wen
  • xiaoxiao_wen
  • 2017-01-05 20:45:59
  • 3919

机器学习1-2章习题答案

  • 2013年03月24日 14:49
  • 48KB
  • 下载

周志华机器学习第二章总结及课后答案

2.1 经验误差与过拟合通常我们把分类错误的样本总数的比例称为错误率(error rate),即如果在m个样本中有a个样本分类错误,则错误率E=a/m;相应的,1-a/m称为”精度”(accuracy...
  • LIUSHAO123456789
  • LIUSHAO123456789
  • 2018-01-31 19:38:35
  • 188

Python教材第二章部分习题

教材:《Python编程 从入门到实践》2-2:多条简单消息# 2-2 multiple simple messages msg = &quot;Hello!&quot; print(msg) msg...
  • qq_35783731
  • qq_35783731
  • 2018-03-07 22:20:23
  • 80

《编程之法》习题集答案整理-第二章

1、不用除法运算 3、找出数组中唯一的重复元素 1-1000放在含有1001个元素的数组中,只有唯一的一个元素值重复,其它均只出现一次。 每个数组元素 只能访问一次,设计一个算法,将它找出来;不用...
  • king457757706
  • king457757706
  • 2016-10-08 13:09:23
  • 490

统计学习方法 李航 第二章习题

2.1Minsky和Papert指出:感知机因为是线性模型,所以不能表示复杂的函数,如异或。验证感知机为什么不能表示异或明显可知异或不具有线性可分性,由感知机定义可知,感知机不能表示异或。 2.2模...
  • cracker180
  • cracker180
  • 2017-12-12 02:34:58
  • 336

C++程序设计基础课后答案 第二章

  • 2010年05月29日 09:47
  • 109KB
  • 下载

物理学第五版第二章习题解答

  • 2009年03月31日 19:50
  • 4.21MB
  • 下载

《c++面向对象程序设计(谭浩强)》第二章习题源代码.rar

  • 2010年09月27日 19:50
  • 5.94MB
  • 下载

C语言程序设计第二章习题参考答案

  • 2010年11月18日 00:09
  • 3KB
  • 下载
收藏助手
不良信息举报
您举报文章:第二章习题
举报原因:
原因补充:

(最多只允许输入30个字)