每日十问4c++-复合类型

文章详细介绍了C++中数组的声明和初始化,包括不同数据类型的数组如char、short、float和longdouble。同时,提到了使用模板类std::array替代传统数组的方式,并展示了如何初始化一个包含前5个正奇数的int数组。此外,还涵盖了显示数组元素、赋值操作以及声明和初始化结构体(如鱼类信息)的方法,最后提到了用enum定义枚举类型Response及其值的设定。

1.如何声明下述数据?
a. actor 是由 30个 char 类型的值组成的数组。

b. betsie是由 100个short 类型的值组成的数组。

c.chuck 是由 13个 float 类型的值组成的数组。
d. dipsea 是由 64个 long double 类型的值组成的数组。

解析:
数组是顺序排列的一组相同类型的数据,在声明中需要表明每一个元素的数据类型和数据元素的个数,元素个数(索引值)使用方括号和括号内的整型数据表示。因此数组的声明如下。
a.char actor[30];

b. short betsie[100];

c.float chuck[13];
d. long double dipsea[64];


2.使用模板类 array 而不是数组来完成复习题 1。

解析:
模板类是 C++语言进行泛型编程的一种重要方式,模板类 array可以创建指定类型和长度的数组。array 预定义在名称空间 std 内,因此为了使用该模板类需要使用以下预编译器指令。
#include <array>
添加相应的头文件。声明中使用一对尖括号标识模板类,并指定数组类型和元素数。因此本题中数组的声明如下。
a. array<char, 30> actor; b. array<short, 100> betsie; c. array<float, 13> chuck;
d. array<long double, 64> dipsea;


3.声明一个包含5个元素的int数组,并将它初始化为前5个正奇数。
解析:
数组元素可以在声明中使用赋值运算符进行初始化,初始化方式是使用花括号包含小于或等于元素数量并且以逗号分隔的同类型数据。本题中的初始化方式如下。 int arr[5] = (1,3,5,7,9};

4.编写一条语句,将复习题3中数组的第1个元素与最后一个元素的和赋给变量eve

解析:
数组内元素的存取和访问可以通过下标(索引)完成,需要注意的是,下标值从03始,最后一个元素的下标值是元素数量减1。因此,本题的赋值语句如下。
int arr[5] = (1,3,5,7,9}; int even = arr[0] + arr[4];


5.编写一条语句,显示 float 类型数组 ideas 中第2个元素的值。

解析:
数组的下标(索引)从0开始计数,因此第2个元素的下标是1。语句如下。
float ideas[10];…;
cout<<"The second element of array is "<<ideas[1]<<endl;


6.声明一个 char 的数组,并将其初始化为字符串“cheeseburger”

解析:
使用字符数组和形式表示字符串有两种方式,既可以指定数组的长度,也可以不指定而是由定义时初始化的字符串自动分配。因此可以使用以下两种方法定义,日常推荐使用第1种方法。
char st[] = "cheeseburger";或者
char st[13] = "cheeseburger",

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

解析:
string 是C++中预定义的一个类型,使用上更加简单,可以避免字符数组的复杂操作,像其他基本数据类型一样进行赋值操作和初始化。例如:
string st ="Waldorf Salad";

8.设计一个描述鱼的结构体声明。结构体应当包括品种、重量(整数,单位为盎司)和长度(单位为英寸,包括小数)。
解析:
要使用结构体进行数据类型定义,首先在语法结构上要使用关键字 struct,其次结构体的组成元素需要声明数据类型和名称,并用分号隔开。题目要求的结构体可以定义为以形式。
struct fish{char kind[20]; int weight; float length;};

9.声明复习题8中定义的结构体的一个变量,并对它进行初始化。

解析:
结构体变量的定义有两种形式。一种是类似其他基本数据类型的定义方式,另一种是直接在结构体的定义后加上变量的定义,例如:
struct fish{ char kind[20]; int weight; float length;
}petes={"BigFish",12,4.5};或者
fish petes = {"BigFish", 12, 4.5 };


10.用 enum 定义一个名为 Response 的类型,它包含 Yes、No 和 Maybe等枚举量,其中 Yes 的值为 1,No 的值为 0,Maybe 的值为 2。
解析:
在定义枚举型变量时,其元素会自动从 0 开始赋值,用户也可以手动指定每一个元素的值,例如:
enum Response(No,Yes,Maybe};或者
enum Response {No=0,Yes=1,Maybe=2);两者等价。

ps:整理自c++primer plus.

[root@controller nova]# bash iaas-install-nova-controller.sh Conflict occurred attempting to store user - Duplicate entry found with n ame nova at domain ID 6a5f3d406b6c486580f6ef0403633cb5. (HTTP 409) (Reque st-ID: req-8b1bd358-f4aa-4c2b-aab9-2a82d1a2234c) +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | OpenStack Compute | | enabled | True | | id | 4ef8cc228fc44dfd9a19df1ee077a53a | | name | nova | | type | compute | +-------------+----------------------------------+ Multiple service matches found for 'compute', use an ID to be more specif ic. Multiple service matches found for 'compute', use an ID to be more specif ic. Multiple service matches found for 'compute', use an ID to be more specif ic. 已加载插件:fastestmirror Loading mirror speeds from cached hostfile 软件包 1:openstack-nova-api-20.4.1-1.el7.noarch 已安装并且是最新版本 软件包 1:openstack-nova-conductor-20.4.1-1.el7.noarch 已安装并且是最新版 本 软件包 1:openstack-nova-novncproxy-20.4.1-1.el7.noarch 已安装并且是最新版 本 软件包 1:openstack-nova-scheduler-20.4.1-1.el7.noarch 已安装并且是最新版 本 无须任何处理 Cell0 is already setup The specified transport_url and/or database_connection combination alread y exists for another cell with uuid fc3c1b26-f0e9-4947-bea6-bc50e21c8e96. +-------+--------------------------------------+------------------------- -----------+-------------------------------------------------+----------+ | 名称 | UUID | Transport URL | 数据库连接 | Disabled | +-------+--------------------------------------+------------------------- -----------+-------------------------------------------------+----------+ | cell0 | 00000000-0000-0000-0000-000000000000 | none:/ | mysql+pymysql://nova:****@controller/nova_cell0 | False | | cell1 | fc3c1b26-f0e9-4947-bea6-bc50e21c8e96 | rabbit://openstack:****@ controller | mysql+pymysql://nova:****@controller/nova | False | +-------+--------------------------------------+------------------------- -----------+-------------------------------------------------+----------+ ID为1的云主机类型已经存在。 (HTTP 409) (Request-ID: req-d15c3cbb-020e-458 8-be41-a81985c7c2f2) ID为2的云主机类型已经存在。 (HTTP 409) (Request-ID: req-8238e51b-832c-418c-a9ba-91717335339d) ID为3的云主机类型已经存在。 (HTTP 409) (Request-ID: req-4fff4664-f877-4031-9e88-c7ffcea88a7b) 这个算是没题了吗
12-03
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五百五。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值