数组
请根据提示完成下列程序:
第一题:指示器可能会对同一个数组元素进行多次初始化操作。考虑下面的数组声明:
int a[] = {4, 9, 1, 8, [0] = 5, 7}; 这个声明是否合法?如果合法,数组的长度是多少? 答: 这个声明是合法的。下面是它的工作原理:编译器在处理初始化器列表时,会记录下一个待初始化的数组元素的位置。正常情况下,下一个元素是刚被初始化的元素后面的那个。但是,当列表中出现指示器时,下一个元素会被强制为指示器指定的元素,即使该元素已经被初始化了。
下面逐步分析编译器处理数组a 的初始化器的操作: ? 用4 初始化元素0,下一个待初始化的是元素1; ? 用9 初始化元素1,下一个待初始化的是元素2; ? 用1 初始化元素2,下一个待初始化的是元素3; ? 用8 初始化元素3,下一个待初始化的是元素4; ? [0]指示符导致下一个元素是元素0,所以用5 初始化元素0(替换先前存储的4)。下一个待 初始化的是元素1; ? 用7 初始化元素1(替换先前存储的9)。下一个待初始化的是元素2(跟本例不相关,因为已 经到达列表的末尾)。 最终效果跟下面的声明一样: int a[] = {5, 7, 1, 8}; 因此,数组的长度为4。
第二题:斐波那契数为0, 1, 1, 2, 3, 5, 8, 13, …,其中从第三个数开始,每个数是其前面两个数的和。
编写一个程序片段,声明一个名为fib_number 的长度为40 的数组,并填入前40 个斐波那契数。提示:先填入前两个数,然后用循环计算其余的数。
第三题:计算器、电子手表和其他电子设备经常依靠七段显示器进行数值的输出。
为了组成数字,这类设备需要“打开”7 个显示段中的某些部分,同时“关闭”其他部分: 假设需要设置一个数组来记住显示每个数字时需要“打开”的显示段。各显示段的编号如下所示:
下面是数组的可能形式,每一行表示一个数字: const int segments[10][7] = {{1, 1, 1, 1, 1, 1, 0}, …}; 上面已经给出了初始化器的第一行,请填充余下的部分。
第四题:为一个8×8 的字符数组编写声明,数组名为checker_board。然后用一个循环把下列数据写入数组
(每个字符对应一个数组元素): B R B R B R B R R B R B R B R B B R B R B R B R R B R B R B R B B R B R B R B R R B R B R B R B B R B R B R B R R B R B R B R B 提示:如果i + j 为偶数,则i 行j 列的元素为B。
第五题:有一个名叫B1FF 的人,是典型的网络新手,他有一种独特的编写消息的方式。下面是一条常见的B1FF 公告:
H3Y DUD3, C 15 R1LLY C00L!!! 编写一个“B1FF 过滤器”,它可以读取用户输入的消息并把此消息翻译成B1FF 的表达风格: Enter message: Hey dude, C is rilly cool In B1FF-speak: H3Y DUD3, C 15 R1LLY C00L!!! 程序需要把消息转换成大写字母,用数字代替特定的字母(A→4、B→8、E→3、I→1、O→0、S→5),然后添加10 个左右的感叹号。提示:把原始消息存储在一个字符数组中,然后从数组头开始逐 个翻译并显示字符。
第六题:编写程序读取一个5×5 的整数数组,然后显示出每行的和与每列的和。
Enter row 1: 8 3 9 0 10 Enter row 2: 3 5 17 1 1 Enter row 3: 2 8 6 23 1 Enter row 4: 15 7 3 2 9 Enter row 5: 6 14 2 6 0 Row totals: 30 27 40 36 28 Column totals: 34 37 37 32 21
第七题:编写程序颠倒句子中单词的顺序:
Enter a sentence: you can cage a swallow can’t you? Reversal of sentence: you can’t swallow a cage can you? 提示:用循环逐个读取字符,然后将它们存储在一个一维字符数组中。当遇到句号、问号或者感叹号(称为“终止字符”)时,终止循环并把终止字符存储在一个char 类型变量中。然后再用一个循环反向搜索数组,找到最后一个单词的起始位置。显示最后一个单词,然后反向搜索倒数第二个单词。重复这一过程,直至到达数组的起始位置。最后显示出终止字符。
第八题:一维数组的应用。
定义一个一维整型数组a[],此数组有10个元素,并使用for循环进行初始化,{1,2,3,4,5,6,7,8,9,10}.使用sizeof求出此数组占用的空间和a[0]与a[9]的位置。
祝同学们学习愉快,感谢CSDN平台。
|