C++Primer Plus6复习题(第四章)

1.如何声明下述数据?
a.actor是一个由30个char组成的数组
char actor[30]  ;
b.betsie是一个由100个short组成的数组
short  betsie[100];
c.chuck是由13个float组成的数组
float  chuck[13];
d.depsea是一个由64个long double组成的数组
long double depsea[64] 

2.使用模板类array来完成问题1
a.array<char,30> actor
b.array<short,100> betsie
c.array<float,13> chuck
d.array<long double,64>despea

3.声明一个包含5个元素的int数组,并将它初始化为前五个正奇数
int a[5]  = {1,3,5,7,11}

4.编写一条语句,将3里面数组啊的第一个元素和最后一个元素的和赋值给even
int even;
even = a[0] + a[a.size() -1]

5.编写一条语句,显示float数组ideas中的第二个元素的值
float x[]={1.2,2.2,3.2}
cout<<x[1]

6.声明一个char数组,并且将其初始化为字符串"cheeseburger"
char x[] = "cheeseburger"

7.声明一个string对象,并且将其初始化为字符串 "Waldorf Salad"
string x = "Waldorf Salad"

8.设计一个描述鱼的结构声明,结构中包括品种,重量(int),长度(float)

struct fish{
    string m_Type;
    int m_Weight;
    float m_Length;
};

9.声明一个问题9中的结构体变量并对其初始化
fish x = {"1",1,1.1} // 
float x1;
x1.m_Type = 1;
x1.m_Weight = 1;
x1.m_Length = 1.1;

10.用enum定义一个名为Response的类型,它包含Yes,No,MayBe等枚举量  其中Yes 1 No 0 MayBe 2
enum Response{
    N0 = 0,
    Yes,
    Maybe
};

11.假设ted是一个double变量,请声明一个指向天ted的指针,并且使用该指针来显示ted的值
double ted;
double * p = ted;
cout<< * p;

12.假设treacle是一个包含10个元素的float数组,请声明指向treacle第一个元素的指针,并且使用该指针显示其第一个元素和最后一个元素
float treacle[10];
float * p = treacle;//指针指向第一个
cout<< *p;
cout<<  *(p + 9) ;

13.编写一段代码,要求用户输入一个正整数,然后创建一个动态的int数组,其中包含的数组数目等于用户输入的值,首先使用new完成,再使用vector完成

while(1){
cout<<"输入一个正整数"<<endl;
int x;
cin>>x;
if(x <= 0){
    cout<<"请重新输入"<<endl;
    continue;
}
else{
    int * p = new int[x]
    
    vector<int> p(x);

}
}

14.下面的代码是否有效,如果有效,它打印出啥

cout<<(int *) "Home of the jolly bytes"
打印的应该是指针的地址,可能会报错

15.编写一段代码,给问题8中的结构动态分配内存  再读取该结构的值

fish  * ps = new fish;
cout<<(*ps).m_Weight;
cout<<ps->m_Length;

16.cin>>address 和  getline(addresss,80)的区别
cin一个是读取到空格为止
getline限制了大小,读取整行,知道换行符

17.声明一个vector和array对象,他们都包含 10 个string,指出所需要的头文件,不适应using,使用const指定要包含的string对象数
#include<vector>
#include<array>

int main(){
  std:: vetcor<std::string> x1(10); //vector没有const
  std::array<std::string,10> x2;

  std::array<const std::string, 10> x4 = {{
        "constant1", "constant2", /* ... 其他 8 个 const string ... 
    }};

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值