C++ Primer第四章习题简答题答案

简答题

1、如何声明下述数据?

a. actor是由30个char组成的数组。
b. betsie是由100个short组成的数组。
c. chuck是由13个float组成的数组。
d. dipsea是由64个long double组成的数组。

answer:
a. char actor [30];
b. short betsie [100];
c. float chuck [13];
d. long double dipsea[64];

2、使用模板类array而不是数组完成问题1。

answer:
array<char,30> actor;
array <short,100>betsie;
array <float,13>chuck;
array <long double,64>dipsea;

3、声明一个包含5个元素的int数组,并将其初始化为前五个正奇数。

answer:
nt odd [5] = {1,3,5,7,9};

4、编写一条语句,将问题3中数组的第一个元素和最后一个元素的和赋值给变量even。

answer:
int sum = odd[0] + odd[4];

5、编写一条语句,显示float数组ideas中的第二个元素的值。

answer:
cout>>ideas[1];

6、声明一个char的数组,并将其初始化为字符串"cheeseburger"。

answer:
char str[20] = "cheeseburger";

7、声明一个string对象,并将其初始化为字符串“Waldorf Salad”。

answer:
string str = "Waldorf Salad";

8、设计一个描述鱼的结构声明。结构中应当包含品种,数量(整数,单位为盎司)和长度(英寸,包括小数)

answer:
struct fish
{
string band;
int num;
float len;
}

9、声明一个问题8中定义的结构变量,并对他进行初始化。

fish carp =
{
“carp”,15,15.6
};

10、用enum定义一个名为Response的类型,它包含Yes,No和Maybe等枚举量,其中,Yes的值为1,No的值为0,Maybe的值为2。

11、假设ted是一个double变量,请声明一个指向ted的指针,并使用该指针来显示ted的值。

answer:
double *p = &ted;
cout<<"value of ted is "<<*p;

12、假设treacle是一个包含10个元素的float数组,请声明一个指向treacle的第一个元素的指针,并使用该指针来显示数组的第一个元素和最后一个元素。

answer:
float *p = treacle;
cout<<"the first element is "<<*p<<" and the last element is "<<*(p+9);

13、编写一段代码,要求用户输入一个正整数,然后创建一个动态的int数组,其中包含的元素数目等于用户输入的值。使用new来完成这项任务,在使用Vector对象来完成这项任务。

answer:
int num;
cout<<"please enter a positive int:";
cin>>num;
int  *p = new int [num];
vector<int> a(num);

14、下面的代码是否有效?如果有效,将打印出什么结果?

cout<<(int *) "home of the jolly bytes";
answer:
代码有效,完整的字符串会被当作是数组,前面的进行强制类型转换,最后输出的是保存字符串的地址。

15、编写一段代码,给问题8中描述的结构动态分配内存,在读取该结构的成员的值。

answer:

fish f1 = new fish;
f1.band = "croop";
f1.num = 15;
f1.len = 19.6;
cout<<fi.band;



16、程序清单4.6给出了混合输入数字和一行字符串时存储的问题。如果将下面的代码

cin.getline(address,80);

替换为

cin>>address;

将对程序的运行带来什么影响?

因为之前的输入流中,cin并没有将回车赋值到year中,所以输入流中仍然有空格,数组名进行输入是,首先会看到回车,会以为已经输入完毕,直接进行下一个语句执行。

17、声明一个Vector对象和一个Array对象,他们都包含10个String对象。指出所需的头文件,但不要使用using。使用const来指定要包含的string对象数。

#include<array>
#include<vector>
const int size = 10;
int main()
{
using std::vector <string> v1(size);
using std::array <string,size>v2;
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值