1.為什麼c++有多種整形?

short、int、long、long long、 unsigned short、unsigned int、unsigned long、unsigned long long、char

2.聲明與下述描述相符的變量。

a.short整數,值為80 b.unsigned int整數,值為42110 c.值為3000000000的整數

short number1 = 80;

unsigned int number2 = 42110;

long , long long, unsigned int, unsigned long, unsigned long long

3.c++提供了什麼措施來防止超出整形的範圍?

C++ 並沒有提供什麼措施來防止超出整型的範圍,在開發中需要程序員自己考慮選用什麼類型

4.33L與33之間有什麼區別?

33L 代表是 long 類型

33 代表是 int 類型

5.下面兩條c++語句是否等價?

char grade = 65;

char grade ='A';

報錯,命名不能一樣,不同編譯版本可能現象不一樣,新的編譯不過,老一點警告,能以編譯過

6.如何使用c++來找出編碼88表示的字符?指出至少兩種方法。

X

X

char ch = 88; cout << ch << endl;

cout << (char)88 << endl;

7.將 long賦值給float變量會導致舍入誤差,將long值賦給double變量呢?將longlong值賦給double變量呢?

#include <iostream>
#include <climits>
    
using namespace std;

int main() {

    // 用來設置輸出的格式
    cout.setf(ios_base::fixed,ios_base::floatfield);

    cout << sizeof(long) << endl;
    cout << sizeof(float) << endl;
    cout << sizeof(double) << endl;
    cout << sizeof(long long) << endl;

    long number1 = LONG_MAX;
    long number2 = LLONG_MAX;
    double number3 = number1;
    double number4 = number2;
    
    cout << "number1 = " << number1 << ", number2 = " << number2 << ", number3 = "
    << number3 << ", number4 = " << number4 << endl;
    return 0; 
}
xaye@orange:~/code/dev/6$ ./a.out 
8
4
8
8
number1 = 9223372036854775807, number2 = 9223372036854775807, number3 = 9223372036854775808.000000, number4 = 9223372036854775808.000000

單純的從字節上來説沒問題,但實際由於它們在內存中存儲的表達方式不一樣,會有問題

8.下列c++表達式的結果分別是多少?

a.89+2 b.63/4 c.3/46 d.6.03/4 e.15%4

a.91 b.15 c.0 d. 1.507500 e.3

9.假設x1和x2是兩個double變量,你要將他們作為整數相加,再將結果賦給一個整型變量。請編寫一條完成這項任務的c++語句。如果要將他們作為double值相加並轉換為int呢?

#include <iostream>
#include <climits>
    
using namespace std;

int main() {

    // 用來設置輸出的格式
    cout.setf(ios_base::fixed,ios_base::floatfield);

    double x1 = 3.1415;
    double x2 = 4.9415;
    int x3 = (int)x1 + (int)x2;
    int x4 = x1 + x2;
    
    cout << "x3 = " << x3 << ", x4 = " << x4 << endl;

    return 0; 
}
x3 = 7, x4 = 8

10.下面每一條語句的變量都是什麼類型?

a.auto cars=15; b.auto iou=150.37f; c.auto level='B'; d.auto crat=U'/U00002155"'; e.auto fract=8.25f/2.5;

a.int b.float c.char d.char32_t e.double

#include <iostream>
#include <climits>
    
using namespace std;

int main() {

    // 用來設置輸出的格式
    cout.setf(ios_base::fixed,ios_base::floatfield);

    auto num1 = 2;
    double num2 = 2.2;
    auto sum = num1 + num2;
    cout << "sum = " << sum << endl;

    return 0; 
}

auto 代表編譯器會自動給我們判斷類型,C++11 才有的,不推薦使用!!!

除非後面用在方法上