跳转至

复习题

第三章 数据处理 复习题

  1. 为什么C++有多种整型? 满足不同的计算机系统的所有计算需求。 int、short、long、unsigned int、long long、unsigned long等。

  2. 声明与下述描述相符的变量?

    short整数,值为80

    unsigned int整数,值为42110

    值为 3000000000 的整数

    1
    2
    3
    short a = 80; /*也可以写为 short int a = 80*/
    unsigned int b = 42110;
    unsigned long long c = 3000000000;
    

  3. C++ 提供了什么措施来防止超出整型的范围? C++没有提供自动防止范围越界的措施,但可以使用 climits头文件 来查看范围的最大值,从而达到预防越界。

  4. 33L和33之间有什么区别? 33L是long int类型 33 是int 类型。

  5. 下面两条C++语句是否等价?

    char grade = 65;
    char grade = 'A';
    
    看情况而定。

  6. ASCII码的系统版本一致:两者语句等价。
  7. 系统不一致:65是int型,'A'是char型。

  8. 如何使用C++来找出编码88表示的字符?至少找出两种方法。

    1
    2
    3
    int ch = 88;
    cout.put(ch);/*方法一*/
    cout<<char(ch); /*方法二*/
    

  9. 将long值赋给float变量会导致舍入误差,将long值赋给double变量呢?将long long 值赋给double 变量呢? > 将long值赋给double变量时,不会导致误差(long最大有10位,而double提供至少13位有效数字)。 > > 将 long long值赋给double变量时,会导致舍入误差(long long提供了19位有效数字,而double只有13个有效数字)。

  10. 下列C++表达式的结果分别是多少?

    1
    2
    3
    4
    5
    a.8*9+2 /*结果为:74*/
    b.6*3/4 /*结果为:4*/
    c.3/4*6 /*结果为:0*/ 
    d.6.0*3/4 /*结果为:4.5*/
    e.15%4 /*结果为:3*/
    

  11. 假设x1和x2是两个double变量,你要将他们作为整数相加,再将结果赋给一个整型变量。请编写一条完成这项任务的c++语句。如果要将他们作为double值相加并转换为int呢?

    1
    2
    3
    double x1,x2;
    int add = int(x1) + int(x2); /*整数相加,再赋值*/
    int add = int(x1 + x2); /*double值相加,再转换为int*/
    

  12. 下面每一条语句的变量都是什么类型?

    1
    2
    3
    4
    5
    a.auto cars=15; /*类型:int*/
    b.auto iou=150.37f; /*类型:float*/
    c.auto level='B'; /*类型:char*/ 
    d.auto crat=U'/U00002155'; /*类型:char32_t*/
    e.auto fract=8.25f/2.5; /*类型:double*/