第2章 練習題

2022-04-08 16:41:28 字數 3116 閱讀 9749

2.9、

(a) 不合法,變數要在輸入前定義

(b) 不合法,存在丟失資訊的風險

(c) 不合法,wage未定義

(d) 會被轉換為整型

2.10

global_str : 空字串

global_int : 0

local_int : 垃圾值

local_str : 垃圾值

2.11

(a) 宣告+定義

(b) 宣告+定義

(c) 宣告

2.12

(a) double 是關鍵字

(b) 合法

(c) 不能出現『-』

(d) 不能以數字開頭

(e) 合法但不符合命名規範

2.13

2.14

合法:100 45

2.15

a 合法,會轉換

b 不合法,引用不能繫結字面值

c 合法

d 不合法,引用必須初始化

2.16

a 合法,賦值給d

b 合法,把i賦值給d

c 合法,把d賦值給i,會發生轉換

d 合法,把d賦值給i,會發出警告

2.17

10 10

2.18

#include

int main()

2.19、

1)引用本身不是乙個物件,指標本身是乙個物件

2)引用定義必須賦初值,之後無法解綁。指標可以不賦初值,程式執行過程中可以更改指標指向的位置

2.20、

定義int型別變數i並初始化為42;

定義指向int型別指標p並指向變數i;

使用解引用符訪問指向的物件並對物件進行乘法運算;

2.21、

a) 不合法,型別不匹配  b)不合法,型別不匹配  c) 合法

2.22、

如果指標不為空指標則為真,否則為假

如果指標p指向的物件不為0則為真,指向的物件值為0則為假

2.23、

不能,2.24

型別不匹配

2.25

a) ip: int型別的指標 i: int 型別的變數(物件);b) i: int型別的物件  ip: int型別的指標並初始化為空指標  c) ip是int型別的指標  ip2是int型別的物件

2.26

a) 不合法:const物件必須在宣告的時候初始化

b) 合法

c) 合法

d) 不合法;sz是const物件無法進行改變其自身值的運算

2.27

a) 不合法:引用型別的初始值必須是乙個物件

b) 如果i2是乙個int型別的物件則合法

c) 合法,初始化常量引用可以用用任意表示式作為初始值

d) 同b);

e) 同b);

f) 不合法,引用本身不是物件不能用const限定

g) 如果i可以轉化為int型別則合法

2.28、

a) 不合法,定義const物件必須初始化

b) 不合法,同a)

c) 不合法,同a)

d) 不合法,同a)

e) 宣告乙個int型別的指標

2.29

a) 合法,常量賦值給非常量合法

b) 不合法,p3不僅自己是常量而且指向常量

c) 不合法,ic是常量

d) 不合法,p3本身是const物件只能初始化的時候賦值

e) 不合法,p2本身是const物件只能初始化的時候賦值

f) 不合法,ic是常量

2.30

v2頂層const,v1沒有const, p1沒有const &r1沒有const,

p2底層const,p3 既是頂層const又是底層const ,&r2是底層const

2.31

r1 = v2; 合法

p1 = p2; 不合法,

p2 = p1;合法,

p1 = p3; 不合法

p2 = p3;合法

2.32

不合法: *p = nullptr,(不能把int型別的值賦給指標)

2.33

a = 42;//a  是int 型別 結果42賦值給a

b = 42;   //b  是int 型別結果42賦值給b

c = 42;  //同上

d = 42;  //非法,d是乙個整型指標

e = 42; //非法,e是乙個指向整型常量的指標

g = 42;  //非法,g是乙個整型常量的引用

2.34

#include 

using namespace std;

int main()

2.35

const int i = 42;

auto j = i;    //j是乙個整數(i的頂層const被忽略)

const auto &k = i;  //k是對整型常量的引用,繫結到i

auto *p = &i     //p是指向整型常量的指標

const auto j2 = i, &k2 = i;//j2是整型常量,k2是對整型常量的引用

**:#include 

using namespace std;

int main()

執行結果:

a 是int 型別 

b 是int型別

c 是int型別

d是int型別的引用

值:a==4  b == 4  c == 4  d ==  4 

2.37

a int型別 3

b int型別 4

c int型別 3

d int型別引用 3  //decltype(a = b)不作運算,所以a 的值不變

2.38

//沒太搞懂這兩個東西

2.39

提示缺;

2.40

struct sales_data

std::string bookno;

std::string author;

int sold = 0;

double revenue = 0.0;

Leaning perl 第2章練習題答案

原文發表在網易部落格 2010 11 04 21 18 43 開始學習perl了,得多做題啊.2.1 2.3 計算圓半徑計算 perl w pi 3.141592654 print enter the semidiameter semidiameter chomp semidiameter if s...

CSAPP 第2章 練習題2 1 2 6

練習題2.1 完成下面的數字轉換 a.將0x39a7f8轉換位二進位制 b.將二進位制1100100101111011轉換為十六進製制 c.將0xd5e4c轉換二進位制 d.將二進位制1001101110011110110101轉換為十六進製制 解 a.0011 1001 1010 0111 111...

第3章練習題

1 在這一章中,所謂的過濾是什麼意思?有什麼意義?過濾是指下層驅動程式和上層軟體之間的過濾層,在上下層進行資料交換時進行掃瞄過濾的過程 2 何為核心物件?我們已經接觸到了哪幾種核心物件?核心物件是核心中的一塊記憶體,是一種資料結構,負責維護該物件的資訊。裝置物件,驅動物件,進執行緒物件 3 何為裝置...