每日十问4c++-复合类型
迪丽瓦拉
2024-05-27 02:48:13
0

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
添加相应的头文件。声明中使用一对尖括号标识模板类,并指定数组类型和元素数。因此本题中数组的声明如下。
a. array actor; b. array betsie; c. array chuck;
d. array 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 "<


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.

相关内容