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 才有的,不推薦使用!!!
除非後面用在方法上