(六十三)第四章复习题
注:以下需要頭文件的,一般都注明了頭文件,但可能省略掉了int?main(){}或者using?namespace?std;這樣的代碼,只寫了關鍵代碼。
?
1.如何聲明下列數據?
a.actor是由30個char組成的數組。
b.betsie是由100個short組成的數組。
c.chuck是由13個float組成的數組。
d.dipsea是由64個long?double組成的數組。
答:
char actor[30]; short betsid[100]; float chuck[13]; long double dipsea[64];?
2.使用模板類array而不是數組來完成問題1。
答:
#include<array> using namespace std; array<char,30>actor; array<short,100>betsid; array<float,13>chuck; array<long double,64>dipsea;?
?
3.聲明一個包含5個元素的int數組,并將他初始化為前5個正奇數。
答:
int a[5]={1,3,5,7,9};?
4.編寫一條語句,將問題3中數組的第一個元素和最后一個元素的和賦值給變量even。
答:
int even=a[0]+a[4];?
?
5.編寫一條語句,顯示float數組ideas中的第二個元素的值。
答:
cout << (float)ideas[1] <<endl;?
?
6.聲明一個char數組,將其初始化為字符串“cheeseburger”。
答:
char a[20]="cheeseburger";?
?
7.聲明一個string對象,并將其初始化為字符串“Waldorf?Salad”。
答:
#include<string> string a="Waldorf Salad";?
?
8.設計一個描述魚的結構聲明。結構中應當包括品種、重量(整數,單位為盎司)和長度(英寸、包括小數)。
答:
struct fish { std::string pinzhong; //品種名 int angsi; //重量,盎司,整數 double yingcun; //長度,英寸,浮點數 };?
?
9.聲明一個問題8中定義的結構的變量,并對它進行初始化。
答:
fish liyu={"鯉魚",5,2.2};或:
fish liyu; liyu.pinzhong = "鯉魚"; liyu.angsi = 5; liyu.yingcun = 2.2;?
?
10.用enum定義一個名為Response的類型,他包括Yes,No和Maybe等枚舉量,其中Yes的值為1,No為0,Maybe為2。
答:
enmu Response{Yes=1,No=0,Maybe=2};?
11.假設ted是一個double變量,請聲明一個指向ted的指針,并使用該指針來顯示ted的值。
答:
double *a=&ted; cout<< *a << endl;?
?
12.假設treacle是一個包含10個元素的float數組,請聲明一個指向treacle的第一個元素的指針,并使用該指針來顯示數組的第一個元素和最后一個元素。
答:
float treacle[10]; float *a=treacle; //指向該數組 cout << a[0] << endl; //顯示第一個成員 cout << a[9] << endl; //顯示最后一個成員?
?
13.編寫一段代碼,要求用戶輸入一個正整數,然后創建一個動態的int數組,其中包含的元素數目等于用戶輸入的值。首先使用new來完成這項任務,再使用vector對象來完成這項任務。
答:
unsigned int a; cin >> a; int *b=new int[a];用vector:
#include<vector> unsigned int a; cin >> a ; vector<int>b(a);?
?
14.下面的代碼是否有效?如果有效,他將打印出什么結果?
cout?<<?(int?*)?"Home?of?the?jolly?bytes";
答:
有效。他會打印儲存這個字符串常量的內存地址。
?
?
?
15.編寫一段代碼,給問題8中描述的結構動態分配內存,再讀取該結構的成員的值。
答:
fish *a=new fish; cout<<"依次輸入魚類的名字,重量(盎司,整數),長度(英寸,小數),以回車為結束。\n" cin >> (*a).string; cin >> a->angsi; cin >> a->yingcun;?
16.程序清單4.6指出了混合輸入數字和一行字符串儲存的問題。如果將下面代碼:
cin.getline(address,80);
替換為
cin?>>?address;
將對程序的運行帶來什么影響?
答:
cin.getline(address,80)的效果是,讀取用戶輸入的一行,讀取的字符數為80個,包括空格、TAB等,以換行符為止,并將換行符舍棄。將讀取的值賦給變量address。
cin是從第一個非空格、tab或者換行符讀取,然后讀取到空格、tab、換行符為止,但不舍棄這些。假如遇見用戶輸入比如a?b這樣,那么cin只能讀取a,不會讀取空格和b。
?
?
?
17.聲明一個vector對象和一個array對象,他們都包含10個string對象。指出所需的頭文件,但不要使用using。使用const來指定要包含的string對象數。
#include<vector> #include<array> #include<string> const int a=10; std::vector<std::string>b(a); std::array<std::string,a>c;?
總結
以上是生活随笔為你收集整理的(六十三)第四章复习题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS开发入门知识归纳
- 下一篇: myeclipse使用太卡问题