1.如何聲明下述數據?

a.actor是由30個char組成的數組

b.betsie是由10o個short組成的數組

c.chuck是由13個float組成的數組

d.dipsea是由64個long double組成的數組

#include<iostream>
using namespace std;
int main() {
    char actor[30];
    short betsie[100];
    float chuck[13];
    long double dipsea[64];
    return 0;
}

  1. 使用模板類array而不是數組來完成1的問題。
#include<iostream>
using namespace std;

#include <array> // 需要添加
    
int main() {
    // array 是後面要學的對象,暫時瞭解,<char, 30> 後面要學的模板
    array<char, 30> actor;
    array<short, 100> betsie;
    array<float, 13> chuck;
    array<long double, 64> dipsea;
    actor[0] = 'A';
    cout << "actor[0] = " << actor[0] << ", actor[1] = " << actor[1] << endl;
    return 0;
}
xaye@orange:~/code/dev/13$ ./a.out 
actor[0] = Aactor[1] =

3.聲明一個包含5個元素的int數組,並將他們初始化為前5個正奇數。

#include<iostream>
using namespace std;
    
int main() {
    int arr[5] = {1, 2, 3, 4, 5};
    return 0;
}

4.編寫一條語句,將問題3中數組第一個元素和最後一個元素的和賦值給變量even。

#include<iostream>
using namespace std;
    
int main() {
    int arr[5] = {1, 2, 3, 4, 5};

    int even = arr[0] + arr[4];

    cout << "even = " << even << endl;
    return 0;
}
xaye@orange:~/code/dev/13$ ./a.out 
even = 6

5.編寫一條語句,顯示float數組ideas中的第二個元素的值。

#include<iostream>
using namespace std;
    
int main() {
    float ideas[10];

    cout << "ideas[1] = " << ideas[1] << endl;
    return 0;
}
xaye@orange:~/code/dev/13$ ./a.out 
ideas[1] = 4.48668e-41

  1. 聲明一個char的數組,並將其初始化為字符串“cheeseburger”。
#include<iostream>
using namespace std;
    
int main() {
    //char str[15] = "cheeseburger";

    // 下面這種寫法"cheeseburger" 一般存在靜態常量區,不加 const 會有下面警告
    // xaye@orange:~/code/dev/13$ g++ 1.cpp
    //1.cpp: In function ‘int main()’:
    //1.cpp:7:17: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
    //    7 |     char* str = "cheeseburger";
    //      |                 ^~~~~~~~~~~~~~

    const char* str = "cheeseburger";

    cout << "str = " << str << endl;
    return 0;
}
xaye@orange:~/code/dev/13$ ./a.out 
str = cheeseburger

  1. 聲明一個string對象,並將其初始化為字符串“WaldorfSalad”。
#include<iostream>
using namespace std;
    
int main() {
    string str = "WaldorfSalad";

    cout << "str = " << str << endl;
    return 0;
}

  1. 設計一個描述魚的結構聲明,結構中應當包括品種、重量(整數,單位為盎司)和長度(英寸,包括小數)。
  2. 聲明8中定義的結構變量,並對她進行初始化。
#include<iostream>
using namespace std;

struct fish {
    string kind;
    int weight;
    float lengh;
};

int main() {

    fish fish1 = {"caoyu", 10, 10.99};
    return 0;
}

  1. 用enum定義一個名為Response的類型,它包含Yes、No和Maybe等枚舉量,其中Yes的值為1,No為 0,Maybe為2.
#include<iostream>
using namespace std;

enum Response {
  Yes = 1,  No = 0, Maybe = 2
};

int main() {

    return 0;
}

  1. 假設ted是一個double變量,請聲明一個指向ted的指針,並使用該指針來顯示ted的值。
#include<iostream>
using namespace std;

int main() {
    double ted = 20;
    double* p_ted = &ted;
    *p_ted = 30;
    cout << "ted: " << *p_ted << endl;

    return 0;
}
xaye@orange:~/code/dev/13$ ./a.out 
ted: 30

  1. 假設treacle是一個包含10 個元素的float數組,請聲明一個指向treacle的第一個元素的指針,並使用該指針來顯示數組的第一元素和最後一個元素。
#include<iostream>
using namespace std;

int main() {
    float treacle[10];
    float* p_treacle_first = &treacle[0];
    float* p_treacle_last = &treacle[9];

    treacle[0] = 10;
    treacle[9] = 19;
    cout << "treacle_first: " << *p_treacle_first << ", treacle_last: " << *p_treacle_last << endl;

    return 0;
}
xaye@orange:~/code/dev/13$ ./a.out 
treacle_first: 10, treacle_last: 19

  1. 編寫一段代碼,要求用户輸入一個正整數,然後創建一個動態int數組,其中包含的元素數目等於用户的輸入值,首先使用new來完成這項任務,再使用vector對象完成這項任務。
#include<iostream>
using namespace std;
#include <vector> // 需要添加
int main() {
    cout << "請輸入一個正整數:" << endl;
    int size;
    cin >> size;
    // int* arr = new int[size];
    vector<int> arr(size);
    return 0;
}

  1. 下面的代碼是否有效,如果有效,他將輸出什麼結果。

cout<<(int*)"Home of the jolly bytes";

#include<iostream>
using namespace std;

int main() {
    // 輸出:0x5db0b692e004
    cout<< (int*)"Home of the jolly bytes";
    // 輸出:Home of the jolly bytes
    cout<< (char*)"Home of the jolly bytes";
    return 0;
}

  1. 編寫一段代碼,給問題8中的結構動態分配內存,再讀取該結構的成員的值。
#include<iostream>
using namespace std;

struct fish {
    string kind;
    int weight;
    float length;
};

int main() {

    fish* fish1 = new fish;

    // -> C++指針語法,類似普通創建對象的 fish1.weight, 又等價於 (*finsh1).weight
    fish1->kind = "caoyu";
    fish1->weight = 10;
    fish1->length = 9.99;

    cout << "kind:" << fish1->kind << ", weight:" << fish1->weight << ", length:" << fish1->length << endl;
    delete fish1;
    return 0;
}
xaye@orange:~/code/dev/13$ ./a.out 
kind:caoyu, weight:10, length:9.99

  1. 程序清單4,6指出了混合輸入數字和一行字符串存儲的問題,如果將下面的代碼:

cin.getline(adress,8o);替換為:cin>>address;將對程序帶來什麼影響?


  1. 聲明一個vector對象和一個array對象,他們都包含10 個string對象。指出所需的頭文件,但不要使用using,使用const來指定要包含的string對象數。
#include<iostream>
using namespace std;
#include <vector> // 需要添加
#include <array>

int main() {

    const int SIZE = 10;
    array<int, SIZE> arr_array;
    vector<int> arr_vector(SIZE);
    return 0;
}